CVSROOT:        /cvs/cluster
Module name:    conga
Branch:         RHEL5
Changes by:     [email protected]  2011-02-25 15:54:34

Modified files:
        luci/cluster   : cluster_svc-macros fence-macros 
                         resource-form-macros resource_form_handlers.js 
                         validate_fence.js 
        luci/site/luci/Extensions: FenceHandler.py LuciClusterInfo.py 
                                   ResourceHandler.py 
        luci/site/luci/Extensions/ClusterModel: FenceDeviceAttr.py 
                                                ModelBuilder.py 
Added files:
        luci/site/luci/Extensions/ClusterModel: OracleInstance.py 
                                                OracleListener.py 

Log message:
        Sync up with upstream

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/cluster_svc-macros.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.3.2.12&r2=1.3.2.13
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/fence-macros.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.2.2.18&r2=1.2.2.19
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/resource-form-macros.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.21.2.18&r2=1.21.2.19
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/resource_form_handlers.js.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.20.2.19&r2=1.20.2.20
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/validate_fence.js.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.1.2.14&r2=1.1.2.15
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/FenceHandler.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.4.2.23&r2=1.4.2.24
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/LuciClusterInfo.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.1.4.20&r2=1.1.4.21
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/ResourceHandler.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.1.4.10&r2=1.1.4.11
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/ClusterModel/OracleInstance.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=NONE&r2=1.1.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/ClusterModel/OracleListener.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=NONE&r2=1.1.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/ClusterModel/FenceDeviceAttr.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.5.2.5&r2=1.5.2.6
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/ClusterModel/ModelBuilder.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.1.4.16&r2=1.1.4.17

--- conga/luci/cluster/cluster_svc-macros       2009/05/21 13:32:04     1.3.2.12
+++ conga/luci/cluster/cluster_svc-macros       2011/02/25 15:54:33     1.3.2.13
@@ -554,6 +554,12 @@
        <tal:block tal:condition="python: type == 'oracledb'">
                <div 
metal:use-macro="here/resource-form-macros/macros/oracledb_macro" />
        </tal:block>
+       <tal:block tal:condition="python: type == 'oralistener'">
+               <div 
metal:use-macro="here/resource-form-macros/macros/oralistener_macro" />
+       </tal:block>
+       <tal:block tal:condition="python: type == 'orainstance'">
+               <div 
metal:use-macro="here/resource-form-macros/macros/orainstance_macro" />
+       </tal:block>
 </div>
 
 <div metal:define-macro="failover-prefs-macro" tal:omit-tag="">
--- conga/luci/cluster/fence-macros     2010/09/29 17:08:24     1.2.2.18
+++ conga/luci/cluster/fence-macros     2011/02/25 15:54:33     1.2.2.19
@@ -266,8 +266,12 @@
                <tal:block 
metal:use-macro="here/fence-macros/macros/fence-form-ifmib" />
        </tal:block>
 
-       <tal:block tal:condition="python: cur_fence_type == 'fence_ucs'">
-               <tal:block 
metal:use-macro="here/fence-macros/macros/fence-form-ucs" />
+       <tal:block tal:condition="python: cur_fence_type == 'fence_cisco_ucs'">
+               <tal:block 
metal:use-macro="here/fence-macros/macros/fence-form-cisco_ucs" />
+       </tal:block>
+
+       <tal:block tal:condition="python: cur_fence_type == 'fence_rhevm'">
+               <tal:block 
metal:use-macro="here/fence-macros/macros/fence-form-rhevm" />
        </tal:block>
 
        <tal:block tal:condition="python: cur_fence_type == 'fence_manual'">
@@ -356,7 +360,8 @@
        <option name="fence_vmware" value="fence_vmware">VMware Fencing</option>
        <option name="fence_lpar" value="fence_lpar">LPAR Fencing</option>
        <option name="fence_cisco_mds" value="fence_cisco_mds">Cisco 
MDS</option>
-       <option name="fence_ucs" value="fence_ucs">Cisco UCS</option>
+       <option name="fence_cisco_ucs" value="fence_cisco_ucs">Cisco 
UCS</option>
+       <option name="fence_rhevm" value="fence_rhevm">RHEV-M Fencing</option>
        <option name="fence_ifmib" value="fence_ifmib">IF MIB</option>
 </div>
 
@@ -384,7 +389,8 @@
        <option name="fence_vmware" value="fence_vmware">VMware Fencing</option>
        <option name="fence_lpar" value="fence_lpar">LPAR Fencing</option>
        <option name="fence_cisco_mds" value="fence_cisco_mds">Cisco 
MDS</option>
-       <option name="fence_ucs" value="fence_ucs">Cisco UCS</option>
+       <option name="fence_cisco_ucs" value="fence_cisco_ucs">Cisco 
UCS</option>
+       <option name="fence_rhevm" value="fence_rhevm">RHEV-M Fencing</option>
        <option name="fence_ifmib" value="fence_ifmib">IF MIB</option>
        <option name="fence_manual" value="fence_manual">Manual Fencing</option>
 </div>
@@ -1844,10 +1850,98 @@
        </div>
 </div>
 
-<div metal:define-macro="fence-form-ucs"
+<div metal:define-macro="fence-form-rhevm"
        tal:attributes="id cur_fencedev/name | nothing">
 
-       <div id="fence_ucs" class="fencedev">
+       <div id="fence_rhevm" class="fencedev">
+               <table>
+                       <tr>
+                               <td><strong class="cluster">Fence 
Type</strong></td>
+                               <td>RHEV-M</td>
+                       </tr>
+                       <tr>
+                               <td>Name</td>
+                               <td>
+                                       <input name="name" type="text"
+                                               tal:attributes="value 
cur_fencedev/name | nothing" />
+                               </td>
+                       </tr>
+                       <tr>
+                               <td>IP Address</td>
+                               <td>
+                                       <input name="ipaddr" type="text"
+                                               tal:attributes="value 
cur_fencedev/ipaddr | nothing" />
+                               </td>
+                       </tr>
+                       <tr>
+                               <td>IP port (optional)</td>
+                               <td>
+                                       <input name="ipport" type="text" 
class="text"
+                                               tal:attributes="value 
cur_fencedev/ipport | nothing" />
+                               </td>
+                       </tr>
+                       <tr>
+                               <td>Login</td>
+                               <td>
+                                       <input name="login" type="text"
+                                               tal:attributes="value 
cur_fencedev/login | nothing" />
+                               </td>
+                       </tr>
+                       <tr>
+                               <td>Password</td>
+                               <td>
+                                       <input name="passwd" type="password" 
autocomplete="off"
+                                               tal:attributes="value 
cur_fencedev/passwd | nothing" />
+                               </td>
+                       </tr>
+                       <tr>
+                               <td>
+                                       <span title="Full path to a script to 
generate fence password">Password Script (optional)</span>
+                               </td>
+                               <td>
+                                       <input type="text" name="passwd_script"
+                                               tal:attributes="
+                                                       disabled 
cur_fencedev/isShared | nothing;
+                                                       value 
cur_fencedev/passwd_script | nothing" />
+                               </td>
+                       </tr>
+                       <tr>
+                               <td>Use SSL connections</td>
+                               <td>
+                                       <input 
tal:condition="exists:cur_fencedev"
+                                               type="checkbox" name="ssl"
+                                               tal:attributes="
+                                                       checked 
python:(cur_fencedev and cur_fencedev.has_key('ssl') and (cur_fencedev['ssl'] 
== '1' or cur_fencedev['ssl'].lower() == 'true')) and 'checked' or ''" />
+                                       <input 
tal:condition="not:exists:cur_fencedev"
+                                               type="checkbox" name="ssl" />
+                               </td>
+                       </tr>
+                       <tr>
+                               <td>Power wait (seconds)</td>
+                               <td>
+                                       <input type="text" name="power_wait"
+                                               tal:attributes="
+                                                       disabled 
cur_fencedev/isShared | nothing;
+                                                       value 
cur_fencedev/power_wait | nothing" />
+                               </td>
+                       </tr>
+               </table>
+
+               <tal:block tal:condition="exists: cur_fencedev">
+                       <input type="hidden" name="existing_device" value="1" />
+                       <input type="hidden" name="orig_name"
+                               tal:attributes="value cur_fencedev/name | 
nothing" />
+               </tal:block>
+
+               <input type="hidden" name="fence_type" value="fence_rhevm" />
+               <input type="hidden" name="sharable" value="1" />
+       </div>
+</div>
+
+<div metal:define-macro="fence-form-cisco_ucs"
+       tal:attributes="id cur_fencedev/name | nothing">
+
+       <div id="fence_cisco_ucs" class="fencedev">
                <table>
                        <tr>
                                <td><strong class="cluster">Fence 
Type</strong></td>
@@ -1927,7 +2021,7 @@
                                tal:attributes="value cur_fencedev/name | 
nothing" />
                </tal:block>
 
-               <input type="hidden" name="fence_type" value="fence_ucs" />
+               <input type="hidden" name="fence_type" value="fence_cisco_ucs" 
/>
                <input type="hidden" name="sharable" value="1" />
        </div>
 </div>
@@ -2362,7 +2456,8 @@
        <tal:block metal:use-macro="here/fence-macros/macros/fence-form-vmware" 
/>
        <tal:block metal:use-macro="here/fence-macros/macros/fence-form-ifmib" 
/>
        <tal:block 
metal:use-macro="here/fence-macros/macros/fence-form-cisco_mds" />
-       <tal:block metal:use-macro="here/fence-macros/macros/fence-form-ucs" />
+       <tal:block 
metal:use-macro="here/fence-macros/macros/fence-form-cisco_ucs" />
+       <tal:block metal:use-macro="here/fence-macros/macros/fence-form-rhevm" 
/>
        <tal:block metal:use-macro="here/fence-macros/macros/fence-form-manual" 
/>
 </div>
 
@@ -2383,7 +2478,8 @@
        <tal:block metal:use-macro="here/fence-macros/macros/fence-form-vmware" 
/>
        <tal:block metal:use-macro="here/fence-macros/macros/fence-form-ifmib" 
/>
        <tal:block 
metal:use-macro="here/fence-macros/macros/fence-form-cisco_mds" />
-       <tal:block metal:use-macro="here/fence-macros/macros/fence-form-ucs" />
+       <tal:block 
metal:use-macro="here/fence-macros/macros/fence-form-cisco_ucs" />
+       <tal:block metal:use-macro="here/fence-macros/macros/fence-form-rhevm" 
/>
 </div>
 
 <div metal:define-macro="shared-fence-device-list">
@@ -2995,9 +3091,47 @@
        </div>
 </div>
 
-<div metal:define-macro="fence-instance-form-ucs"
+<div metal:define-macro="fence-instance-form-rhevm"
+       tal:omit-tag="exists: cur_fence_dev_id">
+       <div id="fence_rhevm_instance" name="fence_rhevm" 
class="fencedev_instance"
+               tal:omit-tag="exists: cur_fence_dev_id">
+               <table>
+                       <tr>
+                               <td>Port</td>
+                               <td>
+                                       <input name="port" type="text"
+                                               tal:attributes="value 
cur_instance/port | nothing" />
+                               </td>
+                       </tr>
+                       <tr><td colspan="2">
+                               <div class="hbSubmit">
+                                       <tal:block 
tal:condition="exists:cur_fence_instance_id">
+                                               <input type="button" 
name="remove_fence"
+                                                       value="Remove this 
instance"
+                                                       tal:attributes="onclick 
python: 'del_fence_instance(\'' + cur_fence_instance_id + '\')'" />
+                                       </tal:block>
+                                       <tal:block 
tal:condition="not:exists:cur_fence_instance_id">
+                                               <input type="button" 
name="remove_fence"
+                                                       value="Remove this 
instance" />
+                                       </tal:block>
+                               </div>
+                       </td></tr>
+               </table>
+
+               <input type="hidden" name="option" 
tal:condition="exists:cur_instance"
+                       tal:attributes="value cur_instance/option |nothing" />
+               <input type="hidden" name="fence_type" value="fence_rhevm" />
+               <input type="hidden" name="fence_instance" value="1" />
+               <input tal:condition="exists: cur_instance"
+                       type="hidden" name="existing_instance" value="1" />
+               <input type="hidden" name="parent_fencedev"
+                       tal:attributes="value cur_fence_dev_id | nothing" />
+       </div>
+</div>
+
+<div metal:define-macro="fence-instance-form-cisco_ucs"
        tal:omit-tag="exists: cur_fence_dev_id">
-       <div id="fence_ucs_instance" name="fence_ucs" class="fencedev_instance"
+       <div id="fence_cisco_ucs_instance" name="fence_cisco_ucs" 
class="fencedev_instance"
                tal:omit-tag="exists: cur_fence_dev_id">
                <table>
                        <tr>
@@ -3024,7 +3158,7 @@
 
                <input type="hidden" name="option" 
tal:condition="exists:cur_instance"
                        tal:attributes="value cur_instance/option |nothing" />
-               <input type="hidden" name="fence_type" value="fence_ucs" />
+               <input type="hidden" name="fence_type" value="fence_cisco_ucs" 
/>
                <input type="hidden" name="fence_instance" value="1" />
                <input tal:condition="exists: cur_instance"
                        type="hidden" name="existing_instance" value="1" />
@@ -3144,7 +3278,9 @@
                
metal:use-macro="here/fence-macros/macros/fence-instance-form-ifmib" />
 
        <tal:block
-               
metal:use-macro="here/fence-macros/macros/fence-instance-form-ucs" />
+               
metal:use-macro="here/fence-macros/macros/fence-instance-form-cisco_ucs" />
+       <tal:block
+               
metal:use-macro="here/fence-macros/macros/fence-instance-form-rhevm" />
 </div>
 
 <div metal:define-macro="fencedev-instance-cond-ladder"
@@ -3230,9 +3366,14 @@
                        
metal:use-macro="here/fence-macros/macros/fence-instance-form-ifmib" />
        </tal:block>
 
-       <tal:block tal:condition="python: cur_fence_type == 'fence_ucs'">
+       <tal:block tal:condition="python: cur_fence_type == 'fence_cisco_ucs'">
+               <tal:block
+                       
metal:use-macro="here/fence-macros/macros/fence-instance-form-cisco_ucs" />
+       </tal:block>
+
+       <tal:block tal:condition="python: cur_fence_type == 'fence_rhevm'">
                <tal:block
-                       
metal:use-macro="here/fence-macros/macros/fence-instance-form-ucs" />
+                       
metal:use-macro="here/fence-macros/macros/fence-instance-form-rhevm" />
        </tal:block>
 </div>
 
--- conga/luci/cluster/resource-form-macros     2010/09/29 17:08:24     
1.21.2.18
+++ conga/luci/cluster/resource-form-macros     2011/02/25 15:54:33     
1.21.2.19
@@ -173,6 +173,10 @@
                                <option name="ASEHAagent" 
value="ASEHAagent">Sybase ASE Failover Instance</option>
                        </tal:block>
                        <option name="oracledb" value="oracledb">Oracle 10g 
Failover Instance</option>
+                       <tal:block tal:condition="python:clusterinfo and 
clusterinfo.get('has_split_oracle_agents') == True">
+                               <option name="orainstance" 
value="orainstance">Oracle DB Agent</option>
+                               <option name="oralistener" 
value="oralistener">Oracle Listener Agent</option>
+                       </tal:block>
                </select>
        </form>
 
@@ -196,6 +200,8 @@
                <div 
metal:use-macro="here/resource-form-macros/macros/SAPDatabase_macro" />
                <div 
metal:use-macro="here/resource-form-macros/macros/ASEHAagent_macro" />
                <div 
metal:use-macro="here/resource-form-macros/macros/oracledb_macro" />
+               <div 
metal:use-macro="here/resource-form-macros/macros/orainstance_macro" />
+               <div 
metal:use-macro="here/resource-form-macros/macros/oralistener_macro" />
        </div>
 </div>
 
@@ -230,6 +236,10 @@
                        </tal:block>
 
                        <option name="oracledb" value="oracledb">Oracle 10g 
Failover Instance</option>
+                       <tal:block tal:condition="python:clusterinfo and 
clusterinfo.get('has_split_oracle_agents') == True">
+                               <option name="orainstance" 
value="orainstance">Oracle DB Agent</option>
+                               <option name="oralistener" 
value="oralistener">Oracle Listener Agent</option>
+                       </tal:block>
                </select>
        </form>
 
@@ -277,6 +287,8 @@
                <div 
metal:use-macro="here/resource-form-macros/macros/SAPDatabase_macro" />
                <div 
metal:use-macro="here/resource-form-macros/macros/ASEHAagent_macro" />
                <div 
metal:use-macro="here/resource-form-macros/macros/oracledb_macro" />
+               <div 
metal:use-macro="here/resource-form-macros/macros/orainstance_macro" />
+               <div 
metal:use-macro="here/resource-form-macros/macros/oralistener_macro" />
        </div>
 </div>
 
@@ -1559,6 +1571,168 @@
        </form>
 </div>
 
+<div class="rescfg" name="orainstance"
+       tal:attributes="id res/name | nothing" 
metal:define-macro="orainstance_macro">
+       <p class="reshdr">Oracle 10g Failover Instance</p>
+
+       <form method="post"
+               tal:attributes="name res/parent_uuid | nothing"
+               tal:define="editDisabled resourceIsRef | nothing">
+
+       <input name="immutable" type="hidden" value="true"
+               tal:condition="editDisabled" />
+
+       <input name="edit" type="hidden" value="true"
+               tal:condition="python: ptype == '33' and True or False" />
+
+       <input name="pagetype" type="hidden"
+               tal:attributes="value python: ptype" />
+
+       <input name="global" type="hidden"
+               tal:attributes="value resourceIsRef | nothing" />
+
+       <input name="parent_uuid" type="hidden"
+               tal:attributes="value res/parent_uuid | nothing" />
+
+       <input name="uuid" type="hidden"
+               tal:attributes="value res/uuid | nothing" />
+
+       <input name="tree_level" type="hidden"
+               tal:attributes="value res/indent_ctr | string:0" />
+
+       <input name="clustername" type="hidden"
+               tal:attributes="
+                       value request/clustername | request/form/clustername | 
nothing" />
+
+       <input name="oldname" type="hidden"
+               tal:attributes="value res/name | nothing" />
+
+       <input name="type" type="hidden" value="orainstance" />
+
+       <table class="systemsTable">
+               <tr class="systemsTable">
+                       <td class="systemsTable">Instance name (SID) of Oracle 
instance</td>
+                       <td class="systemsTable">
+                               <input type="text" size="20" name="resourcename"
+                                       tal:attributes="
+                                               disabled python: editDisabled;
+                                               value res/name | nothing" />
+                       </td>
+               </tr>
+               <tr class="systemsTable">
+                       <td class="systemsTable">Oracle user name</td>
+                       <td class="systemsTable">
+                               <input type="text" size="20" name="user"
+                                       tal:attributes="
+                                               disabled python: editDisabled;
+                                               value res/attrs/user | nothing" 
/>
+                       </td>
+               </tr>
+               <tr class="systemsTable">
+                       <td class="systemsTable">Oracle application home 
directory</td>
+                       <td class="systemsTable">
+                               <input type="text" size="20" name="home"
+                                       tal:attributes="
+                                               disabled python: editDisabled;
+                                               value res/attrs/home | nothing" 
/>
+                       </td>
+               </tr>
+               <tr class="systemsTable">
+                       <td class="systemsTable">List of Oracle listeners 
(optional, separated by spaces)</td>
+                       <td class="systemsTable">
+                               <input type="text" size="20" name="listeners"
+                                       tal:attributes="
+                                               disabled python: editDisabled;
+                                               value res/attrs/listeners | 
nothing" />
+                       </td>
+               </tr>
+               <tr class="systemsTable">
+                       <td class="systemsTable">Path to lock file 
(optional)</td>
+                       <td class="systemsTable">
+                               <input type="text" size="20" name="lockfile"
+                                       tal:attributes="
+                                               disabled python: editDisabled;
+                                               value res/attrs/lockfile | 
nothing" />
+                       </td>
+               </tr>
+       </table>
+       
+       <div metal:use-macro="here/resource-form-macros/macros/res_form_footer" 
/>
+       </form>
+</div>
+
+<div class="rescfg" name="oralistener"
+       tal:attributes="id res/name | nothing" 
metal:define-macro="oralistener_macro">
+       <p class="reshdr">Oracle 10g Listener Instance</p>
+
+       <form method="post"
+               tal:attributes="name res/parent_uuid | nothing"
+               tal:define="editDisabled resourceIsRef | nothing">
+
+       <input name="immutable" type="hidden" value="true"
+               tal:condition="editDisabled" />
+
+       <input name="edit" type="hidden" value="true"
+               tal:condition="python: ptype == '33' and True or False" />
+
+       <input name="pagetype" type="hidden"
+               tal:attributes="value python: ptype" />
+
+       <input name="global" type="hidden"
+               tal:attributes="value resourceIsRef | nothing" />
+
+       <input name="parent_uuid" type="hidden"
+               tal:attributes="value res/parent_uuid | nothing" />
+
+       <input name="uuid" type="hidden"
+               tal:attributes="value res/uuid | nothing" />
+
+       <input name="tree_level" type="hidden"
+               tal:attributes="value res/indent_ctr | string:0" />
+
+       <input name="clustername" type="hidden"
+               tal:attributes="
+                       value request/clustername | request/form/clustername | 
nothing" />
+
+       <input name="oldname" type="hidden"
+               tal:attributes="value res/name | nothing" />
+
+       <input name="type" type="hidden" value="oralistener" />
+
+       <table class="systemsTable">
+               <tr class="systemsTable">
+                       <td class="systemsTable">Listener Name</td>
+                       <td class="systemsTable">
+                               <input type="text" size="20" name="resourcename"
+                                       tal:attributes="
+                                               disabled python: editDisabled;
+                                               value res/name | nothing" />
+                       </td>
+               </tr>
+               <tr class="systemsTable">
+                       <td class="systemsTable">Oracle user name</td>
+                       <td class="systemsTable">
+                               <input type="text" size="20" name="user"
+                                       tal:attributes="
+                                               disabled python: editDisabled;
+                                               value res/attrs/user | nothing" 
/>
+                       </td>
+               </tr>
+               <tr class="systemsTable">
+                       <td class="systemsTable">Oracle application home 
directory</td>
+                       <td class="systemsTable">
+                               <input type="text" size="20" name="home"
+                                       tal:attributes="
+                                               disabled python: editDisabled;
+                                               value res/attrs/home | nothing" 
/>
+                       </td>
+               </tr>
+       </table>
+       
+       <div metal:use-macro="here/resource-form-macros/macros/res_form_footer" 
/>
+       </form>
+</div>
+
 <div class="rescfg" name="ASEHAagent"
        tal:attributes="id res/name | nothing" 
metal:define-macro="ASEHAagent_macro">
        <p class="reshdr">Sybase ASE Failover Instance Configuration</p>
--- conga/luci/cluster/resource_form_handlers.js        2010/08/07 02:39:59     
1.20.2.19
+++ conga/luci/cluster/resource_form_handlers.js        2011/02/25 15:54:33     
1.20.2.20
@@ -307,6 +307,8 @@
 form_validators['SAPDatabase'] = validate_sapdatabase;
 form_validators['ASEHAagent'] = validate_sybase;
 form_validators['oracledb'] = validate_oracle;
+form_validators['orainstance'] = validate_oracle;
+form_validators['oralistener'] = validate_oracle;
 
 function check_form(form) {
        var valfn = form_validators[form.type.value];
--- conga/luci/cluster/validate_fence.js        2010/09/29 17:08:24     1.1.2.14
+++ conga/luci/cluster/validate_fence.js        2011/02/25 15:54:33     1.1.2.15
@@ -24,7 +24,8 @@
 fence_inst_validator['vmware'] = [ 'port' ];
 fence_inst_validator['cisco_mds'] = [ 'port' ];
 fence_inst_validator['ifmib'] = [ 'port' ];
-fence_inst_validator['ucs'] = [ 'port' ];
+fence_inst_validator['cisco_ucs'] = [ 'port' ];
+fence_inst_validator['rhevm'] = [ 'port' ];
 
 var fence_validator = [];
 fence_validator['apc'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script' ];
@@ -50,7 +51,8 @@
 fence_validator['lpar'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script' ];
 fence_validator['cisco_mds'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script' 
];
 fence_validator['ifmib'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script' ];
-fence_validator['ucs'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script' ];
+fence_validator['cisco_ucs'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script' 
];
+fence_validator['rhevm'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script' ];
 fence_validator['vmware'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script', 
'vmlogin' ];
 fence_validator['xvm'] = [];
 
--- conga/luci/site/luci/Extensions/FenceHandler.py     2010/09/29 17:08:25     
1.4.2.23
+++ conga/luci/site/luci/Extensions/FenceHandler.py     2011/02/25 15:54:33     
1.4.2.24
@@ -776,7 +776,98 @@
 
        return errors
 
-def val_ucs_fd(form, fencedev):
+def val_cisco_ucs_fd(form, fencedev):
+       errors = list()
+
+       try:
+               ip = form['ipaddr'].strip()
+               if not ip:
+                       raise Exception, 'blank'
+               fencedev.addAttribute('ipaddr', ip)
+       except Exception, e:
+               errors.append(FD_PROVIDE_IP)
+
+       try:
+               log = form['login'].strip()
+               if not log:
+                       raise Exception, 'blank'
+               fencedev.addAttribute('login', log)
+       except Exception, e:
+               errors.append(FD_PROVIDE_LOGIN)
+
+       try:
+               power_wait = form['power_wait'].strip()
+               if power_wait:
+                       power_wait = int(power_wait)
+                       if power_wait < 0:
+                               raise ValueError
+       except (KeyError, AttributeError), e:
+               power_wait = None
+       except Exception, e:
+               power_wait = None
+               errors.append('An invalid value for power_wait was given: "%s"' 
% form['power_wait'])
+       if power_wait:
+               fencedev.addAttribute('power_wait', str(power_wait))
+       else:
+               fencedev.removeAttribute('power_wait')
+
+       try:
+               ipport = form['ipport'].strip()
+               if ipport:
+                       ipport = int(ipport)
+                       if ipport < 1 or ipport & 0xffff != ipport:
+                               raise ValueError
+       except (KeyError, AttributeError), e:
+               ipport = None
+       except Exception, e:
+               ipport = None
+               errors.append('An invalid value for ipport was given: "%s"' % 
form['ipport'])
+       if ipport:
+               fencedev.addAttribute('ipport', str(ipport))
+       else:
+               fencedev.removeAttribute('ipport')
+
+       use_ssl = form.has_key('ssl') and form['ssl'].lower() in ('1', 'on', 
'true')
+       if use_ssl:
+               fencedev.addAttribute('ssl', '1')
+       else:
+               fencedev.removeAttribute('ssl')
+
+       has_passwd = False
+       try:
+               pwd = form['passwd'].strip()
+               if not pwd:
+                       # Allow passwords that consist of only spaces.
+                       if not form.has_key('passwd') or form['passwd'] == '':
+                               raise Exception, 'blank'
+                       else:
+                               pwd = form['passwd']
+               fencedev.addAttribute('passwd', pwd)
+               has_passwd = True
+       except Exception, e:
+               try:
+                       fencedev.removeAttribute('passwd')
+               except:
+                       pass
+
+       try:
+               pwd_script = form['passwd_script'].strip()
+               if not pwd_script:
+                       raise Exception, 'blank'
+               fencedev.addAttribute('passwd_script', pwd_script)
+               has_passwd = True
+       except Exception, e:
+               try:
+                       fencedev.removeAttribute('passwd_script')
+               except:
+                       pass
+
+       if not has_passwd:
+               errors.append(FD_PROVIDE_PASSWD)
+
+       return errors
+
+def val_rhevm_fd(form, fencedev):
        errors = list()
 
        try:
@@ -1476,7 +1567,8 @@
        'fence_egenera':                val_egenera_fd,
        'fence_bullpap':                val_bullpap_fd,
        'fence_lpar':                   val_lpar_fd,
-       'fence_ucs':                    val_ucs_fd,
+       'fence_rhevm':                  val_rhevm_fd,
+       'fence_cisco_ucs':              val_cisco_ucs_fd,
        'fence_cisco_mds':              val_cisco_mds_fd,
        'fence_ifmib':                  val_cisco_mds_fd,
        'fence_vmware':                 val_vmware_fd,
@@ -1795,7 +1887,20 @@
 
        return errors
 
-def val_ucs_fi(form, fenceinst):
+def val_cisco_ucs_fi(form, fenceinst):
+       errors = list()
+
+       try:
+               port = form['port'].strip()
+               if not port:
+                       raise Exception, 'blank'
+               fenceinst.addAttribute('port', port)
+       except Exception, e:
+               errors.append(FI_PROVIDE_PORT)
+
+       return errors
+
+def val_rhevm_fi(form, fenceinst):
        errors = list()
 
        try:
@@ -1832,7 +1937,8 @@
        'fence_xvm':                    val_xvm_fi,
        'fence_scsi':                   val_scsi_fi,
        'fence_lpar':                   val_lpar_fi,
-       'fence_ucs':                    val_ucs_fi,
+       'fence_rhevm':                  val_rhevm_fi,
+       'fence_cisco_ucs':              val_cisco_ucs_fi,
        'fence_cisco_mds':              val_cisco_mds_fi,
        'fence_ifmib':                  val_cisco_mds_fi,
        'fence_vmware':                 val_vmware_fi,
--- conga/luci/site/luci/Extensions/LuciClusterInfo.py  2010/09/29 17:08:25     
1.1.4.20
+++ conga/luci/site/luci/Extensions/LuciClusterInfo.py  2011/02/25 15:54:33     
1.1.4.21
@@ -606,6 +606,7 @@
        clumap['sap_agent_v19'] = False
        clumap['has_qemu'] = False
        clumap['has_sybase_agent'] = False
+       clumap['has_split_oracle_agents'] = False
        try:
                cluster_os = model.getClusterOS()
                if cluster_os.find('Tikanga') != -1:
@@ -622,6 +623,8 @@
                        if os_minor > 3:
                                clumap['sap_agent_v19'] = True
                                clumap['has_qemu'] = True
+                       if os_minor > 5:
+                               clumap['has_split_oracle_agents'] = True
                elif cluster_os.find('Nahant') != -1:
                        clumap['os_major'] = 4
                        os_minor = int(cluster_os[cluster_os.find('Update ') + 
7])
--- conga/luci/site/luci/Extensions/ResourceHandler.py  2010/08/07 03:16:02     
1.1.4.10
+++ conga/luci/site/luci/Extensions/ResourceHandler.py  2011/02/25 15:54:33     
1.1.4.11
@@ -22,6 +22,8 @@
 from ClusterModel.SAPDatabase import SAPDatabase
 from ClusterModel.SAPInstance import SAPInstance
 from ClusterModel.OracleDB import OracleDB
+from ClusterModel.OracleInstance import OracleInstance
+from ClusterModel.OracleListener import OracleListener
 from ClusterModel.SybaseASE import SybaseASE
 
 from LuciZope import GetFormVars
@@ -817,25 +819,45 @@
                        res.addAttribute('type', dbtype)
        return errors
 
+def addOracleInstance(res, rname, form, model):
+       params = (
+               ('user', 'Oracle User Name', True, None),
+               ('home', 'Oracle Home Directory', True, None),
+               ('listeners', 'Oracle listeners', False, None),
+               ('lockfile', 'Path to lock file', False, None),
+       )
+       errors = config_resource(params, res, rname, form)
+       return errors
+
+def addOracleListener(res, rname, form, model):
+       params = (
+               ('user', 'Oracle User Name', True, None),
+               ('home', 'Oracle Home Directory', True, None),
+       )
+       errors = config_resource(params, res, rname, form)
+       return errors
+
 resource_table = {
-       'ip':                   ( addIp,                        Ip              
        ),
-       'fs':                   ( addFs,                        Fs              
        ),
-       'gfs':                  ( addClusterfs,         Clusterfs       ),
-       'nfsm':                 ( addNetfs,                     Netfs           
),
-       'nfsx':                 ( addNFSExport,         NFSExport       ),
-       'nfsc':                 ( addNFSClient,         NFSClient       ),
-       'scr':                  ( addScript,            Script          ),
-       'smb':                  ( addSamba,                     Samba           
),
-       'tomcat-5':             ( addTomcat5,           Tomcat5         ),
-       'postgres-8':   ( addPostgres8,         Postgres8       ),
-       'apache':               ( addApache,            Apache          ),
-       'openldap':             ( addOpenLDAP,          OpenLDAP        ),
-       'lvm':                  ( addLVM,                       LVM             
        ),
-       'mysql':                ( addMySQL,                     MySQL           
),
-       'SAPDatabase':  ( addSAPDatabase,       SAPDatabase     ),
-       'SAPInstance':  ( addSAPInstance,       SAPInstance     ),
-       'oracledb':             ( addOracleDB,          OracleDB        ),
-       'ASEHAagent':   ( addSybaseASE,         SybaseASE       )
+       'ip':                   ( addIp,                                Ip      
                        ),
+       'fs':                   ( addFs,                                Fs      
                        ),
+       'gfs':                  ( addClusterfs,                 Clusterfs       
        ),
+       'nfsm':                 ( addNetfs,                             Netfs   
                ),
+       'nfsx':                 ( addNFSExport,                 NFSExport       
        ),
+       'nfsc':                 ( addNFSClient,                 NFSClient       
        ),
+       'scr':                  ( addScript,                    Script          
        ),
+       'smb':                  ( addSamba,                             Samba   
                ),
+       'tomcat-5':             ( addTomcat5,                   Tomcat5         
        ),
+       'postgres-8':   ( addPostgres8,                 Postgres8               
),
+       'apache':               ( addApache,                    Apache          
        ),
+       'openldap':             ( addOpenLDAP,                  OpenLDAP        
        ),
+       'lvm':                  ( addLVM,                               LVM     
                        ),
+       'mysql':                ( addMySQL,                             MySQL   
                ),
+       'SAPDatabase':  ( addSAPDatabase,               SAPDatabase             
),
+       'SAPInstance':  ( addSAPInstance,               SAPInstance             
),
+       'oracledb':             ( addOracleDB,                  OracleDB        
        ),
+       'orainstance':  ( addOracleInstance,    OracleInstance  ),
+       'oralistener':  ( addOracleListener,    OracleListener  ),
+       'ASEHAagent':   ( addSybaseASE,                 SybaseASE               
)
 }
 
 def create_resource(res_type, form, model):
--- conga/luci/site/luci/Extensions/ClusterModel/FenceDeviceAttr.py     
2010/09/29 17:08:25     1.5.2.5
+++ conga/luci/site/luci/Extensions/ClusterModel/FenceDeviceAttr.py     
2011/02/25 15:54:33     1.5.2.6
@@ -32,8 +32,9 @@
        'fence_rps10':                  'RPS10 Serial Switch',
        'fence_lpar':                   'LPAR Fencing',
        'fence_vmware':                 'VMware Fencing',
+       'fence_rhevm':                  'RHEV-M Fencing',
        'fence_cisco_mds':              'Cisco MDS',
-       'fence_ucs':                    'Cisco UCS',
+       'fence_cisco_ucs':              'Cisco UCS',
        'fence_ifmib':                  'IF MIB',
        'fence_manual':                 'Manual Fencing'
 }
@@ -53,8 +54,9 @@
        'fence_scsi':                   True,
        'fence_lpar':                   True,
        'fence_vmware':                 True,
+       'fence_rhevm':                  True,
        'fence_cisco_mds':              True,
-       'fence_ucs':                    True,
+       'fence_cisco_ucs':              True,
        'fence_ifmib':                  True,
        'fence_ilo':                    False,
        'fence_ilo_mp':                 False,
@@ -100,8 +102,9 @@
        'fence_scsi':                   ( 'node' ),
        'fence_lpar':                   ( 'partition' ),
        'fence_vmware':                 ( 'port' ),
+       'fence_rhevm':                  ( 'port' ),
        'fence_cisco_mds':              ( 'port' ),
-       'fence_ucs':                    ( 'port' ),
+       'fence_cisco_ucs':              ( 'port' ),
        'fence_ifmib':                  ( 'port' ),
        'fence_ilo':                    ( ),
        'fence_ipmilan':                ( ),
@@ -138,9 +141,11 @@
                ( 'name', 'ipaddr', 'login', 'passwd' ),
        'fence_vmware':
                ( 'name', 'ipaddr', 'login', 'passwd', 'vmlogin', 'vmpasswd' ),
+       'fence_rhevm':
+               ( 'name', 'ipaddr', 'login', 'passwd' ),
        'fence_cisco_mds':
                ( 'name', 'ipaddr', 'login', 'passwd' ),
-       'fence_ucs':
+       'fence_cisco_ucs':
                ( 'name', 'ipaddr', 'login', 'passwd' ),
        'fence_ifmib':
                ( 'name', 'ipaddr', 'login', 'passwd' ),
--- conga/luci/site/luci/Extensions/ClusterModel/ModelBuilder.py        
2010/09/29 17:08:25     1.1.4.16
+++ conga/luci/site/luci/Extensions/ClusterModel/ModelBuilder.py        
2011/02/25 15:54:33     1.1.4.17
@@ -35,6 +35,8 @@
 from SAPInstance import SAPInstance
 from SybaseASE import SybaseASE 
 from OracleDB import OracleDB
+from OracleInstance import OracleInstance
+from OracleListener import OracleListener
 from Multicast import Multicast
 from FenceDaemon import FenceDaemon
 from FenceXVMd import FenceXVMd
@@ -97,6 +99,8 @@
              'SAPInstance': SAPInstance,
              'ASEHAagent': SybaseASE,
              'oracledb': OracleDB,
+             'orainstance': OracleInstance,
+             'oralistener': OracleListener,                    
              'device': Device }
 
 

Reply via email to