All of lore.kernel.org
 help / color / mirror / Atom feed
From: rmccabe@sourceware.org <rmccabe@sourceware.org>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] conga/luci cluster/cluster_svc-macros cluster/ ...
Date: 25 Feb 2011 15:54:37 -0000	[thread overview]
Message-ID: <20110225155437.18261.qmail@sourceware.org> (raw)

CVSROOT:	/cvs/cluster
Module name:	conga
Branch: 	RHEL5
Changes by:	rmccabe at sourceware.org	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	other threads:[~2011-02-25 15:54 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-25 15:54 rmccabe [this message]
  -- strict thread matches above, loose matches on Subject: below --
2008-03-06 21:27 [Cluster-devel] conga/luci cluster/cluster_svc-macros cluster/ rmccabe
2008-03-05 23:09 rmccabe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110225155437.18261.qmail@sourceware.org \
    --to=rmccabe@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.