All of lore.kernel.org
 help / color / mirror / Atom feed
* [Cluster-devel] conga/luci/cluster form-macros
@ 2007-01-30 21:39 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2007-01-30 21:39 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2007-01-30 21:39:32

Modified files:
	luci/cluster   : form-macros 

Log message:
	Minor formatting issues

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.165&r2=1.166

--- conga/luci/cluster/form-macros	2007/01/30 21:06:12	1.165
+++ conga/luci/cluster/form-macros	2007/01/30 21:39:32	1.166
@@ -3652,8 +3652,8 @@
 <div metal:define-macro="xenvmadd-form">
   <span tal:define="global vmforminfo python: here.getXenVMInfo(modelb, request)/>
   <form method="get" action="" tal:attributes="action vmforminfo/formurl">
+  <h4>Name for this VM: </h4><input type="text" name="xenvmname" value=""/>
   <h4>Path to configuration file: </h4><input type="text" name="xenvmpath" value=""/>
-  <h4>Name of configuration file: </h4><input type="text" name="xenvmname" value=""/>
   <input type="submit" value="Create Xen VM"/>
   </form>
 </div>
@@ -3662,8 +3662,8 @@
   <h4>Properties for Xen VM <font color="green"><span tal:content="request/servicename"/></font></h4>
   <span tal:define="global xeninfo python:here.getXenVMInfo(modelb, request)">
   <form method="get" action="" tal:attributes="action xeninfo/formurl">
+  <h4>Name of VM: </h4><input type="text" name="xenvmname" value="" tal:attributes="value xeninfo/name"/>
   <h4>Path to configuration file: </h4><input type="text" name="xenvmpath" value="" tal:attributes="value xeninfo/path"/>
-  <h4>Name of configuration file: </h4><input type="text" name="xenvmname" value="" tal:attributes="value xeninfo/name"/>
   <input type="button" value="Delete"/>
   <input type="submit" value="Update"/>
   </form>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2007-11-19 18:23 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2007-11-19 18:23 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2007-11-19 18:23:08

Modified files:
	luci/cluster   : form-macros 

Log message:
	split up form-macros into manageable modules

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.216&r2=1.217

--- conga/luci/cluster/form-macros	2007/11/06 19:58:00	1.216
+++ conga/luci/cluster/form-macros	2007/11/19 18:23:08	1.217
@@ -15,71 +15,7 @@
 
 <body>
 
-<div metal:define-macro="entry-form">
-</div>
-
-<div metal:define-macro="busywaitpage">
-	<table>
-		<tr><td>
-			<h2>Please be patient - this cluster's configuration is being modified.</h2>
-		</td></tr>
-
-		<tr><td>
-			<img src="100wait.gif" />
-		</td></tr>
-
-		<span tal:define="global nodereports isBusy/nodereports" />
-
-		<tr tal:repeat="nodereport nodereports"><td>
-			<tal:block
-				tal:condition="python:nodereport.get('isnodecreation') != True">
-
-				<h2><span tal:replace="nodereport/desc" /></h2>
-			</tal:block>
-
-			<tal:block
-				tal:condition="python:nodereport.get('isnodecreation') == True">
-
-				<tal:block
-					tal:condition="python:nodereport.get('iserror') == True">
-
-					<h2><span tal:content="nodereport/desc" /></h2>
-
-					<span class="errmsg"
-						tal:content="nodereport/errormessage" />
-				</tal:block>
-
-				<tal:block
-					tal:condition="python:nodereport.get('iserror') != True">
-
-					<h2><span tal:content="nodereport/desc" /></h2>
-					<em tal:content="nodereport/statusmessage | nothing" />
-					<br/>
-
-					<tal:block tal:condition="python: nodereport['statusindex'] < 1">
-						<img src="notstarted.png" />
-					</tal:block>
-
-					<tal:block tal:condition="python: nodereport['statusindex'] == 1 or nodereport['statusindex'] == 2">
-						<img src="installed.png" alt="[cluster software installed]" />
-					</tal:block>
-
-					<tal:block tal:condition="python: nodereport['statusindex'] == 3">
-						<img src="rebooted.png" alt="[cluster node rebooted]" />
-					</tal:block>
-
-					<tal:block tal:condition="python: nodereport['statusindex'] == 4 or nodereport['statusindex'] == 5">
-						<img src="configured.png" alt="[cluster node configured]" />
-					</tal:block>
-
-					<tal:block tal:condition="python: nodereport['statusindex'] == 6">
-						<img src="joined.png" alt="[cluster node joined cluster]" />
-					</tal:block>
-				</tal:block>
-			</tal:block>
-		</td></tr>
-	</table>
-</div>
+<div metal:define-macro="entry-form"></div>
 
 <div metal:define-macro="clusters-form">
 	<script type="text/javascript">
@@ -216,7 +152,6 @@
 	<h2>Cluster Form</h2>
 </div>
 
-
 <div metal:define-macro="clusteradd-form">
 	<script type="text/javascript"
 		src="/luci/homebase/homebase_common.js">
@@ -549,4726 +484,591 @@
 	</div>
 </div>
 
-<div metal:define-macro="clusterconfig-form">
-	<script type="text/javascript">
-		set_page_title('Luci ??? cluster ??? Configure cluster properties');
+<div metal:define-macro="node-form">
+	<script type="text/javascript"
+		src="/luci/homebase/homebase_common.js">
 	</script>
 	<script type="text/javascript"
-		src="conga_ajax.js">
+		src="/luci/cluster/fence_device.js">
 	</script>
 	<script type="text/javascript"
-		src="validate_xvm_key.js">
+		src="/luci/cluster/validate_fence.js">
+	</script>
+	<script type="text/javascript">
+		set_page_title('Luci ??? cluster ??? nodes ??? properties');
 	</script>
+	<tal:comment tal:replace="nothing">
+		First table row is status icon, name, and dropdown
+		Second row is daemon macro and failoverdom membership
+		Third row is fencing macro
+	</tal:comment>
 
 	<tal:block tal:define="
 		global ricci_agent ri_agent | python: here.getRicciAgentForCluster(request)" />
 
-	<tal:block tal:condition="not: exists: modelb">
-		<tal:block tal:define="global modelb python: None" />
-	</tal:block>
+	<tal:block tal:define="
+		global nodestatus python: here.getClusterStatus(request, ricci_agent);
+		global nodeinfo python: here.getNodeInfo(modelb, nodestatus, request);
+		global status_class python: 'node_' + (nodeinfo['nodestate'] == '0' and 'active' or (nodeinfo['nodestate'] == '1' and 'inactive' or 'unknown'));
+		global cluster_node_status_str python: (nodeinfo['nodestate'] == '0' and 'Cluster member' or (nodeinfo['nodestate'] == '1' and 'Currently not a cluster participant' or 'This node is not responding'))"
+	/>
 
-	<tal:block
-		tal:define="global clusterinfo python: here.getClusterInfo(modelb, request)" />
+	 <table class="cluster node" width="100%">
+		<tr class="cluster node info_top">
+			<td class="cluster node node_name">
+				<img tal:attributes="
+					src python: status_class + '.png'" />
+				<strong class="cluster node">Node Name:</strong>
+				<span
+					tal:attributes="class python: 'cluster node ' + status_class"
+					tal:content="nodeinfo/nodename" />
+			</td>
 
-<tal:block tal:condition="clusterinfo">
-	<span tal:omit-tag="" tal:define="global configTabNum python: 'tab' in request and int(request['tab']) or 1" />
+			<td class="cluster node node_action"
+				tal:condition="python: nodeinfo['nodestate'] == '0' or nodeinfo['nodestate'] == '1'">
+				<form method="post">
+				<select name="gourl">
+					<option value="">Choose a Task...</option>
+					<option tal:attributes="value nodeinfo/jl_url"
+						tal:condition="python: not 'ricci_error' in nodeinfo">
+						Have node <span tal:replace="python: nodeinfo['nodestate'] == '0' and 'leave' or 'join'" /> cluster
+					</option>
+					<option value="">----------</option>
+					<option tal:attributes="value nodeinfo/fence_url">Fence this node</option>
+					<option value="" tal:attributes="value nodeinfo/reboot_url"
+						tal:condition="python: not 'ricci_error' in nodeinfo">
+						Reboot this node
+					</option>
+					<option value="">----------</option>
+					<option tal:attributes="value nodeinfo/delete_url"
+						tal:condition="python: not 'ricci_error' in nodeinfo">
+						Delete this node</option>
+					<option tal:attributes="value nodeinfo/force_delete_url | nothing"
+						tal:condition="python: 'ricci_error' in nodeinfo">
+						Force the deletion of this node</option>
+				</select>
 
-	<ul class="configTab">
-		<li class="configTab">
-			<a tal:attributes="
-				href clusterinfo/basecluster_url | nothing;
-				class python: 'configTab' + (configTabNum == 1 and ' configTabActive' or '');
-			">General</a>
-		</li>
-		<li class="configTab"
-			tal:condition="not:clusterinfo/gulm">
-			<a tal:attributes="
-				href clusterinfo/fencedaemon_url | nothing;
-				class python: 'configTab' + (configTabNum == 2 and ' configTabActive' or '');
-			">Fence</a>
-		</li>
-		<li class="configTab"
-			tal:condition="not:clusterinfo/gulm">
-			<a tal:attributes="
-				href clusterinfo/multicast_url | nothing;
-				class python: 'configTab' + (configTabNum == 3 and ' configTabActive' or '');
-			">Multicast</a>
-		</li>
-
-		<li class="configTab"
-			tal:condition="clusterinfo/gulm">
-			<a tal:attributes="
-				href clusterinfo/gulm_url | nothing;
-				class python: 'configTab' + (configTabNum == 5 and ' configTabActive' or '')">GULM</a>
-		</li>
-
-		<li class="configTab">
-			<a tal:attributes="
-				href clusterinfo/quorumd_url | nothing;
-				class python: 'configTab' + (configTabNum == 4 and ' configTabActive' or '');
-			">Quorum Partition</a>
-		</li>
-	</ul>
-
-	<div id="configTabContent" tal:condition="python: configTabNum == 1">
-		<script type="text/javascript"
-			src="/luci/homebase/homebase_common.js">
-		</script>
-		<script type="text/javascript"
-			src="/luci/cluster/validate_config_general.js">
-		</script>
-
-		<form name="basecluster" action="" method="post">
-			<input type="hidden" name="cluster_version"
-				tal:attributes="value os_version | nothing" />
-			<input type="hidden" name="pagetype"
-				tal:attributes="value request/pagetype | request/form/pagetype"
-			/>
-			<input type="hidden" name="configtype" value="general" />
-			<input type="hidden" name="clustername"
-				tal:attributes="value request/clustername | clusterinfo/clustername | nothing" />
+				<input type="button" value="Go"
+					onclick="if (this.form.gourl[this.form.gourl.selectedIndex].value && confirm(this.form.gourl[this.form.gourl.selectedIndex].text + '?')) return dropdown(this.form.gourl)" />
+				</form>
+			</td>
 
-		<table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
-			<thead class="systemsTable">
-				<tr class="systemsTable"><td class="systemsTable" colspan="1">
-					<div class="systemsTableTop">
-						<strong>General Properties</strong>
-					</div>
-				</td></tr>
-			</thead>
+			<td class="cluster node node_action"
+				tal:condition="python: nodeinfo['nodestate'] != '0' and nodeinfo['nodestate'] != '1'">
+				<form method="post">
+				<select name="gourl">
+					<option value="">Choose a Task...</option>
+					<option tal:attributes="value nodeinfo/fence_url | nothing">Fence this node</option>
+					<option tal:attributes="value nodeinfo/force_delete_url | nothing">Force the deletion of this node</option>
+				</select>
+				<input type="button" value="Go"
+					onclick="if (this.form.gourl[this.form.gourl.selectedIndex].value && confirm(this.form.gourl[this.form.gourl.selectedIndex].text + '?')) return dropdown(this.form.gourl)" />
+				</form>
+			</td>
+		</tr>
 
-			<tbody class="systemsTable" id="sys_tbody">
-				<tr class="systemsTable">
-					<td class="systemsTable">Cluster Name</td>
-					<td class="systemsTable">
-						<input type="text" name="cluname"
-							tal:attributes="value clusterinfo/clustername" />
-					</td>
-				</tr>
-				<tr class="systemsTable">
-					<td class="systemsTable">Configuration Version</td>
-					<td class="systemsTable">
-						<input type="text" name="cfgver" size="5"
-							tal:attributes="value clusterinfo/config_version"/>
-					</td>
-				</tr>
-			</tbody>
-		</table>
+		<tr class="cluster node info_middle">
+			<td class="cluster node node_status" colspan="2">
+				<strong class="cluster node">Status:</strong>
+				<span tal:attributes="class python: 'cluster node ' + status_class"
+					tal:content="python: cluster_node_status_str" />
+			</td>
+		</tr>
 
-		<table tal:condition="python: os_version and os_version == 'rhel5'">
-			<tr class="systemsTable">
-				<td class="systemsTable" colspan="2">
-					<img src="arrow_right.png" alt="[+]"
-						onclick="toggle_visible(this, 'genprops_advanced', 'genprops_advanced_label')">
-					<span id="genprops_advanced_label">Show</span>
-					advanced cluster properties
-				</td>
-			</tr>
+		<tr class="cluster node info_middle"
+			tal:condition="nodeinfo/gulm_lockserver">
+			<td class="cluster node node_status" colspan="2">
+				This node is a GULM lock server.
+			</td>
+		</tr>
 
-			<tr class="systemsTable invisible" id="genprops_advanced">
-				<td class="systemsTable" colspan="2">
-					<table class="systemsTable">
-						<tr class="systemsTable">
-							<td class="systemsTable">
-								<a class="cluster_help" href="javascript:popup_window('/luci/doc/config_rhel5#token', 55, 65);">Token Timeout</a> (ms)
-							</td>
-							<td class="systemsTable">
-								<input type="text" size="10" name="token"
-									tal:attributes="value clusterinfo/totem/token | string:10000" />
-							</td>
-						</tr>
-
-						<tr class="systemsTable">
-							<td class="systemsTable">
-								<a class="cluster_help" href="javascript:popup_window('/luci/doc/config_rhel5#retransmits_before_loss', 55, 65);">Number of token retransmits before loss</a>
-							</td>
-							<td class="systemsTable">
-								<input type="text" size="10"
-									name="token_retransmits_before_loss_const"
-									tal:attributes="value clusterinfo/totem/token_retransmits_before_loss_const | string:20" />
-							</td>
-						</tr>
-
-						<tr class="systemsTable">
-							<td class="systemsTable">
-								<a class="cluster_help" href="javascript:popup_window('/luci/doc/config_rhel5#join', 55, 65);">Join Timeout</a> (ms)
-							</td>
-							<td class="systemsTable">
-								<input type="text" size="10" name="join"
-									tal:attributes="value clusterinfo/totem/join | string:60" />
-							</td>
-						</tr>
-
-						<tr class="systemsTable">
-							<td class="systemsTable">
-								<a class="cluster_help" href="javascript:popup_window('/luci/doc/config_rhel5#consensus', 55, 65);">Consensus Timeout</a> (ms)
-							</td>
-							<td class="systemsTable">
-								<input type="text" size="10"
-									name="consensus"
-									tal:attributes="value clusterinfo/totem/consensus | string:4800" />
-							</td>
-						</tr>
-
-<tal:comment tal:replace="nothing">
-						<tr class="systemsTable">
-							<td class="systemsTable">
-								<a class="cluster_help" href="javascript:popup_window('/luci/doc/config_rhel5#secauth', 55, 65);">Secure Authentication</a>
-							</td>
-							<td class="systemsTable">
-								<input type="checkbox" name="secauth" checked="checked" />
-						</tr>
-
-
-						<tr class="systemsTable">
-							<td class="systemsTable">
-								<a class="cluster_help" href="javascript:popup_window('/luci/doc/config_rhel5#rrp_mode', 55, 65);">Redundant Ring Protocol Mode</a>
-							</td>
-							<td class="systemsTable">
-								<select type="text" name="rrp_mode">
-									<option value="none">
-										None
-									</option>
-									<option value="active">
-										Active
-									</option>
-									<option value="passive">
-										Passive
-									</option>
-								</select>
-							</td>
-						</tr>
-
-						<tr class="systemsTable">
-							<td class="systemsTable">
-								<a class="cluster_help" href="javascript:popup_window('/luci/doc/config_rhel5#netmtu', 55, 65);">Network MTU</a>
-							</td>
-							<td class="systemsTable">
-								<input type="text" size="10"
-									name="netmtu"
-									tal:attributes="value string:1500" />
-							</td>
-						</tr>
-
-						<tr class="systemsTable">
-							<td class="systemsTable">
-								<a class="cluster_help" href="javascript:popup_window('/luci/doc/config_rhel5#threads', 55, 65);">Number of Threads
-							</td>
-							<td class="systemsTable">
-								<input type="text" size="10" name="threads"
-									tal:attributes="value string:0" />
-							</td>
-						</tr>
-
-						<tr class="systemsTable">
-							<td class="systemsTable">
-								<a class="cluster_help" href="javascript:popup_window('/luci/doc/config_rhel5#vsftype', 55, 65);">Virtual Synchrony Type
-							</td>
-							<td class="systemsTable">
-								<select name="vsftype">
-									<option value="none">
-										None
-									</option>
-									<option value="ykd">
-										YKD
-									</option>
-							</td>
-						</tr>
-
-						<tr class="systemsTable">
-							<td class="systemsTable">
-								<a class="cluster_help" href="javascript:popup_window('/luci/doc/config_rhel5#token_retransmit', 55, 65);">Token Retransmit</a> (ms)
-							</td>
-							<td class="systemsTable">
-								<input type="text" size="10"
-									name="token_retransmit"
-									tal:attributes="value string:238" />
-							</td>
-						</tr>
-
-						<tr class="systemsTable">
-							<td class="systemsTable">
-								<a class="cluster_help" href="javascript:popup_window('/luci/doc/config_rhel5#hold', 55, 65);">Hold Token Timeout</a> (ms)
-							</td>
-							<td class="systemsTable">
-								<input type="text" size="10" name="hold"
-									tal:attributes="value string:180" />
-							</td>
-						</tr>
-
-						<tr class="systemsTable">
-							<td class="systemsTable">
-								<a class="cluster_help" href="javascript:popup_window('/luci/doc/config_rhel5#send_join', 55, 65);">Maximum time to wait before sending a join message</a> (ms)
-							</td>
-							<td class="systemsTable">
-								<input type="text" size="10" name="send_join"
-									tal:attributes="value string:0" />
-							</td>
-						</tr>
-
-						<tr class="systemsTable">
-							<td class="systemsTable">
-								<a class="cluster_help" href="javascript:popup_window('/luci/doc/config_rhel5#merge', 55, 65);">Merge Detection Timeout</a> (ms)
-							</td>
-							<td class="systemsTable">
-								<input type="text" size="10"
-									name="merge"
-									tal:attributes="value string:200" />
-							</td>
-						</tr>
-
-						<tr class="systemsTable">
-							<td class="systemsTable">
-								<a class="cluster_help" href="javascript:popup_window('/luci/doc/config_rhel5#downcheck', 55, 65);">Interface Down Check Timeout</a> (ms)
-							</td>
-							<td class="systemsTable">
-								<input type="text" size="10"
-									name="downcheck"
-									tal:attributes="value string:1000" />
-							</td>
-						</tr>
-
-						<tr class="systemsTable">
-							<td class="systemsTable">
-								<a class="cluster_help" href="javascript:popup_window('/luci/doc/config_rhel5#fail_to_recv_const', 55, 65);">Fail to Receive Constant</a>
-							</td>
-							<td class="systemsTable">
-								<input type="text" size="10"
-									name="fail_to_recv_const"
-									tal:attributes="value string:50" />
-							</td>
-						</tr>
-
-						<tr class="systemsTable">
-							<td class="systemsTable">
-								<a class="cluster_help" href="javascript:popup_window('/luci/doc/config_rhel5#seqno_unchanged_const', 55, 65);">Rotations with no mcast traffic before merge detection timeout started</a>
-							</td>
-							<td class="systemsTable">
-								<input type="text" size="10"
-									name="seqno_unchanged_const"
-									tal:attributes="value string:30" />
-							</td>
-						</tr>
-
-						<tr class="systemsTable">
-							<td class="systemsTable">
-								<a class="cluster_help" href="javascript:popup_window('/luci/doc/config_rhel5#heartbeat_failures_allowed', 55, 65);">Number of Heartbeat Failures Allowed</a>
-							</td>
-							<td class="systemsTable">
-								<input type="text" size="10"
-									name="heartbeat_failures_allowed"
-									tal:attributes="value string:0" />
-							</td>
-						</tr>
-
-						<tr class="systemsTable">
-							<td class="systemsTable">
-								<a class="cluster_help" href="javascript:popup_window('/luci/doc/config_rhel5#max_network_delay', 55, 65);">Maximum Network Delay</a> (ms)
-							</td>
-							<td class="systemsTable">
-								<input type="text" size="10"
-									name="max_network_delay"
-									tal:attributes="value string:50" />
-							</td>
-						</tr>
-
-						<tr class="systemsTable">
-							<td class="systemsTable">
-								<a class="cluster_help" href="javascript:popup_window('/luci/doc/config_rhel5#window_size', 55, 65);">Window Size</a>
-							</td>
-							<td class="systemsTable">
-								<input type="text" size="10"
-									name="window_size"
-									tal:attributes="value string:50" />
-							</td>
-						</tr>
-
-						<tr class="systemsTable">
-							<td class="systemsTable">
-								<a class="cluster_help" href="javascript:popup_window('/luci/doc/config_rhel5#max_messages', 55, 65);">Maximum Messages</a>
-							</td>
-							<td class="systemsTable">
-								<input type="text" size="10"
-									name="max_messages"
-									tal:attributes="value string:17" />
-							</td>
-						</tr>
-
-						<tr class="systemsTable">
-							<td class="systemsTable">
-								<a class="cluster_help" href="javascript:popup_window('/luci/doc/config_rhel5#rrp_problem_count_timeout', 55, 65);">RRP Problem Count Timeout</a> (ms)
-							</td>
-							<td class="systemsTable">
-								<input type="text" size="10"
-									name="rrp_problem_count_timeout"
-									tal:attributes="value string:1000" />
-							</td>
-						</tr>
-
-						<tr class="systemsTable">
-							<td class="systemsTable">
-								<a class="cluster_help" href="javascript:popup_window('/luci/doc/config_rhel5#rrp_problem_count_threshold', 55, 65);">RRP Problem Count Threshold</a>
-							</td>
-							<td class="systemsTable">
-								<input type="text" size="10"
-									name="rrp_problem_count_threshold"
-									tal:attributes="value string:20" />
-							</td>
-						</tr>
-
-						<tr class="systemsTable">
-							<td class="systemsTable">
-								<a class="cluster_help" href="javascript:popup_window('/luci/doc/config_rhel5#rrp_token_expired_timeout', 55, 65);">RRP Token Expired Timeout</a>
-							</td>
-							<td class="systemsTable">
-								<input type="text" size="10"
-									name="rrp_token_expired_timeout"
-									tal:attributes="value string:47" />
-							</td>
-						</tr>
-</tal:comment>
-					</table>
-				</td></tr>
-			</table>
+		<tr class="cluster node info_bottom"
+			tal:condition="python: (nodeinfo['nodestate'] == '0' or nodeinfo['nodestate'] == '1') and not 'ricci_error' in nodeinfo">
+			<td class="cluster node node_log" colspan="2">
+				<a class="cluster node"
+					tal:attributes="href nodeinfo/logurl" onClick="return popup_log(this, 'notes')">
+					Show recent log activity for this node
+				</a>
+			</td>
+		</tr>
+	</table>
 
-			<table class="systemsTable">
-				<tr class="systemsTable">
-					<td class="systemsTable" colspan="2">
-						<div class="systemsTableEnd">
-							<input type="button" value="Apply"
-								onClick="validate_form(this.form);"/>
-						</div>
-					</td>
-				</tr>
-			</table>
-		</form>
-	</div>
+	<hr/>
 
-	<div id="configTabContent" tal:condition="python: configTabNum == 2">
-		<form name="fencedaemon" method="post" id="fence_config_form" action="">
-			<input type="hidden" name="configtype" value="fence" />
-			<input type="hidden" name="pagetype"
-				tal:attributes="value request/pagetype | request/form/pagetype"
-			/>
-			<input type="hidden" name="cluster_version"
-				tal:attributes="value os_version | nothing" />
-			<input type="hidden" name="clustername"
-				tal:attributes="value request/clustername | clusterinfo/clustername | nothing" />
-
-		<script type="text/javascript"
-			src="/luci/homebase/homebase_common.js">
-		</script>
-		<script type="text/javascript"
-			src="/luci/cluster/validate_config_fence.js">
-		</script>
+	<tal:block tal:condition="python: 'ricci_error' in nodeinfo">
+		<strong class="errmsgs">
+			The ricci agent for this node is unresponsive. Node-specific information is not available at this time.
+		</strong>
+	</tal:block>
 
-		<table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
-			<thead class="systemsTable">
-				<tr class="systemsTable"><td class="systemsTable" colspan="1">
-					<div class="systemsTableTop">
-						<strong>Fence Daemon Properties</strong>
-					</div>
-				</td></tr>
-			</thead>
+	<tal:block tal:condition="python: not 'ricci_error' in nodeinfo">
+	<tal:block
+		tal:condition="python: nodeinfo['nodestate'] == '0' or nodeinfo['nodestate'] == '1'">
 
-			<tbody class="systemsTable" id="sys_tbody">
-				<tr class="systemsTable">
-					<td class="systemsTable">Post Fail <span tal:attributes="onclick python:'window.location.assign(\'./?pagetype=80&clustername=' + request['clustername'] + '\')'">Delay</span>
-					</td>
-					<td class="systemsTable">
-						<input type="text" name="post_fail_delay"
-							tal:attributes="value clusterinfo/pfd" />
-					</td>
-				</tr>
-				<tr class="systemsTable">
-					<td class="systemsTable">Post Join Delay</td>
-					<td class="systemsTable">
-						<input type="text" name="post_join_delay"
-							tal:attributes="value clusterinfo/pjd" />
-					</td>
-				</tr>
-				<tr class="systemsTable">
-					<td class="systemsTable">
-						<span class="cluster_help" title="Enable if you will be running a VM cluster on this physical cluster">Run XVM fence daemon</td>
-					<td class="systemsTable">
-						<input type="checkbox" name="run_xvmd"
-							tal:attributes="checked python: ('fence_xvmd' in clusterinfo and clusterinfo['fence_xvmd']) and 'checked' or ''" />
-					</td>
-				</tr>
-				<tr class="systemsTable">
-					<td class="systemsTable" colspan="2">
-						<div class="systemsTableTop">&nbsp;</div>
-						<strong>XVM fence daemon key distribution</strong>
-					</td>
-				</tr>
+	<h3>Cluster daemons running on this node</h3>
+	<form name="daemon_form" method="post">
+	<table class="systemsTable">
+		<thead>
+			<tr class="systemsTable">
+				<th class="systemsTable">Daemon</th>
+				<th class="systemsTable">Currently running</th>
+				<th class="systemsTable">Enabled at start-up</th>
+			</tr>
+		</thead>
+		<tfoot class="systemsTable">
+			<tr class="systemsTable"><td class="systemsTable" colspan="3">
+				<div class="systemsTableEnd">
+					<input type="button" value="Update node daemon properties"
+						onclick="if (confirm('Update daemon properties?')) this.form.submit()" />
+				</div>
+			</td></tr>
+		</tfoot>
+		<tbody class="systemsTable">
+			<tr class="systemsTable" tal:repeat="daemon nodeinfo/d_states">
+				<td class="systemsTable"><span tal:replace="daemon/name"/></td>
+				<td class="systemsTable">
+					<tal:block tal:condition="python:daemon['name'] == 'cman'">
+						<span tal:replace="python: (daemon['running'] == 'true' or nodeinfo['nodestate'] == '0') and 'yes' or 'no'" />
+					</tal:block>
+					<tal:block tal:condition="python:daemon['name'] != 'cman'">
+						<span tal:replace="python: daemon['running'] == 'true' and 'yes' or 'no'" />
+					</tal:block>
+				</td>
+				<td class="systemsTable">
+					<input type="hidden" tal:attributes="
+						name python: '__daemon__:' + daemon['name'] + ':';
+						value daemon/name" />
 
-				<tr id="fence_xvm_config" class="invisible">
-					<td class="systemsTable" colspan="2" id="fence_xvm_config">
-						<table class="systemsTable" width="100%">
-							<tr class="systemsTable">
-								<td class="systemsTable">
-									<div id="fence_xvm_hosts" />
-								</td>
-							</tr>
-							<tr class="systemsTable">
-								<td class="systemsTable">
-									<input type="button" name="distribute"
-										value="Create and distribute keys"
-										onclick="validate_xvm_dist_form(this.form)"
-									/>
-								</td>
-							</tr>
-						</table>
-					</td>
-				</tr>
+					<input type="hidden" tal:attributes="
+						name python: '__daemon__:' + daemon['name'] + ':';
+						value python: daemon['enabled'] == 'true' and '1' or '0'" />
 
-				<tr class="systemsTable" id="fence_xvm_init">
-					<td class="systemsTable" colspan="2">
-						<table class="systemsTable">
-							<tr class="systemsTable">
-								<td class="systemsTable">
-									Enter a node hostname from the host cluster
-								</td>
-								<td>
-									<input type="text" value=""
-										name="host_cluster_name"
-										id="host_cluster_name" />
-								</td>
-							</tr>
-							<tr class="systemsTable">
-								<td class="systemsTable">
-									Enter a node hostname from the hosted (virtual) cluster
-								</td>
-								<td>
-									<input type="text" value=""
-										name="virt_cluster_name"
-										id="virt_cluster_name" />
-								</td>
-							</tr>
-							<tr class="systemsTable">
-								<td class="systemsTable" colspan="2">
-									<input type="button"
-										name="Retrieve cluster nodes"
-										value="Retrieve cluster nodes"
-										onclick="get_cluster_members(this.form)"
-									/>
-								</td>
-							</tr>
-						</table>
-					</td>
-				</tr>
-			</tbody>
+					<input type="checkbox" tal:attributes="
+						name python: '__daemon__:' + daemon['name'] + ':';
+						checked python: daemon['enabled'] == 'true' and 'checked'" />
+				</td>
+			</tr>
+		</tbody>
+	</table>
 
-			<tfoot class="systemsTable">
-				<tr class="systemsTable">
-					<td class="systemsTable" colspan="2">
-						<div class="systemsTableEnd">
-							<input type="button" value="Apply"
-								id="fence_config_submit"
-								onClick="validate_form(this.form)" />
-						</div>
-					</td>
-				</tr>
-			</tfoot>
-		</table>
-		</form>
-	</div>
+	<input type="hidden" name="nodename"
+		tal:attributes="value nodeinfo/nodename | request/nodename | nothing" />
 
-	<div id="configTabContent" tal:condition="python: configTabNum == 3">
-		<script type="text/javascript"
-			src="/luci/homebase/homebase_common.js">
-		</script>
-		<script type="text/javascript"
-			src="/luci/cluster/validate_config_multicast.js">
-		</script>
-
-		<form name="multicast" action="" method="post">
-			<input type="hidden" name="configtype" value="mcast" />
-			<input type="hidden" name="pagetype"
-				tal:attributes="value request/pagetype | request/form/pagetype"
-			/>
-			<input type="hidden" name="cluster_version"
-				tal:attributes="value os_version | nothing" />
-			<input type="hidden" name="clustername"
-				tal:attributes="value request/clustername | clusterinfo/clustername | nothing" />
-		<table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
-			<thead class="systemsTable">
-				<tr class="systemsTable"><td class="systemsTable" colspan="1">
-					<div class="systemsTableTop">
-						<strong>Multicast Configuration</strong>
-					</div>
-				</td></tr>
-			</thead>
+	<input type="hidden" name="clustername"
+		tal:attributes="value request/clustername | nothing" />
 
-			<tbody class="systemsTable" id="sys_tbody">
-				<tr class="systemsTable">
-					<td class="systemsTable">
-						<input type="radio" name="mcast" value="False"
-							onClick="disable_mcast('mcast_address', 'mcast_interface');"
-							tal:attributes="checked python: clusterinfo['is_mcast'] != 'True'"
-						/>
-						<tal:block tal:condition="python:os_version == 'rhel4'">
-							Do not use multicast
-						</tal:block>
-						<tal:block tal:condition="python:os_version != 'rhel4'">
-							Let cluster choose the multicast address
-						</tal:block>
-					</td>
-				</tr>
-
-				<tr class="systemsTable">
-					<td class="systemsTable">
-						<input type="radio" name="mcast" value="True"
-							onClick="enable_mcast('mcast_address', 'mcast_interface');"
-							tal:attributes="checked python: clusterinfo['is_mcast'] == 'True'"
-
-						/>
-						<tal:block tal:condition="python:os_version == 'rhel4'">
-							Use multicast
-						</tal:block>
-						<tal:block tal:condition="python:os_version != 'rhel4'">
-							Specify the multicast address manually
-						</tal:block>
-					</td>
-				</tr>
-
-				<tr class="systemsTable">
-					<td class="systemsTable">
-						Multicast address
-					</td>
-					<td class="systemsTable">
-						<input type="text"
-							name="mcast_address" id="mcast_address"
-							tal:attributes="
-								disabled not:clusterinfo/mcast_addr;
-								value clusterinfo/mcast_addr |nothing" />
-					</td>
-				</tr>
-				<tr class="systemsTable">
-					<td class="systemsTable">
-						Multicast network interface <span tal:condition="python:os_version != 'rhel4'">(optional)</span>
-					</td>
-					<td class="systemsTable">
-						<input type="text"
-							name="mcast_interface" id="mcast_interface"
-							tal:attributes="
-								disabled not:clusterinfo/mcast_addr;
-								value clusterinfo/mcast_interface |nothing" />
-					</td>
-				</tr>
-			</tbody>
-
-			<tfoot class="systemsTable">
-				<tr class="systemsTable"><td class="systemsTable" colspan="2">
-					<div class="systemsTableEnd">
-						<input type="button" value="Apply"
-							onClick="validate_form(this.form);"/>
-					</div>
-				</td></tr>
-			</tfoot>
-		</table>
-		</form>
-	</div>
-
-	<div id="configTabContent" tal:condition="python: configTabNum == 4">
-	<script type="text/javascript"
-		src="/luci/homebase/homebase_common.js">
-	</script>
-	<script type="text/javascript"
-		src="/luci/cluster/validate_config_qdisk.js">
-	</script>
-		<form name="quorum_partition" action="" method="post">
-			<input type="hidden" name="pagetype"
-				tal:attributes="value request/pagetype | request/form/pagetype"
-			/>
-			<input type="hidden" name="configtype" value="qdisk" />
-			<input type="hidden" name="cluster_version"
-				tal:attributes="value os_version | nothing" />
-			<input type="hidden" name="clustername"
-				tal:attributes="value request/clustername | clusterinfo/clustername | nothing" />
-		<div class="configTabContent">
-		<table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
-			<thead class="systemsTable">
-				<tr class="systemsTable"><td class="systemsTable" colspan="1">
-					<div class="systemsTableTop">
-						<strong>Quorum Partition Configuration</strong>
-					</div>
-				</td></tr>
-			</thead>
-
-			<tbody class="systemsTable" id="sys_tbody">
-				<tr class="systemsTable" id="st_row"><td class="systemsTable" id="st_col">
-					<input type="radio" name="quorumd" value="False"
-						onClick="disableChildrenInput('quorumdisk');"
-						tal:attributes="checked python: (not clusterinfo['is_quorumd']) and 'checked' or ''" />
-					Do not use a Quorum Partition
-				</td></tr>
-
-				<tr class="systemsTable"><td class="systemsTable">
-					<input type="radio" name="quorumd" value="True"
-						onClick="enableChildrenInput('quorumdisk');"
-						tal:attributes="checked python: (clusterinfo['is_quorumd']) and 'checked' or ''" />
-						Use a Quorum Partition
-				</td></tr>
-			</tbody>
-		</table>
-		</div>
-
-		<div class="spacing configTabContent"></div>
-
-		<div id="quorumdisk" class="configTabContent">
-		<div class="configTabContent">
-		<table name="qdiskprefs" class="systemsTable">
-			<tr class="systemsTable">
-				<td class="systemsTable">Interval</td>
-				<td class="systemsTable">
-					<input type="text" name="interval"
-						tal:attributes="value clusterinfo/interval | nothing" />
-				</td>
-			</tr>
-
-			<tr class="systemsTable">
-				<td class="systemsTable">Votes</td>
-				<td class="systemsTable">
-					<input type="text" name="votes"
-						tal:attributes="value clusterinfo/votes | nothing" />
-				</td>
-			</tr>
-
-			<tr class="systemsTable">
-				<td class="systemsTable">TKO</td>
-				<td class="systemsTable">
-					<input type="text" name="tko"
-						tal:attributes="value clusterinfo/tko | nothing" />
-				</td>
-			</tr>
-
-			<tr class="systemsTable">
-				<td class="systemsTable">Minimum Score</td>
-				<td class="systemsTable">
-					<input type="text" name="min_score"
-						tal:attributes="value clusterinfo/min_score | nothing" />
-				</td>
-			</tr>
-
-			<tr class="systemsTable">
-				<td class="systemsTable">Device</td>
-				<td class="systemsTable">
-					<input type="text" name="device"
-						tal:attributes="value clusterinfo/device | nothing" />
-				</td>
-			</tr>
-
-			<tr class="systemsTable">
-				<td class="systemsTable">Label</td>
-				<td class="systemsTable">
-					<input type="text" name="label"
-						tal:attributes="value clusterinfo/label | nothing" />
-				</td>
-			</tr>
-		</table>
-		</div>
-
-		<div class="configTabContent">
-		<table name="qdiskheur" class="systemsTable">
-			<thead class="systemsTable">
-				<tr class="systemsTable"><td class="systemsTable" colspan="1">
-					<div class="systemsTableTop">
-						<strong>Heuristics</strong>
-					</div>
-				</td></tr>
-
-				<tr class="systemsTable">
-					<th class="systemsTable">
-						<div class="systemsTableTop">Path to Program</div>
-					</th>
-					<th class="systemsTable">
-						<div class="systemsTableTop">Interval</div>
-					</th>
-					<th class="systemsTable">
-						<div class="systemsTableTop">Score</div>
-					</th>
-					<th>
-						&nbsp;
-					</th>
-				</tr>
-			</thead>
-
-			<tbody class="systemsTable" id="heuristicList"
-				tal:define="global heuristics clusterinfo/hlist | nothing">
-
-				<tal:block tal:condition="python: not heuristics or not len(heuristics)">
-				<input type="hidden" name="num_heuristics" id="num_heuristics" value="0">
-				<tr class="systemsTable" id="heuristic0">
-					<td class="systemsTable">
-						<input class="qdpath qdisk" type="text"
-							name="heuristic0:hprog" id="heuristic0:hprog" />
-					</td>
-					<td class="systemsTable">
-						<input class="qdint qdisk" type="text"
-							name="heuristic0:hinterval" id="heuristic0:hinterval" />
-					</td>
-					<td class="systemsTable">
-						<input class="qdscore qdisk" type="text"
-							name="heuristic0:hscore" id="heuristic0:hscore" />
-					</td>
-					<td class="systemsTable">
-						<img class="qdisk deleteRow"
-							id="heuristic0:hdel" name="heuristic0:hdel"
-							src="delete-row.png"
-							title="delete this heuristic"
-							onClick="delete_qdisk_heur(this, document.quorum_partition);">
-					</td>
-				</tr>
-				</tal:block>
-
-				<tal:block
-					tal:condition="python: len(heuristics)"
-					tal:define="global curHeur python: -1">
-
-				<input type="hidden" name="num_heuristics" id="num_heuristics"
-					tal:attributes="value python: len(heuristics)" />
-
-				<tr class="systemsTable"
-					tal:repeat="heuristic heuristics"
-					tal:attributes="id python: 'heuristic' + str(curHeur)"
-					tal:define="global curHeur python: curHeur + 1">
-
-					<td class="systemsTable">
-						<input class="qdpath qdisk" type="text"
-							tal:attributes="
-								value heuristic/hprog;
-								id python: 'heuristic' + str(curHeur) + ':hprog';
-								name python: 'heuristic' + str(curHeur) + ':hprog'" />
-					</td>
-
-					<td class="systemsTable">
-						<input class="qdint qdisk" type="text"
-							tal:attributes="
-								value heuristic/hinterval;
-								id python: 'heuristic' + str(curHeur) + ':hinterval';
-								name python: 'heuristic' + str(curHeur) + ':hinterval'" />
-					</td>
-
-					<td class="systemsTable">
-						<input class="qdscore qdisk" type="text"
-							tal:attributes="
-								value heuristic/hscore;
-								id python: 'heuristic' + str(curHeur) + ':hscore';
-								name python: 'heuristic' + str(curHeur) + ':hscore'" />
-					</td>
-					<td class="systemsTable">
-						<img class="qdisk deleteRow"
-							src="delete-row.png"
-							title="delete this heuristic"
-							onClick="delete_qdisk_heur(this, document.quorum_partition);"
-							tal:attributes="
-								id python: 'heuristic' + str(curHeur) + ':hdel';
-								name python: 'heuristic' + str(curHeur) + ':hdel'" />
-					</td>
-				</tr>
-				</tal:block>
-			</tbody>
-
-			<tfoot>
-				<tr class="systemsTable"><td class="systemsTable">
-					<input class="addrow" type="button" value="Add another heuristic" onClick="addHeuristic('heuristicList')">
-				</td></tr>
-			</tfoot>
-		</table>
-		</div>
-		</div>
-
-		<div class="spacing configTabContent"></div>
-		<div class="hbSubmit spacing configTabContent">
-			<input type="button" value="Apply"
-				onClick="validate_form(this.form)" />
-		</div>
-		<script tal:condition="not: clusterinfo/is_quorumd">
-			disableChildrenInput('quorumdisk');
-		</script>
-		</form>
-	</div>
-
-	<tal:block tal:condition="clusterinfo/gulm">
-	<div id="configTabContent" tal:condition="python: configTabNum == 5">
-		<script type="text/javascript"
-			src="/luci/homebase/homebase_common.js">
-		</script>
-		<script type="text/javascript"
-			src="/luci/cluster/validate_config_gulm.js">
-		</script>
-
-		<form name="basecluster" action="" method="post">
-			<input type="hidden" name="cluster_version"
-				tal:attributes="value os_version | nothing" />
-			<input type="hidden" name="pagetype"
-				tal:attributes="value request/pagetype | request/form/pagetype"
-			/>
-			<input type="hidden" name="configtype" value="gulm" />
-			<input type="hidden" name="clustername"
-				tal:attributes="value request/clustername | clusterinfo/clustername | nothing" />
-
-		<strong class="cluster">GULM Configuration</strong><br/>
-		<table id="systemsTable" class="systemsTable" cellspacing="0">
-			<thead>
-				<tr class="systemsTable" align="left">
-					<th class="systemsTable">Node</th>
-					<th class="systemsTable">Lock Server</th>
-				</tr>
-			</thead>
-			<tbody id="sys_tbody">
-				<tal:block tal:repeat="c clusterinfo/gulm_lockservers">
-					<tr class="systemsTable">
-						<td class="systemsTable">
-							<span tal:replace="python:c[0]" />
-						</td>
-						<td class="systemsTable">
-							<input type="checkbox"
-								tal:attributes="
-									name python:c[0];
-									checked python:c[1]" />
-						</td>
-					</tr>
-				</tal:block>
-
-				<tr><td colspan="2">
-					<div class="spacing" />
-					<p><em class="cluster">You may have exactly 1, 3, or 5 GULM lock servers, in any combination of the hosts checked above and given below.</em></p>
-				</td></tr>
-
-				<tr>
-					<td class="pad_right">External Lock Server 1</td>
-					<td>
-						<input type="text" name="__GULM__:server1"
-							class="hostname" value="" />
-					</td>
-				</tr>
-				<tr>
-					<td class="pad_right">External Lock Server 2</td>
-					<td>
-						<input type="text" name="__GULM__:server2"
-							class="hostname" value="" />
-					</td>
-				</tr>
-				<tr>
-					<td class="pad_right">External Lock Server 3</td>
-					<td>
-						<input type="text" name="__GULM__:server3"
-							class="hostname" value="" />
-					</td>
-				</tr>
-				<tr>
-					<td class="pad_right">External Lock Server 4</td>
-					<td>
-						<input type="text" name="__GULM__:server4"
-							class="hostname" value="" />
-					</td>
-				</tr>
-				<tr>
-					<td class="pad_right">External Lock Server 5</td>
-					<td>
-						<input type="text" name="__GULM__:server5"
-							class="hostname" value="" />
-					</td>
-				</tr>
-			</tbody>
-		</table>
-
-		<div class="spacing configTabContent"></div>
-		<div class="hbSubmit spacing configTabContent">
-			<input type="button" value="Apply"
-				onClick="validate_form(this.form)"/>
-		</div>
-	</div>
-	</tal:block>
-</tal:block>
-</div>
-
-<div metal:define-macro="clusterprocess-form">
-	<tal:block
-		tal:define="result python: here.clusterTaskProcess(modelb, request)"/>
-	<h2>Cluster Process Form</h2>
-</div>
-
-<div metal:define-macro="shared-fence-option-list">
-	<option>Select a shared fence device</option>
-	<option name="fence_apc" value="fence_apc">APC Power Switch</option>
-	<option name="fence_wti" value="fence_wti">WTI Power Switch</option>
-	<option name="fence_brocade" value="fence_brocade">Brocade Fabric Switch</option>
-	<option name="fence_mcdata" value="fence_mcdata">McData SAN Switch</option>
-	<option name="fence_sanbox2" value="fence_sanbox2">QLogic SANbox2</option>
-	<option name="fence_vixel" value="fence_vixel">Vixel SAN Switch</option>
-	<option name="fence_gnbd" value="fence_gnbd">GNBD</option>
-	<option name="fence_egenera" value="fence_egenera">Egenera SAN Controller</option>
-	<option name="fence_bladecenter" value="fence_bladecenter">IBM Blade Center</option>
-	<option name="fence_bullpap" value="fence_bullpap">Bull PAP</option>
-	<option name="fence_xvm" value="fence_xvm">Virtual Machine Fencing</option>
-	<option name="fence_scsi" value="fence_scsi">SCSI Fencing</option>
-</div>
-
-<div metal:define-macro="fence-option-list">
-	<option>Select a fence device</option>
-	<option name="fence_apc" value="fence_apc">APC Power Switch</option>
-	<option name="fence_wti" value="fence_wti">WTI Power Switch</option>
-	<option name="fence_brocade" value="fence_brocade">Brocade Fabric Switch</option>
-	<option name="fence_mcdata" value="fence_mcdata">McData SAN Switch</option>
-	<option name="fence_sanbox2" value="fence_sanbox2">QLogic SANbox2</option>
-	<option name="fence_vixel" value="fence_vixel">Vixel SAN Switch</option>
-	<option name="fence_gnbd" value="fence_gnbd">GNBD</option>
-	<option name="fence_egenera" value="fence_egenera">Egenera SAN Controller</option>
-	<option name="fence_ilo" value="fence_ilo">HP iLO</option>
-	<option name="fence_rsa" value="fence_rsa">IBM RSA II</option>
-	<option name="fence_bladecenter" value="fence_bladecenter">IBM Blade Center</option>
-	<option name="fence_bullpap" value="fence_bullpap">Bull PAP</option>
-	<option name="fence_rps10" value="fence_rps10">RPS10 Serial Switch</option>
-	<option name="fence_drac" value="fence_drac">Dell DRAC</option>
-	<option name="fence_ipmilan" value="fence_ipmilan">IPMI Lan</option>
-	<option name="fence_xvm" value="fence_xvm">Virtual Machine Fencing</option>
-	<option name="fence_scsi" value="fence_scsi">SCSI Fencing</option>
-	<option name="fence_manual" value="fence_manual">Manual Fencing</option>
-</div>
-
-<div metal:define-macro="fence-form-unknown"
-	tal:attributes="id cur_fencedev/name | nothing">
-
-	<div id="fence_unknown" class="fencedev">
-		<table>
-			<tr>
-				<td><strong class="cluster">Fence Type</strong></td>
-				<td>[unknown]</td>
-			</tr>
-			<tr>
-				<td>Name</td>
-				<td>
-					<span tal:replace="cur_fencedev/name | 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>
-	</div>
-</div>
-
-<div metal:define-macro="fence-form-apc"
-	tal:attributes="id cur_fencedev/name | nothing">
-
-	<div id="fence_apc" class="fencedev">
-		<table>
-			<tr>
-				<td><strong class="cluster">Fence Type</strong></td>
-				<td>APC Power Switch</td>
-			</tr>
-			<tr>
-				<td>Name</td>
-				<td>
-					<input name="name" type="text"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value cur_fencedev/name | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>IP Address</td>
-				<td>
-					<input name="ipaddr" type="text"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value cur_fencedev/ipaddr | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>Login</td>
-				<td>
-					<input name="login" type="text"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value cur_fencedev/login | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>Password</td>
-				<td>
-					<input name="passwd" type="password" autocomplete="off"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value 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>
-		</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="sharable" value="1" />
-		<input type="hidden" name="fence_type" value="fence_apc" />
-	</div>
-</div>
-
-<div metal:define-macro="fence-form-mcdata"
-	tal:attributes="id cur_fencedev/name | nothing">
-
-	<div id="fence_mcdata" class="fencedev">
-		<table>
-			<tr>
-				<td><strong class="cluster">Fence Type</strong></td>
-				<td>McData SAN Switch</td>
-			</tr>
-			<tr>
-				<td>Name</td>
-				<td>
-					<input name="name" type="text"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value cur_fencedev/name | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>IP Address</td>
-				<td>
-					<input name="ipaddr" type="text"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value cur_fendev/ipaddr | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>Login</td>
-				<td>
-					<input name="login" type="text"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value cur_fencedev/login | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>Password</td>
-				<td>
-					<input name="passwd" type="password" autocomplete="off"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value 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>
-		</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="sharable" value="1" />
-		<input type="hidden" name="fence_type" value="fence_mcdata" />
-	</div>
-</div>
-
-<div metal:define-macro="fence-form-wti"
-	tal:attributes="id cur_fencedev/name | nothing">
-
-	<div id="fence_wti" class="fencedev">
-		<table>
-			<tr>
-				<td><strong class="cluster">Fence Type</strong></td>
-				<td>WTI Power Switch</td>
-			</tr>
-			<tr>
-				<td>Name</td>
-				<td>
-					<input name="name" type="text"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value cur_fencedev/name | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>IP Address</td>
-				<td>
-					<input name="ipaddr" type="text"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value cur_fencedev/ipaddr | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>Password</td>
-				<td>
-					<input name="passwd" type="password" autocomplete="off"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value 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>
-		</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="sharable" value="1" />
-		<input type="hidden" name="fence_type" value="fence_wti" />
-	</div>
-</div>
-
-<div metal:define-macro="fence-form-ilo"
-	tal:attributes="id cur_fencedev/name | nothing">
-
-	<div id="fence_ilo" class="fencedev">
-		<table>
-			<tr>
-				<td><strong class="cluster">Fence Type</strong></td>
-				<td>HP iLO</td>
-			</tr>
-			<tr>
-				<td>Name</td>
-				<td>
-					<input name="name" type="text"
-						tal:attributes="value cur_fencedev/name | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>Hostname</td>
-				<td>
-					<input name="hostname" type="text"
-						tal:attributes="value cur_fencedev/hostname | cur_fencedev/ipaddr | 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 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>
-		</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_ilo" />
-	</div>
-</div>
-
-<div metal:define-macro="fence-form-drac"
-	tal:attributes="id cur_fencedev/name | nothing">
-
-	<div id="fence_drac" class="fencedev">
-		<table>
-			<tr>
-				<td><strong class="cluster">Fence Type</strong></td>
-				<td>Dell Drac</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>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 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>
-		</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_drac" />
-	</div>
-</div>
-
-<div metal:define-macro="fence-form-rsa"
-	tal:attributes="id cur_fencedev/name | nothing">
-
-	<div id="fence_rsa" class="fencedev">
-		<table>
-			<tr>
-				<td><strong class="cluster">Fence Type</strong></td>
-				<td>IBM RSA II</td>
-			</tr>
-			<tr>
-				<td>Name</td>
-				<td>
-					<input name="name" type="text"
-						tal:attributes="value cur_fencedev/name | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>Hostname</td>
-				<td>
-					<input name="hostname" type="text"
-						tal:attributes="value cur_fencedev/hostname | 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 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>
-		</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_rsa" />
-	</div>
-</div>
-
-<div metal:define-macro="fence-form-brocade"
-	tal:attributes="id cur_fencedev/name | nothing">
-
-	<div id="fence_brocade" class="fencedev">
-		<table>
-			<tr>
-				<td><strong class="cluster">Fence Type</strong></td>
-				<td>Brocade Fabric Switch</td>
-			</tr>
-			<tr>
-				<td>Name</td>
-				<td>
-					<input name="name" type="text"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value cur_fencedev/name | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>IP Address</td>
-				<td>
-					<input name="ipaddr" type="text"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value cur_fencedev/ipaddr | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>Login</td>
-				<td>
-					<input name="login" type="text"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value cur_fencedev/login | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>Password</td>
-				<td>
-					<input name="passwd" type="password" autocomplete="off"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value 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>
-		</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="sharable" value="1" />
-		<input type="hidden" name="fence_type" value="fence_brocade" />
-	</div>
-</div>
-
-<div metal:define-macro="fence-form-sanbox2"
-	tal:attributes="id cur_fencedev/name | nothing">
-
-	<div id="fence_sanbox2" class="fencedev">
-		<table>
-			<tr>
-				<td><strong class="cluster">Fence Type</strong></td>
-				<td>QLogic SANbox2</td>
-			</tr>
-			<tr>
-				<td>Name</td>
-				<td>
-					<input name="name" type="text"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value cur_fencedev/name | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>IP Address</td>
-				<td>
-					<input name="ipaddr" type="text"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value cur_fencedev/ipaddr | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>Login</td>
-				<td>
-					<input name="login" type="text"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value cur_fencedev/login | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>Password</td>
-				<td>
-					<input name="passwd" type="password" autocomplete="off"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value 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>
-		</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="sharable" value="1" />
-		<input type="hidden" name="fence_type" value="fence_sanbox2" />
-	</div>
-</div>
-
-<div metal:define-macro="fence-form-vixel"
-	tal:attributes="id cur_fencedev/name | nothing">
-
-	<div id="fence_vixel" class="fencedev">
-		<table>
-			<tr>
-				<td><strong class="cluster">Fence Type</strong></td>
-				<td>Vixel SAN Switch</td>
-			</tr>
-			<tr>
-				<td>Name</td>
-				<td>
-					<input name="name" type="text"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value cur_fencedev/name | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>IP Address</td>
-				<td>
-					<input name="ipaddr" type="text"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value cur_fencedev/ipaddr | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>Password</td>
-				<td>
-					<input name="passwd" type="password" autocomplete="off"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value 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>
-		</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="sharable" value="1" />
-		<input type="hidden" name="fence_type" value="fence_vixel" />
-	</div>
-</div>
-
-<div metal:define-macro="fence-form-gnbd"
-	tal:attributes="id cur_fencedev/name | nothing">
-
-	<div id="fence_gnbd" class="fencedev">
-		<table>
-			<tr>
-				<td><strong class="cluster">Fence Type</strong></td>
-				<td>GNBD</td>
-			</tr>
-			<tr>
-				<td>Name</td>
-				<td>
-					<input name="name" type="text"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value cur_fencedev/name | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>Servers (whitespace separated list)</td>
-				<td>
-					<input name="servers" type="text"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value cur_fencedev/servers | 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="sharable" value="1" />
-		<input type="hidden" name="fence_type" value="fence_gnbd" />
-	</div>
-</div>
-
-<div metal:define-macro="fence-form-egenera"
-	tal:attributes="id cur_fencedev/name | nothing">
-
-	<div id="fence_egenera" class="fencedev">
-		<table>
-			<tr>
-				<td><strong class="cluster">Fence Type</strong></td>
-				<td>Egenera SAN Controller</td>
-			</tr>
-			<tr>
-				<td>Name</td>
-				<td>
-					<input name="name" type="text"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value cur_fencedev/name | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>CServer</td>
-				<td>
-					<input name="cserver" type="text"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value cur_fencedev/cserver | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>ESH Path (Optional)</td>
-				<td>
-					<input name="login" type="text"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value cur_fencedev/login | string:/opt/pan-mgr/bin/esh" />
-				</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="sharable" value="1" />
-		<input type="hidden" name="fence_type" value="fence_egenera" />
-	</div>
-</div>
-
-<div metal:define-macro="fence-form-bladecenter"
-	tal:attributes="id cur_fencedev/name | nothing">
-
-	<div id="fence_bladecenter" class="fencedev">
-		<table>
-			<tr>
-				<td><strong class="cluster">Fence Type</strong></td>
-				<td>IBM Blade Center</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>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 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>
-		</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="sharable" value="1" />
-		<input type="hidden" name="fence_type" value="fence_bladecenter" />
-	</div>
-</div>
-
-<div metal:define-macro="fence-form-bullpap"
-	tal:attributes="id cur_fencedev/name | nothing">
-
-	<div id="fence_bullpap" class="fencedev">
-		<table>
-			<tr>
-				<td><strong class="cluster">Fence Type</strong></td>
-				<td>Bull PAP</td>
-			</tr>
-			<tr>
-				<td>Name</td>
-				<td>
-					<input name="name" type="text"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value cur_fencedev/name | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>IP Address</td>
-				<td>
-					<input name="ipaddr" type="text"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value cur_fencedev/ipaddr | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>Login</td>
-				<td>
-					<input name="login" type="text"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value cur_fencedev/login | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>Password</td>
-				<td>
-					<input name="passwd" type="password" autocomplete="off"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value 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>
-		</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="sharable" value="1" />
-		<input type="hidden" name="fence_type" value="fence_bullpap" />
-	</div>
-</div>
-
-<div metal:define-macro="fence-form-rps10"
-	tal:attributes="id cur_fencedev/name | nothing">
-
-	<div id="fence_rps10" class="fencedev">
-		<table>
-			<tr>
-				<td><strong class="cluster">Fence Type</strong></td>
-				<td>RPS10 Serial Switch</td>
-			</tr>
-			<tr>
-				<td>Name</td>
-				<td>
-					<input name="name" type="text"
-						tal:attributes="value cur_fencedev/name | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>Device Name</td>
-				<td>
-					<input name="device" type="text"
-						tal:attributes="value cur_fencedev/device | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>Port</td>
-				<td>
-					<input name="port" type="text"
-						tal:attributes="value cur_fencedev/port | 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_rps10" />
-	</div>
-</div>
-
-<div metal:define-macro="fence-form-xvm"
-	tal:attributes="id cur_fencedev/name | nothing">
-
-	<div id="fence_xvm" class="fencedev">
-		<table>
-			<tr>
-				<td><strong class="cluster">Fence Type</strong></td>
-				<td>Virtual Machine Fencing</td>
-			</tr>
-			<tr>
-				<td>Name</td>
-				<td>
-					<input name="name" type="text"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value cur_fencedev/name | 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="sharable" value="1" />
-		<input type="hidden" name="fence_type" value="fence_xvm" />
-	</div>
-</div>
-
-<div metal:define-macro="fence-form-scsi"
-	tal:attributes="id cur_fencedev/name | nothing">
-
-	<div id="fence_scsi" class="fencedev">
-		<table>
-			<tr>
-				<td><strong class="cluster">Fence Type</strong></td>
-				<td>SCSI Reservation Fencing</td>
-			</tr>
-			<tr>
-				<td>Name</td>
-				<td>
-					<input name="name" type="text"
-						tal:attributes="
-							disabled cur_fencedev/isShared | nothing;
-							value cur_fencedev/name | 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="sharable" value="1" />
-		<input type="hidden" name="fence_type" value="fence_scsi" />
-	</div>
-</div>
-
-<div metal:define-macro="fence-form-ipmilan"
-	tal:attributes="id cur_fencedev/name | nothing">
-
-	<div id="fence_ipmilan" class="fencedev">
-		<table>
-			<tr>
-				<td><strong class="cluster">Fence Type</strong></td>
-				<td>IPMI Lan</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>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 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>Authentication Type</td>
-				<td>
-					<input name="auth" type="text" title="Options are to leave blank for none, password, or md5"
-						tal:attributes="value cur_fencedev/auth | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>Use Lanplus</td>
-				<td>
-					<tal:block tal:condition="exists: cur_fencedev">
-						<input name="lanplus" type="checkbox"
-							tal:attributes="checked python: ('lanplus' in cur_fencedev and cur_fencedev['lanplus'] == '1') and 'checked' or ''"
-						/>
-					</tal:block>
-					<tal:block tal:condition="not:exists:cur_fencedev">
-						<input name="lanplus" type="checkbox" />
-					</tal:block>
-				</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_ipmilan" />
-	</div>
-</div>
-
-<div metal:define-macro="fence-form-manual"
-	tal:attributes="id cur_fencedev/name | nothing">
-
-	<div id="fence_manual" class="fencedev">
-		<table>
-			<tr>
-				<td><strong class="cluster">Fence Type</strong></td>
-				<td>Manual Fencing</td>
-			</tr>
-			<tr>
-				<td>Name</td>
-				<td>
-					<input name="name" type="text"
-						tal:attributes="value cur_fencedev/name | 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_manual" />
-	</div>
-</div>
-
-<div metal:define-macro="fence-form-list">
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-apc" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-mcdata" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-wti" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-ilo" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-drac" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-rsa" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-brocade" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-sanbox2" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-vixel" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-gnbd" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-egenera" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-bladecenter" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-bullpap" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-rps10" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-ipmilan" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-xvm" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-scsi" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-manual" />
-</div>
-
-<div metal:define-macro="shared-fence-form-list">
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-apc" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-mcdata" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-wti" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-brocade" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-sanbox2" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-vixel" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-gnbd" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-egenera" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-bladecenter" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-bullpap" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-xvm" />
-	<tal:block metal:use-macro="here/form-macros/macros/fence-form-scsi" />
-</div>
-
-<div metal:define-macro="shared-fence-device-list">
-<tal:block tal:condition="exists: cur_fencedev">
-	<tal:block tal:condition="python: cur_fencedev['agent'] == 'fence_apc'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-apc" />
-	</tal:block>
-	<tal:block tal:condition="python: cur_fencedev['agent'] == 'fence_mcdata'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-mcdata" />
-	</tal:block>
-	<tal:block tal:condition="python: cur_fencedev['agent'] == 'fence_wti'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-wti" />
-	</tal:block>
-	<tal:block tal:condition="python: cur_fencedev['agent'] == 'fence_brocade'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-brocade" />
-	</tal:block>
-	<tal:block tal:condition="python: cur_fencedev['agent'] == 'fence_sanbox2'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-sanbox2" />
-	</tal:block>
-	<tal:block tal:condition="python: cur_fencedev['agent'] == 'fence_vixel'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-vixel" />
-	</tal:block>
-	<tal:block tal:condition="python: cur_fencedev['agent'] == 'fence_gnbd'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-gnbd" />
-	</tal:block>
-	<tal:block tal:condition="python: cur_fencedev['agent'] == 'fence_egenera'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-egenera" />
-	</tal:block>
-	<tal:block tal:condition="python: cur_fencedev['agent'] == 'fence_bladecenter'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-bladecenter" />
-	</tal:block>
-	<tal:block tal:condition="python: cur_fencedev['agent'] == 'fence_bullpap'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-bullpap" />
-	</tal:block>
-	<tal:block tal:condition="python: cur_fencedev['agent'] == 'fence_xvm'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-xvm" />
-	</tal:block>
-	<tal:block tal:condition="python: cur_fencedev['agent'] == 'fence_scsi'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-scsi" />
-	</tal:block>
-</tal:block>
-</div>
-
-<div metal:define-macro="fence-instance-form-apc"
-	tal:omit-tag="exists: cur_fence_dev_id">
-
-	<div id="fence_apc_instance" name="fence_apc" 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>Switch (optional)</td>
-				<td>
-					<input name="switch" type="text"
-						tal:attributes="value cur_instance/switch | 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_apc" />
-		<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-egenera"
-	tal:omit-tag="exists: cur_fence_dev_id">
-	<div id="fence_egenera_instance" name="fence_egenera" class="fencedev_instance"
-		tal:omit-tag="exists: cur_fence_dev_id">
-		<table>
-			<tr>
-				<td>lpan</td>
-				<td>
-					<input name="lpan" type="text"
-						tal:attributes="value cur_instance/lpan | nothing" />
-				</td>
-			</tr>
-			<tr>
-				<td>pserver</td>
-				<td>
-					<input name="pserver" type="text"
-						tal:attributes="value cur_instance/pserver | 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_egenera" />
-		<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-wti"
-	tal:omit-tag="exists: cur_fence_dev_id">
-	<div id="fence_wti_instance" name="fence_wti" 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_wti" />
-		<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-brocade"
-	tal:omit-tag="exists: cur_fence_dev_id">
-	<div id="fence_brocade_instance" name="fence_brocade" 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_brocade" />
-		<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-vixel"
-	tal:omit-tag="exists: cur_fence_dev_id">
-	<div id="fence_vixel_instance" name="fence_vixel" 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_vixel" />
-		<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-sanbox2"
-	tal:omit-tag="exists: cur_fence_dev_id">
-	<div id="fence_sanbox2_instance" name="fence_sanbox2" 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_sanbox2" />
-		<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-mcdata"
-	tal:omit-tag="exists: cur_fence_dev_id">
-	<div id="fence_mcdata_instance" name="fence_mcdata" 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_mcdata" />
-		<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-gndb"
-	tal:omit-tag="exists: cur_fence_dev_id">
-	<div id="fence_gnbd_instance" name="fence_gnbd" class="fencedev_instance"
-		tal:omit-tag="exists: cur_fence_dev_id">
-		<table>
-			<tr>
-				<td>IP Address</td>
-				<td>
-					<input name="ipaddress" type="text"
-						tal:attributes="value cur_instance/ipaddress | 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_gnbd" />
-		<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-bladecenter"
-	tal:omit-tag="exists: cur_fence_dev_id">
-	<div id="fence_bladecenter_instance" name="fence_bladecenter" class="fencedev_instance"
-		tal:omit-tag="exists: cur_fence_dev_id">
-		<table>
-			<tr>
-				<td>Blade</td>
-				<td>
-					<input name="blade" type="text"
-						tal:attributes="value cur_instance/blade | 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_bladecenter" />
-		<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-bullpap"
-	tal:omit-tag="exists: cur_fence_dev_id">
-	<div id="fence_bullpap_instance" name="fence_bullpap" class="fencedev_instance"
-		tal:omit-tag="exists: cur_fence_dev_id">
-		<table>
-			<tr>
-				<td>Domain</td>
-				<td>
-					<input name="domain" type="text"
-						tal:attributes="value cur_instance/domain | 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_bullpap" />
-		<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-scsi"
-	tal:omit-tag="exists: cur_fence_dev_id">
-	<div id="fence_scsi_instance" name="fence_scsi" class="fencedev_instance"
-		tal:omit-tag="exists: cur_fence_dev_id">
-		<table>
-			<tr>
-				<td>Node name</td>
-				<td>
-					<input type="text" name="node" disabled="disabled"
-						tal:attributes="value request/node | nothing" />
-				</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_scsi" />
-		<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-xvm"
-	tal:omit-tag="exists: cur_fence_dev_id">
-	<div id="fence_xvm_instance" name="fence_xvm" class="fencedev_instance"
-		tal:omit-tag="exists: cur_fence_dev_id">
-		<table>
-			<tr>
-				<td>Domain</td>
-				<td>
-					<input name="domain" type="text"
-						tal:attributes="value cur_instance/domain | 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_xvm" />
-		<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-list">
-	<tal:block
-		metal:use-macro="here/form-macros/macros/fence-instance-form-apc" />
-	<tal:block
-		metal:use-macro="here/form-macros/macros/fence-instance-form-egenera" />
-	<tal:block
-		metal:use-macro="here/form-macros/macros/fence-instance-form-wti" />
-	<tal:block
-		metal:use-macro="here/form-macros/macros/fence-instance-form-brocade" />
-	<tal:block
-		metal:use-macro="here/form-macros/macros/fence-instance-form-vixel" />
-	<tal:block
-		metal:use-macro="here/form-macros/macros/fence-instance-form-sanbox2" />
-	<tal:block
-		metal:use-macro="here/form-macros/macros/fence-instance-form-mcdata" />
-	<tal:block
-		metal:use-macro="here/form-macros/macros/fence-instance-form-gndb" />
-	<tal:block
-		metal:use-macro="here/form-macros/macros/fence-instance-form-bullpap" />
-	<tal:block
-		metal:use-macro="here/form-macros/macros/fence-instance-form-scsi" />
-	<tal:block
-		metal:use-macro="here/form-macros/macros/fence-instance-form-xvm" />
-	<tal:block
-		metal:use-macro="here/form-macros/macros/fence-instance-form-bladecenter" />
-</div>
-
-<div metal:define-macro="fencedev-instance-cond-ladder"
-	tal:condition="exists: cur_fence_type">
-
-	<tal:block tal:condition="python: cur_fence_type == 'fence_apc'">
-		<tal:block
-			metal:use-macro="here/form-macros/macros/fence-instance-form-apc" />
-	</tal:block>
-
-	<tal:block tal:condition="python: cur_fence_type == 'fence_mcdata'">
-		<tal:block
-			metal:use-macro="here/form-macros/macros/fence-instance-form-mcdata" />
-	</tal:block>
-
-	<tal:block tal:condition="python: cur_fence_type == 'fence_wti'">
-		<tal:block
-			metal:use-macro="here/form-macros/macros/fence-instance-form-wti" />
-	</tal:block>
-
-	<tal:block tal:condition="python: cur_fence_type == 'fence_brocade'">
-		<tal:block
-			metal:use-macro="here/form-macros/macros/fence-instance-form-brocade" />
-	</tal:block>
-
-	<tal:block tal:condition="python: cur_fence_type == 'fence_sanbox2'">
-		<tal:block
-			metal:use-macro="here/form-macros/macros/fence-instance-form-sanbox2" />
-	</tal:block>
-
-	<tal:block tal:condition="python: cur_fence_type == 'fence_vixel'">
-		<tal:block
-			metal:use-macro="here/form-macros/macros/fence-instance-form-vixel" />
-	</tal:block>
-
-	<tal:block tal:condition="python: cur_fence_type == 'fence_gnbd'">
-		<tal:block
-			metal:use-macro="here/form-macros/macros/fence-instance-form-gnbd" />
-	</tal:block>
-
-	<tal:block tal:condition="python: cur_fence_type == 'fence_egenera'">
-		<tal:block
-			metal:use-macro="here/form-macros/macros/fence-instance-form-egenera" />
-	</tal:block>
-
-	<tal:block tal:condition="python: cur_fence_type == 'fence_bullpap'">
-		<tal:block
-			metal:use-macro="here/form-macros/macros/fence-instance-form-bullpap" />
-	</tal:block>
-
-	<tal:block tal:condition="python: cur_fence_type == 'fence_scsi'">
-		<tal:block
-			metal:use-macro="here/form-macros/macros/fence-instance-form-scsi" />
-	</tal:block>
-
-	<tal:block tal:condition="python: cur_fence_type == 'fence_xvm'">
-		<tal:block
-			metal:use-macro="here/form-macros/macros/fence-instance-form-xvm" />
-	</tal:block>
-
-	<tal:block tal:condition="python: cur_fence_type == 'fence_bladecenter'">
-		<tal:block
-			metal:use-macro="here/form-macros/macros/fence-instance-form-bladecenter" />
-	</tal:block>
-</div>
-
-<div metal:define-macro="node-form">
-	<script type="text/javascript"
-		src="/luci/homebase/homebase_common.js">
-	</script>
-	<script type="text/javascript"
-		src="/luci/cluster/fence_device.js">
-	</script>
-	<script type="text/javascript"
-		src="/luci/cluster/validate_fence.js">
-	</script>
-	<script type="text/javascript">
-		set_page_title('Luci ??? cluster ??? nodes ??? properties');
-	</script>
-	<tal:comment tal:replace="nothing">
-		First table row is status icon, name, and dropdown
-		Second row is daemon macro and failoverdom membership
-		Third row is fencing macro
-	</tal:comment>
-
-	<tal:block tal:define="
-		global ricci_agent ri_agent | python: here.getRicciAgentForCluster(request)" />
-
-	<tal:block tal:define="
-		global nodestatus python: here.getClusterStatus(request, ricci_agent);
-		global nodeinfo python: here.getNodeInfo(modelb, nodestatus, request);
-		global status_class python: 'node_' + (nodeinfo['nodestate'] == '0' and 'active' or (nodeinfo['nodestate'] == '1' and 'inactive' or 'unknown'));
-		global cluster_node_status_str python: (nodeinfo['nodestate'] == '0' and 'Cluster member' or (nodeinfo['nodestate'] == '1' and 'Currently not a cluster participant' or 'This node is not responding'))"
-	/>
-
-	 <table class="cluster node" width="100%">
-		<tr class="cluster node info_top">
-			<td class="cluster node node_name">
-				<img tal:attributes="
-					src python: status_class + '.png'" />
-				<strong class="cluster node">Node Name:</strong>
-				<span
-					tal:attributes="class python: 'cluster node ' + status_class"
-					tal:content="nodeinfo/nodename" />
-			</td>
-
-			<td class="cluster node node_action"
-				tal:condition="python: nodeinfo['nodestate'] == '0' or nodeinfo['nodestate'] == '1'">
-				<form method="post">
-				<select name="gourl">
-					<option value="">Choose a Task...</option>
-					<option tal:attributes="value nodeinfo/jl_url"
-						tal:condition="python: not 'ricci_error' in nodeinfo">
-						Have node <span tal:replace="python: nodeinfo['nodestate'] == '0' and 'leave' or 'join'" /> cluster
-					</option>
-					<option value="">----------</option>
-					<option tal:attributes="value nodeinfo/fence_url">Fence this node</option>
-					<option value="" tal:attributes="value nodeinfo/reboot_url"
-						tal:condition="python: not 'ricci_error' in nodeinfo">
-						Reboot this node
-					</option>
-					<option value="">----------</option>
-					<option tal:attributes="value nodeinfo/delete_url"
-						tal:condition="python: not 'ricci_error' in nodeinfo">
-						Delete this node</option>
-					<option tal:attributes="value nodeinfo/force_delete_url | nothing"
-						tal:condition="python: 'ricci_error' in nodeinfo">
-						Force the deletion of this node</option>
-				</select>
-
-				<input type="button" value="Go"
-					onclick="if (this.form.gourl[this.form.gourl.selectedIndex].value && confirm(this.form.gourl[this.form.gourl.selectedIndex].text + '?')) return dropdown(this.form.gourl)" />
-				</form>
-			</td>
-
-			<td class="cluster node node_action"
-				tal:condition="python: nodeinfo['nodestate'] != '0' and nodeinfo['nodestate'] != '1'">
-				<form method="post">
-				<select name="gourl">
-					<option value="">Choose a Task...</option>
-					<option tal:attributes="value nodeinfo/fence_url | nothing">Fence this node</option>
-					<option tal:attributes="value nodeinfo/force_delete_url | nothing">Force the deletion of this node</option>
-				</select>
-				<input type="button" value="Go"
-					onclick="if (this.form.gourl[this.form.gourl.selectedIndex].value && confirm(this.form.gourl[this.form.gourl.selectedIndex].text + '?')) return dropdown(this.form.gourl)" />
-				</form>
-			</td>
-		</tr>
-
-		<tr class="cluster node info_middle">
-			<td class="cluster node node_status" colspan="2">
-				<strong class="cluster node">Status:</strong>
-				<span tal:attributes="class python: 'cluster node ' + status_class"
-					tal:content="python: cluster_node_status_str" />
-			</td>
-		</tr>
-
-		<tr class="cluster node info_middle"
-			tal:condition="nodeinfo/gulm_lockserver">
-			<td class="cluster node node_status" colspan="2">
-				This node is a GULM lock server.
-			</td>
-		</tr>
-
-		<tr class="cluster node info_bottom"
-			tal:condition="python: (nodeinfo['nodestate'] == '0' or nodeinfo['nodestate'] == '1') and not 'ricci_error' in nodeinfo">
-			<td class="cluster node node_log" colspan="2">
-				<a class="cluster node"
-					tal:attributes="href nodeinfo/logurl" onClick="return popup_log(this, 'notes')">
-					Show recent log activity for this node
-				</a>
-			</td>
-		</tr>
-	</table>
-
-	<hr/>
-
-	<tal:block tal:condition="python: 'ricci_error' in nodeinfo">
-		<strong class="errmsgs">
-			The ricci agent for this node is unresponsive. Node-specific information is not available at this time.
-		</strong>
-	</tal:block>
-
-	<tal:block tal:condition="python: not 'ricci_error' in nodeinfo">
-	<tal:block
-		tal:condition="python: nodeinfo['nodestate'] == '0' or nodeinfo['nodestate'] == '1'">
-
-	<h3>Cluster daemons running on this node</h3>
-	<form name="daemon_form" method="post">
-	<table class="systemsTable">
-		<thead>
-			<tr class="systemsTable">
-				<th class="systemsTable">Daemon</th>
-				<th class="systemsTable">Currently running</th>
-				<th class="systemsTable">Enabled at start-up</th>
-			</tr>
-		</thead>
-		<tfoot class="systemsTable">
-			<tr class="systemsTable"><td class="systemsTable" colspan="3">
-				<div class="systemsTableEnd">
-					<input type="button" value="Update node daemon properties"
-						onclick="if (confirm('Update daemon properties?')) this.form.submit()" />
-				</div>
-			</td></tr>
-		</tfoot>
-		<tbody class="systemsTable">
-			<tr class="systemsTable" tal:repeat="daemon nodeinfo/d_states">
-				<td class="systemsTable"><span tal:replace="daemon/name"/></td>
-				<td class="systemsTable">
-					<tal:block tal:condition="python:daemon['name'] == 'cman'">
-						<span tal:replace="python: (daemon['running'] == 'true' or nodeinfo['nodestate'] == '0') and 'yes' or 'no'" />
-					</tal:block>
-					<tal:block tal:condition="python:daemon['name'] != 'cman'">
-						<span tal:replace="python: daemon['running'] == 'true' and 'yes' or 'no'" />
-					</tal:block>
-				</td>
-				<td class="systemsTable">
-					<input type="hidden" tal:attributes="
-						name python: '__daemon__:' + daemon['name'] + ':';
-						value daemon/name" />
-
-					<input type="hidden" tal:attributes="
-						name python: '__daemon__:' + daemon['name'] + ':';
-						value python: daemon['enabled'] == 'true' and '1' or '0'" />
-
-					<input type="checkbox" tal:attributes="
-						name python: '__daemon__:' + daemon['name'] + ':';
-						checked python: daemon['enabled'] == 'true' and 'checked'" />
-				</td>
-			</tr>
-		</tbody>
-	</table>
-
-	<input type="hidden" name="nodename"
-		tal:attributes="value nodeinfo/nodename | request/nodename | nothing" />
-
-	<input type="hidden" name="clustername"
-		tal:attributes="value request/clustername | nothing" />
-
-	<input type="hidden" name="pagetype" value="55" />
-	</form>
-	</tal:block>
-</tal:block>
-	<hr/>
-
-	<div>
-		<h3>Services on this Node</h3>
-		<ul class="cluster node">
-			<tal:block tal:condition="python: len(nodeinfo['currentservices']) == 0">
-				<li>No cluster services are currently running here</li>
-			</tal:block>
-			<li class="cluster node cluster_service" tal:repeat="svc nodeinfo/currentservices">
-				<a class="running" tal:attributes="href svc/svcurl"
-					tal:content="svc/servicename" />
-			</li>
-		</ul>
-	</div>
-
-	<hr/>
-
-	<div class="fdomblock">
-		<h3>Failover Domain Membership</h3>
-		<ul class="cluster node">
-			<tal:block tal:condition="python: len(nodeinfo['fdoms']) == 0">
-				<li>This node has no failover domain membership</li>
-			</tal:block>
-			<li class="cluster node node_fdom" tal:repeat="fdom nodeinfo/fdoms">
-				<a class="cluster node" tal:attributes="href fdom/fdomurl">
-					<span tal:replace="fdom/name"/>
-				</a>
-			</li>
-		</ul>
-	</div>
-
-	<hr/>
-
-	<div class="invisible" id="fence_device_list">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-list" />
-	</div>
-
-	<tal:block tal:define="
-		global fenceinfo python: here.getFenceInfo(modelb, request);
-		global fencedevinfo python: here.getFencesInfo(modelb, request)" />
-
-	<div class="invisible" id="shared_fence_devices">
-		<tal:block tal:repeat="cur_fencedev fencedevinfo/fencedevs">
-			<tal:block metal:use-macro="here/form-macros/macros/shared-fence-device-list" />
-		</tal:block>
-	</div>
-
-	<div class="invisible" id="fence_instances">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-instance-form-list" />
-	</div>
-
-	<div id="fence_selection_block" class="invisible">
-		<form name="main_fence_form">
-			<select name="select_div">
-				<option value="fence-form-new-device">------ Use an existing Fence Device ------</option>
-				<tal:block tal:repeat="f fencedevinfo/fencedevs">
-					<option class="shared_fencedev"
-						tal:attributes="value f/name"
-						tal:content="python: f['name'] + ' (' + f['pretty_name'] + ')'"
-					/>
-				</tal:block>
-				<option value="fence-form-new-instance">------ Create a new Fence Device ------</option>
-				<tal:block metal:use-macro="here/form-macros/macros/fence-option-list" />
-			</select>
-			<input type="hidden" name="fence_level" value="" />
-			<input type="hidden" name="fence_num" value="" />
-		</form>
-	</div>
-
-	<table id="fence_devices" class="cluster node fence">
-		<tbody class="fence">
-		<tr class="cluster node info_top fence">
-			<td class="cluster node fence">
-				<span class="fence">
-					<strong class="cluster node">Main Fencing Method</strong>
-				</span>
-			</td>
-
-			<td class="cluster node fence_backup">
-				<span class="fence">
-					<strong class="cluster node">Backup Fencing Method</strong>
-				</span>
-			</td>
-		</tr>
-
-		<tr class="cluster node info_top fence">
-			<td class="cluster node fence_main fence">
-				<div class="fence_container">
-
-				<div id="fence_list_level1" tal:define="global cur_fence_num python: 0">
-					<tal:block tal:condition="exists: fenceinfo/level1">
-
-						<div class="fence_level"
-							tal:repeat="cur_fencedev fenceinfo/level1"
-							tal:attributes="id python: 'fence1_' + str(cur_fence_num)">
-
-							<tal:block tal:define="
-								cur_fence_dev_id python: 'fence1_' + str(cur_fence_num);
-								cur_fence_type cur_fencedev/agent | nothing;
-								cur_fence_level python: 1">
-
-								<form tal:attributes="name cur_fence_dev_id | string:[unknown]">
-									<tal:block metal:use-macro="here/form-macros/macros/fencedev-cond-ladder" />
-								</form>
-
-								<tal:block
-									tal:define="global cur_instance_num python:0" />
-
-								<div tal:attributes="id python: cur_fence_dev_id + '_instances'">
-									<tal:block tal:condition="exists: cur_fencedev/instance_list">
-										<tal:block tal:replace="structure python: '<script type='+chr(0x22)+'text/javascript'+chr(0x22)+'>num_fence_instances[\'' + cur_fence_dev_id + '\'] = ' + str(len(cur_fencedev['instance_list'])) + ';</script>'" />
-										<tal:block tal:repeat="cur_instance cur_fencedev/instance_list">
-											<tal:block
-												tal:define="global cur_fence_instance_id python: cur_fence_dev_id + '_' + str(cur_instance_num)" />
-
-											<div class="fence_instance"
-												tal:attributes="
-													name cur_fence_instance_id | nothing;
-													id cur_fence_instance_id | nothing">
-
-												<form
-													tal:attributes="name cur_fence_instance_id | nothing">
-													<tal:block metal:use-macro="here/form-macros/macros/fencedev-instance-cond-ladder" />
-												</form>
-												<tal:block
-													tal:define="global cur_instance_num python:cur_instance_num + 1" />
-											</div>
-										</tal:block>
-									</tal:block>
-								</div>
-								<div class="hbSubmit">
-									<input type="button" name="remove_fence_dev"
-										value="Remove this device"
-										tal:attributes="
-											onclick python: 'del_fence(\'' + cur_fence_dev_id + '\')'" />
-									<input tal:condition="cur_fencedev/isShared"
-										name="add_instance" type="button"
-										value="Add an instance"
-										tal:attributes="onclick python: 'add_fence_instance(\'' + cur_fence_dev_id + '\',\'' + cur_fence_type + '\')'" />
-								</div>
-								<tal:block tal:define="global cur_fence_num python: cur_fence_num + 1" />
-							</tal:block>
-						</div>
-					</tal:block>
-
-					<tal:block
-						tal:replace="structure python: '<script type='+chr(0x22)+'text/javascript'+chr(0x22)+'>num_fences_level[0] = ' + str(cur_fence_num) + ';</script>'" />
-				</div>
-
-				<div class="fence_control">
-					<a href="javascript:add_node_fence_device(1)">Add a fence device to this level</a>
-				</div>
-			</td>
-
-			<td class="cluster node fence_main fence">
-				<div class="fence_container">
-
-				<div id="fence_list_level2" tal:define="global cur_fence_num python: 0">
-					<tal:block tal:condition="exists: fenceinfo/level2">
-
-						<div class="fence_level"
-							tal:repeat="cur_fencedev fenceinfo/level2"
-							tal:attributes="id python: 'fence2_' + str(cur_fence_num)">
-
-							<tal:block tal:define="
-								cur_fence_dev_id python: 'fence2_' + str(cur_fence_num);
-								cur_fence_type cur_fencedev/agent | nothing;
-								cur_fence_level python: 2">
-
-								<form tal:attributes="name cur_fence_dev_id | string:[unknown]">
-									<tal:block metal:use-macro="here/form-macros/macros/fencedev-cond-ladder" />
-								</form>
-
-								<tal:block
-									tal:define="global cur_instance_num python:0" />
-
-								<div tal:attributes="id python: cur_fence_dev_id + '_instances'">
-									<tal:block tal:condition="exists: cur_fencedev/instance_list">
-										<tal:block tal:replace="structure python: '<script type='+chr(0x22)+'text/javascript'+chr(0x22)+'>num_fence_instances[\'' + cur_fence_dev_id + '\'] = ' + str(len(cur_fencedev['instance_list'])) + ';</script>'" />
-										<tal:block tal:repeat="cur_instance cur_fencedev/instance_list">
-											<tal:block
-												tal:define="global cur_fence_instance_id python: cur_fence_dev_id + '_' + str(cur_instance_num)" />
-
-											<div class="fence_instance"
-												tal:attributes="
-													name cur_fence_instance_id | nothing;
-													id cur_fence_instance_id | nothing">
-
-												<form
-													tal:attributes="name cur_fence_instance_id | nothing">
-													<tal:block metal:use-macro="here/form-macros/macros/fencedev-instance-cond-ladder" />
-												</form>
-												<tal:block
-													tal:define="global cur_instance_num python:cur_instance_num + 1" />
-											</div>
-										</tal:block>
-									</tal:block>
-								</div>
-								<div class="hbSubmit">
-									<input type="button" name="remove_fence_dev"
-										value="Remove this device"
-										tal:attributes="
-											onclick python: 'del_fence(\'' + cur_fence_dev_id + '\')'" />
-									<input tal:condition="cur_fencedev/isShared"
-										name="add_instance" type="button"
-										value="Add an instance"
-										tal:attributes="onclick python: 'add_fence_instance(\'' + cur_fence_dev_id + '\',\'' + cur_fence_type + '\')'" />
-								</div>
-								<tal:block tal:define="global cur_fence_num python: cur_fence_num + 1" />
-							</tal:block>
-						</div>
-					</tal:block>
-
-					<tal:block
-						tal:replace="structure python: '<script type='+chr(0x22)+'text/javascript'+chr(0x22)+'>num_fences_level[1] = ' + str(cur_fence_num) + ';</script>'" />
-				</div>
-
-				<div class="fence_control">
-					<a href="javascript:add_node_fence_device(2)">Add a fence device to this level</a>
-				</div>
-			</td>
-		</tr>
-		<tr>
-			<td>
-				<div class="fence_control">
-					<form name="fence1_master" method="post" action="">
-						<input type="hidden" name="clustername"
-							tal:attributes="value request/clustername | nothing" />
-						<input type="hidden" name="nodename"
-							tal:attributes="value request/nodename | nothing" />
-						<input type="hidden" name="fence_level" value="1" />
-						<input type="hidden" name="fence_xml" value="" />
-						<input type="hidden" name="pagetype" value="58" />
-						<input type="button"
-							value="Update main fence properties"
-							onclick="validate_node_fence_form(this.form, 'fence_list_level1')" />
-					</form>
-				</div>
-			</td>
-			<td>
-				<div class="fence_control">
-					<form name="fence2_master" method="post" action="">
-						<input type="hidden" name="clustername"
-							tal:attributes="value request/clustername | nothing" />
-						<input type="hidden" name="nodename"
-							tal:attributes="value request/nodename | nothing" />
-						<input type="hidden" name="fence_level" value="2" />
-						<input type="hidden" name="fence_xml" value="" />
-						<input type="hidden" name="pagetype" value="58" />
-						<input type="button"
-							value="Update backup fence properties"
-							onclick="validate_node_fence_form(this.form, 'fence_list_level2')" />
-					</form>
-				</div>
-			</td>
-		</tr>
-		</tbody>
-	</table>
-</div>
-
-<div metal:define-macro="nodes-form">
-	<script type="text/javascript"
-		src="/luci/cluster/fence_device.js">
-	</script>
-	<script type="text/javascript">
-		set_page_title('Luci ??? cluster ??? nodes');
-	</script>
-
-<div id="node_list">
-	<tal:block tal:define="
-		global ricci_agent ri_agent | python: here.getRicciAgentForCluster(request)" />
-
-	<tal:block tal:define="
-		global status python: here.getClusterStatus(request, ricci_agent);
-		global nds python: here.getNodesInfo(modelb, status, request)" />
-
-	<div tal:repeat="nd nds">
-		<tal:block
-			tal:define="global node_class python: 'cluster node ' + ((nd['status'] == '0' and 'node_active' or (nd['status'] == '1' and 'node_inactive' or 'node_unknown')))" />
-		<table class="cluster" width="100%">
-			<tr class="node info_top">
-				<td class="node node_name">
-					<strong>Node Name:</strong>
-					<a 	tal:content="nd/nodename"
-						tal:attributes="
-							href nd/configurl;
-							class python: node_class"
-					/>
-				</td>
-
-				<td class="node node_action" tal:condition="python: nd['status'] == '0' or nd['status'] == '1'">
-					<form method="post">
-						<select class="node" name="gourl">
-							<option value="">Choose a Task...</option>
-							<option tal:attributes="value nd/jl_url">
-								<span tal:condition="python: nd['status'] == '0'" tal:replace="string:Have node leave cluster" />
-								<span tal:condition="python: nd['status'] == '1'" tal:replace="string:Have node join cluster" />
-							</option>
-							<option value="">----------</option>
-							<option tal:attributes="value nd/fence_it_url">Fence this node</option>
-							<option tal:attributes="value nd/reboot_url">Reboot this node</option>
-							<option value="">----------</option>
-							<option tal:attributes="value nd/delete_url">Delete this node</option>
-						</select>
-						<input type="button" value="Go"
-							onclick="if (this.form.gourl[this.form.gourl.selectedIndex].value && confirm(this.form.gourl[this.form.gourl.selectedIndex].text + '?')) return dropdown(this.form.gourl)" />
-					</form>
-				</td>
-				<td class="node node_action" tal:condition="python: nd['status'] != '0' and nd['status'] != '1'">
-					<form method="post">
-						<select class="node" name="gourl">
-							<option value="">Choose a Task...</option>
-							<option tal:attributes="value nd/fence_it_url | nothing">Fence this node</option>
-							<option tal:attributes="value nd/force_delete_url| nothing">Force the deletion of this node</option>
-						</select>
-						<input type="button" value="Go"
-							onclick="if (this.form.gourl[this.form.gourl.selectedIndex].value && confirm(this.form.gourl[this.form.gourl.selectedIndex].text + '?')) return dropdown(this.form.gourl)" />
-					</form>
-				</td>
-			</tr>
-
-			<tr class="node info_middle">
-				<td class="node_status" colspan="2">
-					<strong class="cluster node">Status:</strong>
-					<span tal:replace="nd/status_str"/>
-				</td>
-			</tr>
-
-			<tr class="node info_middle"
-				tal:condition="nd/gulm_lockserver">
-				<td class="node node_status" colspan="2">
-					This node is a GULM lock server.
-				</td>
-			</tr>
-
-			<tr class="node info_bottom">
-				<td class="node node_services">
-					<strong class="cluster node">Services on this Node:</strong>
-					<ul class="cluster node">
-						<li tal:condition="python: len(nd['currentservices']) == 0">
-							No cluster services are currently running here
-						</li>
-						<li class="cluster_service cluster node"
-							tal:repeat="svc nd/currentservices">
-							<a class="cluster running"
-								tal:content="svc/servicename"
-								tal:attributes="href svc/svcurl" />
-						</li>
-					</ul>
-				</td>
-
-				<td class="node node_fdom">
-					<strong class="cluster node">Failover Domain Membership:</strong>
-					<ul class="cluster node">
-						<li tal:condition="python: len(nd['fdoms']) == 0">
-							This node has no failover domain membership
-						</li>
-						<li class="node_fdom" tal:repeat="fdom nd/fdoms">
-							<a class="cluster node"
-								tal:content="fdom/name"
-								tal:attributes="href fdom/fdomurl" />
-						</li>
-					</ul>
-				</td>
-			</tr>
-
-			<tr class="node info_bottom">
-				<td class="node node_fencing">
-					<a class="cluster node"
-						tal:attributes="href nd/fenceurl">
-						Manage Fencing for this Node
-					</a>
-				</td>
-				<td class="node node_logs">
-					<a class="cluster node"
-						onClick="return popup_log(this, 'notes')"
-						tal:attributes="href nd/logurl">
-						Show recent log activity for this node
-					</a>
-				</td>
-			</tr>
-		</table>
-		<hr/>
-	</div>
-</div>
-</div>
-
-<div metal:define-macro="nodelist-form">
-	<h2>Node List Form</h2>
- </div>
-
-<div metal:define-macro="nodegrid-form">
-	<h2>Node Grid Form</h2>
-</div>
-
-<div metal:define-macro="nodeconfig-form">
-	<h2>Node Configuration Form</h2>
-</div>
-
-<div metal:define-macro="nodelogs-form">
-	<h2>Recent Log Activity for <span tal:replace="request/nodename"/></h2>
-	<hr/>
-	<span tal:replace="structure python: here.getSystemLogs(request)"/>
-</div>
-
-<div metal:define-macro="nodeadd-form">
-	<script type="text/javascript">
-		set_page_title('Luci ??? cluster ??? Add a new cluster node');
-	</script>
-
-	<script type="text/javascript"
-		src="/luci/homebase/homebase_common.js">
-	</script>
-
-	<script type="text/javascript"
-		src="/luci/homebase/validate_cluster_add.js">
-	</script>
-
-
-	<form name="add_node" action="" method="post"
-		tal:define="
-			global add_cluster request/SESSION/add_node | nothing;
-			global cur_cluster_name add_cluster/name | request/clustername | request/form/clustername | nothing">
-
-		<h2>Add a node to <span tal:replace="cur_cluster_name | string:this cluster" /></h2>
-
-		<input type="hidden" name="addnode" value="1" />
-
-		<input type="hidden" name="clustername"
-			tal:attributes="value cur_cluster_name | string:[unknown]" />
-
-		<input name="pagetype" type="hidden"
-			tal:attributes="value request/form/pagetype | request/pagetype | string:15" />
-
-		<input name="cluster_os" type="hidden"
-			tal:attributes="value add_cluster/cluster_os | nothing" />
-
-		<table id="systemsTable" class="systemsTable" cellspacing="0">
-			<thead class="systemsTable">
-				<tr class="systemsTable">
-					<th class="systemsTable">Node Hostname</th>
-					<th class="systemsTable">Root Password</th>
-					<tal:block tal:condition="add_cluster">
-						<th class="systemsTable">Key ID</th>
-						<th class="systemsTable">Trust</th>
-					</tal:block>
-					<th></th>
-				</tr>
-			</thead>
-
-			<tfoot class="systemsTable">
-				<tr class="systemsTable"><td class="systemsTable" colspan="2">
-					<div class="systemsTableEnd">
-						<input type="button" value="Add another node"
-							onClick="addSystem(this.form)" />
-					</div>
-				</td></tr>
-				<tr class="systemsTable"><td colspan="2" class="systemsTable">
-					<input type="hidden" name="trust_shown" value="1"
-						tal:condition="add_cluster" />
-					<ul class="vanilla deploy">
-						<li class="vanilla">
-							<input type="radio" name="download_pkgs" value="1"
-								tal:attributes="checked python: (not add_cluster or not 'download_pkgs' in add_cluster or add_cluster['download_pkgs'] != 0) and 'checked' or ''" />
-							Download packages
-						</li>
-						<li class="vanilla">
-							<input type="radio" name="download_pkgs" value="0"
-								tal:attributes="checked python: (add_cluster and 'download_pkgs' in add_cluster and add_cluster['download_pkgs'] == 0) and 'checked' or ''" />
-							Use locally installed packages.
-						</li>
-					</ul>
-				</td></tr>
-				<tr class="systemsTable"><td colspan="2" class="systemsTable">
-					<input type="checkbox" name="enable_storage"
-						tal:attributes="
-							checked add_cluster/shared_storage | string:checked" />
-					Enable Shared Storage Support
-				</td></tr>
-				<tr class="systemsTable"><td colspan="2" class="systemsTable">
-					<ul class="vanilla">
-						<li class="vanilla">
-							<input name="check_certs" type="checkbox"
-								id="view_certs"
-								onchange="view_certs_only(this.form, this.checked)" />
-							View system certificates before sending any passwords.
-						</li>
-						<li class="vanilla"
-							tal:attributes="id python: (not add_cluster or ('nodes' in add_cluster and len(add_cluster['nodes']) < 2)) and 'allSameDiv'">
-							<input type="checkbox"
-								name="allSameCheckBox" id="allSameCheckBox"
-								onClick="allPasswdsSame(this.form)"
-								tal:attributes="checked python: (add_cluster and add_cluster['identical_passwds']) and 'checked'"
-							/>
-							Check if node passwords are identical.
-						</li>
-					</ul>
-				</td></tr>
-			</tfoot>
-
-			<tal:block tal:define="global cur_sysnum python:0" />
-
-			<tbody class="systemsTable" id="sys_tbody">
-			 <tal:block
-				tal:condition="exists: add_cluster/nodes"
-				tal:repeat="cur_sys add_cluster/nodes">
-				<tr class="systemsTable"
-					tal:attributes="id python: '__SYSTEM_ROW_%d' % cur_sysnum"
-					tal:define="sys python: add_cluster['nodes'][cur_sys]">
-					<td class="systemsTable">
-						<input type="text"
-							tal:attributes="
-								value sys/host | nothing;
-								id python: '__SYSTEM%d:Addr' % cur_sysnum;
-								name python: '__SYSTEM%d:Addr' % cur_sysnum;
-								class python: 'hbInputSys' + ('errors' in sys and ' error' or '');
-								disabled python: ('auth' in sys and sys['host'].count('.') > 0) and 1 or 0"
-						 />
-					</td>
-					<td class="systemsTable">
-						<tal:block tal:condition="not: exists: sys/auth">
-							<input type="password"
-								autocomplete="off"
-								onchange="pwd0Change(this.form)"
-								tal:attributes="
-									value nothing;
-									class python: 'hbInputPass' + ('errors' in sys and ' error' or '');
-									id python: '__SYSTEM%d:Passwd' % cur_sysnum;
-									name python: '__SYSTEM%d:Passwd' % cur_sysnum" />
-						</tal:block>
-
-						<tal:block tal:condition="exists: sys/auth">
-							<input type="text" onchange="pwd0Change(this.form)"
-								disabled="disabled" value="[authenticated]"
-								tal:attributes="
-									class python: 'hbInputPass' + ('errors' in sys and ' error' or '');
-									id python: '__SYSTEM%d:Passwd' % cur_sysnum;
-									name python: '__SYSTEM%d:Passwd' % cur_sysnum" />
-						</tal:block>
-					</td>
-					<td tal:condition="add_cluster" class="systemsTable">
-						<img
-							tal:attributes="
-								src python: 'trusted' in sys and 'lock-ok.png' or ('fp' in sys and 'lock-closed.png' or 'lock-open.png');
-								title sys/fp | string:no key fingerprint available" />
-						<input type="hidden"
-							tal:condition="exists: sys/fp"
-							tal:attributes="
-								id python: '__SYSTEM%dFingerprint' % cur_sysnum;
-								name python: '__SYSTEM%dFingerprint' % cur_sysnum;
-								value sys/fp | nothing" />
-					</td>
-					<td tal:condition="add_cluster" class="systemsTable">
-						<input type="checkbox" tal:attributes="
-							checked exists: sys/fp;
-							id python: '__SYSTEM%dTrusted' % cur_sysnum;
-							name python: '__SYSTEM%dTrusted' % cur_sysnum;
-							disabled python: 'trusted' in sys"
-						/>
-					</td>
-					<td class="systemsTable">
-						<img src="delete-row.png" class="deleteRow"
-							title="delete this row"
-							tal:attributes="
-								onclick python: 'delete_element_id(\'__SYSTEM_ROW_%d\')' % cur_sysnum" />
-					</td>
-				</tr>
-				<tal:block
-					tal:define="global cur_sysnum python: cur_sysnum + 1" />
-			 </tal:block>
-
-				<tr class="systemsTable" id="__SYSTEM_ROW_0"
-					tal:condition="not: add_cluster">
-					<td class="systemsTable">
-						<input class="hbInputSys" type="text"
-							id="__SYSTEM0:Addr" name="__SYSTEM0:Addr" />
-					</td>
-					<td class="systemsTable">
-						<input type="password"
-							onchange="pwd0Change(this.form)"
-							class="hbInputPass" autocomplete="off"
-							id="__SYSTEM0:Passwd" name="__SYSTEM0:Passwd" />
-					</td>
-					<td class="systemsTable">
-						<img src="delete-row.png" class="deleteRow"
-							title="delete this row"
-							onclick="delete_element_id('__SYSTEM_ROW_0')" />
-					</td>
-					<tal:block tal:define="global cur_sysnum python:1" />
-				</tr>
-			</tbody>
-		</table>
-
-		<input name="numStorage" id="numStorage" type="hidden"
-			tal:attributes="value cur_sysnum" />
-
-		<div class="hbSubmit" id="hbSubmit">
-			<input type="button" name="Submit" value="Submit"
-				onClick="validateForm(this.form)" />
-		</div>
-	</form>
-
-	<div tal:condition="add_cluster">
-		<tal:block
-			tal:define="x python: request.SESSION.delete('add_node')" />
-	</div>
-</div>
-
-<div metal:define-macro="nodeprocess-form">
-	<tal:block
-		tal:define="result python: here.nodeTaskProcess(modelb, request)">
-
-		<div id="errmsgsdiv" class="errmsgs"
-			tal:condition="python: result and len(result) > 1 and 'errors' in result[1]">
-			<p class="errmsgs">The following errors occurred:</p>
-
-			<ul class="statusmsg">
-				<tal:block tal:repeat="e python: result[1]['errors']">
-					<li class="statusmsg" tal:content="python:e" />
-				</tal:block>
-			</ul>
-		</div>
-	</tal:block>
-</div>
-
-<div metal:define-macro="services-form">
-	<h2>Services Form</h2>
-</div>
-
-<div metal:define-macro="servicelist-form">
-	<script type="text/javascript">
-		set_page_title('Luci ??? cluster ??? services');
-	</script>
-
-	<tal:block tal:define="
-		global ricci_agent ri_agent | python: here.getRicciAgentForCluster(request)" />
-
-	<tal:block tal:define="
-		global svcstatus python: here.getClusterStatus(request, ricci_agent);
-		global svcinf python: here.getServicesInfo(svcstatus,modelb,request);
-		global svcs svcinf/services" />
-
-	<tal:block tal:repeat="svc svcs">
-		<table class="cluster service" width="100%"
-			tal:define="
-				running svc/running | nothing;
-				autostart svc/autostart |nothing">
-
-			<tr class="cluster service info_top">
-				<td class="cluster service service_name">
-					<strong class="cluster service">Service Name</strong>
-					<a tal:attributes="
-						href svc/cfgurl;
-						class python: 'cluster service ' + (running and 'running' or 'stopped')"
-						tal:content="svc/name" />
-					<tal:block tal:condition="exists:svc/is_vm">
-						(virtual service)
-					</tal:block>
-				</td>
-
-				<td class="cluster service service_action">
-					<form method="post">
-						<select name="gourl">
-							<option value="">Choose a Task...</option>
-							<option
-								tal:attributes="value svc/cfgurl | nothing"
-								tal:content="string:Configure this service" />
-
-							<option value="">----------</option>
-
-							<option
-								tal:condition="running"
-								tal:attributes="value svc/restarturl | nothing"
-								tal:content="string:Restart this service" />
-
-							<option
-								tal:condition="running"
-								tal:attributes="value svc/disableurl | nothing"
-								tal:content="string:Stop this service" />
-
-							<option
-								tal:condition="not: running"
-								tal:attributes="value svc/enableurl | nothing"
-								tal:content="string:Enable this service" />
-
-							<option
-								tal:condition="not: running"
-								tal:attributes="value svc/delurl | nothing"
-								tal:content="string:Delete this service" />
-
-							<option value="">----------</option>
-
-							<tal:block tal:condition="not: running">
-								<tal:block tal:repeat="starturl svc/links">
-									<option
-										tal:condition="not:exists: starturl/migrate"
-										tal:attributes="value starturl/url">Start this service on <span tal:replace="starturl/nodename" /></option>
-								</tal:block>
-							</tal:block>
-
-							<tal:block tal:condition="running">
-								<tal:block tal:repeat="starturl svc/links">
-									<option
-										tal:condition="not:exists: starturl/migrate"
-										tal:attributes="value starturl/url">Relocate this service to <span tal:replace="starturl/nodename" /></option>
-								</tal:block>
-
-								<tal:block tal:condition="svc/is_vm | nothing">
-									<option value="">----------</option>
-									<tal:block tal:repeat="starturl svc/links">
-										<option
-											tal:condition="exists: starturl/migrate"
-											tal:attributes="value starturl/url">Migrate this service to <span tal:replace="starturl/nodename" /></option>
-									</tal:block>
-								</tal:block>
-							</tal:block>
-
-						</select>
-						<input type="button" value="Go"
-							onclick="if (this.form.gourl[this.form.gourl.selectedIndex].value && confirm(this.form.gourl[this.form.gourl.selectedIndex].text + '?')) return dropdown(this.form.gourl)" />
-					</form>
-				</td>
-			</tr>
-
-			<tr class="cluster service info_middle">
-				<td class="cluster service service_nodename">
-					<div class="cluster service service_status">
-						<strong class="cluster service">Status:</strong>
-						<tal:block tal:condition="running">
-							Running on <tal:block tal:replace="svc/nodename"/>
-						</tal:block>
-						<tal:block tal:condition="not: running">
-							This service is stopped
-						</tal:block>
-					</div>
-					<p>Autostart is <span tal:condition="python: autostart.lower() == 'false'" tal:replace="string:not" /> enabled for this service</p>
-				</td>
-			</tr>
-
-			<tr class="cluster service info_bottom">
-				<td class="cluster service service_fdom" tal:condition="running" colspan="2">
-					<strong class="cluster service">Failover Domain Association:</strong> <span tal:replace="svc/faildom"/>
-				</td>
-			</tr>
-		</table>
-		<hr/>
-	</tal:block>
-</div>
-
-<div metal:define-macro="vmadd-form">
-<form method="post" action="">
-	<input type="hidden" name="clustername"
-		tal:attributes="value request/clustername | nothing" />
-
-	<input type="hidden" name="pagetype"
-		tal:attributes="value request/pagetype | nothing" />
-
-	<div class="service_comp_list">
-	<table class="systemsTable">
-		<thead class="systemsTable">
-			<tr class="systemsTable"><td class="systemsTable">
-				<p class="reshdr">Create a Virtual Machine Service</p>
-			</td></tr>
-		<tfoot class="systemsTable">
-			<tr class="systemsTable">
-				<td>Automatically start this service</td>
-				<td>
-					<input type="checkbox" name="autostart" checked="checked">
-				</td>
-			</tr>
-			<tr class="systemsTable">
-				<td>Run exclusive</td>
-				<td>
-					<input type="checkbox" name="exclusive">
-				</td>
-			</tr>
-			<tr class="systemsTable">
-				<td>Failover Domain</td>
-				<td>
-					<select name="domain">
-						<option value="" selected="selected">None</option>
-						<tal:block tal:repeat="f python:here.get_fdom_names(modelb)">
-							<option tal:content="f"
-								tal:attributes="value f" />
-						</tal:block>
-					</select>
-				</td>
-			</tr>
-			<tr class="systemsTable">
-				<td>Recovery policy</td>
-				<td>
-					<select name="recovery">
-						<option value="">Select a recovery policy</option>
-						<option name="relocate" value="relocate">Relocate</option>
-						<option name="restart" value="restart">Restart</option>
-						<option name="disable" value="disable">Disable</option>
-					</select>
-				</td>
-			</tr>
-			<tr class="systemsTable"><td colspan="2">
-				<div class="hbSubmit">
-					<input type="submit" value="Create Virtual Machine Service" />
-				</div>
-			</td></tr>
-		</tfoot>
-		<tbody class="systemsTable">
-			<tr class="systemsTable">
-				<td><span class="cluster_help" title="e.g., guest1 if the VM config file is@/etc/xen/guest1">Virtual machine name</span></td>
-				<td><input type="text" name="vmname" value="" /></td>
-			</tr>
-			<tr class="systemsTable">
-				<td><span class="cluster_help" title="e.g., /etc/xen/">Path to VM configuration files</span></td>
-				<td><input type="text" name="vmpath" value="" /></td>
-			</tr>
-		</tbody>
-	</table>
-	</div>
-</form>
-</div>
-
-<div metal:define-macro="vmconfig-form">
-<form method="post" action=""
-	tal:define="vminfo python:here.getVMInfo(modelb, request)">
-
-	<input type="hidden" name="clustername"
-		tal:attributes="value request/clustername | nothing" />
-
-	<input type="hidden" name="pagetype"
-		tal:attributes="value request/pagetype | nothing" />
-
-	<input type="hidden" name="oldname"
-		tal:attributes="value vminfo/name | nothing" />
-
-	<div class="service_comp_list">
-	<table class="systemsTable">
-		<thead class="systemsTable">
-			<tr class="systemsTable">
-				<td class="systemsTable">
-					<p class="reshdr">Properties for <tal:block tal:replace="vminfo/name | string:virtual machine service"/></p>
-				</td>
-			</tr>
-
-			<tr class="systemsTable">
-				<td class="cluster service service_action"
-					tal:condition="python: sinfo and 'innermap' in sinfo">
-				<form method="post">
-					<input type="hidden" name="pagetype" tal:attributes="
-						value request/pagetype | request/form/pagetype | nothing" />
-					<select name="gourl"
-						tal:define="global innermap sinfo/innermap;
-						starturls innermap/links">
-
-						<option value="">Choose a Task...</option>
-						<tal:block tal:condition="running">
-							<option
-								tal:attributes="value innermap/restarturl">Restart this service</option>
-
-							<option
-								tal:attributes="value innermap/disableurl">Disable this service</option>
-
-							<option value="">----------</option>
-
-							<tal:block tal:repeat="starturl innermap/links">
-								<option
-									tal:condition="not:exists: starturl/migrate"
-									tal:attributes="value starturl/url">Relocate this service to <span tal:replace="starturl/nodename" />
-								</option>
-							</tal:block>
-
-							<tal:block tal:condition="svc/is_vm | nothing">
-								<option value="">----------</option>
-								<tal:block tal:repeat="starturl innermap/links">
-									<option
-										tal:condition="exists: starturl/migrate"
-										tal:attributes="value starturl/url">Migrate this service to <span tal:replace="starturl/nodename" /></option>
-								</tal:block>
-							</tal:block>
-						</tal:block>
-
-						<tal:block tal:condition="not: running">
-							<option
-								tal:attributes="value innermap/enableurl">Enable this service</option>
-							<option value="">----------</option>
-
-							<tal:block tal:repeat="starturl innermap/links">
-								<option
-									tal:condition="not:exists: starturl/migrate"
-									tal:attributes="value starturl/url">Start this service on <span tal:replace="starturl/nodename" />
-								</option>
-							</tal:block>
-
-							<option value="">----------</option>
-
-							<option
-								tal:attributes="value innermap/delurl | nothing"
-								tal:content="string:Delete this service" />
-						</tal:block>
-					</select>
-
-					<input type="button" value="Go"
-						onclick="if (this.form.gourl[this.form.gourl.selectedIndex].value && confirm(this.form.gourl[this.form.gourl.selectedIndex].text + '?')) return dropdown(this.form.gourl)" />
-				</form>
-				</td>
-			</tr>
-		</thead>
-
-		<tfoot class="systemsTable">
-			<tr class="systemsTable">
-				<td>Automatically start this service</td>
-				<td>
-					<input type="checkbox" name="autostart"
-						tal:attributes="checked python: ('autostart' in vminfo and vminfo['autostart'] != '0') and 'checked' or ''" />
-				</td>
-			</tr>
-			<tr class="systemsTable">
-				<td>Run exclusive</td>
-				<td>
-					<input type="checkbox" name="exclusive"
-						tal:attributes="checked python: ('exclusive' in vminfo and vminfo['exclusive'] != '0') and 'checked' or ''" />
-				</td>
-			</tr>
-			<tr class="systemsTable">
-				<td>Failover Domain</td>
-				<td>
-					<select name="domain">
-						<option value="" tal:content="string:None"
-							tal:attributes="selected python: (not 'domain' in vminfo or not vminfo['domain']) and 'selected' or ''" />
-						<tal:block tal:repeat="f python:here.get_fdom_names(modelb)">
-							<option tal:content="f"
-								tal:attributes="
-									value f;
-									selected python: ('domain' in vminfo and vminfo['domain'] == f) and 'selected' or ''" />
-						</tal:block>
-					</select>
-				</td>
-			</tr>
-			<tr class="systemsTable">
-				<td>Recovery policy</td>
-				<td>
-					<select name="recovery">
-						<option value="">Select a recovery policy</option>
-						<option name="relocate" value="relocate"
-							tal:content="string:Relocate"
-							tal:attributes="selected python: ('recovery' in vminfo and vminfo['recovery'] == 'relocate') and 'selected' or ''" />
-						<option name="restart" value="restart"
-							tal:content="string:Restart"
-							tal:attributes="selected python: ('recovery' in vminfo and vminfo['recovery'] == 'restart') and 'selected' or ''" />
-						<option name="disable" value="disable"
-							tal:content="string:Disable"
-							tal:attributes="selected python: ('recovery' in vminfo and vminfo['recovery'] == 'disable') and 'selected' or ''" />
-					</select>
-				</td>
-			</tr>
-			<tr class="systemsTable"><td colspan="2">
-				<div class="hbSubmit">
-					<input name="submit" type="submit" value="Update Virtual Machine Service" />
-					<input name="delete" type="submit" value="Delete Virtual Machine Service" />
-				</div>
-			</td></tr>
-		</tfoot>
-		<tbody class="systemsTable">
-			<tr class="systemsTable">
-				<td><span class="cluster_help" title="e.g., guest1 if the VM config file is@/etc/xen/guest1">Virtual machine name</span></td>
-				<td>
-					<input type="text" name="vmname"
-						tal:attributes="value vminfo/name | nothing" />
-				</td>
-			</tr>
-			<tr class="systemsTable">
-				<td><span class="cluster_help" title="e.g., /etc/xen/">Path to VM configuration files</span></td>
-				<td>
-					<input type="text" name="vmpath"
-						tal:attributes="value vminfo/path | nothing" />
-				</td>
-			</tr>
-		</tbody>
-	</table>
-	</div>
-</form>
-</div>
-
-<div metal:define-macro="serviceadd-form">
-	<script type="text/javascript">
-		set_page_title('Luci ??? cluster ??? services ??? Add a new service');
-	</script>
-	<tal:block metal:use-macro="here/form-macros/macros/service-config-head-macro" />
-
-	<h2>Add a Service</h2>
-	<tal:block tal:define="
-		global clusterinfo python: here.getClusterInfo(modelb, request)" />
-
-	<div id="resskel" class="invisible">
-		<tal:block metal:use-macro="here/resource-form-macros/macros/service-compose-macro" />
-	</div>
-
-	<div class="service_comp_list">
-		<form name="service_name_form">
-			<table class="systemsTable">
-				<tr class="systemsTable">
-					<td class="systemsTable">
-						<strong class="reshdr">Service name</strong>
-					</td>
-					<td class="systemsTable">
-						<input type="text" length="20" name="service_name" value="" />
-					</td>
-				</tr>
-				<tr class="systemsTable">
-					<td class="systemsTable">
-						Automatically start this service
-					</td>
-					<td class="systemsTable">
-						<input type="checkbox" name="autostart" checked="checked" />
-					</td>
-				</tr>
-				<tr class="systemsTable">
-					<td class="systemsTable">Run exclusive</td>
-					<td class="systemsTable">
-						<input type="checkbox" name="exclusive">
-					</td>
-				</tr>
-				<tr class="systemsTable">
-					<td class="systemsTable">Failover Domain</td>
-					<td class="systemsTable">
-						<select name="domain">
-							<option value="" selected="selected">None</option>
-							<tal:block tal:repeat="f sinfo/fdoms">
-								<option tal:content="f"
-									tal:attributes="value f" />
-							</tal:block>
-						</select>
-					</td>
-				</tr>
-				<tr class="systemsTable">
-					<td class="systemsTable">Recovery policy</td>
-					<td class="systemsTable">
-						<select name="recovery">
-							<option value="">Select a recovery policy</option>
-							<option name="relocate" value="relocate">Relocate</option>
-							<option name="restart" value="restart">Restart</option>
-							<option name="disable" value="disable">Disable</option>
-						</select>
-					</td>
-				</tr>
-			</table>
-		</form>
-	</div>
-	<div class="service_comp_list" tal:attributes="id sinfo/root_uuid">
-	</div>
-
-	<div class="service_comp_list">
-		<form name="master" method="post">
-		<input type="button" value="Add a resource to this service"
-			onclick="add_child_resource(this.form);" />
-		<input type="hidden" name="pagetype"
-			tal:attributes="
-				value request/pagetype | request/form/pagetype | nothing" />
-		<input type="hidden" name="clustername"
-			tal:attributes="value clusterinfo/clustername" />
-		<input type="button" value="Submit"
-			onClick="forms_to_xml(this.form)" />
-		<input type="hidden" name="uuid" value="toplevel" />
-		<input type="hidden" name="parent_uuid" value="_toplevel" />
-		<input type="hidden" name="tree_level" value="-1" />
-		<input type="hidden" name="svc_name" value="" />
-		<input type="hidden" name="autostart" value="-1" />
-		<input type="hidden" name="exclusive" value="-1" />
-		<input type="hidden" name="recovery" />
-		<input type="hidden" name="domain" />
-		<input type="hidden" name="form_xml" />
-		<input type="hidden" name="action" value="add" />
-		</form>
-	</div>
-
-	<div class="invisible" id="global_resources_block">
-		<tal:block tal:repeat="gr global_resources">
-			<tal:block tal:define="
-				global res gr;
-				global type python: 'tag_name' in res and res['tag_name'] or '';
-				global resourceIsRef python: True" />
-			<tal:block metal:use-macro="here/form-macros/macros/serviceconfig-type-macro" />
-		</tal:block>
-	</div>
-</div>
-
-<div metal:define-macro="servicestart">
-	<script type="text/javascript">
-		set_page_title('Luci ??? cluster ??? services ??? Start a service');
-	</script>
-
-	<tal:block tal:define="
-		global ricci_agent ri_agent | python: here.getRicciAgentForCluster(request)" />
-
-	<tal:block tal:define="
-		result python: here.serviceStart(ricci_agent, request)" />
-</div>
-
-<div metal:define-macro="servicemigrate">
-	<script type="text/javascript">
-		set_page_title('Luci ??? cluster ??? services ??? Migrate a virtual service');
-	</script>
-
-	<tal:block tal:define="
-		global ricci_agent ri_agent | python: here.getRicciAgentForCluster(request)" />
-
-	<tal:block tal:define="
-		result python: here.serviceMigrate(ricci_agent, request)" />
-</div>
-
-<div metal:define-macro="servicerestart">
-	<script type="text/javascript">
-		set_page_title('Luci ??? cluster ??? services ??? Restart a service');
-	</script>
-
-	<tal:block tal:define="
-		global ricci_agent ri_agent | python: here.getRicciAgentForCluster(request)" />
-
-	<tal:block tal:define="
-		result python: here.serviceRestart(ricci_agent, request)" />
-</div>
-
-<div metal:define-macro="servicestop">
-	<script type="text/javascript">
-		set_page_title('Luci ??? cluster ??? services ??? Stop a service');
-	</script>
-
-	<tal:block tal:define="
-		global ricci_agent ri_agent | python: here.getRicciAgentForCluster(request)" />
-
-	<span tal:define="
-		result python: here.serviceStop(ricci_agent, request)" />
-</div>
-
-<div metal:define-macro="serviceconfig-type-macro" tal:omit-tag="">
-	<tal:block tal:condition="python: type == 'ip'">
-		<div metal:use-macro="here/resource-form-macros/macros/ip_macro" />
-	</tal:block>
-
-	<tal:block tal:condition="python: type == 'fs'">
-		<div metal:use-macro="here/resource-form-macros/macros/fs_macro" />
-	</tal:block>
-
-	<tal:block tal:condition="python: type == 'gfs' or type == 'clusterfs'">
-		<div metal:use-macro="here/resource-form-macros/macros/gfs_macro" />
-	</tal:block>
-
-	<tal:block tal:condition="python: type == 'netfs'">
-		<div metal:use-macro="here/resource-form-macros/macros/nfsm_macro"/>
-	</tal:block>
-
-	<tal:block tal:condition="python: type == 'nfsexport'">
-		<div metal:use-macro="here/resource-form-macros/macros/nfsx_macro"/>
-	</tal:block>
-
-	<tal:block tal:condition="python: type == 'nfsclient'">
-		<div metal:use-macro="here/resource-form-macros/macros/nfsc_macro"/>
-	</tal:block>
-
-	<tal:block tal:condition="python: type == 'smb'">
-		<div metal:use-macro="here/resource-form-macros/macros/smb_macro" />
-	</tal:block>
-
-	<tal:block tal:condition="python: type == 'script'">
-		<div metal:use-macro="here/resource-form-macros/macros/scr_macro" />
-	</tal:block>
-
-	<tal:block tal:condition="python: type == 'apache'">
-		<div metal:use-macro="here/resource-form-macros/macros/apache_macro" />
-	</tal:block>
-
-	<tal:block tal:condition="python: type == 'openldap'">
-		<div metal:use-macro="here/resource-form-macros/macros/openldap_macro" />
-	</tal:block>
-
-	<tal:block tal:condition="python: type == 'mysql'">
-		<div metal:use-macro="here/resource-form-macros/macros/mysql_macro" />
-	</tal:block>
-
-	<tal:block tal:condition="python: type == 'lvm'">
-		<div metal:use-macro="here/resource-form-macros/macros/lvm_macro" />
-	</tal:block>
-
-	<tal:block tal:condition="python: type == 'postgres-8'">
-		<div metal:use-macro="here/resource-form-macros/macros/postgres-8_macro" />
-	</tal:block>
-	<tal:block tal:condition="python: type == 'tomcat-5'">
-		<div metal:use-macro="here/resource-form-macros/macros/tomcat-5_macro" />
-	</tal:block>
-	<tal:block tal:condition="python: type == 'SAPInstance'">
-		<div metal:use-macro="here/resource-form-macros/macros/SAPInstance_macro" />
-	</tal:block>
-	<tal:block tal:condition="python: type == 'SAPDatabase'">
-		<div metal:use-macro="here/resource-form-macros/macros/SAPDatabase_macro" />
+	<input type="hidden" name="pagetype" value="55" />
+	</form>
 	</tal:block>
-</div>
-
-<div metal:define-macro="service-config-head-macro" tal:omit-tag="">
-	<script type="text/javascript"
-		src="/luci/homebase/homebase_common.js">
-	</script>
-	<script type="text/javascript"
-		src="/luci/cluster/resource_form_handlers.js">
-	</script>
-
-	<tal:block tal:define="
-		global ricci_agent ri_agent | python: here.getRicciAgentForCluster(request)" />
-
-	<tal:block tal:define="
-		global global_resources python: here.getResourcesInfo(modelb, request);
-		global sstat python: here.getClusterStatus(request, ricci_agent);
-		global sinfo python: here.getServiceInfo(sstat, modelb, request);
-		global resource_list sinfo/resource_list | python:[];
-		global running sinfo/running | nothing" />
-
-	<tal:block tal:replace="structure python: '<script type='+chr(0x22)+'text/javascript'+chr(0x22)+'>'" />
-		var uuid_list = <tal:block tal:replace="sinfo/uuid_list | nothing" />;
-		var global_resources = <tal:block tal:replace="python: map(lambda x: str(x['name']), global_resources) or 'null'" />;
-		var active_resources = <tal:block tal:replace="python: map(lambda x: str(x['name']), resource_list) or 'null'" />;
-		var resource_names = <tal:block tal:replace="python: (map(lambda x: str(x['name']), global_resources) + map(lambda x: str(x['name']), resource_list)) or 'null'" />;
-	<tal:block tal:replace="structure string: </script>" />
-</div>
-
-<div metal:define-macro="serviceconfig-form">
-	<script type="text/javascript">
-		set_page_title('Luci ??? cluster ??? services ??? Configure a service');
-	</script>
-	<tal:block metal:use-macro="here/form-macros/macros/service-config-head-macro" />
-
-	<table class="cluster service" width="100%">
-		<tr class="cluster service info_top">
-			<td class="cluster service service_name">
-				<strong class="service_name">Service Name</strong>
-				<span
-					tal:content="sinfo/name | nothing"
-					tal:attributes="class python: running and 'running' or 'stopped'" />
-			</td>
-			<td class="cluster service service_action"
-				tal:condition="python: sinfo and 'innermap' in sinfo">
-				<form method="post">
-					<input type="hidden" name="pagetype" tal:attributes="
-						value request/pagetype | request/form/pagetype | nothing" />
-					<select name="gourl"
-						tal:define="global innermap sinfo/innermap;
-						starturls innermap/links">
-
-						<option value="">Choose a Task...</option>
-						<tal:block tal:condition="running">
-							<option
-								tal:attributes="value innermap/restarturl">Restart this service</option>
-
-							<option
-								tal:attributes="value innermap/disableurl">Disable this service</option>
-
-							<option value="">----------</option>
-
-							<tal:block tal:repeat="starturl innermap/links">
-								<option
-									tal:condition="not:exists: starturl/migrate"
-									tal:attributes="value starturl/url">Relocate this service to <span tal:replace="starturl/nodename" />
-								</option>
-							</tal:block>
-
-							<tal:block tal:condition="innermap/is_vm | nothing">
-								<option value="">----------</option>
-								<tal:block tal:repeat="starturl innermap/links">
-									<option
-										tal:condition="exists: starturl/migrate"
-										tal:attributes="value starturl/url">Migrate this service to <span tal:replace="starturl/nodename" /></option>
-								</tal:block>
-							</tal:block>
-						</tal:block>
-
-						<tal:block tal:condition="not: running">
-							<option
-								tal:attributes="value innermap/enableurl">Enable this service</option>
-							<option value="">----------</option>
-
-							<tal:block tal:repeat="starturl innermap/links">
-								<option
-									tal:condition="not:exists: starturl/migrate"
-									tal:attributes="value starturl/url">Start this service on <span tal:replace="starturl/nodename" />
-								</option>
-							</tal:block>
-
-							<option value="">----------</option>
-
-							<option
-								tal:attributes="value innermap/delurl | nothing"
-								tal:content="string:Delete this service" />
-						</tal:block>
-					</select>
-
-					<input type="button" value="Go"
-						onclick="if (this.form.gourl[this.form.gourl.selectedIndex].value && confirm(this.form.gourl[this.form.gourl.selectedIndex].text + '?')) return dropdown(this.form.gourl)" />
-				</form>
-			</td>
-		</tr>
-
-		<tr class="cluster service info_middle">
-			<td class="cluster service service_status">
-				<strong>Service Status</strong>
-
-				<tal:block tal:condition="running">
-					<span tal:condition="exists:innermap/current"
-						tal:replace="innermap/current | nothing" />
-					<span tal:condition="not:exists:innermap/current"
-						tal:replace="string:Running" />
-				</tal:block>
-
-				<tal:block tal:condition="not:running">
-					Stopped
-				</tal:block>
-			</td>
-		</tr>
-	</table>
-	<br/>
-
-	<h2>Service Composition</h2>
-	<tal:block tal:define="
-		global clusterinfo python: here.getClusterInfo(modelb, request)" />
-
-	<div id="resskel" class="invisible">
-		<tal:block metal:use-macro="here/resource-form-macros/macros/service-compose-macro" />
-	</div>
-
-	<div class="service_comp_list" tal:attributes="id sinfo/root_uuid">
-	<div tal:repeat="res resource_list"
-		tal:attributes="
-			class python: 'service_comp rc_indent' + str(res['indent_ctr']);
-			id python: res['uuid']">
-
-		<tal:block
-			tal:condition="python: 'max_depth' in res and res['max_depth'] > 0"
-			tal:replace="structure python: '<div class=nothing>'" />
-
-		<tal:block tal:define="
-			global type python: 'tag_name' in res and res['tag_name'] or '';
-			global resourceIsRef res/ref_object | nothing" />
-
-		<tal:block metal:use-macro="here/form-macros/macros/serviceconfig-type-macro" />
+</tal:block>
+	<hr/>
 
-		<tal:block
-			tal:condition="python: 'indent_ctr' in res and 'max_depth' in res"
-			tal:replace="structure python: '</div>' * (res['indent_ctr'] - res['max_depth'])" />
-		</div>
+	<div>
+		<h3>Services on this Node</h3>
+		<ul class="cluster node">
+			<tal:block tal:condition="python: len(nodeinfo['currentservices']) == 0">
+				<li>No cluster services are currently running here</li>
+			</tal:block>
+			<li class="cluster node cluster_service" tal:repeat="svc nodeinfo/currentservices">
+				<a class="running" tal:attributes="href svc/svcurl"
+					tal:content="svc/servicename" />
+			</li>
+		</ul>
 	</div>
-	<div class="service_comp_list">
-		<form name="service_name_form">
-			<table class="rescfg">
-				<tr>
-					<td>Automatically start this service</td>
-					<td><input type="checkbox" name="autostart"
-							tal:attributes="checked python: ('autostart' in sinfo and sinfo['autostart'].lower() != 'false') and 'checked'" />
-					</td>
-				</tr>
-				<tr>
-					<td>Run exclusive</td>
-					<td><input type="checkbox" name="exclusive"
-							tal:attributes="checked python: ('exclusive' in sinfo and sinfo['exclusive'].lower() != 'false') and 'checked'" />
-					</td>
-				</tr>
-				<tr>
-					<td>Failover Domain</td>
-					<td>
-						<select name="domain">
-							<option value=""
-								tal:attributes="selected python: (not 'domain' in sinfo or not sinfo['domain']) and 'selected' or ''">None</option>
-							<tal:block tal:repeat="f sinfo/fdoms">
-								<option tal:content="f"
-									tal:attributes="
-										value f;
-										selected python: ('domain' in sinfo and sinfo['domain'] == f) and 'selected' or ''" />
-							</tal:block>
-						</select>
-					</td>
-				</tr>
-				<tr class="systemsTable">
-					<td>Recovery policy</td>
-					<td>
-						<select name="recovery">
-							<option value="">Select a recovery policy</option>
-							<option name="relocate" value="relocate"
-								tal:content="string:Relocate"
-								tal:attributes="selected python: ('recovery' in sinfo and sinfo['recovery'] == 'relocate') and 'selected' or ''" />
-							<option name="restart" value="restart"
-								tal:content="string:Restart"
-								tal:attributes="selected python: ('recovery' in sinfo and sinfo['recovery'] == 'restart') and 'selected' or ''" />
-							<option name="disable" value="disable"
-								tal:content="string:Disable"
-								tal:attributes="selected python: ('recovery' in sinfo and sinfo['recovery'] == 'disable') and 'selected' or ''" />
-						</select>
-					</td>
-				</tr>
-			</table>
-			<input type="hidden" name="service_name"
-				tal:attributes="value sinfo/name | string:1" />
-		</form>
 
-		<form name="master" method="post">
-		<input type="hidden" name="pagetype"
-			tal:attributes="
-				value request/pagetype | request/form/pagetype | nothing" />
-		<input type="hidden" name="clustername"
-			tal:attributes="value clusterinfo/clustername" />
-		<input type="button" value="Add a resource to this service"
-			onclick="add_child_resource(this.form);" />
-		<input type="button" value="Save changes"
-			onClick="forms_to_xml(this.form)" />
-		<input type="hidden" name="uuid" value="toplevel" />
-		<input type="hidden" name="parent_uuid" value="_toplevel" />
-		<input type="hidden" name="tree_level" value="-1" />
-		<input type="hidden" name="svc_name" value="" />
-		<input type="hidden" name="autostart" value="-1" />
-		<input type="hidden" name="exclusive" value="-1" />
-		<input type="hidden" name="recovery" />
-		<input type="hidden" name="domain" />
-		<input type="hidden" name="form_xml" />
-		<input type="hidden" name="action" value="edit" />
-		</form>
-	</div>
+	<hr/>
 
-	<div class="invisible" id="global_resources_block">
-		<tal:block tal:repeat="gr global_resources">
-			<tal:block tal:define="
-				global res gr;
-				global type python: 'tag_name' in res and res['tag_name'] or '';
-				global resourceIsRef python: True" />
-			<tal:block metal:use-macro="here/form-macros/macros/serviceconfig-type-macro" />
-		</tal:block>
+	<div class="fdomblock">
+		<h3>Failover Domain Membership</h3>
+		<ul class="cluster node">
+			<tal:block tal:condition="python: len(nodeinfo['fdoms']) == 0">
+				<li>This node has no failover domain membership</li>
+			</tal:block>
+			<li class="cluster node node_fdom" tal:repeat="fdom nodeinfo/fdoms">
+				<a class="cluster node" tal:attributes="href fdom/fdomurl">
+					<span tal:replace="fdom/name"/>
+				</a>
+			</li>
+		</ul>
 	</div>
-</div>
-
-<div metal:define-macro="service-form">
-	<h2>Service Form</h2>
-</div>
-
-<div metal:define-macro="serviceprocess-form">
-	<h2>Service Process Form</h2>
-</div>
-
-<div metal:define-macro="servicedelete-form">
-	<h2>Service Delete Form</h2>
-
-	<tal:block tal:define="
-		global ricci_agent ri_agent | python: here.getRicciAgentForCluster(request)" />
-
-	<span tal:define="
-		result python: here.serviceDelete(ricci_agent, request)" />
-</div>
-
-<div metal:define-macro="resources-form">
-	<h2>Resources Form</h2>
-</div>
-
-<div metal:define-macro="resourcelist-form">
-	<h2>Resource List Form</h2>
-</div>
-
-<div metal:define-macro="resourceadd-form">
-	<h2>Resource Add Form</h2>
-</div>
-
-<div metal:define-macro="resourceconfig-form">
-	<h2>Resource Configuration Form</h2>
-</div>
 
-<div metal:define-macro="resource-form">
-	<h2>Resource Form</h2>
-</div>
-
-<div metal:define-macro="resourceprocess-form">
-	<h2>Resource Process Form</h2>
-</div>
-
-<div metal:define-macro="fdoms-form">
-	<h2>Failover Domains Form</h2>
-</div>
-
-<div metal:define-macro="fdomlist-form">
-	<script type="text/javascript">
-		set_page_title('Luci ??? cluster ??? failover domains');
-	</script>
-
-	<tal:block tal:define="
-		global ricci_agent ri_agent | python: here.getRicciAgentForCluster(request)" />
-
-	<tal:block tal:define="
-		global sta python: here.getClusterStatus(request, ricci_agent);
-		global fdominfo python: here.getFdomsInfo(modelb, request, sta);" />
-
-	<div class="cluster fdom" tal:repeat="fdom fdominfo">
-	<div class="cluster fdom fdomname">
-		<img src="fDom.png" />
-		<strong class="cluster fdom">Failover Domain Name<strong>:
-		<a class="cluster fdom_link"
-			tal:attributes="href fdom/cfgurl"
-			tal:content="fdom/name" />
-	</div>
+	<hr/>
 
-	<div class="fdomordered">
-		<h4>This Failover Domain is
-		<strong>
-			<span tal:replace="python: fdom['ordered'] == True and 'Ordered' or 'Unordered'" />
-		</strong>
+	<div class="invisible" id="fence_device_list">
+		<tal:block metal:use-macro="here/fence-macros/macros/fence-form-list" />
 	</div>
 
-	<tal:block tal:define="nofailback python:fdom.get('nofailback')">
-		<div class="formordered"
-			tal:condition="python:nofailback is True">
-			<h4>Services running in this failover domain will not be failed back.
-		</div>
-	</tal:block>
-
-	<div class="fdomrestricted">
-		<h4>This Failover Domain is <span tal:replace="python: fdom['restricted'] == True and 'Restricted' or 'Unrestricted'"/></h4>
-	</div>
+	<tal:block tal:define="
+		global fenceinfo python: here.getFenceInfo(modelb, request);
+		global fencedevinfo python: here.getFencesInfo(modelb, request)" />
 
-	<div class="fdommembers">
-		<h3>Members of this Failover Domain</h3>
-		<ul class="cluster node">
-			<tal:block tal:repeat="node fdom/nodeslist">
-				<tal:block
-					tal:define="global nodeclass python: 'cluster ' + (node['status'] == '0' and 'node_active' or (node['status'] == '1' and 'node_inactive' or 'node_unknown'));" />
-				<li tal:attributes="class python: nodeclass">
-					<a tal:content="node/nodename"
-						tal:attributes="
-							href node/nodecfgurl;
-							class python: nodeclass;" />
-				</li>
-			</tal:block>
-		</ul>
+	<div class="invisible" id="shared_fence_devices">
+		<tal:block tal:repeat="cur_fencedev fencedevinfo/fencedevs">
+			<tal:block metal:use-macro="here/fence-macros/macros/shared-fence-device-list" />
+		</tal:block>
 	</div>
 
-	<div class="fdomservice">
-		<h2>Services employing this Failover Domain: </h2>
-		<ul>
-			<tal:block tal:condition="python: len(fdom['svclist']) < 1">
-				<li>No Services Defined</li>
-			</tal:block>
-			<tal:block tal:repeat="svc fdom/svclist">
-				<tal:block
-					tal:define="global svcclass python: svc['status'] == 'true' and 'running' or 'stopped'" />
-
-				<li tal:attributes="class python: 'cluster cluster_service ' + svcclass">
-					<a tal:content="python: svc['name'] + ' ' + (svcclass == 'running' and ('Running on node ' + svc['location']) or 'Not running')"
-						tal:attributes="href svc/svcurl;
-							class python: 'cluster cluster_service ' + svcclass" />
-				</li>
-			</tal:block>
-		</ul>
-		<hr/>
+	<div class="invisible" id="fence_instances">
+		<tal:block metal:use-macro="here/fence-macros/macros/fence-instance-form-list" />
 	</div>
 
+	<div id="fence_selection_block" class="invisible">
+		<form name="main_fence_form">
+			<select name="select_div">
+				<option value="fence-form-new-device">------ Use an existing Fence Device ------</option>
+				<tal:block tal:repeat="f fencedevinfo/fencedevs">
+					<option class="shared_fencedev"
+						tal:attributes="value f/name"
+						tal:content="python: f['name'] + ' (' + f['pretty_name'] + ')'"
+					/>
+				</tal:block>
+				<option value="fence-form-new-instance">------ Create a new Fence Device ------</option>
+				<tal:block metal:use-macro="here/fence-macros/macros/fence-option-list" />
+			</select>
+			<input type="hidden" name="fence_level" value="" />
+			<input type="hidden" name="fence_num" value="" />
+		</form>
 	</div>
-</div>
 
-<tal:block metal:define-macro="fdom-macro">
-<script type="text/javascript"
-	src="/luci/homebase/homebase_common.js">
-</script>
-<script type="text/javascript"
-	src="/luci/cluster/validate_fdom.js">
-</script>
-
-<form method="post" action="">
-	<input type="hidden" name="clustername"
-		tal:attributes="value request/clustername | nothing" />
-	<input type="hidden" name="pagetype"
-		tal:attributes="value request/pagetype | nothing" />
-	<input type="hidden" name="oldname"
-		tal:condition="exists: fdom/name"
-		tal:attributes="value fdom/name | nothing" />
+	<table id="fence_devices" class="cluster node fence">
+		<tbody class="fence">
+		<tr class="cluster node info_top fence">
+			<td class="cluster node fence">
+				<span class="fence">
+					<strong class="cluster node">Main Fencing Method</strong>
+				</span>
+			</td>
 
-	<table class="systemsTable" width="100%">
-		<thead class="systemsTable">
-			<tr class="systemsTable">
-				<td width="60%"><strong>Failover Domain Name</strong></td>
-				<td>
-					<input type="text" name="name"
-						tal:attributes="value fdom/name | nothing" />
-				</td>
-			</tr>
-			<tr class="systemsTable">
-				<td>Prioritized</td>
-				<td>
-					<input type="checkbox" name="prioritized" id="prioritized"
-						onchange="fdom_set_prioritized(this.form, this.checked)"
-						tal:attributes="checked python: (fdom and 'prioritized' in fdom and fdom['prioritized'] == '1') and 'checked' or ''" />
-				</td>
-			</tr>
-			<tr class="systemsTable">
-				<td>Restrict failover to this domain's members</td>
-				<td>
-					<input type="checkbox" name="restricted"
-						tal:attributes="checked python: (fdom and 'restricted' in fdom and fdom['restricted'] == '1') and 'checked' or ''" />
-				</td>
-			</tr>
-			<tr class="systemsTable">
-				<td>Do not fail back services in this domain</td>
-				<td>
-					<input type="checkbox" name="nofailback"
-						tal:attributes="checked python: (fdom and 'nofailback' in fdom and fdom['nofailback'] == '1') and 'checked' or ''" />
-				</td>
-			</tr>
-			<tr class="systemsTable">
-				<td class="systemsTable" colspan="2">
-					<p></p>
-					<p class="reshdr">Failover domain membership</p>
-				</td>
-			</tr>
-		</thead>
+			<td class="cluster node fence_backup">
+				<span class="fence">
+					<strong class="cluster node">Backup Fencing Method</strong>
+				</span>
+			</td>
+		</tr>
 
-		<tfoot class="systemsTable">
-			<tr class="systemsTable"><td>
-				<div class="hbSubmit">
-					<input type="button" name="add" value="Submit"
-						onclick="validate_add_fdom(this.form)" />
-				</div>
-			</td></tr>
-		</tfoot>
+		<tr class="cluster node info_top fence">
+			<td class="cluster node fence_main fence">
+				<div class="fence_container">
 
-		<tbody width="60%">
-			<tr class="systemsTable">
-				<th class="systemsTable" width="33%">Node</th>
-				<th class="systemsTable" width="10%">Member</th>
-				<th class="systemsTable" width="57%">Priority</th>
-			</tr>
-			<tal:block tal:repeat="n python:here.getnodes(modelb)">
-				<tr class="systemsTable">
-					<td class="systemsTable" width="33%">
-						<tal:block tal:replace="n" />
-					<td class="systemsTable" width="10%">
-						<input type="checkbox"
-							onchange="fdom_set_member(this.form, this.name, this.checked)"
-							tal:attributes="
-								checked python: ('members' in fdom and n in fdom['members']) and 'checked' or '';
-								name n" />
-					</td>
-					<td class="systemsTable" width="75%">
-						<input type="text" class="fdom_priority"
-							tal:attributes="
-								id n;
-								name python: '__PRIORITY__' + n;
-								value python: ('members' in fdom and n in fdom['members'] and 'priority' in fdom['members'][n]) and fdom['members'][n]['priority'] or '1';
-								disabled python: (not fdom or not 'prioritized' in fdom or fdom['prioritized'] != '1' or not 'members' in fdom or not n in fdom['members']) and 'disabled' or ''" />
-					</td>
-				</tr>
-			</tal:block>
-		</tbody>
-	</table>
-</form>
+				<div id="fence_list_level1" tal:define="global cur_fence_num python: 0">
+					<tal:block tal:condition="exists: fenceinfo/level1">
 
-</tal:block>
+						<div class="fence_level"
+							tal:repeat="cur_fencedev fenceinfo/level1"
+							tal:attributes="id python: 'fence1_' + str(cur_fence_num)">
 
-<div metal:define-macro="fdomadd-form">
-	<script type="text/javascript">
-		set_page_title('Luci ??? cluster ??? failover domains ??? Add a failover domain');
-	</script>
+							<tal:block tal:define="
+								cur_fence_dev_id python: 'fence1_' + str(cur_fence_num);
+								cur_fence_type cur_fencedev/agent | nothing;
+								cur_fence_level python: 1">
 
-	<h2>Add a Failover Domain</h2>
-	<tal:block tal:define="fdom python:{}">
-		<tal:block metal:use-macro="here/form-macros/macros/fdom-macro" />
-	</tal:block>
-</div>
+								<form tal:attributes="name cur_fence_dev_id | string:[unknown]">
+									<tal:block metal:use-macro="here/fence-macros/macros/fencedev-cond-ladder" />
+								</form>
 
-<div metal:define-macro="fdomconfig-form">
-	<script type="text/javascript">
-		set_page_title('Luci ??? cluster ??? failover domains ??? Configure a failover domain');
-	</script>
-</div>
+								<tal:block
+									tal:define="global cur_instance_num python:0" />
 
-<div metal:define-macro="fdom-form">
-	<h2>Failover Domain Form</h2>
-	<tal:block tal:define="fdom python:here.getFdomInfo(modelb, request)">
-		<tal:block metal:use-macro="here/form-macros/macros/fdom-macro" />
-	</tal:block>
-</div>
+								<div tal:attributes="id python: cur_fence_dev_id + '_instances'">
+									<tal:block tal:condition="exists: cur_fencedev/instance_list">
+										<tal:block tal:replace="structure python: '<script type='+chr(0x22)+'text/javascript'+chr(0x22)+'>num_fence_instances[\'' + cur_fence_dev_id + '\'] = ' + str(len(cur_fencedev['instance_list'])) + ';</script>'" />
+										<tal:block tal:repeat="cur_instance cur_fencedev/instance_list">
+											<tal:block
+												tal:define="global cur_fence_instance_id python: cur_fence_dev_id + '_' + str(cur_instance_num)" />
 
-<div metal:define-macro="fdomprocess-form">
-	<h2>Failover Domain Process Form</h2>
-</div>
+											<div class="fence_instance"
+												tal:attributes="
+													name cur_fence_instance_id | nothing;
+													id cur_fence_instance_id | nothing">
 
-<div metal:define-macro="fencedevs-form">
-	<script type="text/javascript">
-		set_page_title('Luci ??? cluster ??? shared fence devices');
-	</script>
+												<form
+													tal:attributes="name cur_fence_instance_id | nothing">
+													<tal:block metal:use-macro="here/fence-macros/macros/fencedev-instance-cond-ladder" />
+												</form>
+												<tal:block
+													tal:define="global cur_instance_num python:cur_instance_num + 1" />
+											</div>
+										</tal:block>
+									</tal:block>
+								</div>
+								<div class="hbSubmit">
+									<input type="button" name="remove_fence_dev"
+										value="Remove this device"
+										tal:attributes="
+											onclick python: 'del_fence(\'' + cur_fence_dev_id + '\')'" />
+									<input tal:condition="cur_fencedev/isShared"
+										name="add_instance" type="button"
+										value="Add an instance"
+										tal:attributes="onclick python: 'add_fence_instance(\'' + cur_fence_dev_id + '\',\'' + cur_fence_type + '\')'" />
+								</div>
+								<tal:block tal:define="global cur_fence_num python: cur_fence_num + 1" />
+							</tal:block>
+						</div>
+					</tal:block>
 
-	<h2>Shared Fence Devices for Cluster: <span tal:replace="request/clustername" /></h2>
+					<tal:block
+						tal:replace="structure python: '<script type='+chr(0x22)+'text/javascript'+chr(0x22)+'>num_fences_level[0] = ' + str(cur_fence_num) + ';</script>'" />
+				</div>
 
-	<tal:block tal:define="
-		global fencedevinfo python: here.getFencesInfo(modelb, request);
-		global fencedevs python: fencedevinfo['fencedevs']" />
+				<div class="fence_control">
+					<a href="javascript:add_node_fence_device(1)">Add a fence device to this level</a>
+				</div>
+			</td>
 
-	<tal:block tal:repeat="fencedev fencedevs">
-		<h3>Agent type: <span tal:content="fencedev/pretty_name"/></h3>
-		<h3>Name: <a class="running" tal:attributes="href fencedev/cfgurl"><span tal:replace="fencedev/name" /></a></h3>
-		<h3>Nodes using this device for fencing:</h3>
-		<ul>
-			<tal:block tal:define="global usednodes python:fencedev['nodesused']"/>
-			<tal:block tal:condition="python: len(usednodes) == 0">
-				<li>No nodes currently employ this fence device</li>
-			</tal:block>
+			<td class="cluster node fence_main fence">
+				<div class="fence_container">
 
-			<tal:block tal:repeat="usednode usednodes">
-				<li><a class="cluster node"
-						tal:attributes="href usednode/nodeurl"
-						tal:content="usednode/nodename" />
-				</li>
-			</tal:block>
-		</ul>
-		<hr/>
-	</tal:block>
-</div>
+				<div id="fence_list_level2" tal:define="global cur_fence_num python: 0">
+					<tal:block tal:condition="exists: fenceinfo/level2">
 
-<div metal:define-macro="fencedevlist-form">
-	<script type="text/javascript">
-		set_page_title('Luci ??? cluster ??? fence devices');
-	</script>
-	<h2>Fence Device List Form</h2>
-</div>
+						<div class="fence_level"
+							tal:repeat="cur_fencedev fenceinfo/level2"
+							tal:attributes="id python: 'fence2_' + str(cur_fence_num)">
 
-<div metal:define-macro="fencedevadd-form">
-	<script type="text/javascript"
-		src="/luci/cluster/fence_device.js">
-	</script>
+							<tal:block tal:define="
+								cur_fence_dev_id python: 'fence2_' + str(cur_fence_num);
+								cur_fence_type cur_fencedev/agent | nothing;
+								cur_fence_level python: 2">
 
-	<script type="text/javascript"
-		src="/luci/homebase/homebase_common.js">
-	</script>
+								<form tal:attributes="name cur_fence_dev_id | string:[unknown]">
+									<tal:block metal:use-macro="here/fence-macros/macros/fencedev-cond-ladder" />
+								</form>
 
-	<script type="text/javascript"
-		src="/luci/cluster/validate_fence.js">
-	</script>
+								<tal:block
+									tal:define="global cur_instance_num python:0" />
 
-	<script type="text/javascript">
-		set_page_title('Luci ??? cluster ??? fence devices - Add a new fence device');
-	</script>
+								<div tal:attributes="id python: cur_fence_dev_id + '_instances'">
+									<tal:block tal:condition="exists: cur_fencedev/instance_list">
+										<tal:block tal:replace="structure python: '<script type='+chr(0x22)+'text/javascript'+chr(0x22)+'>num_fence_instances[\'' + cur_fence_dev_id + '\'] = ' + str(len(cur_fencedev['instance_list'])) + ';</script>'" />
+										<tal:block tal:repeat="cur_instance cur_fencedev/instance_list">
+											<tal:block
+												tal:define="global cur_fence_instance_id python: cur_fence_dev_id + '_' + str(cur_instance_num)" />
 
-	<h2>Add a Sharable Fence Device</h2>
+											<div class="fence_instance"
+												tal:attributes="
+													name cur_fence_instance_id | nothing;
+													id cur_fence_instance_id | nothing">
 
-	<div id="invisible" class="invisible">
-		<tal:block metal:use-macro="here/form-macros/macros/shared-fence-form-list" />
-	</div>
+												<form
+													tal:attributes="name cur_fence_instance_id | nothing">
+													<tal:block metal:use-macro="here/fence-macros/macros/fencedev-instance-cond-ladder" />
+												</form>
+												<tal:block
+													tal:define="global cur_instance_num python:cur_instance_num + 1" />
+											</div>
+										</tal:block>
+									</tal:block>
+								</div>
+								<div class="hbSubmit">
+									<input type="button" name="remove_fence_dev"
+										value="Remove this device"
+										tal:attributes="
+											onclick python: 'del_fence(\'' + cur_fence_dev_id + '\')'" />
+									<input tal:condition="cur_fencedev/isShared"
+										name="add_instance" type="button"
+										value="Add an instance"
+										tal:attributes="onclick python: 'add_fence_instance(\'' + cur_fence_dev_id + '\',\'' + cur_fence_type + '\')'" />
+								</div>
+								<tal:block tal:define="global cur_fence_num python: cur_fence_num + 1" />
+							</tal:block>
+						</div>
+					</tal:block>
 
-	<table id="fence_devices" class="cluster node fence">
-		<tfoot class="fence">
-		<tr class="cluster node fence"><td class="cluster node fence">
-		</td></tr>
-		</tfoot>
-		<tbody class="fence">
-		<tr class="cluster node info_top fence">
-			<td class="cluster node fence">
-				<span class="fence">
-					<strong class="cluster node">Fencing Type</strong>
-				</span>
+					<tal:block
+						tal:replace="structure python: '<script type='+chr(0x22)+'text/javascript'+chr(0x22)+'>num_fences_level[1] = ' + str(cur_fence_num) + ';</script>'" />
+				</div>
+
+				<div class="fence_control">
+					<a href="javascript:add_node_fence_device(2)">Add a fence device to this level</a>
+				</div>
 			</td>
 		</tr>
-		<tr class="cluster node info_top fence">
-			<td class="cluster node fence_main fence">
-				<form name="main_fence_form">
-					<select name="select_div"
-						onchange="swap_fence_div('fence_container',
-									this.options[this.selectedIndex].value)">
-						<tal:block metal:use-macro="here/form-macros/macros/shared-fence-option-list" />
-					</select>
-				</form>
-
-				<form name="fencedevaddform" action="" method="post">
-					<div id="fence_container">
-					</div>
-					<div class="hbSubmit">
+		<tr>
+			<td>
+				<div class="fence_control">
+					<form name="fence1_master" method="post" action="">
+						<input type="hidden" name="clustername"
+							tal:attributes="value request/clustername | nothing" />
+						<input type="hidden" name="nodename"
+							tal:attributes="value request/nodename | nothing" />
+						<input type="hidden" name="fence_level" value="1" />
+						<input type="hidden" name="fence_xml" value="" />
+						<input type="hidden" name="pagetype" value="58" />
 						<input type="button"
-							value="Add this shared fence device"
-							onclick="validate_fence_form(this.form)" />
-
-						<input type="hidden" name="pagetype"
-							value="51" id="pagetype" />
-
-						<input type="hidden" name="clustername" id="pagetype"
-							tal:attributes="value request/clustername" />
-				</form>
+							value="Update main fence properties"
+							onclick="validate_node_fence_form(this.form, 'fence_list_level1')" />
+					</form>
+				</div>
+			</td>
+			<td>
+				<div class="fence_control">
+					<form name="fence2_master" method="post" action="">
+						<input type="hidden" name="clustername"
+							tal:attributes="value request/clustername | nothing" />
+						<input type="hidden" name="nodename"
+							tal:attributes="value request/nodename | nothing" />
+						<input type="hidden" name="fence_level" value="2" />
+						<input type="hidden" name="fence_xml" value="" />
+						<input type="hidden" name="pagetype" value="58" />
+						<input type="button"
+							value="Update backup fence properties"
+							onclick="validate_node_fence_form(this.form, 'fence_list_level2')" />
+					</form>
+				</div>
 			</td>
 		</tr>
 		</tbody>
 	</table>
-
-	<script type="text/javascript">
-		swap_fence_div('fence_container',
-			document.main_fence_form.select_div.options[document.main_fence_form.select_div.selectedIndex].value);
-	</script>
 </div>
 
-<div metal:define-macro="fencedevconfig-form">
+<div metal:define-macro="nodes-form">
+	<script type="text/javascript"
+		src="/luci/cluster/fence_device.js">
+	</script>
 	<script type="text/javascript">
-		set_page_title('Luci ??? cluster ??? fence devices - Configure a fence device');
+		set_page_title('Luci ??? cluster ??? nodes');
 	</script>
 
-	<h3>Configure a Fence Device</h3>
+<div id="node_list">
+	<tal:block tal:define="
+		global ricci_agent ri_agent | python: here.getRicciAgentForCluster(request)" />
 
-	<tal:block tal:define="fencedevs python: here.getFenceInfo(modelb, None)">
+	<tal:block tal:define="
+		global status python: here.getClusterStatus(request, ricci_agent);
+		global nds python: here.getNodesInfo(modelb, status, request)" />
 
-	<tal:block tal:condition="exists: fencedevs/fencedevs">
-		<table class="systemsTable">
-			<thead class="systemsTable">
-				<tr class="systemsTable">
-					<th class="systemsTable" width="100">Name</th>
-					<th class="systemsTable" width="100">Type</th>
-					<th class="systemsTable" width="75">Configure</th>
-				</tr>
-			</thead>
-			<tr class="systemsTable" tal:repeat="f fencedevs/fencedevs">
-				<td class="systemsTable" tal:content="f/name | string:[unknown]"/>
-				<td class="systemsTable" tal:content="f/agent | string:[unknown]"/>
-				<td tal:condition="python: 'name' in f and 'clustername' in request">
-					<a class="cluster"
+	<div tal:repeat="nd nds">
+		<tal:block
+			tal:define="global node_class python: 'cluster node ' + ((nd['status'] == '0' and 'node_active' or (nd['status'] == '1' and 'node_inactive' or 'node_unknown')))" />
+		<table class="cluster" width="100%">
+			<tr class="node info_top">
+				<td class="node node_name">
+					<strong>Node Name:</strong>
+					<a 	tal:content="nd/nodename"
 						tal:attributes="
-							href python:str('/luci/cluster/index_html?pagetype=54&fencename=' + f['name'] + '&clustername=' + request['clustername'])">
-						configure
-					</a>
+							href nd/configurl;
+							class python: node_class"
+					/>
 				</td>
-			</tr>
-		</table>
-	</tal:block>
-	</tal:block>
-</div>
-
-<div metal:define-macro="fencedev-cond-ladder">
-	<tal:block tal:condition="python: cur_fence_type == 'fence_apc'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-apc" />
-	</tal:block>
-
-	<tal:block tal:condition="python: cur_fence_type == 'fence_mcdata'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-mcdata" />
-	</tal:block>
-
-	<tal:block tal:condition="python: cur_fence_type == 'fence_wti'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-wti" />
-	</tal:block>
-
-	<tal:block tal:condition="python: cur_fence_type == 'fence_ilo'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-ilo" />
-	</tal:block>
-
-	<tal:block tal:condition="python: cur_fence_type == 'fence_drac'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-drac" />
-	</tal:block>
-
-	<tal:block tal:condition="python: cur_fence_type == 'fence_rsa'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-rsa" />
-	</tal:block>
-
-	<tal:block tal:condition="python: cur_fence_type == 'fence_brocade'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-brocade" />
-	</tal:block>
-
-	<tal:block tal:condition="python: cur_fence_type == 'fence_sanbox2'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-sanbox2" />
-	</tal:block>
-
-	<tal:block tal:condition="python: cur_fence_type == 'fence_vixel'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-vixel" />
-	</tal:block>
-
-	<tal:block tal:condition="python: cur_fence_type == 'fence_gnbd'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-gnbd" />
-	</tal:block>
 
-	<tal:block tal:condition="python: cur_fence_type == 'fence_egenera'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-egenera" />
-	</tal:block>
+				<td class="node node_action" tal:condition="python: nd['status'] == '0' or nd['status'] == '1'">
+					<form method="post">
+						<select class="node" name="gourl">
+							<option value="">Choose a Task...</option>
+							<option tal:attributes="value nd/jl_url">
+								<span tal:condition="python: nd['status'] == '0'" tal:replace="string:Have node leave cluster" />
+								<span tal:condition="python: nd['status'] == '1'" tal:replace="string:Have node join cluster" />
+							</option>
+							<option value="">----------</option>
+							<option tal:attributes="value nd/fence_it_url">Fence this node</option>
+							<option tal:attributes="value nd/reboot_url">Reboot this node</option>
+							<option value="">----------</option>
+							<option tal:attributes="value nd/delete_url">Delete this node</option>
+						</select>
+						<input type="button" value="Go"
+							onclick="if (this.form.gourl[this.form.gourl.selectedIndex].value && confirm(this.form.gourl[this.form.gourl.selectedIndex].text + '?')) return dropdown(this.form.gourl)" />
+					</form>
+				</td>
+				<td class="node node_action" tal:condition="python: nd['status'] != '0' and nd['status'] != '1'">
+					<form method="post">
+						<select class="node" name="gourl">
+							<option value="">Choose a Task...</option>
+							<option tal:attributes="value nd/fence_it_url | nothing">Fence this node</option>
+							<option tal:attributes="value nd/force_delete_url| nothing">Force the deletion of this node</option>
+						</select>
+						<input type="button" value="Go"
+							onclick="if (this.form.gourl[this.form.gourl.selectedIndex].value && confirm(this.form.gourl[this.form.gourl.selectedIndex].text + '?')) return dropdown(this.form.gourl)" />
+					</form>
+				</td>
+			</tr>
 
-	<tal:block tal:condition="python: cur_fence_type == 'fence_bladecenter'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-bladecenter" />
-	</tal:block>
+			<tr class="node info_middle">
+				<td class="node_status" colspan="2">
+					<strong class="cluster node">Status:</strong>
+					<span tal:replace="nd/status_str"/>
+				</td>
+			</tr>
 
-	<tal:block tal:condition="python: cur_fence_type == 'fence_bullpap'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-bullpap" />
-	</tal:block>
+			<tr class="node info_middle"
+				tal:condition="nd/gulm_lockserver">
+				<td class="node node_status" colspan="2">
+					This node is a GULM lock server.
+				</td>
+			</tr>
 
-	<tal:block tal:condition="python: cur_fence_type == 'fence_rps10'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-rps10" />
-	</tal:block>
+			<tr class="node info_bottom">
+				<td class="node node_services">
+					<strong class="cluster node">Services on this Node:</strong>
+					<ul class="cluster node">
+						<li tal:condition="python: len(nd['currentservices']) == 0">
+							No cluster services are currently running here
+						</li>
+						<li class="cluster_service cluster node"
+							tal:repeat="svc nd/currentservices">
+							<a class="cluster running"
+								tal:content="svc/servicename"
+								tal:attributes="href svc/svcurl" />
+						</li>
+					</ul>
+				</td>
 
-	<tal:block tal:condition="python: cur_fence_type == 'fence_ipmilan'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-ipmilan" />
-	</tal:block>
+				<td class="node node_fdom">
+					<strong class="cluster node">Failover Domain Membership:</strong>
+					<ul class="cluster node">
+						<li tal:condition="python: len(nd['fdoms']) == 0">
+							This node has no failover domain membership
+						</li>
+						<li class="node_fdom" tal:repeat="fdom nd/fdoms">
+							<a class="cluster node"
+								tal:content="fdom/name"
+								tal:attributes="href fdom/fdomurl" />
+						</li>
+					</ul>
+				</td>
+			</tr>
 
-	<tal:block tal:condition="python: cur_fence_type == 'fence_xvm'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-xvm" />
-	</tal:block>
+			<tr class="node info_bottom">
+				<td class="node node_fencing">
+					<a class="cluster node"
+						tal:attributes="href nd/fenceurl">
+						Manage Fencing for this Node
+					</a>
+				</td>
+				<td class="node node_logs">
+					<a class="cluster node"
+						onClick="return popup_log(this, 'notes')"
+						tal:attributes="href nd/logurl">
+						Show recent log activity for this node
+					</a>
+				</td>
+			</tr>
+		</table>
+		<hr/>
+	</div>
+</div>
+</div>
 
-	<tal:block tal:condition="python: cur_fence_type == 'fence_scsi'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-scsi" />
-	</tal:block>
+<div metal:define-macro="nodelist-form">
+	<h2>Node List Form</h2>
+ </div>
 
-	<tal:block tal:condition="python: cur_fence_type == 'fence_manual'">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-manual" />
-	</tal:block>
+<div metal:define-macro="nodegrid-form">
+	<h2>Node Grid Form</h2>
+</div>
 
-	<tal:block tal:condition="exists:cur_fencedev/unknown">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-unknown" />
-	</tal:block>
+<div metal:define-macro="nodeconfig-form">
+	<h2>Node Configuration Form</h2>
 </div>
 
+<div metal:define-macro="nodelogs-form">
+	<h2>Recent Log Activity for <span tal:replace="request/nodename"/></h2>
+	<hr/>
+	<span tal:replace="structure python: here.getSystemLogs(request)"/>
+</div>
 
-<div metal:define-macro="fencedev-form">
+<div metal:define-macro="nodeadd-form">
 	<script type="text/javascript">
-		set_page_title('Luci ??? cluster ??? fence devices - Configure a fence device');
+		set_page_title('Luci ??? cluster ??? Add a new cluster node');
 	</script>
 
 	<script type="text/javascript"
@@ -5276,161 +1076,213 @@
 	</script>
 
 	<script type="text/javascript"
-		src="/luci/cluster/validate_fence.js">
+		src="/luci/homebase/validate_cluster_add.js">
 	</script>
 
-	<h2>Fence Device Form</h2>
-
-	<div class="cluster fencedev fence">
-		<tal:block tal:define="
-			global cur_fencename request/fencename | nothing;
-			global cur_cluster request/clustername | nothing;
-			global cur_fence_type nothing" />
-
-		<tal:block tal:condition="cur_fencename">
-			<tal:block tal:define="
-					global cur_fencedev python:here.getFence(modelb,request);
-					global cur_fence_type cur_fencedev/agent | nothing" />
-		</tal:block>
-
-		<form name="fencedeveditform" action="" method="post">
-			<tal:block
-				metal:use-macro="here/form-macros/macros/fencedev-cond-ladder" />
+	<form name="add_node" action="" method="post"
+		tal:define="
+			global add_cluster request/SESSION/add_node | nothing;
+			global cur_cluster_name add_cluster/name | request/clustername | request/form/clustername | nothing">
 
-			<input type="hidden" name="pagetype" value="54" />
-			<input type="hidden" name="clustername"
-				tal:attributes="value request/clustername" />
-			<input type="hidden" name="fencename"
-				tal:attributes="value request/fencename" />
-
-			<div class="hbSubmit">
-				<input type="button" value="Update this fence device"
-					onclick="validate_fence_form(this.form)" />
-			</div>
-		</form>
+		<h2>Add a node to <span tal:replace="cur_cluster_name | string:this cluster" /></h2>
 
-		<form name="fencedevdeleteform" action="" method="post">
-			<input type="hidden" name="pagetype" value="57" />
-			<input type="hidden" name="clustername"
-				tal:attributes="value request/clustername" />
-			<input type="hidden" name="fencename"
-				tal:attributes="value request/fencename" />
-			<input type="hidden" name="orig_name"
-				tal:attributes="value request/fencename" />
-			<div class="hbSubmit">
-				<input type="button" value="Delete this fence device"
-					onclick="if (confirm('Delete this fence device?')) this.form.submit()" />
-			</div>
-		</form>
-	</div>
-</div>
+		<input type="hidden" name="addnode" value="1" />
 
+		<input type="hidden" name="clustername"
+			tal:attributes="value cur_cluster_name | string:[unknown]" />
 
-<div metal:define-macro="fencedevprocess-form">
-	<h2>Fence Device Process Form</h2>
-</div>
+		<input name="pagetype" type="hidden"
+			tal:attributes="value request/form/pagetype | request/pagetype | string:15" />
 
-<div metal:define-macro="system-svc-form">
-	<script type="text/javascript"
-		src="conga_ajax.js">
-	</script>
-	<script type="text/javascript"
-		src="/luci/cluster/validate_sys_svc.js">
-	</script>
-	<h2>Configure System Services</h2>
+		<input name="cluster_os" type="hidden"
+			tal:attributes="value add_cluster/cluster_os | nothing" />
 
-	<form name="svcform" method="post" action="">
+		<table id="systemsTable" class="systemsTable" cellspacing="0">
+			<thead class="systemsTable">
+				<tr class="systemsTable">
+					<th class="systemsTable">Node Hostname</th>
+					<th class="systemsTable">Root Password</th>
+					<tal:block tal:condition="add_cluster">
+						<th class="systemsTable">Key ID</th>
+						<th class="systemsTable">Trust</th>
+					</tal:block>
+					<th></th>
+				</tr>
+			</thead>
 
-	<input type="hidden" name="pagetype"
-		tal:attributes="value request/pagetype | nothing" />
+			<tfoot class="systemsTable">
+				<tr class="systemsTable"><td class="systemsTable" colspan="2">
+					<div class="systemsTableEnd">
+						<input type="button" value="Add another node"
+							onClick="addSystem(this.form)" />
+					</div>
+				</td></tr>
+				<tr class="systemsTable"><td colspan="2" class="systemsTable">
+					<input type="hidden" name="trust_shown" value="1"
+						tal:condition="add_cluster" />
+					<ul class="vanilla deploy">
+						<li class="vanilla">
+							<input type="radio" name="download_pkgs" value="1"
+								tal:attributes="checked python: (not add_cluster or not 'download_pkgs' in add_cluster or add_cluster['download_pkgs'] != 0) and 'checked' or ''" />
+							Download packages
+						</li>
+						<li class="vanilla">
+							<input type="radio" name="download_pkgs" value="0"
+								tal:attributes="checked python: (add_cluster and 'download_pkgs' in add_cluster and add_cluster['download_pkgs'] == 0) and 'checked' or ''" />
+							Use locally installed packages.
+						</li>
+					</ul>
+				</td></tr>
+				<tr class="systemsTable"><td colspan="2" class="systemsTable">
+					<input type="checkbox" name="enable_storage"
+						tal:attributes="
+							checked add_cluster/shared_storage | string:checked" />
+					Enable Shared Storage Support
+				</td></tr>
+				<tr class="systemsTable"><td colspan="2" class="systemsTable">
+					<ul class="vanilla">
+						<li class="vanilla">
+							<input name="check_certs" type="checkbox"
+								id="view_certs"
+								onchange="view_certs_only(this.form, this.checked)" />
+							View system certificates before sending any passwords.
+						</li>
+						<li class="vanilla"
+							tal:attributes="id python: (not add_cluster or ('nodes' in add_cluster and len(add_cluster['nodes']) < 2)) and 'allSameDiv'">
+							<input type="checkbox"
+								name="allSameCheckBox" id="allSameCheckBox"
+								onClick="allPasswdsSame(this.form)"
+								tal:attributes="checked python: (add_cluster and add_cluster['identical_passwds']) and 'checked'"
+							/>
+							Check if node passwords are identical.
+						</li>
+					</ul>
+				</td></tr>
+			</tfoot>
 
-	<input type="hidden" name="systemname"
-		tal:attributes="value request/systemname | nothing" />
+			<tal:block tal:define="global cur_sysnum python:0" />
 
-	<table class="systemsTable"
-		tal:define="svcinfo python:'systemname' in request and here.get_sys_svc_list(request, request['systemname']) or []">
-		<tr class="systemsTable">
-			<th class="systemsTable">Name</th>
-			<th class="systemsTable">State</th>
-			<th class="systemsTable">Enabled at boot</th>
-			<th></th>
-		</tr>
+			<tbody class="systemsTable" id="sys_tbody">
+			 <tal:block
+				tal:condition="exists: add_cluster/nodes"
+				tal:repeat="cur_sys add_cluster/nodes">
+				<tr class="systemsTable"
+					tal:attributes="id python: '__SYSTEM_ROW_%d' % cur_sysnum"
+					tal:define="sys python: add_cluster['nodes'][cur_sys]">
+					<td class="systemsTable">
+						<input type="text"
+							tal:attributes="
+								value sys/host | nothing;
+								id python: '__SYSTEM%d:Addr' % cur_sysnum;
+								name python: '__SYSTEM%d:Addr' % cur_sysnum;
+								class python: 'hbInputSys' + ('errors' in sys and ' error' or '');
+								disabled python: ('auth' in sys and sys['host'].count('.') > 0) and 1 or 0"
+						 />
+					</td>
+					<td class="systemsTable">
+						<tal:block tal:condition="not: exists: sys/auth">
+							<input type="password"
+								autocomplete="off"
+								onchange="pwd0Change(this.form)"
+								tal:attributes="
+									value nothing;
+									class python: 'hbInputPass' + ('errors' in sys and ' error' or '');
+									id python: '__SYSTEM%d:Passwd' % cur_sysnum;
+									name python: '__SYSTEM%d:Passwd' % cur_sysnum" />
+						</tal:block>
 
-		<tr tal:repeat="s svcinfo">
-			<td class="systemsTable">
-				<span tal:content="s/name |string:[unknown]"
-					tal:attributes="title s/desc | nothing" />
-			</td>
+						<tal:block tal:condition="exists: sys/auth">
+							<input type="text" onchange="pwd0Change(this.form)"
+								disabled="disabled" value="[authenticated]"
+								tal:attributes="
+									class python: 'hbInputPass' + ('errors' in sys and ' error' or '');
+									id python: '__SYSTEM%d:Passwd' % cur_sysnum;
+									name python: '__SYSTEM%d:Passwd' % cur_sysnum" />
+						</tal:block>
+					</td>
+					<td tal:condition="add_cluster" class="systemsTable">
+						<img
+							tal:attributes="
+								src python: 'trusted' in sys and 'lock-ok.png' or ('fp' in sys and 'lock-closed.png' or 'lock-open.png');
+								title sys/fp | string:no key fingerprint available" />
+						<input type="hidden"
+							tal:condition="exists: sys/fp"
+							tal:attributes="
+								id python: '__SYSTEM%dFingerprint' % cur_sysnum;
+								name python: '__SYSTEM%dFingerprint' % cur_sysnum;
+								value sys/fp | nothing" />
+					</td>
+					<td tal:condition="add_cluster" class="systemsTable">
+						<input type="checkbox" tal:attributes="
+							checked exists: sys/fp;
+							id python: '__SYSTEM%dTrusted' % cur_sysnum;
+							name python: '__SYSTEM%dTrusted' % cur_sysnum;
+							disabled python: 'trusted' in sys"
+						/>
+					</td>
+					<td class="systemsTable">
+						<img src="delete-row.png" class="deleteRow"
+							title="delete this row"
+							tal:attributes="
+								onclick python: 'delete_element_id(\'__SYSTEM_ROW_%d\')' % cur_sysnum" />
+					</td>
+				</tr>
+				<tal:block
+					tal:define="global cur_sysnum python: cur_sysnum + 1" />
+			 </tal:block>
 
-			<td class="systemsTable">
-				<span
-					tal:content="s/state |string:[unknown]"
-					tal:attributes="id python: '__STATUS__' + s['name']" />
-			</td>
+				<tr class="systemsTable" id="__SYSTEM_ROW_0"
+					tal:condition="not: add_cluster">
+					<td class="systemsTable">
+						<input class="hbInputSys" type="text"
+							id="__SYSTEM0:Addr" name="__SYSTEM0:Addr" />
+					</td>
+					<td class="systemsTable">
+						<input type="password"
+							onchange="pwd0Change(this.form)"
+							class="hbInputPass" autocomplete="off"
+							id="__SYSTEM0:Passwd" name="__SYSTEM0:Passwd" />
+					</td>
+					<td class="systemsTable">
+						<img src="delete-row.png" class="deleteRow"
+							title="delete this row"
+							onclick="delete_element_id('__SYSTEM_ROW_0')" />
+					</td>
+					<tal:block tal:define="global cur_sysnum python:1" />
+				</tr>
+			</tbody>
+		</table>
 
-			<td class="systemsTable">
-				<input type="checkbox"
-					tal:attributes="
-						name s/name;
-						id s/name;
-						checked python: s['enabled'] and 'checked' or ''"
-				/>
-			</td>
+		<input name="numStorage" id="numStorage" type="hidden"
+			tal:attributes="value cur_sysnum" />
 
-			<td class="systemsTable"
-				tal:define="
-					restart_disabled python:not s['running'] and 'disabled' or '';
-					start_disabled python:s['running'] and 'disabled' or '';
-					stop_disabled python:not s['running'] and 'disabled' or ''">
-
-				<input type="button"
-					title="start this service"
-					class="svc_control svc_control_start"
-					onfocus="if (this.blur) this.blur()"
-					tal:attributes="
-						onclick python: 'update_sys_svc(\'' + s['starturl'] + '\')';
-						id python: '__START__' + s['name'];
-						name python: '__START__' + s['name'];
-						disabled start_disabled" />
-
-				<input type="button"
-					title="restart this service"
-					class="svc_control svc_control_restart"
-					onfocus="if (this.blur) this.blur()"
-					tal:attributes="
-						onclick python: 'update_sys_svc(\'' + s['restarturl'] + '\')';
-						id python: '__RESTART__' + s['name'];
-						name python: '__RESTART__' + s['name'];
-						disabled restart_disabled" />
-
-				<input type="button"
-					title="stop this service"
-					class="svc_control svc_control_stop"
-					onfocus="if (this.blur) this.blur()"
-					tal:attributes="
-						onclick python: 'update_sys_svc(\'' + s['stopurl'] + '\')';
-						id python: '__STOP__' + s['name'];
-						name python: '__STOP__' + s['name'];
-						disabled stop_disabled" />
-			</td>
-		</tr>
-		<tr class="systemsTable">
-			<td>
-				<div class="hbSubmit">
-					<input type="submit" value="Update" />
-				</div>
-			</td>
-		</tr>
-	</table>
+		<div class="hbSubmit" id="hbSubmit">
+			<input type="button" name="Submit" value="Submit"
+				onClick="validateForm(this.form)" />
+		</div>
 	</form>
-</div>
 
-<div metal:define-macro="get-cluster-members-form">
-	<tal:block tal:define="ret python: here.get_cluster_nodes_async(request)" />
+	<div tal:condition="add_cluster">
+		<tal:block
+			tal:define="x python: request.SESSION.delete('add_node')" />
+	</div>
 </div>
 
-<div metal:define-macro="system-svc-update-form">
-	<tal:block tal:define="ret python: here.validate_manage_svc(request)" />
+<div metal:define-macro="nodeprocess-form">
+	<tal:block
+		tal:define="result python: here.nodeTaskProcess(modelb, request)">
+
+		<div id="errmsgsdiv" class="errmsgs"
+			tal:condition="python: result and len(result) > 1 and 'errors' in result[1]">
+			<p class="errmsgs">The following errors occurred:</p>
+
+			<ul class="statusmsg">
+				<tal:block tal:repeat="e python: result[1]['errors']">
+					<li class="statusmsg" tal:content="python:e" />
+				</tal:block>
+			</ul>
+		</div>
+	</tal:block>
 </div>
 
 <div metal:define-macro="conf_editor-form">
@@ -5461,6 +1313,15 @@
 	</form>
 </div>
 
+<div metal:define-macro="clusterprocess-form">
+	<tal:block
+		tal:define="result python: here.clusterTaskProcess(modelb, request)"/>
+	<h2>Cluster Process Form</h2>
+</div>
+
+<div metal:define-macro="get-cluster-members-form">
+	<tal:block tal:define="ret python: here.get_cluster_nodes_async(request)" />
+</div>
 
 </body>
 </html>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2007-08-09 20:26 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2007-08-09 20:26 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Branch: 	RHEL5
Changes by:	rmccabe at sourceware.org	2007-08-09 20:26:12

Modified files:
	luci/cluster   : form-macros 

Log message:
	Do not report cman is not running if 'service cman status' returns non-zero on account of fence_xvmd not running

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.90.2.29&r2=1.90.2.30

--- conga/luci/cluster/form-macros	2007/08/09 04:34:49	1.90.2.29
+++ conga/luci/cluster/form-macros	2007/08/09 20:26:11	1.90.2.30
@@ -3291,21 +3291,28 @@
 			</td></tr>
 		</tfoot>
 		<tbody class="systemsTable">
-			<tr class="systemsTable" tal:repeat="demon nodeinfo/d_states">
-				<td class="systemsTable"><span tal:replace="demon/name"/></td>
-				<td class="systemsTable"><span tal:replace="python: demon['running'] == 'true' and 'yes' or 'no'" /></td>
+			<tr class="systemsTable" tal:repeat="daemon nodeinfo/d_states">
+				<td class="systemsTable"><span tal:replace="daemon/name"/></td>
+				<td class="systemsTable">
+					<tal:block tal:condition="python:daemon['name'] == 'cman'">
+						<span tal:replace="python: (daemon['running'] == 'true' or nodeinfo['nodestate'] == '0') and 'yes' or 'no'" />
+					</tal:block>
+					<tal:block tal:condition="python:daemon['name'] != 'cman'">
+						<span tal:replace="python: daemon['running'] == 'true' and 'yes' or 'no'" />
+					</tal:block>
+				</td>
 				<td class="systemsTable">
 					<input type="hidden" tal:attributes="
-						name python: '__daemon__:' + demon['name'] + ':';
-						value demon/name" />
+						name python: '__daemon__:' + daemon['name'] + ':';
+						value daemon/name" />
 
 					<input type="hidden" tal:attributes="
-						name python: '__daemon__:' + demon['name'] + ':';
-						value python: demon['enabled'] == 'true' and '1' or '0'" />
+						name python: '__daemon__:' + daemon['name'] + ':';
+						value python: daemon['enabled'] == 'true' and '1' or '0'" />
 
 					<input type="checkbox" tal:attributes="
-						name python: '__daemon__:' + demon['name'] + ':';
-						checked python: demon['enabled'] == 'true' and 'checked'" />
+						name python: '__daemon__:' + daemon['name'] + ':';
+						checked python: daemon['enabled'] == 'true' and 'checked'" />
 				</td>
 			</tr>
 		</tbody>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2007-07-26 20:31 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2007-07-26 20:31 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Branch: 	RHEL5
Changes by:	rmccabe at sourceware.org	2007-07-26 20:31:06

Modified files:
	luci/cluster   : form-macros 

Log message:
	Allow fence devices to be configured for nodes that are unresponsive

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.90.2.26&r2=1.90.2.27

--- conga/luci/cluster/form-macros	2007/07/26 04:16:46	1.90.2.26
+++ conga/luci/cluster/form-macros	2007/07/26 20:31:05	1.90.2.27
@@ -3191,9 +3191,15 @@
 		</tr>
 	</table>
 
-	<tal:block tal:condition="python: not 'ricci_error' in nodeinfo">
 	<hr/>
 
+	<tal:block tal:condition="python: 'ricci_error' in nodeinfo">
+		<strong class="errmsgs">
+			The ricci agent for this node is unresponsive. Node-specific information is not available at this time.
+		</strong>
+	</tal:block>
+
+	<tal:block tal:condition="python: not 'ricci_error' in nodeinfo">
 	<tal:block
 		tal:condition="python: nodeinfo['nodestate'] == '0' or nodeinfo['nodestate'] == '1'">
 
@@ -3244,8 +3250,9 @@
 
 	<input type="hidden" name="pagetype" value="55" />
 	</form>
-	<hr/>
 	</tal:block>
+</tal:block>
+	<hr/>
 
 	<div>
 		<h3>Services on this Node</h3>
@@ -3503,14 +3510,6 @@
 		</tr>
 		</tbody>
 	</table>
-	</tal:block>
-
-	<tal:block tal:condition="python: 'ricci_error' in nodeinfo">
-		<hr/>
-		<strong class="errmsgs">
-			The ricci agent for this node is unresponsive. Node-specific information is not available at this time.
-		</strong>
-	</tal:block>
 </div>
 
 <div metal:define-macro="nodes-form">



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2007-06-12 15:33 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2007-06-12 15:33 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Branch: 	EXPERIMENTAL
Changes by:	rmccabe at sourceware.org	2007-06-12 15:33:52

Modified files:
	luci/cluster   : form-macros 

Log message:
	Fix 241706: Eliminate confusion in add fence flow

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&only_with_tag=EXPERIMENTAL&r1=1.198.2.5&r2=1.198.2.6

--- conga/luci/cluster/form-macros	2007/06/12 15:21:46	1.198.2.5
+++ conga/luci/cluster/form-macros	2007/06/12 15:33:52	1.198.2.6
@@ -3366,8 +3366,7 @@
 				</div>
 
 				<div class="fence_control">
-					<input type="button" value="Add a fence to this level"
-						onclick="add_node_fence_device(1)" />
+					<a href="javascript:add_node_fence_device(1)">Add a fence device to this level</a>
 				</div>
 			</td>
 
@@ -3435,8 +3434,7 @@
 				</div>
 
 				<div class="fence_control">
-					<input type="button" value="Add a fence to this level"
-						onclick="add_node_fence_device(2)" />
+					<a href="javascript:add_node_fence_device(2)">Add a fence device to this level</a>
 				</div>
 			</td>
 		</tr>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2007-02-28 21:54 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2007-02-28 21:54 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2007-02-28 21:54:05

Modified files:
	luci/cluster   : form-macros 

Log message:
	bz230461

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.194&r2=1.195

--- conga/luci/cluster/form-macros	2007/02/24 07:02:42	1.194
+++ conga/luci/cluster/form-macros	2007/02/28 21:54:05	1.195
@@ -268,7 +268,9 @@
 					</ul>
 				</td></tr>
 				<tr class="systemsTable"><td colspan="2" class="systemsTable">
-					<input type="checkbox" name="enable_storage" />
+					<input type="checkbox" name="enable_storage"
+						tal:attributes="
+							checked add_cluster/shared_storage | nothing" />
 					Enable Shared Storage Support
 				</td></tr>
 				<tr class="systemsTable"><td colspan="2" class="systemsTable">



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2007-02-28 21:42 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2007-02-28 21:42 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Branch: 	RHEL4
Changes by:	rmccabe at sourceware.org	2007-02-28 21:42:22

Modified files:
	luci/cluster   : form-macros 

Log message:
	bz 230461

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.176.2.13&r2=1.176.2.14

--- conga/luci/cluster/form-macros	2007/02/20 23:09:37	1.176.2.13
+++ conga/luci/cluster/form-macros	2007/02/28 21:42:22	1.176.2.14
@@ -268,7 +268,9 @@
 					</ul>
 				</td></tr>
 				<tr class="systemsTable"><td colspan="2" class="systemsTable">
-					<input type="checkbox" name="enable_storage" />
+					<input type="checkbox" name="enable_storage"
+						tal:attributes="
+							checked add_cluster/shared_storage | nothing" />
 					Enable Shared Storage Support
 				</td></tr>
 				<tr class="systemsTable"><td colspan="2" class="systemsTable">



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2007-02-14 15:06 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2007-02-14 15:06 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Branch: 	RHEL4
Changes by:	rmccabe at sourceware.org	2007-02-14 15:06:15

Modified files:
	luci/cluster   : form-macros 

Log message:
	Fix agent type for xvm and scsi reservation fencing so they can be added as shared fence devices

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.176.2.9&r2=1.176.2.10

--- conga/luci/cluster/form-macros	2007/02/12 23:28:15	1.176.2.9
+++ conga/luci/cluster/form-macros	2007/02/14 15:06:15	1.176.2.10
@@ -2308,7 +2308,7 @@
 		</tal:block>
 
 		<input type="hidden" name="sharable" value="1" />
-		<input type="hidden" name="fence_type" value="xvm" />
+		<input type="hidden" name="fence_type" value="fence_xvm" />
 	</div>
 </div>
 
@@ -2339,7 +2339,7 @@
 		</tal:block>
 
 		<input type="hidden" name="sharable" value="1" />
-		<input type="hidden" name="fence_type" value="scsi" />
+		<input type="hidden" name="fence_type" value="fence_scsi" />
 	</div>
 </div>
 



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2007-02-14 15:04 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2007-02-14 15:04 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2007-02-14 15:04:34

Modified files:
	luci/cluster   : form-macros 

Log message:
	Fix agent type for xvm and scsi reservation fencing so they can be added as shared fence devices

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.187&r2=1.188

--- conga/luci/cluster/form-macros	2007/02/12 23:26:54	1.187
+++ conga/luci/cluster/form-macros	2007/02/14 15:04:34	1.188
@@ -2308,7 +2308,7 @@
 		</tal:block>
 
 		<input type="hidden" name="sharable" value="1" />
-		<input type="hidden" name="fence_type" value="xvm" />
+		<input type="hidden" name="fence_type" value="fence_xvm" />
 	</div>
 </div>
 
@@ -2339,7 +2339,7 @@
 		</tal:block>
 
 		<input type="hidden" name="sharable" value="1" />
-		<input type="hidden" name="fence_type" value="scsi" />
+		<input type="hidden" name="fence_type" value="fence_scsi" />
 	</div>
 </div>
 



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2007-02-09 20:33 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2007-02-09 20:33 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Branch: 	RHEL4
Changes by:	rmccabe at sourceware.org	2007-02-09 20:33:21

Modified files:
	luci/cluster   : form-macros 

Log message:
	Fix a bug that showed up when adding a new fdom.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.176.2.7&r2=1.176.2.8

--- conga/luci/cluster/form-macros	2007/02/09 18:32:03	1.176.2.7
+++ conga/luci/cluster/form-macros	2007/02/09 20:33:21	1.176.2.8
@@ -4576,7 +4576,9 @@
 	</script>
 
 	<h2>Add a Failover Domain</h2>
-	<tal:block metal:use-macro="here/form-macros/macros/fdom-macro" />
+	<tal:block tal:define="fdom python:{}">
+		<tal:block metal:use-macro="here/form-macros/macros/fdom-macro" />
+	</tal:block>
 </div>
 
 <div metal:define-macro="fdomconfig-form">



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2007-02-09 20:32 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2007-02-09 20:32 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2007-02-09 20:32:52

Modified files:
	luci/cluster   : form-macros 

Log message:
	Fix a bug that showed up when adding a new fdom.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.185&r2=1.186

--- conga/luci/cluster/form-macros	2007/02/09 18:30:43	1.185
+++ conga/luci/cluster/form-macros	2007/02/09 20:32:52	1.186
@@ -4576,7 +4576,9 @@
 	</script>
 
 	<h2>Add a Failover Domain</h2>
-	<tal:block metal:use-macro="here/form-macros/macros/fdom-macro" />
+	<tal:block tal:define="fdom python:{}">
+		<tal:block metal:use-macro="here/form-macros/macros/fdom-macro" />
+	</tal:block>
 </div>
 
 <div metal:define-macro="fdomconfig-form">



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2007-02-02  1:03 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2007-02-02  1:03 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2007-02-02 01:03:46

Modified files:
	luci/cluster   : form-macros 

Log message:
	RHEL4 multicast option is boolean and requires an address if true.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.173&r2=1.174

--- conga/luci/cluster/form-macros	2007/02/02 00:11:05	1.173
+++ conga/luci/cluster/form-macros	2007/02/02 01:03:46	1.174
@@ -986,7 +986,12 @@
 							onClick="disable_mcast('mcast_address');"
 							tal:attributes="checked python: clusterinfo['is_mcast'] != 'True'"
 						/>
-						Let cluster choose the multicast address
+						<tal:block tal:condition="python:os_version == 'rhel4'">
+							Do not use multicast
+						</tal:block>
+						<tal:block tal:condition="python:os_version != 'rhel4'">
+							Let cluster choose the multicast address
+						</tal:block>
 					</td>
 				</tr>
 
@@ -997,12 +1002,20 @@
 							tal:attributes="checked python: clusterinfo['is_mcast'] == 'True'"
 
 						/>
-						Specify the multicast address manually
+						<tal:block tal:condition="python:os_version == 'rhel4'">
+							Use multicast
+						</tal:block>
+						<tal:block tal:condition="python:os_version != 'rhel4'">
+							Specify the multicast address manually
+						</tal:block>
 					</td>
 				</tr>
 
 				<tr class="systemsTable">
-					<td class="systemsTable" colspan="2">
+					<td class="systemsTable">
+						Multicast address
+					</td>
+					<td class="systemsTable">
 						<input type="text" name="mcast_address" id="mcast_address"
 							tal:attributes="
 								disabled python: clusterinfo['is_mcast'] != 'True' and '1' or '0';



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2007-01-30 21:06 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2007-01-30 21:06 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2007-01-30 21:06:12

Modified files:
	luci/cluster   : form-macros 

Log message:
	Fix for VM forms

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.164&r2=1.165

--- conga/luci/cluster/form-macros	2007/01/29 16:56:50	1.164
+++ conga/luci/cluster/form-macros	2007/01/30 21:06:12	1.165
@@ -3650,7 +3650,8 @@
 </div>
 
 <div metal:define-macro="xenvmadd-form">
-  <form method="get" action="" tal:attributes="action python:request['baseurl'] + '?clustername=' + request['clustername'] + '&pagetype=29'">
+  <span tal:define="global vmforminfo python: here.getXenVMInfo(modelb, request)/>
+  <form method="get" action="" tal:attributes="action vmforminfo/formurl">
   <h4>Path to configuration file: </h4><input type="text" name="xenvmpath" value=""/>
   <h4>Name of configuration file: </h4><input type="text" name="xenvmname" value=""/>
   <input type="submit" value="Create Xen VM"/>
@@ -3660,7 +3661,7 @@
 <div metal:define-macro="xenvmconfig-form">
   <h4>Properties for Xen VM <font color="green"><span tal:content="request/servicename"/></font></h4>
   <span tal:define="global xeninfo python:here.getXenVMInfo(modelb, request)">
-  <form method="get" action="" tal:attributes="action python:request['baseurl'] + '?clustername=' + request['clustername'] + '&pagetype=29&servicename=' + request['servicename']">
+  <form method="get" action="" tal:attributes="action xeninfo/formurl">
   <h4>Path to configuration file: </h4><input type="text" name="xenvmpath" value="" tal:attributes="value xeninfo/path"/>
   <h4>Name of configuration file: </h4><input type="text" name="xenvmname" value="" tal:attributes="value xeninfo/name"/>
   <input type="button" value="Delete"/>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2007-01-26 16:53 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2007-01-26 16:53 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2007-01-26 16:53:55

Modified files:
	luci/cluster   : form-macros 

Log message:
	confirm cluster (restart, start, stop, delete) and node (join, leave, fence, reboot, etc.) when selected

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.161&r2=1.162

--- conga/luci/cluster/form-macros	2007/01/25 21:03:47	1.161
+++ conga/luci/cluster/form-macros	2007/01/26 16:53:53	1.162
@@ -92,7 +92,7 @@
 		</td>
 
 		<td class="cluster cluster_action">
-			<form method="post" onSubmit="return dropdown(this.gourl)">
+			<form method="post">
 				<select name="gourl" id="cluster_action" class="cluster">
 					<option class="cluster running"
 						tal:condition="python: 'running' in cstatus and cstatus['running'] != 'true'"
@@ -116,7 +116,8 @@
 						Delete this cluster
 					</option>
 				</select>
-				<input class="cluster" type="submit" value="Go" />
+				<input class="cluster" type="button" value="Go"
+					onclick="if (this.form.gourl[this.form.gourl.selectedIndex].value && confirm(this.form.gourl[this.form.gourl.selectedIndex].text + '?')) return dropdown(this.form.gourl)" />
 			</form>
 		</td>
 	</tr>
@@ -2802,7 +2803,7 @@
 
 			<td class="cluster node node_action"
 				tal:condition="python: nodeinfo['nodestate'] == '0' or nodeinfo['nodestate'] == '1'">
-				<form method="post" onSubmit="return dropdown(this.gourl)">
+				<form method="post">
 				<select name="gourl">
 					<option value="">Choose a Task...</option>
 					<option tal:attributes="value nodeinfo/jl_url"
@@ -2820,18 +2821,20 @@
 						tal:condition="python: not 'ricci_error' in nodeinfo">
 						Delete this node</option>
 				</select>
-				<input type="submit" value="Go"/>
+				<input type="button" value="Go"
+					onclick="if (this.form.gourl[this.form.gourl.selectedIndex].value && confirm(this.form.gourl[this.form.gourl.selectedIndex].text + '?')) return dropdown(this.form.gourl)" />
 				</form>
 			</td>
 
 			<td class="cluster node node_action"
 				tal:condition="python: nodeinfo['nodestate'] != '0' and nodeinfo['nodestate'] != '1'">
-				<form method="post" onSubmit="return dropdown(this.gourl)">
+				<form method="post">
 				<select name="gourl">
 					<option value="">Choose a Task...</option>
 					<option tal:attributes="value nodeinfo/fence_url | nothing">Fence this node</option>
 				</select>
-				<input type="submit" value="Go"/>
+				<input type="button" value="Go"
+					onclick="if (this.form.gourl[this.form.gourl.selectedIndex].value && confirm(this.form.gourl[this.form.gourl.selectedIndex].text + '?')) return dropdown(this.form.gourl)" />
 				</form>
 			</td>
 		</tr>
@@ -3217,7 +3220,7 @@
 				</td>
 
 				<td class="node node_action" tal:condition="python: nd['status'] == '0' or nd['status'] == '1'">
-					<form method="post" onSubmit="return dropdown(this.gourl)">
+					<form method="post">
 						<select class="node" name="gourl">
 							<option value="">Choose a Task...</option>
 							<option tal:attributes="value nd/jl_url">
@@ -3228,18 +3231,20 @@
 							<option tal:attributes="value nd/fence_it_url">Fence this node</option>
 							<option tal:attributes="value nd/reboot_url">Reboot this node</option>
 							<option value="">----------</option>
-							<option tal:attributes="value nd/delete_url">Delete</option>
+							<option tal:attributes="value nd/delete_url">Delete this node</option>
 						</select>
-						<input type="submit" value="Go"/>
+						<input type="button" value="Go"
+							onclick="if (this.form.gourl[this.form.gourl.selectedIndex].value && confirm(this.form.gourl[this.form.gourl.selectedIndex].text + '?')) return dropdown(this.form.gourl)" />
 					</form>
 				</td>
 				<td class="node node_action" tal:condition="python: nd['status'] != '0' and nd['status'] != '1'">
-					<form method="post" onSubmit="return dropdown(this.gourl)">
+					<form method="post">
 						<select class="node" name="gourl">
 							<option value="">Choose a Task...</option>
 							<option tal:attributes="value nd/fence_it_url | nothing">Fence this node</option>
 						</select>
-						<input type="submit" value="Go"/>
+						<input type="button" value="Go"
+							onclick="if (this.form.gourl[this.form.gourl.selectedIndex].value && confirm(this.form.gourl[this.form.gourl.selectedIndex].text + '?')) return dropdown(this.form.gourl)" />
 					</form>
 				</td>
 			</tr>
@@ -3584,7 +3589,7 @@
 				</td>
 
 				<td class="cluster service service_action">
-					<form method="post" onSubmit="return dropdown(this.gourl)">
+					<form method="post">
 						<select name="gourl">
 							<option value="">Choose a Task...</option>
 							<option
@@ -3613,7 +3618,8 @@
 								tal:attributes="value svc/delurl | nothing"
 								tal:content="string:Delete this service" />
 						</select>
-						<input type="submit" value="Go"/>
+						<input type="button" value="Go"
+							onclick="if (this.form.gourl[this.form.gourl.selectedIndex].value && confirm(this.form.gourl[this.form.gourl.selectedIndex].text + '?')) return dropdown(this.form.gourl)" />
 					</form>
 				</td>
 			</tr>
@@ -3867,7 +3873,7 @@
 			</td>
 			<td class="cluster service service_action"
 				tal:condition="python: sinfo and 'innermap' in sinfo">
-				<form method="post" onSubmit="return dropdown(this.gourl)">
+				<form method="post">
 					<input type="hidden" name="pagetype" tal:attributes="
 						value request/pagetype | request/form/pagetype | nothing" />
 					<select name="gourl"
@@ -3892,7 +3898,8 @@
 								tal:content="string:Delete this service" />
 						</tal:block>
 					</select>
-					<input type="submit" value="Go"/>
+					<input type="button" value="Go"
+						onclick="if (this.form.gourl[this.form.gourl.selectedIndex].value && confirm(this.form.gourl[this.form.gourl.selectedIndex].text + '?')) return dropdown(this.form.gourl)" />
 				</form>
 			</td>
 		</tr>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2007-01-24 20:05 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2007-01-24 20:05 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2007-01-24 20:05:39

Modified files:
	luci/cluster   : form-macros 

Log message:
	bz 218964

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.158&r2=1.159

--- conga/luci/cluster/form-macros	2007/01/23 13:53:35	1.158
+++ conga/luci/cluster/form-macros	2007/01/24 20:05:38	1.159
@@ -3333,6 +3333,9 @@
 			global cur_cluster_name add_cluster/name | request/clustername | request/form/clusterName | nothing">
 
 		<h2>Add a node to <span tal:replace="cur_cluster_name | string:this cluster" /></h2>
+
+		<input type="hidden" name="addnode" value="1" />
+
 		<input type="hidden" name="clusterName"
 			tal:attributes="value cur_cluster_name | string:[unknown]" />
 



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2007-01-22 21:18 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2007-01-22 21:18 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2007-01-22 21:18:59

Modified files:
	luci/cluster   : form-macros 

Log message:
	GULM properties

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.156&r2=1.157

--- conga/luci/cluster/form-macros	2007/01/20 04:50:19	1.156
+++ conga/luci/cluster/form-macros	2007/01/22 21:18:58	1.157
@@ -476,6 +476,13 @@
 				class python: 'configTab' + (configTabNum == 4 and ' configTabActive' or '');
 			">Quorum Partition</a>
 		</li>
+
+		<li class="configTab"
+			tal:condition="clusterinfo/gulm">
+			<a tal:attributes="
+				href clusterinfo/gulm_url | nothing;
+				class python: 'configTab' + (configTabNum == 5 and ' configTabActive' or '')">GULM</a>
+		</li>
 	</ul>
 
 	<div id="configTabContent" tal:condition="python: configTabNum == 1">
@@ -1156,6 +1163,57 @@
 		</script>
 		</form>
 	</div>
+
+	<tal:block tal:condition="clusterinfo/gulm">
+	<div id="configTabContent" tal:condition="python: configTabNum == 5">
+		<script type="text/javascript"
+			src="/luci/homebase/homebase_common.js">
+		</script>
+		<script type="text/javascript"
+			src="/luci/cluster/validate_config_gulm.js">
+		</script>
+
+		<form name="basecluster" action="" method="post">
+			<input type="hidden" name="cluster_version"
+				tal:attributes="value os_version | nothing" />
+			<input type="hidden" name="pagetype"
+				tal:attributes="value request/pagetype | request/form/pagetype"
+			/>
+			<input type="hidden" name="configtype" value="gulm" />
+			<input type="hidden" name="clustername"
+				tal:attributes="value request/clustername | clusterinfo/clustername | nothing" />
+
+		<strong class="cluster">GULM Configuration</strong><br/>
+		<table id="systemsTable" class="systemsTable" cellspacing="0">
+			<thead>
+				<tr class="systemsTable" align="left">
+					<th class="systemsTable">Node</th>
+					<th class="systemsTable">Lock Server</th>
+				</tr>
+			</thead>
+			<tbody>
+				<tal:block tal:repeat="c clusterinfo/gulm_lockservers">
+					<tr class="systemsTable">
+						<td class="systemsTable">
+							<span tal:replace="python:c[0]" />
+						</td>
+						<td class="systemsTable">
+							<input type="checkbox"
+								tal:attributes="
+									name python:c[0];
+									checked python:c[1]" />
+						</td>
+					</tr>
+				</tal:block>
+			</tbody>
+		</table>
+		<div class="spacing configTabContent"></div>
+		<div class="hbSubmit spacing configTabContent">
+			<input type="button" value="Apply"
+				onClick="validate_form(this.form)"/>
+		</div>
+	</div>
+	</tal:block>
 </tal:block>
 </div>
 



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2007-01-16 17:38 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2007-01-16 17:38 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Branch: 	RHEL5
Changes by:	rmccabe at sourceware.org	2007-01-16 17:38:06

Modified files:
	luci/cluster   : form-macros 

Log message:
	regression found when testing the fix for bz212021

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.90.2.17&r2=1.90.2.18

--- conga/luci/cluster/form-macros	2007/01/15 18:57:10	1.90.2.17
+++ conga/luci/cluster/form-macros	2007/01/16 17:38:06	1.90.2.18
@@ -2972,7 +2972,7 @@
 										value="Remove this device"
 										tal:attributes="
 											onclick python: 'del_fence(\'' + cur_fence_dev_id + '\')'" />
-									<input tal:condition="exists: cur_fencedev/isShared"
+									<input tal:condition="cur_fencedev/isShared"
 										name="add_instance" type="button"
 										value="Add an instance"
 										tal:attributes="onclick python: 'add_fence_instance(\'' + cur_fence_dev_id + '\',\'' + cur_fence_type + '\')'" />
@@ -3041,7 +3041,7 @@
 										value="Remove this device"
 										tal:attributes="
 											onclick python: 'del_fence(\'' + cur_fence_dev_id + '\')'" />
-									<input tal:condition="exists: cur_fencedev/isShared"
+									<input tal:condition="cur_fencedev/isShared"
 										name="add_instance" type="button"
 										value="Add an instance"
 										tal:attributes="onclick python: 'add_fence_instance(\'' + cur_fence_dev_id + '\',\'' + cur_fence_type + '\')'" />



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2007-01-16 17:37 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2007-01-16 17:37 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2007-01-16 17:37:26

Modified files:
	luci/cluster   : form-macros 

Log message:
	regression found when testing the fix for bz212021

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.154&r2=1.155

--- conga/luci/cluster/form-macros	2007/01/15 18:57:49	1.154
+++ conga/luci/cluster/form-macros	2007/01/16 17:37:26	1.155
@@ -2972,7 +2972,7 @@
 										value="Remove this device"
 										tal:attributes="
 											onclick python: 'del_fence(\'' + cur_fence_dev_id + '\')'" />
-									<input tal:condition="exists: cur_fencedev/isShared"
+									<input tal:condition="cur_fencedev/isShared"
 										name="add_instance" type="button"
 										value="Add an instance"
 										tal:attributes="onclick python: 'add_fence_instance(\'' + cur_fence_dev_id + '\',\'' + cur_fence_type + '\')'" />
@@ -3041,7 +3041,7 @@
 										value="Remove this device"
 										tal:attributes="
 											onclick python: 'del_fence(\'' + cur_fence_dev_id + '\')'" />
-									<input tal:condition="exists: cur_fencedev/isShared"
+									<input tal:condition="cur_fencedev/isShared"
 										name="add_instance" type="button"
 										value="Add an instance"
 										tal:attributes="onclick python: 'add_fence_instance(\'' + cur_fence_dev_id + '\',\'' + cur_fence_type + '\')'" />



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2007-01-15 18:57 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2007-01-15 18:57 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2007-01-15 18:57:49

Modified files:
	luci/cluster   : form-macros 

Log message:
	another small fix found while testing the fix for bz212021 - the authentication
	attribute name for ipmilan is 'auth' not 'auth_type'

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.153&r2=1.154

--- conga/luci/cluster/form-macros	2007/01/15 17:17:52	1.153
+++ conga/luci/cluster/form-macros	2007/01/15 18:57:49	1.154
@@ -2046,8 +2046,8 @@
 			<tr>
 				<td>Authentication Type</td>
 				<td>
-					<input name="auth_type" type="text" title="Options are to leave blank for none, password, or md5"
-						tal:attributes="value cur_fencedev/auth_type | nothing" />
+					<input name="auth" type="text" title="Options are to leave blank for none, password, or md5"
+						tal:attributes="value cur_fencedev/auth | nothing" />
 				</td>
 			</tr>
 			<tr>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2007-01-15 18:57 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2007-01-15 18:57 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Branch: 	RHEL5
Changes by:	rmccabe at sourceware.org	2007-01-15 18:57:10

Modified files:
	luci/cluster   : form-macros 

Log message:
	another small fix found while testing the fix for bz212021 - the authentication attribute name for ipmilan is 'auth' not 'auth_type'

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.90.2.16&r2=1.90.2.17

--- conga/luci/cluster/form-macros	2007/01/15 18:21:50	1.90.2.16
+++ conga/luci/cluster/form-macros	2007/01/15 18:57:10	1.90.2.17
@@ -2046,8 +2046,8 @@
 			<tr>
 				<td>Authentication Type</td>
 				<td>
-					<input name="auth_type" type="text" title="Options are to leave blank for none, password, or md5"
-						tal:attributes="value cur_fencedev/auth_type | nothing" />
+					<input name="auth" type="text" title="Options are to leave blank for none, password, or md5"
+						tal:attributes="value cur_fencedev/auth | nothing" />
 				</td>
 			</tr>
 			<tr>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2007-01-15 17:17 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2007-01-15 17:17 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2007-01-15 17:17:52

Modified files:
	luci/cluster   : form-macros 

Log message:
	the current ipmilan fence agent does not support md2 authentication

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.152&r2=1.153

--- conga/luci/cluster/form-macros	2007/01/11 19:11:04	1.152
+++ conga/luci/cluster/form-macros	2007/01/15 17:17:52	1.153
@@ -2046,7 +2046,7 @@
 			<tr>
 				<td>Authentication Type</td>
 				<td>
-					<input name="auth_type" type="text" title="Options are to leave blank for none, password, md2, or md5"
+					<input name="auth_type" type="text" title="Options are to leave blank for none, password, or md5"
 						tal:attributes="value cur_fencedev/auth_type | nothing" />
 				</td>
 			</tr>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2007-01-09 22:20 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2007-01-09 22:20 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2007-01-09 22:20:34

Modified files:
	luci/cluster   : form-macros 

Log message:
	add lanplus attribute for ipmi fencing and add nodename attribute for scsi

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.146&r2=1.147

--- conga/luci/cluster/form-macros	2007/01/09 18:27:04	1.146
+++ conga/luci/cluster/form-macros	2007/01/09 22:20:34	1.147
@@ -2042,6 +2042,14 @@
 				<td>Authentication Type</td>
 				<td><input name="auth_type" type="text" Title="Options are to leave blank for none, password, md2, or md5"/></td>
 			</tr>
+			<tr>
+				<td>Use Lanplus</td>
+				<td>
+					<input name="lanplus" type="checkbox"
+						tal:attributes="checked cur_fencedev/lanplus | nothing"
+					/>
+				</td>
+			</tr>
 		</table>
 
 		<tal:block tal:condition="exists: cur_fencedev">
@@ -2192,6 +2200,7 @@
 			</td></tr>
 		</table>
 
+		<input name="fence_instance" value="1" />
 		<input tal:condition="exists: cur_instance"
 			type="hidden" name="existing_instance" value="1" />
 		<input type="hidden" name="parent_fencedev"
@@ -2233,6 +2242,7 @@
 			</td></tr>
 		</table>
 
+		<input name="fence_instance" value="1" />
 		<input tal:condition="exists: cur_instance"
 			type="hidden" name="existing_instance" value="1" />
 		<input type="hidden" name="parent_fencedev"
@@ -2267,6 +2277,7 @@
 			</td></tr>
 		</table>
 
+		<input name="fence_instance" value="1" />
 		<input tal:condition="exists: cur_instance"
 			type="hidden" name="existing_instance" value="1" />
 		<input type="hidden" name="parent_fencedev"
@@ -2301,6 +2312,7 @@
 			</td></tr>
 		</table>
 
+		<input name="fence_instance" value="1" />
 		<input tal:condition="exists: cur_instance"
 			type="hidden" name="existing_instance" value="1" />
 		<input type="hidden" name="parent_fencedev"
@@ -2335,6 +2347,7 @@
 			</td></tr>
 		</table>
 
+		<input name="fence_instance" value="1" />
 		<input tal:condition="exists: cur_instance"
 			type="hidden" name="existing_instance" value="1" />
 		<input type="hidden" name="parent_fencedev"
@@ -2369,6 +2382,7 @@
 			</td></tr>
 		</table>
 
+		<input name="fence_instance" value="1" />
 		<input tal:condition="exists: cur_instance"
 			type="hidden" name="existing_instance" value="1" />
 		<input type="hidden" name="parent_fencedev"
@@ -2403,6 +2417,7 @@
 			</td></tr>
 		</table>
 
+		<input name="fence_instance" value="1" />
 		<input tal:condition="exists: cur_instance"
 			type="hidden" name="existing_instance" value="1" />
 		<input type="hidden" name="parent_fencedev"
@@ -2437,6 +2452,7 @@
 			</td></tr>
 		</table>
 
+		<input name="fence_instance" value="1" />
 		<input tal:condition="exists: cur_instance"
 			type="hidden" name="existing_instance" value="1" />
 		<input type="hidden" name="parent_fencedev"
@@ -2471,6 +2487,7 @@
 			</td></tr>
 		</table>
 
+		<input name="fence_instance" value="1" />
 		<input tal:condition="exists: cur_instance"
 			type="hidden" name="existing_instance" value="1" />
 		<input type="hidden" name="parent_fencedev"
@@ -2505,6 +2522,29 @@
 			</td></tr>
 		</table>
 
+		<input 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-scsi"
+	tal:omit-tag="exists: cur_fence_dev_id">
+	<div id="fence_scsi_instance" name="fence_scsi" class="fencedev_instance"
+		tal:omit-tag="exists: cur_fence_dev_id">
+		<table>
+			<tr>
+				<td>Node name</td>
+				<td>
+					<input type="text" name="nodename" disabled="disabled"
+						tal:attributes="value request/nodename | nothing" />
+				</td>
+			</tr>
+		</table>
+
+		<input name="fence_instance" value="1" />
 		<input tal:condition="exists: cur_instance"
 			type="hidden" name="existing_instance" value="1" />
 		<input type="hidden" name="parent_fencedev"
@@ -2539,6 +2579,7 @@
 			</td></tr>
 		</table>
 
+		<input name="fence_instance" value="1" />
 		<input tal:condition="exists: cur_instance"
 			type="hidden" name="existing_instance" value="1" />
 		<input type="hidden" name="parent_fencedev"
@@ -2566,6 +2607,8 @@
 	<tal:block
 		metal:use-macro="here/form-macros/macros/fence-instance-form-bullpap" />
 	<tal:block
+		metal:use-macro="here/form-macros/macros/fence-instance-form-scsi" />
+	<tal:block
 		metal:use-macro="here/form-macros/macros/fence-instance-form-xvm" />
 	<tal:block
 		metal:use-macro="here/form-macros/macros/fence-instance-form-bladecenter" />
@@ -2619,6 +2662,11 @@
 			metal:use-macro="here/form-macros/macros/fence-instance-form-bullpap" />
 	</tal:block>
 
+    <tal:block tal:condition="python: cur_fence_type == 'fence_scsi'">
+		<tal:block
+			metal:use-macro="here/form-macros/macros/fence-instance-form-scsi" />
+	</tal:block>
+
     <tal:block tal:condition="python: cur_fence_type == 'fence_xvm'">
 		<tal:block
 			metal:use-macro="here/form-macros/macros/fence-instance-form-xvm" />
@@ -2993,6 +3041,10 @@
 			<td>
 				<div class="fence_control">
 					<form name="fence1_master" method="post" action="">
+						<input type="hidden" name="clustername"
+							tal:attributes="value request/clustername | nothing" />
+						<input type="hidden" name="nodename"
+							tal:attributes="value request/nodename | nothing" />
 						<input type="hidden" name="fence_level" value="1" />
 						<input type="hidden" name="fence_xml" value="" />
 						<input type="hidden" name="pagetype" value="58" />
@@ -3005,6 +3057,10 @@
 			<td>
 				<div class="fence_control">
 					<form name="fence2_master" method="post" action="">
+						<input type="hidden" name="clustername"
+							tal:attributes="value request/clustername | nothing" />
+						<input type="hidden" name="nodename"
+							tal:attributes="value request/nodename | nothing" />
 						<input type="hidden" name="fence_level" value="2" />
 						<input type="hidden" name="fence_xml" value="" />
 						<input type="hidden" name="pagetype" value="58" />



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2007-01-07 17:36 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2007-01-07 17:36 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2007-01-07 17:36:17

Modified files:
	luci/cluster   : form-macros 

Log message:
	more node-specific fence updates

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.143&r2=1.144

--- conga/luci/cluster/form-macros	2007/01/06 03:29:16	1.143
+++ conga/luci/cluster/form-macros	2007/01/07 17:36:17	1.144
@@ -2901,18 +2901,54 @@
 
 			<td class="cluster node fence_main fence">
 				<div class="fence_container">
+
 				<div id="fence_list_level2" tal:define="global cur_fence_num python: 0">
 					<tal:block tal:condition="exists: fenceinfo/level2">
-						<tal:block tal:repeat="cur_fencedev fenceinfo/level2">
-							<tal:block tal:define="cur_fence_type cur_fencedev/agent | nothing">
-								<div tal:attributes="id python: 'fence2_' + str(cur_fence_num)">
-									<tal:block
-										metal:use-macro="here/form-macros/macros/fencedev-cond-ladder" />
+
+						<div tal:repeat="cur_fencedev fenceinfo/level2"
+							 tal:attributes="id python: 'fence2_' + str(cur_fence_num)">
+
+							<tal:block tal:define="
+								cur_fence_dev_id python: 'fence2_' + str(cur_fence_num);
+								cur_fence_type cur_fencedev/agent | nothing;
+								cur_fence_level python: 2">
+
+								<form tal:attributes="name cur_fence_dev_id | string:[unknown]">
+									<tal:block metal:use-macro="here/form-macros/macros/fencedev-cond-ladder" />
+								</form>
+
+								<tal:block
+									tal:define="global cur_instance_num python:0" />
+
+								<div tal:attributes="id python: cur_fence_dev_id + '_instances'">
+									<tal:block tal:condition="exists: cur_fencedev/instance_list">
+										<tal:block tal:repeat="cur_instance cur_fencedev/instance_list">
+											<tal:block
+												tal:define="global cur_fence_instance_id python: cur_fence_dev_id + '_' + str(cur_instance_num)" />
+
+											<div tal:attributes="
+												name cur_fence_instance_id | nothing;
+												id cur_fence_instance_id | nothing">
+
+												<form
+													tal:attributes="name cur_fence_instance_id | nothing">
+													<tal:block metal:use-macro="here/form-macros/macros/fencedev-instance-cond-ladder" />
+												</form>
+												<tal:block
+													tal:define="global cur_instance_num  python:cur_instance_num + 1" />
+											</div>
+										</tal:block>
+									</tal:block>
+								</div>
+								<div class="hbSubmit">
+									<input type="button" name="remove_fence"
+										value="Remove this fence device" />
 								</div>
+								<tal:block tal:define="global cur_fence_num python: cur_fence_num + 1" />
 							</tal:block>
-							<tal:block tal:define="global cur_fence_num python: cur_fence_num + 1" />
-						</tal:block>
+						</div>
 					</tal:block>
+
 					<tal:block
 						tal:replace="structure python: '<script type='+chr(0x22)+'text/javascript'+chr(0x22)+'>num_fences_level[1] = ' + str(cur_fence_num) + ';</script>'" />
 				</div>
@@ -2921,6 +2957,15 @@
 					<input type="button" value="Add a fence to this level"
 						onclick="add_node_fence_device(2)" />
 				</div>
+				<div class="hbSubmit">
+					<form name="fence2_master" method="post" action="">
+						<input type="hidden" name="fence_level" value="2" />
+						<input type="hidden" name="fence_xml" value="" />
+						<input type="hidden" name="pagetype" value="58" />
+						<input type="button"
+							value="Update fence properties"
+							onclick="validate_fence(this.form, 'fence_list_level2')" />
+					</form>
 				</div>
 			</td>
 		</tr>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-12-22 17:18 kupcevic
  0 siblings, 0 replies; 94+ messages in thread
From: kupcevic @ 2006-12-22 17:18 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	kupcevic at sourceware.org	2006-12-22 17:18:42

Modified files:
	luci/cluster   : form-macros 

Log message:
	luci: cluster.conf editor: size textarea to fit content

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.137&r2=1.138

--- conga/luci/cluster/form-macros	2006/12/21 21:26:20	1.137
+++ conga/luci/cluster/form-macros	2006/12/22 17:18:42	1.138
@@ -3879,8 +3879,8 @@
 	      tal:define="ret python: here.process_cluster_conf_editor(request)">
 	  <span tal:content="structure python: ret['msg'].replace('\n', '<br/>')"/>
 	  <textarea name="new_cluster_conf"
-		          rows="80"
-		          tal:content="structure ret/cluster_conf"></textarea>
+		    tal:attributes="rows python: len(ret['cluster_conf'].splitlines()) + 8"
+		    tal:content="structure ret/cluster_conf"></textarea>
 	  <input tal:attributes="type  string:hidden;
 	                         name  string:pagetype;
 	                         value python:request['pagetype']"/>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-12-20 22:07 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-12-20 22:07 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-12-20 22:07:16

Modified files:
	luci/cluster   : form-macros 

Log message:
	minor nits

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.134&r2=1.135

--- conga/luci/cluster/form-macros	2006/12/20 20:24:42	1.134
+++ conga/luci/cluster/form-macros	2006/12/20 22:07:16	1.135
@@ -3687,6 +3687,7 @@
     <input type="hidden" name="pagetype" value="54" id="pagetype" />
     <input type="hidden" name="clustername" value="" id="pagetype" tal:attributes="value request/clustername"/>
     <input type="hidden" name="orig_name" value="" id="orig_name" tal:attributes="value request/fencename"/>
+  <input type="hidden" name="fencename" value="" id="fencename" tal:attributes="value request/fencename"/>
   </form>
   <form name="fencedevdeleteform" action="" method="post">
   <input type="submit" value="Delete this fence device"/>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-12-20 20:24 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-12-20 20:24 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-12-20 20:24:42

Modified files:
	luci/cluster   : form-macros 

Log message:
	still adressing bz212021

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.133&r2=1.134

--- conga/luci/cluster/form-macros	2006/12/18 22:15:54	1.133
+++ conga/luci/cluster/form-macros	2006/12/20 20:24:42	1.134
@@ -3693,6 +3693,7 @@
   <input type="hidden" name="pagetype" value="57" id="pagetype"/>
   <input type="hidden" name="clustername" value="" id="pagetype" tal:attributes="value request/clustername"/>
   <input type="hidden" name="fencename" value="" id="fencename" tal:attributes="value request/fencename"/>
+    <input type="hidden" name="orig_name" value="" id="orig_name" tal:attributes="value request/fencename"/>
   </form>
 	</div>
 </div>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-12-18 22:15 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-12-18 22:15 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-12-18 22:15:55

Modified files:
	luci/cluster   : form-macros 

Log message:
	212021 progress

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.132&r2=1.133

--- conga/luci/cluster/form-macros	2006/12/14 23:14:54	1.132
+++ conga/luci/cluster/form-macros	2006/12/18 22:15:54	1.133
@@ -3519,8 +3519,6 @@
 	<table id="fence_devices" class="cluster node fence">
 		<tfoot class="fence">
 		<tr class="cluster node fence"><td class="cluster node fence">
-			<input type="button" value="Add this shared fence device"
-				onClick="validate_fence_properties('fence_devices')" />
 		</td></tr>
 		</tfoot>
 		<tbody class="fence">
@@ -3540,8 +3538,13 @@
 					<tal:block metal:use-macro="here/form-macros/macros/shared-fence-option-list" />
 				</select>
 				</form>
+        <form name="fencedevaddform" action="" method="post">
 				<div id="fence_container">
 				</div>
+			  <input type="submit" value="Add this shared fence device"/>
+        <input type="hidden" name="pagetype" value="51" id="pagetype" />
+        <input type="hidden" name="clustername" value="" id="pagetype" tal:attributes="value request/clustername"/>
+        </form>
 			</td>
 		</tr>
 		</tbody>
@@ -3676,9 +3679,21 @@
 					global cur_fencedev python:here.getFence(modelb,request);
 					global cur_fence_type cur_fencedev/agent" />
 		</span>
-	
+
+  <form name="fencedeveditform" action="" method="post">	
 		<tal:block
 			metal:use-macro="here/form-macros/macros/fencedev-cond-ladder" />
+    <input type="submit" value="Update this fence device"/>
+    <input type="hidden" name="pagetype" value="54" id="pagetype" />
+    <input type="hidden" name="clustername" value="" id="pagetype" tal:attributes="value request/clustername"/>
+    <input type="hidden" name="orig_name" value="" id="orig_name" tal:attributes="value request/fencename"/>
+  </form>
+  <form name="fencedevdeleteform" action="" method="post">
+  <input type="submit" value="Delete this fence device"/>
+  <input type="hidden" name="pagetype" value="57" id="pagetype"/>
+  <input type="hidden" name="clustername" value="" id="pagetype" tal:attributes="value request/clustername"/>
+  <input type="hidden" name="fencename" value="" id="fencename" tal:attributes="value request/fencename"/>
+  </form>
 	</div>
 </div>
 



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-12-13 23:55 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2006-12-13 23:55 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Branch: 	RHEL5
Changes by:	rmccabe at sourceware.org	2006-12-13 23:55:06

Modified files:
	luci/cluster   : form-macros 

Log message:
	Related to bz214989; packages may be downloaded with yum from somewhere other than RHN

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.90.2.9&r2=1.90.2.10

--- conga/luci/cluster/form-macros	2006/12/12 13:26:23	1.90.2.9
+++ conga/luci/cluster/form-macros	2006/12/13 23:55:06	1.90.2.10
@@ -232,7 +232,7 @@
 			<tfoot class="systemsTable">
 				<tr class="systemsTable"><td colspan="2" class="systemsTable">
 					<ul class="vanilla deploy">
-						<li class="vanilla"><input type="radio" name="rhn_dl" value="1" checked="checked" />Download packages from RHN</li>
+						<li class="vanilla"><input type="radio" name="rhn_dl" value="1" checked="checked" />Download packages</li>
 						<li class="vanilla"><input type="radio" name="rhn_dl" value="0" />Use locally installed packages.</li>
 					</ul>
 				</td></tr>
@@ -315,7 +315,7 @@
 			<tfoot class="systemsTable">
 				<tr class="systemsTable"><td class="systemsTable" colspan="2">
 					<ul class="vanilla deploy">
-						<li class="vanilla"><input type="radio" name="rhn_dl" value="1" checked="checked" />Download packages from RHN</li>
+						<li class="vanilla"><input type="radio" name="rhn_dl" value="1" checked="checked" />Download packages</li>
 						<li class="vanilla"><input type="radio" name="rhn_dl" value="0" />Use locally installed packages.</li>
 					</ul>
 				</td></tr>
@@ -2734,7 +2734,7 @@
 			<tfoot class="systemsTable">
 				<tr class="systemsTable"><td colspan="2" class="systemsTable">
 					<ul class="vanilla deploy">
-						<li class="vanilla"><input type="radio" name="rhn_dl" value="1" checked="checked" />Download packages from RHN</li>
+						<li class="vanilla"><input type="radio" name="rhn_dl" value="1" checked="checked" />Download packages</li>
 						<li class="vanilla"><input type="radio" name="rhn_dl" value="0" />Use locally installed packages.</li>
 					</ul>
 				</td></tr>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-12-13 23:54 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2006-12-13 23:54 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2006-12-13 23:54:19

Modified files:
	luci/cluster   : form-macros 

Log message:
	Related to bz214989; packages may be downloaded with yum from somewhere other than RHN

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.129&r2=1.130

--- conga/luci/cluster/form-macros	2006/12/12 13:11:51	1.129
+++ conga/luci/cluster/form-macros	2006/12/13 23:54:19	1.130
@@ -232,7 +232,7 @@
 			<tfoot class="systemsTable">
 				<tr class="systemsTable"><td colspan="2" class="systemsTable">
 					<ul class="vanilla deploy">
-						<li class="vanilla"><input type="radio" name="rhn_dl" value="1" checked="checked" />Download packages from RHN</li>
+						<li class="vanilla"><input type="radio" name="rhn_dl" value="1" checked="checked" />Download packages</li>
 						<li class="vanilla"><input type="radio" name="rhn_dl" value="0" />Use locally installed packages.</li>
 					</ul>
 				</td></tr>
@@ -315,7 +315,7 @@
 			<tfoot class="systemsTable">
 				<tr class="systemsTable"><td class="systemsTable" colspan="2">
 					<ul class="vanilla deploy">
-						<li class="vanilla"><input type="radio" name="rhn_dl" value="1" checked="checked" />Download packages from RHN</li>
+						<li class="vanilla"><input type="radio" name="rhn_dl" value="1" checked="checked" />Download packages</li>
 						<li class="vanilla"><input type="radio" name="rhn_dl" value="0" />Use locally installed packages.</li>
 					</ul>
 				</td></tr>
@@ -2734,7 +2734,7 @@
 			<tfoot class="systemsTable">
 				<tr class="systemsTable"><td colspan="2" class="systemsTable">
 					<ul class="vanilla deploy">
-						<li class="vanilla"><input type="radio" name="rhn_dl" value="1" checked="checked" />Download packages from RHN</li>
+						<li class="vanilla"><input type="radio" name="rhn_dl" value="1" checked="checked" />Download packages</li>
 						<li class="vanilla"><input type="radio" name="rhn_dl" value="0" />Use locally installed packages.</li>
 					</ul>
 				</td></tr>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-12-04 22:59 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2006-12-04 22:59 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2006-12-04 22:59:57

Modified files:
	luci/cluster   : form-macros 

Log message:
	more fencing updates

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.118&r2=1.119

--- conga/luci/cluster/form-macros	2006/12/01 14:56:53	1.118
+++ conga/luci/cluster/form-macros	2006/12/04 22:59:56	1.119
@@ -1174,6 +1174,20 @@
 				</td>
 			</tr>
 		</table>
+		<div name="instances">
+			<tal:block tal:condition="exists: cur_fence_instances">
+				<tal:block tal:repeat="cur_fence_instance cur_fence_instances">
+					<tal:block
+						metal:use-macro="here/form-macros/macros/fence-instance-form-apc" />
+				</tal:block>
+			</tal:block>
+		</div>
+		<tal:block tal:condition="exists: cur_fencedev">
+			<input type="hidden" name="existing_device" value="1" />
+			<input type="hidden" name="old_name"
+				tal:attributes="value cur_fencedev/name | nothing" />
+		</tal:block>
+		<input type="hidden" name="sharable" value="1" />
 		<input type="hidden" name="fence_type" value="fence_apc" />
 	</div>
 </div>
@@ -1216,6 +1230,20 @@
 				</td>
 			</tr>
 		</table>
+		<div name="instances">
+			<tal:block tal:condition="exists: cur_fence_instances">
+				<tal:block tal:repeat="cur_fence_instance cur_fence_instances">
+					<tal:block
+						metal:use-macro="here/form-macros/macros/fence-instance-form-mcdata" />
+				</tal:block>
+			</tal:block>
+		</div>
+		<tal:block tal:condition="exists: cur_fencedev">
+			<input type="hidden" name="existing_device" value="1" />
+			<input type="hidden" name="old_name"
+				tal:attributes="value cur_fencedev/name | nothing" />
+		</tal:block>
+		<input type="hidden" name="sharable" value="1" />
 		<input type="hidden" name="fence_type" value="fence_mcdata" />
 	</div>
 </div>
@@ -1251,6 +1279,20 @@
 				</td>
 			</tr>
 		</table>
+		<div name="instances">
+			<tal:block tal:condition="exists: cur_fence_instances">
+				<tal:block tal:repeat="cur_fence_instance cur_fence_instances">
+					<tal:block
+						metal:use-macro="here/form-macros/macros/fence-instance-form-wti" />
+				</tal:block>
+			</tal:block>
+		</div>
+		<tal:block tal:condition="exists: cur_fencedev">
+			<input type="hidden" name="existing_device" value="1" />
+			<input type="hidden" name="old_name"
+				tal:attributes="value cur_fencedev/name | nothing" />
+		</tal:block>
+		<input type="hidden" name="sharable" value="1" />
 		<input type="hidden" name="fence_type" value="fence_wti" />
 	</div>
 </div>
@@ -1293,6 +1335,11 @@
 				</td>
 			</tr>
 		</table>
+		<tal:block tal:condition="exists: cur_fencedev">
+			<input type="hidden" name="existing_device" value="1" />
+			<input type="hidden" name="old_name"
+				tal:attributes="value cur_fencedev/name | nothing" />
+		</tal:block>
 		<input type="hidden" name="fence_type" value="fence_ilo" />
 	</div>
 </div>
@@ -1334,6 +1381,11 @@
 						tal:attributes="value cur_fencedev/passwd | nothing" />
 				</td>
 		</table>
+		<tal:block tal:condition="exists: cur_fencedev">
+			<input type="hidden" name="existing_device" value="1" />
+			<input type="hidden" name="old_name"
+				tal:attributes="value cur_fencedev/name | nothing" />
+		</tal:block>
 		<input type="hidden" name="fence_type" value="fence_drac" />
 	</div>
 </div>
@@ -1376,6 +1428,11 @@
 				</td>
 			</tr>
 		</table>
+		<tal:block tal:condition="exists: cur_fencedev">
+			<input type="hidden" name="existing_device" value="1" />
+			<input type="hidden" name="old_name"
+				tal:attributes="value cur_fencedev/name | nothing" />
+		</tal:block>
 		<input type="hidden" name="fence_type" value="fence_rsa" />
 	</div>
 </div>
@@ -1418,6 +1475,20 @@
 				</td>
 			</tr>
 		</table>
+		<div name="instances">
+			<tal:block tal:condition="exists: cur_fence_instances">
+				<tal:block tal:repeat="cur_fence_instance cur_fence_instances">
+					<tal:block
+						metal:use-macro="here/form-macros/macros/fence-instance-form-brocade" />
+				</tal:block>
+			</tal:block>
+		</div>
+		<tal:block tal:condition="exists: cur_fencedev">
+			<input type="hidden" name="existing_device" value="1" />
+			<input type="hidden" name="old_name"
+				tal:attributes="value cur_fencedev/name | nothing" />
+		</tal:block>
+		<input type="hidden" name="sharable" value="1" />
 		<input type="hidden" name="fence_type" value="fence_brocade" />
 	</div>
 </div>
@@ -1457,6 +1528,20 @@
 				</td>
 			</tr>
 		</table>
+		<div name="instances">
+			<tal:block tal:condition="exists: cur_fence_instances">
+				<tal:block tal:repeat="cur_fence_instance cur_fence_instances">
+					<tal:block
+						metal:use-macro="here/form-macros/macros/fence-instance-form-sanbox2" />
+				</tal:block>
+			</tal:block>
+		</div>
+		<tal:block tal:condition="exists: cur_fencedev">
+			<input type="hidden" name="existing_device" value="1" />
+			<input type="hidden" name="old_name"
+				tal:attributes="value cur_fencedev/name | nothing" />
+		</tal:block>
+		<input type="hidden" name="sharable" value="1" />
 		<input type="hidden" name="fence_type" value="fence_sanbox2" />
 	</div>
 </div>
@@ -1492,6 +1577,20 @@
 				</td>
 			</tr>
 		</table>
+		<div name="instances">
+			<tal:block tal:condition="exists: cur_fence_instances">
+				<tal:block tal:repeat="cur_fence_instance cur_fence_instances">
+					<tal:block
+						metal:use-macro="here/form-macros/macros/fence-instance-form-brocade" />
+				</tal:block>
+			</tal:block>
+		</div>
+		<tal:block tal:condition="exists: cur_fencedev">
+			<input type="hidden" name="existing_device" value="1" />
+			<input type="hidden" name="old_name"
+				tal:attributes="value cur_fencedev/name | nothing" />
+		</tal:block>
+		<input type="hidden" name="sharable" value="1" />
 		<input type="hidden" name="fence_type" value="fence_vixel" />
 	</div>
 </div>
@@ -1520,6 +1619,20 @@
 				</td>
 			</tr>
 		</table>
+		<div name="instances">
+			<tal:block tal:condition="exists: cur_fence_instances">
+				<tal:block tal:repeat="cur_fence_instance cur_fence_instances">
+					<tal:block
+						metal:use-macro="here/form-macros/macros/fence-instance-form-gnbd" />
+				</tal:block>
+			</tal:block>
+		</div>
+		<tal:block tal:condition="exists: cur_fencedev">
+			<input type="hidden" name="existing_device" value="1" />
+			<input type="hidden" name="old_name"
+				tal:attributes="value cur_fencedev/name | nothing" />
+		</tal:block>
+		<input type="hidden" name="sharable" value="1" />
 		<input type="hidden" name="fence_type" value="fence_gnbd" />
 	</div>
 </div>
@@ -1555,6 +1668,20 @@
 				</td>
 			</tr>
 		</table>
+		<div name="instances">
+			<tal:block tal:condition="exists: cur_fence_instances">
+				<tal:block tal:repeat="cur_fence_instance cur_fence_instances">
+					<tal:block
+						metal:use-macro="here/form-macros/macros/fence-instance-form-egenera" />
+				</tal:block>
+			</tal:block>
+		</div>
+		<tal:block tal:condition="exists: cur_fencedev">
+			<input type="hidden" name="existing_device" value="1" />
+			<input type="hidden" name="old_name"
+				tal:attributes="value cur_fencedev/name | nothing" />
+		</tal:block>
+		<input type="hidden" name="sharable" value="1" />
 		<input type="hidden" name="fence_type" value="fence_egenera" />
 	</div>
 </div>
@@ -1597,6 +1724,11 @@
 				</td>
 			</tr>
 		</table>
+		<tal:block tal:condition="exists: cur_fencedev">
+			<input type="hidden" name="existing_device" value="1" />
+			<input type="hidden" name="old_name"
+				tal:attributes="value cur_fencedev/name | nothing" />
+		</tal:block>
 		<input type="hidden" name="fence_type" value="fence_bladecenter" />
 	</div>
 </div>
@@ -1639,6 +1771,20 @@
 				</td>
 			</tr>
 		</table>
+		<div name="instances">
+			<tal:block tal:condition="exists: cur_fence_instances">
+				<tal:block tal:repeat="cur_fence_instance cur_fence_instances">
+					<tal:block
+						metal:use-macro="here/form-macros/macros/fence-instance-form-bullpap" />
+				</tal:block>
+			</tal:block>
+		</div>
+		<tal:block tal:condition="exists: cur_fencedev">
+			<input type="hidden" name="existing_device" value="1" />
+			<input type="hidden" name="old_name"
+				tal:attributes="value cur_fencedev/name | nothing" />
+		</tal:block>
+		<input type="hidden" name="sharable" value="1" />
 		<input type="hidden" name="fence_type" value="fence_bullpap" />
 	</div>
 </div>
@@ -1670,11 +1816,16 @@
 				<td>Port</td>
 				<td>
 					<input name="port" type="text"
-						tal:attributes="value cur_fencedev/port| nothing" />
+						tal:attributes="value cur_fencedev/port | nothing" />
 				</td>
 			</tr>
 		</table>
-		<input type="hidden" name="fence_type" value="fence_rps10"/>
+		<tal:block tal:condition="exists: cur_fencedev">
+			<input type="hidden" name="existing_device" value="1" />
+			<input type="hidden" name="old_name"
+				tal:attributes="value cur_fencedev/name | nothing" />
+		</tal:block>
+		<input type="hidden" name="fence_type" value="fence_rps10" />
 	</div>
 </div>
 
@@ -1682,7 +1833,7 @@
 	tal:attributes="id cur_fencedev/name | nothing">
 
 	<div id="fence_xvm" class="fencedev">
-	<table>
+		<table>
 			<tr>
 				<td><strong class="cluster">Fence Type</strong></td>
 				<td>Virtual Machine Fencing</td>
@@ -1694,7 +1845,22 @@
 						tal:attributes="value cur_fencedev/name | nothing" />
 				</td>
 			</tr>
-  </table>	
+		</table>	
+		<div name="instances">
+			<tal:block tal:condition="exists: cur_fence_instances">
+				<tal:block tal:repeat="cur_fence_instance cur_fence_instances">
+					<tal:block
+						metal:use-macro="here/form-macros/macros/fence-instance-form-xvm" />
+				</tal:block>
+			</tal:block>
+		</div>
+		<tal:block tal:condition="exists: cur_fencedev">
+			<input type="hidden" name="existing_device" value="1" />
+			<input type="hidden" name="old_name"
+				tal:attributes="value cur_fencedev/name | nothing" />
+		</tal:block>
+		<input type="hidden" name="sharable" value="1" />
+		<input type="hidden" name="fence_type" value="xvm" />
 	</div>
 </div>
 
@@ -1702,7 +1868,7 @@
 	tal:attributes="id cur_fencedev/name | nothing">
 
 	<div id="fence_scsi" class="fencedev">
-	<table>
+		<table>
 			<tr>
 				<td><strong class="cluster">Fence Type</strong></td>
 				<td>SCSI Reservation Fencing</td>
@@ -1714,7 +1880,14 @@
 						tal:attributes="value cur_fencedev/name | nothing" />
 				</td>
 			</tr>
-  </table>	
+		</table>
+		<tal:block tal:condition="exists: cur_fencedev">
+			<input type="hidden" name="existing_device" value="1" />
+			<input type="hidden" name="old_name"
+				tal:attributes="value cur_fencedev/name | nothing" />
+		</tal:block>
+		<input type="hidden" name="sharable" value="1" />
+		<input type="hidden" name="fence_type" value="scsi" />
 	</div>
 </div>
 
@@ -1760,6 +1933,11 @@
 				<td><input name="auth_type" type="text" Title="Options are to leave blank for none, password, md2, or md5"/></td>
 			</tr>
 		</table>
+		<tal:block tal:condition="exists: cur_fencedev">
+			<input type="hidden" name="existing_device" value="1" />
+			<input type="hidden" name="old_name"
+				tal:attributes="value cur_fencedev/name | nothing" />
+		</tal:block>
 		<input type="hidden" name="fence_type" value="fence_ipmilan" />
 	</div>
 </div>
@@ -1780,8 +1958,13 @@
 						tal:attributes="value cur_fencedev/name | nothing" />
 				</td>
 			</tr>
-			<input type="hidden" name="fence_type" value="fence_manual" />
 		</table>
+		<tal:block tal:condition="exists: cur_fencedev">
+			<input type="hidden" name="existing_device" value="1" />
+			<input type="hidden" name="old_name"
+				tal:attributes="value cur_fencedev/name | nothing" />
+		</tal:block>
+		<input type="hidden" name="fence_type" value="fence_manual" />
 	</div>
 </div>
 
@@ -1863,172 +2046,206 @@
 </div>
 
 <div metal:define-macro="fence-instance-form-apc">
-	<div id="fence_apc_instance" class="fencedev_instance">
+	<div id="fence_apc_instance" name="fence_apc" class="fencedev_instance">
 		<table>
 			<tr>
 				<td>Port</td>
 				<td>
 					<input name="port" type="text"
-						tal:attributes="value nothing" />
+						tal:attributes="value cur_instance/port | nothing" />
 				</td>
 			</tr>
 			<tr>
 				<td>Switch</td>
 				<td>
 					<input name="switch" type="text"
-						tal:attributes="value nothing" />
+						tal:attributes="value cur_instance/switch | nothing" />
 				</td>
 			</tr>
+			<input tal:condition="exists: cur_instance"
+				type="hidden" name="existing_instance" value="1" />
+			<input type="hidden" name="parent_fencedev" value="" />
 		</table>
 	</div>
 </div>
 
 <div metal:define-macro="fence-instance-form-egenera">
-	<div id="fence_egenera_instance" class="fencedev_instance">
+	<div id="fence_egenera_instance" name="fence_egenera" class="fencedev_instance">
 		<table>
 			<tr>
 				<td>lpan</td>
 				<td>
 					<input name="lpan" type="text"
-						tal:attributes="value nothing" />
+						tal:attributes="value cur_instance/lpan | nothing" />
 				</td>
 			</tr>
 			<tr>
 				<td>pserver</td>
 				<td>
 					<input name="pserver" type="text"
-						tal:attributes="value nothing" />
+						tal:attributes="value cur_instance/pserver | nothing" />
 				</td>
 			</tr>
+			<input tal:condition="exists: cur_instance"
+				type="hidden" name="existing_instance" value="1" />
+			<input type="hidden" name="parent_fencedev" value="" />
 		</table>
 	</div>
 </div>
 
 <div metal:define-macro="fence-instance-form-wti">
-	<div id="fence_wti_instance" class="fencedev_instance">
+	<div id="fence_wti_instance" name="fence_wti" class="fencedev_instance">
 		<table>
 			<tr>
 				<td>Port</td>
 				<td>
 					<input name="port" type="text"
-						tal:attributes="value nothing" />
+						tal:attributes="value cur_instance/port | nothing" />
 				</td>
 			</tr>
+			<input tal:condition="exists: cur_instance"
+				type="hidden" name="existing_instance" value="1" />
+			<input type="hidden" name="parent_fencedev" value="" />
 		</table>
 	</div>
 </div>
 
 <div metal:define-macro="fence-instance-form-brocade">
-	<div id="fence_brocade_instance" class="fencedev_instance">
+	<div id="fence_brocade_instance" name="fence_brocade" class="fencedev_instance">
 		<table>
 			<tr>
 				<td>Port</td>
 				<td>
 					<input name="port" type="text"
-						tal:attributes="value nothing" />
+						tal:attributes="value cur_instance/port | nothing" />
 				</td>
 			</tr>
+			<input tal:condition="exists: cur_instance"
+				type="hidden" name="existing_instance" value="1" />
+			<input type="hidden" name="parent_fencedev" value="" />
 		</table>
 	</div>
 </div>
 
 <div metal:define-macro="fence-instance-form-vixel">
-	<div id="fence_vixel_instance" class="fencedev_instance">
+	<div id="fence_vixel_instance" name="fence_vixel" class="fencedev_instance">
 		<table>
 			<tr>
 				<td>Port</td>
 				<td>
 					<input name="port" type="text"
-						tal:attributes="value nothing" />
+						tal:attributes="value cur_instance/port | nothing" />
 				</td>
 			</tr>
+			<input tal:condition="exists: cur_instance"
+				type="hidden" name="existing_instance" value="1" />
+			<input type="hidden" name="parent_fencedev" value="" />
 		</table>
 	</div>
 </div>
 
 <div metal:define-macro="fence-instance-form-sanbox2">
-	<div id="fence_sanbox2_instance" class="fencedev_instance">
+	<div id="fence_sanbox2_instance" name="fence_sanbox2" class="fencedev_instance">
 		<table>
 			<tr>
 				<td>Port</td>
 				<td>
 					<input name="port" type="text"
-						tal:attributes="value nothing" />
+						tal:attributes="value cur_instance/port | nothing" />
 				</td>
 			</tr>
+			<input tal:condition="exists: cur_instance"
+				type="hidden" name="existing_instance" value="1" />
+			<input type="hidden" name="parent_fencedev" value="" />
 		</table>
 	</div>
 </div>
 
 <div metal:define-macro="fence-instance-form-mcdata">
-	<div id="fence_mcdata_instance" class="fencedev_instance">
+	<div id="fence_mcdata_instance" name="fence_mcdata" class="fencedev_instance">
 		<table>
 			<tr>
 				<td>Port</td>
 				<td>
 					<input name="port" type="text"
-						tal:attributes="value nothing" />
+						tal:attributes="value cur_instance/port | nothing" />
 				</td>
 			</tr>
+			<input tal:condition="exists: cur_instance"
+				type="hidden" name="existing_instance" value="1" />
+			<input type="hidden" name="parent_fencedev" value="" />
 		</table>
 	</div>
 </div>
 
 <div metal:define-macro="fence-instance-form-gndb">
-	<div id="fence_gnbd_instance" class="fencedev_instance">
+	<div id="fence_gnbd_instance" name="fence_gnbd" class="fencedev_instance">
 		<table>
 			<tr>
 				<td>IP Address</td>
 				<td>
 					<input name="ipaddress" type="text"
-						tal:attributes="value nothing" />
+						tal:attributes="value cur_instance/ipaddress | nothing" />
 				</td>
 			</tr>
+			<input tal:condition="exists: cur_instance"
+				type="hidden" name="existing_instance" value="1" />
+			<input type="hidden" name="parent_fencedev" value="" />
 		</table>
 	</div>
 </div>
 
 <div metal:define-macro="fence-instance-form-bladecenter">
-	<div id="fence_bladecenter_instance" class="fencedev_instance">
+	<div id="fence_bladecenter_instance" name="fence_bladecenter" class="fencedev_instance">
 		<table>
 			<tr>
 				<td>Blade</td>
 				<td>
 					<input name="ipaddress" type="text"
-						tal:attributes="value nothing" />
+						tal:attributes="value cur_instance/ipaddress | nothing" />
 				</td>
 			</tr>
+			<input tal:condition="exists: cur_instance"
+				type="hidden" name="existing_instance" value="1" />
+			<input type="hidden" name="parent_fencedev" value="" />
 		</table>
 	</div>
 </div>
 
 <div metal:define-macro="fence-instance-form-bullpap">
-	<div id="fence_bullpap_instance" class="fencedev_instance">
+	<div id="fence_bullpap_instance" name="fence_bullpap" class="fencedev_instance">
 		<table>
 			<tr>
 				<td>Domain</td>
 				<td>
 					<input name="domain" type="text"
-						tal:attributes="value nothing" />
+						tal:attributes="value cur_instance/domain | nothing" />
 				</td>
 			</tr>
+			<input tal:condition="exists: cur_instance"
+				type="hidden" name="existing_instance" value="1" />
+			<input type="hidden" name="parent_fencedev" value="" />
 		</table>
 	</div>
 </div>
 
 <div metal:define-macro="fence-instance-form-xvm">
-	<div id="fence_xvm_instance" class="fencedev_instance">
+	<div id="fence_xvm_instance" name="fence_xvm" class="fencedev_instance">
 		<table>
 			<tr>
 				<td>Domain</td>
 				<td>
 					<input name="domain" type="text"
-						tal:attributes="value nothing" />
+						tal:attributes="value cur_instance/domain | nothing" />
 				</td>
 			</tr>
+			<input tal:condition="exists: cur_instance"
+				type="hidden" name="existing_instance" value="1" />
+			<input type="hidden" name="parent_fencedev" value="" />
 		</table>
 	</div>
 </div>
+
 <div metal:define-macro="fence-instance-form-list">
 	<tal:block
 		metal:use-macro="here/form-macros/macros/fence-instance-form-apc" />



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-11-30 22:31 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-11-30 22:31 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Branch: 	RHEL5
Changes by:	jparsons at sourceware.org	2006-11-30 22:31:59

Modified files:
	luci/cluster   : form-macros 

Log message:
	font color fix

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.90.2.5&r2=1.90.2.6

--- conga/luci/cluster/form-macros	2006/11/30 22:21:52	1.90.2.5
+++ conga/luci/cluster/form-macros	2006/11/30 22:31:59	1.90.2.6
@@ -3012,7 +3012,7 @@
 <tal:block tal:define="global fencedevs python: fencedevinfo['fencedevs']"/>
   <span tal:repeat="fencedev fencedevs">
    <h3>Agent type: <span tal:content="fencedev/pretty_name"/></h3>
-   <h3>Name: <font color="green"><a tal:attributes="href fencedev/cfgurl"><span tal:content="fencedev/name"/></a></font></h3>
+   <h3>Name: <font style="color:green"><a class="running" tal:attributes="href fencedev/cfgurl"><span tal:content="fencedev/name"/></a></font></h3>
    <h3>Nodes using this device for fencing:</h3>
    <ul>
      <tal:block tal:define="global usednodes python:fencedev['nodesused']"/>
@@ -3021,7 +3021,7 @@
      </span>
     <span tal:repeat="usednode usednodes">
      <li><font color="green">
-      <a href="" tal:attributes="href usednode/nodeurl"><tal:block tal:content="usednode/nodename"/>
+      <a class="runned" href="" tal:attributes="href usednode/nodeurl"><tal:block tal:content="usednode/nodename"/>
       </a></font>
      </li>
     </span>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-11-30 22:31 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-11-30 22:31 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-11-30 22:31:23

Modified files:
	luci/cluster   : form-macros 

Log message:
	font color fix

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.116&r2=1.117

--- conga/luci/cluster/form-macros	2006/11/30 22:19:21	1.116
+++ conga/luci/cluster/form-macros	2006/11/30 22:31:22	1.117
@@ -3012,7 +3012,7 @@
 <tal:block tal:define="global fencedevs python: fencedevinfo['fencedevs']"/>
   <span tal:repeat="fencedev fencedevs">
    <h3>Agent type: <span tal:content="fencedev/pretty_name"/></h3>
-   <h3>Name: <font color="green"><a tal:attributes="href fencedev/cfgurl"><span tal:content="fencedev/name"/></a></font></h3>
+   <h3>Name: <font style="color:green"><a class="running" tal:attributes="href fencedev/cfgurl"><span tal:content="fencedev/name"/></a></font></h3>
    <h3>Nodes using this device for fencing:</h3>
    <ul>
      <tal:block tal:define="global usednodes python:fencedev['nodesused']"/>
@@ -3021,7 +3021,7 @@
      </span>
     <span tal:repeat="usednode usednodes">
      <li><font color="green">
-      <a href="" tal:attributes="href usednode/nodeurl"><tal:block tal:content="usednode/nodename"/>
+      <a class="runned" href="" tal:attributes="href usednode/nodeurl"><tal:block tal:content="usednode/nodename"/>
       </a></font>
      </li>
     </span>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-11-30 22:21 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-11-30 22:21 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Branch: 	RHEL5
Changes by:	jparsons at sourceware.org	2006-11-30 22:21:52

Modified files:
	luci/cluster   : form-macros 

Log message:
	fix form pre-fill for fencedevs...part of bz212021, make cfg link visible,finished scsi fence form

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.90.2.4&r2=1.90.2.5

--- conga/luci/cluster/form-macros	2006/11/30 20:10:17	1.90.2.4
+++ conga/luci/cluster/form-macros	2006/11/30 22:21:52	1.90.2.5
@@ -1702,7 +1702,19 @@
 	tal:attributes="id cur_fencedev/name | nothing">
 
 	<div id="fence_scsi" class="fencedev">
-		-
+	<table>
+			<tr tal:condition="exists: cur_fence_type">
+				<td><strong class="cluster">Fence Type</strong></td>
+				<td>SCSI Reservation Fencing</td>
+			</tr>
+			<tr>
+				<td>Name</td>
+				<td>
+					<input name="name" type="text"
+						tal:attributes="value cur_fencedev/name | nothing" />
+				</td>
+			</tr>
+  </table>	
 	</div>
 </div>
 
@@ -3000,7 +3012,7 @@
 <tal:block tal:define="global fencedevs python: fencedevinfo['fencedevs']"/>
   <span tal:repeat="fencedev fencedevs">
    <h3>Agent type: <span tal:content="fencedev/pretty_name"/></h3>
-   <h3>Name: <span tal:content="fencedev/name"/></h3>
+   <h3>Name: <font color="green"><a tal:attributes="href fencedev/cfgurl"><span tal:content="fencedev/name"/></a></font></h3>
    <h3>Nodes using this device for fencing:</h3>
    <ul>
      <tal:block tal:define="global usednodes python:fencedev['nodesused']"/>
@@ -3113,10 +3125,16 @@
 <div metal:define-macro="fencedev-form">
 	<h2>Fence Device Form</h2>
 
-	<div class="cluster fencedev" tal:define="
-		global cur_fence_type python: 'fence_apc';
+	<div class="cluster fencedev">
+  <tal:block tal:define="
 		global cur_fencename request/fencename | nothing;
-		global cur_cluster request/clustername | nothing" >
+		global cur_cluster request/clustername | nothing;
+		global cur_fence_type python: 'fence_apc'"/>
+
+  <span tal:condition="cur_fencename">
+    <span tal:define="global cur_fencedev python:here.getFence(modelb,request);
+                      global cur_fence_type cur_fencedev/agent"/>
+  </span>
 	
 	<tal:block tal:condition="python: cur_fence_type == 'fence_apc'">
 		<tal:block metal:use-macro="here/form-macros/macros/fence-form-apc" />



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-11-30 22:19 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-11-30 22:19 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-11-30 22:19:21

Modified files:
	luci/cluster   : form-macros 

Log message:
	finished scsi fence form

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.115&r2=1.116

--- conga/luci/cluster/form-macros	2006/11/30 21:28:26	1.115
+++ conga/luci/cluster/form-macros	2006/11/30 22:19:21	1.116
@@ -1702,7 +1702,19 @@
 	tal:attributes="id cur_fencedev/name | nothing">
 
 	<div id="fence_scsi" class="fencedev">
-		-
+	<table>
+			<tr tal:condition="exists: cur_fence_type">
+				<td><strong class="cluster">Fence Type</strong></td>
+				<td>SCSI Reservation Fencing</td>
+			</tr>
+			<tr>
+				<td>Name</td>
+				<td>
+					<input name="name" type="text"
+						tal:attributes="value cur_fencedev/name | nothing" />
+				</td>
+			</tr>
+  </table>	
 	</div>
 </div>
 
@@ -3120,7 +3132,7 @@
 		global cur_fence_type python: 'fence_apc'"/>
 
   <span tal:condition="cur_fencename">
-    <span tal:define="global cur_fencedev python:here.getFence(model,request);
+    <span tal:define="global cur_fencedev python:here.getFence(modelb,request);
                       global cur_fence_type cur_fencedev/agent"/>
   </span>
 	



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-11-30 21:28 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-11-30 21:28 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-11-30 21:28:27

Modified files:
	luci/cluster   : form-macros 

Log message:
	minor macro mistake

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.114&r2=1.115

--- conga/luci/cluster/form-macros	2006/11/30 21:24:45	1.114
+++ conga/luci/cluster/form-macros	2006/11/30 21:28:26	1.115
@@ -3116,15 +3116,13 @@
 	<div class="cluster fencedev">
   <tal:block tal:define="
 		global cur_fencename request/fencename | nothing;
-		global cur_cluster request/clustername | nothing" />
+		global cur_cluster request/clustername | nothing;
+		global cur_fence_type python: 'fence_apc'"/>
 
   <span tal:condition="cur_fencename">
     <span tal:define="global cur_fencedev python:here.getFence(model,request);
                       global cur_fence_type cur_fencedev/agent"/>
   </span>
-  <span tal:condition="not cur_fencename">
-		<span tal:define="global cur_fence_type python: 'fence_apc'"/>
-  </span>
 	
 	<tal:block tal:condition="python: cur_fence_type == 'fence_apc'">
 		<tal:block metal:use-macro="here/form-macros/macros/fence-form-apc" />



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-11-30 21:24 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-11-30 21:24 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-11-30 21:24:45

Modified files:
	luci/cluster   : form-macros 

Log message:
	fix form pre-fill for fencedevs...part of bz212021

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.113&r2=1.114

--- conga/luci/cluster/form-macros	2006/11/30 20:47:50	1.113
+++ conga/luci/cluster/form-macros	2006/11/30 21:24:45	1.114
@@ -3113,10 +3113,18 @@
 <div metal:define-macro="fencedev-form">
 	<h2>Fence Device Form</h2>
 
-	<div class="cluster fencedev" tal:define="
-		global cur_fence_type python: 'fence_apc';
+	<div class="cluster fencedev">
+  <tal:block tal:define="
 		global cur_fencename request/fencename | nothing;
-		global cur_cluster request/clustername | nothing" >
+		global cur_cluster request/clustername | nothing" />
+
+  <span tal:condition="cur_fencename">
+    <span tal:define="global cur_fencedev python:here.getFence(model,request);
+                      global cur_fence_type cur_fencedev/agent"/>
+  </span>
+  <span tal:condition="not cur_fencename">
+		<span tal:define="global cur_fence_type python: 'fence_apc'"/>
+  </span>
 	
 	<tal:block tal:condition="python: cur_fence_type == 'fence_apc'">
 		<tal:block metal:use-macro="here/form-macros/macros/fence-form-apc" />



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-11-30 20:47 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-11-30 20:47 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-11-30 20:47:51

Modified files:
	luci/cluster   : form-macros 

Log message:
	make cfg link visible

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.112&r2=1.113

--- conga/luci/cluster/form-macros	2006/11/30 20:45:03	1.112
+++ conga/luci/cluster/form-macros	2006/11/30 20:47:50	1.113
@@ -3000,7 +3000,7 @@
 <tal:block tal:define="global fencedevs python: fencedevinfo['fencedevs']"/>
   <span tal:repeat="fencedev fencedevs">
    <h3>Agent type: <span tal:content="fencedev/pretty_name"/></h3>
-   <h3>Name: <a tal:attributes="href fencedev/cfgurl"><span tal:content="fencedev/name"/></a></h3>
+   <h3>Name: <font color="green"><a tal:attributes="href fencedev/cfgurl"><span tal:content="fencedev/name"/></a></font></h3>
    <h3>Nodes using this device for fencing:</h3>
    <ul>
      <tal:block tal:define="global usednodes python:fencedev['nodesused']"/>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-11-30 20:45 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-11-30 20:45 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-11-30 20:45:06

Modified files:
	luci/cluster   : form-macros 

Log message:
	use cfgurl that has been ignored

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.111&r2=1.112

--- conga/luci/cluster/form-macros	2006/11/29 22:24:46	1.111
+++ conga/luci/cluster/form-macros	2006/11/30 20:45:03	1.112
@@ -3000,7 +3000,7 @@
 <tal:block tal:define="global fencedevs python: fencedevinfo['fencedevs']"/>
   <span tal:repeat="fencedev fencedevs">
    <h3>Agent type: <span tal:content="fencedev/pretty_name"/></h3>
-   <h3>Name: <span tal:content="fencedev/name"/></h3>
+   <h3>Name: <a tal:attributes="href fencedev/cfgurl"><span tal:content="fencedev/name"/></a></h3>
    <h3>Nodes using this device for fencing:</h3>
    <ul>
      <tal:block tal:define="global usednodes python:fencedev['nodesused']"/>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-11-30 20:10 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-11-30 20:10 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Branch: 	RHEL5
Changes by:	jparsons at sourceware.org	2006-11-30 20:10:18

Modified files:
	luci/cluster   : form-macros 

Log message:
	Modification to shared fence list, form for xvm agent, minor addition to formlist to support shared devices only

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.90.2.3&r2=1.90.2.4

--- conga/luci/cluster/form-macros	2006/11/16 19:34:52	1.90.2.3
+++ conga/luci/cluster/form-macros	2006/11/30 20:10:17	1.90.2.4
@@ -1099,6 +1099,22 @@
 	<h2>Cluster Process Form</h2>
 </div>
 
+<div metal:define-macro="shared-fence-option-list">
+	<option name="fence_apc" value="fence_apc">APC Power Switch</option>
+	<option name="fence_wti" value="fence_wti">WTI Power Switch</option>
+	<option name="fence_brocade" value="fence_brocade">Brocade Fabric Switch</option>
+	<option name="fence_mcdata" value="fence_mcdata">McData SAN Switch</option>
+	<option name="fence_sanbox2" value="fence_sanbox2">QLogic SANbox2</option>
+	<option name="fence_vixel" value="fence_vixel">Vixel SAN Switch</option>
+	<option name="fence_gnbd" value="fence_gnbd">GNBD</option>
+	<option name="fence_egenera" value="fence_egenera">Egenera SAN Controller</option>
+	<option name="fence_bladecenter" value="fence_bladecenter">IBM Blade Center</option>
+	<option name="fence_bullpap" value="fence_bullpap">Bull PAP</option>
+	<option name="fence_rps10" value="fence_rps10">RPS10 Serial Switch</option>
+	<option name="fence_xvm" value="fence_xvm">Virtual Machine Fencing</option>
+	<option name="fence_scsi" value="fence_scsi">SCSI Fencing</option>
+</div>
+
 <div metal:define-macro="fence-option-list">
 	<option name="fence_apc" value="fence_apc">APC Power Switch</option>
 	<option name="fence_wti" value="fence_wti">WTI Power Switch</option>
@@ -1115,10 +1131,14 @@
 	<option name="fence_rps10" value="fence_rps10">RPS10 Serial Switch</option>
 	<option name="fence_drac" value="fence_drac">Dell DRAC</option>
 	<option name="fence_ipmilan" value="fence_ipmilan">IPMI Lan</option>
+	<option name="fence_xvm" value="fence_xvm">Virtual Machine Fencing</option>
+	<option name="fence_scsi" value="fence_scsi">SCSI Fencing</option>
 	<option name="fence_manual" value="fence_manual">Manual Fencing</option>
 </div>
 
-<div metal:define-macro="fence-form-apc">
+<div metal:define-macro="fence-form-apc"
+	tal:attributes="id cur_fencedev/name | nothing">
+
 	<div id="fence_apc" class="fencedev">
 		<table>
 			<tr tal:condition="exists: cur_fence_type">
@@ -1129,21 +1149,21 @@
 				<td>Name</td>
 				<td>
 					<input name="name" type="text"
-						tal:attributes="cur_fencedev/name | nothing" />
+						tal:attributes="value cur_fencedev/name | nothing" />
 				</td>
 			</tr>
 			<tr>
 				<td>IP Address</td>
 				<td>
 					<input name="ip_addr" type="text"
-						tal:attributes="cur_fendev/ipaddr | nothing" />
+						tal:attributes="value cur_fencedev/ipaddr | nothing" />
 				</td>
 			</tr>
 			<tr>
 				<td>Login</td>
 				<td>
 					<input name="login" type="text"
-						tal:attributes="cur_fencedev/login | nothing" />
+						tal:attributes="value cur_fencedev/login | nothing" />
 				</td>
 			</tr>
 			<tr>
@@ -1158,7 +1178,9 @@
 	</div>
 </div>
 
-<div metal:define-macro="fence-form-mcdata">
+<div metal:define-macro="fence-form-mcdata"
+	tal:attributes="id cur_fencedev/name | nothing">
+
 	<div id="fence_mcdata" class="fencedev">
 		<table>
 			<tr tal:condition="exists: cur_fence_type">
@@ -1169,21 +1191,21 @@
 				<td>Name</td>
 				<td>
 					<input name="name" type="text"
-						tal:attributes="cur_fencedev/name | nothing" />
+						tal:attributes="value cur_fencedev/name | nothing" />
 				</td>
 			</tr>
 			<tr>
 				<td>IP Address</td>
 				<td>
 					<input name="ip_addr" type="text"
-						tal:attributes="cur_fendev/ipaddr | nothing" />
+						tal:attributes="value cur_fendev/ipaddr | nothing" />
 				</td>
 			</tr>
 			<tr>
 				<td>Login</td>
 				<td>
 					<input name="login" type="text"
-						tal:attributes="cur_fencedev/login | nothing" />
+						tal:attributes="value cur_fencedev/login | nothing" />
 				</td>
 			</tr>
 			<tr>
@@ -1198,7 +1220,9 @@
 	</div>
 </div>
 
-<div metal:define-macro="fence-form-wti">
+<div metal:define-macro="fence-form-wti"
+	tal:attributes="id cur_fencedev/name | nothing">
+
 	<div id="fence_wti" class="fencedev">
 		<table>
 			<tr tal:condition="exists: cur_fence_type">
@@ -1209,14 +1233,14 @@
 				<td>Name</td>
 				<td>
 					<input name="name" type="text"
-						tal:attributes="cur_fencedev/name | nothing" />
+						tal:attributes="value cur_fencedev/name | nothing" />
 				</td>
 			</tr>
 			<tr>
 				<td>IP Address</td>
 				<td>
 					<input name="ip_addr" type="text"
-						tal:attributes="cur_fendev/ipaddr | nothing" />
+						tal:attributes="value cur_fencedev/ipaddr | nothing" />
 				</td>
 			</tr>
 			<tr>
@@ -1231,7 +1255,9 @@
 	</div>
 </div>
 
-<div metal:define-macro="fence-form-ilo">
+<div metal:define-macro="fence-form-ilo"
+	tal:attributes="id cur_fencedev/name | nothing">
+
 	<div id="fence_ilo" class="fencedev">
 		<table>
 			<tr tal:condition="exists: cur_fence_type">
@@ -1242,21 +1268,21 @@
 				<td>Name</td>
 				<td>
 					<input name="name" type="text"
-						tal:attributes="cur_fencedev/name | nothing" />
+						tal:attributes="value cur_fencedev/name | nothing" />
 				</td>
 			</tr>
 			<tr>
 				<td>Hostname</td>
 				<td>
 					<input name="hostname" type="text"
-						tal:attributes="cur_fencedev/hostname | nothing" />
+						tal:attributes="value cur_fencedev/hostname | nothing" />
 				</td>
 			</tr>
 			<tr>
 				<td>Login</td>
 				<td>
 					<input name="login" type="text"
-						tal:attributes="cur_fencedev/login | nothing" />
+						tal:attributes="value cur_fencedev/login | nothing" />
 				</td>
 			</tr>
 			<tr>
@@ -1271,7 +1297,9 @@
 	</div>
 </div>
 
-<div metal:define-macro="fence-form-drac">
+<div metal:define-macro="fence-form-drac"
+	tal:attributes="id cur_fencedev/name | nothing">
+
 	<div id="fence_drac" class="fencedev">
 		<table>
 			<tr tal:condition="exists: cur_fence_type">
@@ -1282,21 +1310,21 @@
 				<td>Name</td>
 				<td>
 					<input name="name" type="text"
-						tal:attributes="cur_fencedev/name | nothing" />
+						tal:attributes="value cur_fencedev/name | nothing" />
 				</td>
 			</tr>
 			<tr>
 				<td>IP Address</td>
 				<td>
 					<input name="ip_addr" type="text"
-						tal:attributes="cur_fendev/ipaddr | nothing" />
+						tal:attributes="value cur_fencedev/ipaddr | nothing" />
 				</td>
 			</tr>
 			<tr>
 				<td>Login</td>
 				<td>
 					<input name="login" type="text"
-						tal:attributes="cur_fencedev/login | nothing" />
+						tal:attributes="value cur_fencedev/login | nothing" />
 				</td>
 			</tr>
 			<tr>
@@ -1310,7 +1338,9 @@
 	</div>
 </div>
 
-<div metal:define-macro="fence-form-rsa">
+<div metal:define-macro="fence-form-rsa"
+	tal:attributes="id cur_fencedev/name | nothing">
+
 	<div id="fence_rsa" class="fencedev">
 		<table>
 			<tr tal:condition="exists: cur_fence_type">
@@ -1321,21 +1351,21 @@
 				<td>Name</td>
 				<td>
 					<input name="name" type="text"
-						tal:attributes="cur_fencedev/name | nothing" />
+						tal:attributes="value cur_fencedev/name | nothing" />
 				</td>
 			</tr>
 			<tr>
 				<td>Hostname</td>
 				<td>
 					<input name="hostname" type="text"
-						tal:attributes="cur_fencedev/hostname | nothing" />
+						tal:attributes="value cur_fencedev/hostname | nothing" />
 				</td>
 			</tr>
 			<tr>
 				<td>Login</td>
 				<td>
 					<input name="login" type="text"
-						tal:attributes="cur_fencedev/login | nothing" />
+						tal:attributes="value cur_fencedev/login | nothing" />
 				</td>
 			</tr>
 			<tr>
@@ -1350,7 +1380,9 @@
 	</div>
 </div>
 
-<div metal:define-macro="fence-form-brocade">
+<div metal:define-macro="fence-form-brocade"
+	tal:attributes="id cur_fencedev/name | nothing">
+
 	<div id="fence_brocade" class="fencedev">
 		<table>
 			<tr tal:condition="exists: cur_fence_type">
@@ -1361,21 +1393,21 @@
 				<td>Name</td>
 				<td>
 					<input name="name" type="text"
-						tal:attributes="cur_fencedev/name | nothing" />
+						tal:attributes="value cur_fencedev/name | nothing" />
 				</td>
 			</tr>
 			<tr>
 				<td>IP Address</td>
 				<td>
 					<input name="ip_addr" type="text"
-						tal:attributes="cur_fendev/ipaddr | nothing" />
+						tal:attributes="value cur_fencedev/ipaddr | nothing" />
 				</td>
 			</tr>
 			<tr>
 				<td>Login</td>
 				<td>
 					<input name="login" type="text"
-						tal:attributes="cur_fencedev/login | nothing" />
+						tal:attributes="value cur_fencedev/login | nothing" />
 				</td>
 			</tr>
 			<tr>
@@ -1390,7 +1422,9 @@
 	</div>
 </div>
 
-<div metal:define-macro="fence-form-sanbox2">
+<div metal:define-macro="fence-form-sanbox2"
+	tal:attributes="id cur_fencedev/name | nothing">
+
 	<div id="fence_sanbox2" class="fencedev">
 		<table>
 			<tr tal:condition="exists: cur_fence_type">
@@ -1401,7 +1435,7 @@
 				<td>Name</td>
 				<td>
 					<input name="name" type="text"
-						tal:attributes="cur_fencedev/name | nothing" />
+						tal:attributes="value cur_fencedev/name | nothing" />
 				</td>
 			</tr>
 			<tr>
@@ -1412,7 +1446,7 @@
 				<td>Login</td>
 				<td>
 					<input name="login" type="text"
-						tal:attributes="cur_fencedev/login | nothing" />
+						tal:attributes="value cur_fencedev/login | nothing" />
 				</td>
 			</tr>
 			<tr>
@@ -1427,7 +1461,9 @@
 	</div>
 </div>
 
-<div metal:define-macro="fence-form-vixel">
+<div metal:define-macro="fence-form-vixel"
+	tal:attributes="id cur_fencedev/name | nothing">
+
 	<div id="fence_vixel" class="fencedev">
 		<table>
 			<tr tal:condition="exists: cur_fence_type">
@@ -1438,14 +1474,14 @@
 				<td>Name</td>
 				<td>
 					<input name="name" type="text"
-						tal:attributes="cur_fencedev/name | nothing" />
+						tal:attributes="value cur_fencedev/name | nothing" />
 				</td>
 			</tr>
 			<tr>
 				<td>IP Address</td>
 				<td>
 					<input name="ip_addr" type="text"
-						tal:attributes="cur_fendev/ipaddr | nothing" />
+						tal:attributes="value cur_fencedev/ipaddr | nothing" />
 				</td>
 			</tr>
 			<tr>
@@ -1460,7 +1496,9 @@
 	</div>
 </div>
 
-<div metal:define-macro="fence-form-gnbd">
+<div metal:define-macro="fence-form-gnbd"
+	tal:attributes="id cur_fencedev/name | nothing">
+
 	<div id="fence_gnbd" class="fencedev">
 		<table>
 			<tr tal:condition="exists: cur_fence_type">
@@ -1471,14 +1509,14 @@
 				<td>Name</td>
 				<td>
 					<input name="name" type="text"
-						tal:attributes="cur_fencedev/name | nothing" />
+						tal:attributes="value cur_fencedev/name | nothing" />
 				</td>
 			</tr>
 			<tr>
 				<td>Servers (whitespace separated list)</td>
 				<td>
 					<input name="servers" type="text"
-						tal:attributes="cur_fencedev/servers | nothing" />
+						tal:attributes="value cur_fencedev/servers | nothing" />
 				</td>
 			</tr>
 		</table>
@@ -1486,7 +1524,9 @@
 	</div>
 </div>
 
-<div metal:define-macro="fence-form-egenera">
+<div metal:define-macro="fence-form-egenera"
+	tal:attributes="id cur_fencedev/name | nothing">
+
 	<div id="fence_egenera" class="fencedev">
 		<table>
 			<tr tal:condition="exists: cur_fence_type">
@@ -1497,21 +1537,21 @@
 				<td>Name</td>
 				<td>
 					<input name="name" type="text"
-						tal:attributes="cur_fencedev/name | nothing" />
+						tal:attributes="value cur_fencedev/name | nothing" />
 				</td>
 			</tr>
 			<tr>
 				<td>CServer</td>
 				<td>
 					<input name="cserver" type="text"
-						tal:attributes="cur_fencedev/cserver | nothing" />
+						tal:attributes="value cur_fencedev/cserver | nothing" />
 				</td>
 			</tr>
 			<tr>
 				<td>ESH Path (Optional)</td>
 				<td>
 					<input name="login" type="text"
-						tal:attributes="cur_fencedev/login | string:/opt/pan-mgr/bin/esh" />
+						tal:attributes="value cur_fencedev/login | string:/opt/pan-mgr/bin/esh" />
 				</td>
 			</tr>
 		</table>
@@ -1519,7 +1559,9 @@
 	</div>
 </div>
 
-<div metal:define-macro="fence-form-bladecenter">
+<div metal:define-macro="fence-form-bladecenter"
+	tal:attributes="id cur_fencedev/name | nothing">
+
 	<div id="fence_bladecenter" class="fencedev">
 		<table>
 			<tr tal:condition="exists: cur_fence_type">
@@ -1530,21 +1572,21 @@
 				<td>Name</td>
 				<td>
 					<input name="name" type="text"
-						tal:attributes="cur_fencedev/name | nothing" />
+						tal:attributes="value cur_fencedev/name | nothing" />
 				</td>
 			</tr>
 			<tr>
 				<td>IP Address</td>
 				<td>
 					<input name="ip_addr" type="text"
-						tal:attributes="cur_fendev/ipaddr | nothing" />
+						tal:attributes="value cur_fencedev/ipaddr | nothing" />
 				</td>
 			</tr>
 			<tr>
 				<td>Login</td>
 				<td>
 					<input name="login" type="text"
-						tal:attributes="cur_fencedev/login | nothing" />
+						tal:attributes="value cur_fencedev/login | nothing" />
 				</td>
 			</tr>
 			<tr>
@@ -1559,7 +1601,9 @@
 	</div>
 </div>
 
-<div metal:define-macro="fence-form-bullpap">
+<div metal:define-macro="fence-form-bullpap"
+	tal:attributes="id cur_fencedev/name | nothing">
+
 	<div id="fence_bullpap" class="fencedev">
 		<table>
 			<tr tal:condition="exists: cur_fence_type">
@@ -1570,21 +1614,21 @@
 				<td>Name</td>
 				<td>
 					<input name="name" type="text"
-						tal:attributes="cur_fencedev/name | nothing" />
+						tal:attributes="value cur_fencedev/name | nothing" />
 				</td>
 			</tr>
 			<tr>
 				<td>IP Address</td>
 				<td>
 					<input name="ip_addr" type="text"
-						tal:attributes="cur_fendev/ipaddr | nothing" />
+						tal:attributes="value cur_fencedev/ipaddr | nothing" />
 				</td>
 			</tr>
 			<tr>
 				<td>Login</td>
 				<td>
 					<input name="login" type="text"
-						tal:attributes="cur_fencedev/login | nothing" />
+						tal:attributes="value cur_fencedev/login | nothing" />
 				</td>
 			</tr>
 			<tr>
@@ -1599,7 +1643,9 @@
 	</div>
 </div>
 
-<div metal:define-macro="fence-form-rps10">
+<div metal:define-macro="fence-form-rps10"
+	tal:attributes="id cur_fencedev/name | nothing">
+
 	<div id="fence_rps10" class="fencedev">
 		<table>
 			<tr tal:condition="exists: cur_fence_type">
@@ -1610,21 +1656,21 @@
 				<td>Name</td>
 				<td>
 					<input name="name" type="text"
-						tal:attributes="cur_fencedev/name | nothing" />
+						tal:attributes="value cur_fencedev/name | nothing" />
 				</td>
 			</tr>
 			<tr>
 				<td>Device Name</td>
 				<td>
 					<input name="device" type="text"
-						tal:attributes="cur_fencedev/device | nothing" />
+						tal:attributes="value cur_fencedev/device | nothing" />
 				</td>
 			</tr>
 			<tr>
 				<td>Port</td>
 				<td>
 					<input name="port" type="text"
-						tal:attributes="cur_fencedev/port| nothing" />
+						tal:attributes="value cur_fencedev/port| nothing" />
 				</td>
 			</tr>
 		</table>
@@ -1632,7 +1678,37 @@
 	</div>
 </div>
 
-<div metal:define-macro="fence-form-ipmilan">
+<div metal:define-macro="fence-form-xvm"
+	tal:attributes="id cur_fencedev/name | nothing">
+
+	<div id="fence_xvm" class="fencedev">
+	<table>
+			<tr tal:condition="exists: cur_fence_type">
+				<td><strong class="cluster">Fence Type</strong></td>
+				<td>Virtual Machine Fencing</td>
+			</tr>
+			<tr>
+				<td>Name</td>
+				<td>
+					<input name="name" type="text"
+						tal:attributes="value cur_fencedev/name | nothing" />
+				</td>
+			</tr>
+  </table>	
+	</div>
+</div>
+
+<div metal:define-macro="fence-form-scsi"
+	tal:attributes="id cur_fencedev/name | nothing">
+
+	<div id="fence_scsi" class="fencedev">
+		-
+	</div>
+</div>
+
+<div metal:define-macro="fence-form-ipmilan"
+	tal:attributes="id cur_fencedev/name | nothing">
+
 	<div id="fence_ipmilan" class="fencedev">
 		<table>
 			<tr tal:condition="exists: cur_fence_type">
@@ -1643,21 +1719,21 @@
 				<td>Name</td>
 				<td>
 					<input name="name" type="text"
-						tal:attributes="cur_fencedev/name | nothing" />
+						tal:attributes="value cur_fencedev/name | nothing" />
 				</td>
 			</tr>
 			<tr>
 				<td>IP Address</td>
 				<td>
 					<input name="ip_addr" type="text"
-						tal:attributes="cur_fendev/ipaddr | nothing" />
+						tal:attributes="value cur_fencedev/ipaddr | nothing" />
 				</td>
 			</tr>
 			<tr>
 				<td>Login</td>
 				<td>
 					<input name="login" type="text"
-						tal:attributes="cur_fencedev/login | nothing" />
+						tal:attributes="value cur_fencedev/login | nothing" />
 				</td>
 			</tr>
 			<tr>
@@ -1676,7 +1752,9 @@
 	</div>
 </div>
 
-<div metal:define-macro="fence-form-manual">
+<div metal:define-macro="fence-form-manual"
+	tal:attributes="id cur_fencedev/name | nothing">
+
 	<div id="fence_manual" class="fencedev">
 		<table>
 			<tr tal:condition="exists: cur_fence_type">
@@ -1687,7 +1765,7 @@
 				<td>Name</td>
 				<td>
 					<input name="name" type="text"
-						tal:attributes="cur_fencedev/name | nothing" />
+						tal:attributes="value cur_fencedev/name | nothing" />
 				</td>
 			</tr>
 			<input type="hidden" name="fence_type" value="fence_manual" />
@@ -1711,10 +1789,263 @@
 	<tal:block metal:use-macro="here/form-macros/macros/fence-form-bullpap" />
 	<tal:block metal:use-macro="here/form-macros/macros/fence-form-rps10" />
 	<tal:block metal:use-macro="here/form-macros/macros/fence-form-ipmilan" />
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-xvm" />
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-scsi" />
 	<tal:block metal:use-macro="here/form-macros/macros/fence-form-manual" />
 </div>
 
+<div metal:define-macro="shared-fence-form-list">
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-apc" />
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-mcdata" />
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-wti" />
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-brocade" />
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-sanbox2" />
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-vixel" />
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-gnbd" />
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-egenera" />
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-bladecenter" />
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-bullpap" />
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-xvm" />
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-scsi" />
+</div>
+
+<div metal:define-macro="shared-fence-device-list">
+<tal:block tal:condition="exists: cur_fencedev">
+	<tal:block tal:condition="python: cur_fencedev['agent'] == 'fence_apc'">
+		<tal:block metal:use-macro="here/form-macros/macros/fence-form-apc" />
+	</tal:block>
+	<tal:block tal:condition="python: cur_fencedev['agent'] == 'fence_mcdata'">
+		<tal:block metal:use-macro="here/form-macros/macros/fence-form-mcdata" />
+	</tal:block>
+	<tal:block tal:condition="python: cur_fencedev['agent'] == 'fence_wti'">
+		<tal:block metal:use-macro="here/form-macros/macros/fence-form-wti" />
+	</tal:block>
+	<tal:block tal:condition="python: cur_fencedev['agent'] == 'fence_brocade'">
+		<tal:block metal:use-macro="here/form-macros/macros/fence-form-brocade" />
+	</tal:block>
+	<tal:block tal:condition="python: cur_fencedev['agent'] == 'fence_sanbox2'">
+		<tal:block metal:use-macro="here/form-macros/macros/fence-form-sanbox2" />
+	</tal:block>
+	<tal:block tal:condition="python: cur_fencedev['agent'] == 'fence_vixel'">
+		<tal:block metal:use-macro="here/form-macros/macros/fence-form-vixel" />
+	</tal:block>
+	<tal:block tal:condition="python: cur_fencedev['agent'] == 'fence_gnbd'">
+		<tal:block metal:use-macro="here/form-macros/macros/fence-form-gnbd" />
+	</tal:block>
+	<tal:block tal:condition="python: cur_fencedev['agent'] == 'fence_egenera'">
+		<tal:block metal:use-macro="here/form-macros/macros/fence-form-egenera" />
+	</tal:block>
+	<tal:block tal:condition="python: cur_fencedev['agent'] == 'fence_bladecenter'">
+		<tal:block metal:use-macro="here/form-macros/macros/fence-form-bladecenter" />
+	</tal:block>
+	<tal:block tal:condition="python: cur_fencedev['agent'] == 'fence_bullpap'">
+		<tal:block metal:use-macro="here/form-macros/macros/fence-form-bullpap" />
+	</tal:block>
+	<tal:block tal:condition="python: cur_fencedev['agent'] == 'fence_xvm'">
+		<tal:block metal:use-macro="here/form-macros/macros/fence-form-xvm" />
+	</tal:block>
+	<tal:block tal:condition="python: cur_fencedev['agent'] == 'fence_scsi'">
+		<tal:block metal:use-macro="here/form-macros/macros/fence-form-scsi" />
+	</tal:block>
+</tal:block>
+</div>
+
+<div metal:define-macro="fence-instance-form-apc">
+	<div id="fence_apc_instance" class="fencedev">
+		<table>
+			<tr>
+				<td>Port</td>
+				<td>
+					<input name="port" type="text"
+						tal:attributes="value nothing" />
+				</td>
+			</tr>
+			<tr>
+				<td>Switch</td>
+				<td>
+					<input name="switch" type="text"
+						tal:attributes="value nothing" />
+				</td>
+			</tr>
+		</table>
+	</div>
+</div>
+
+<div metal:define-macro="fence-instance-form-egenera">
+	<div id="fence_egenera_instance" class="fencedev">
+		<table>
+			<tr>
+				<td>lpan</td>
+				<td>
+					<input name="lpan" type="text"
+						tal:attributes="value nothing" />
+				</td>
+			</tr>
+			<tr>
+				<td>pserver</td>
+				<td>
+					<input name="pserver" type="text"
+						tal:attributes="value nothing" />
+				</td>
+			</tr>
+		</table>
+	</div>
+</div>
+
+<div metal:define-macro="fence-instance-form-wti">
+	<div id="fence_wti_instance" class="fencedev">
+		<table>
+			<tr>
+				<td>Port</td>
+				<td>
+					<input name="port" type="text"
+						tal:attributes="value nothing" />
+				</td>
+			</tr>
+		</table>
+	</div>
+</div>
+
+<div metal:define-macro="fence-instance-form-brocade">
+	<div id="fence_brocade_instance" class="fencedev">
+		<table>
+			<tr>
+				<td>Port</td>
+				<td>
+					<input name="port" type="text"
+						tal:attributes="value nothing" />
+				</td>
+			</tr>
+		</table>
+	</div>
+</div>
+
+<div metal:define-macro="fence-instance-form-vixel">
+	<div id="fence_vixel_instance" class="fencedev">
+		<table>
+			<tr>
+				<td>Port</td>
+				<td>
+					<input name="port" type="text"
+						tal:attributes="value nothing" />
+				</td>
+			</tr>
+		</table>
+	</div>
+</div>
+
+<div metal:define-macro="fence-instance-form-sanbox2">
+	<div id="fence_sanbox2_instance" class="fencedev">
+		<table>
+			<tr>
+				<td>Port</td>
+				<td>
+					<input name="port" type="text"
+						tal:attributes="value nothing" />
+				</td>
+			</tr>
+		</table>
+	</div>
+</div>
+
+<div metal:define-macro="fence-instance-form-mcdata">
+	<div id="fence_mcdata_instance" class="fencedev">
+		<table>
+			<tr>
+				<td>Port</td>
+				<td>
+					<input name="port" type="text"
+						tal:attributes="value nothing" />
+				</td>
+			</tr>
+		</table>
+	</div>
+</div>
+
+<div metal:define-macro="fence-instance-form-gndb">
+	<div id="fence_gnbd_instance" class="fencedev">
+		<table>
+			<tr>
+				<td>IP Address</td>
+				<td>
+					<input name="ipaddress" type="text"
+						tal:attributes="value nothing" />
+				</td>
+			</tr>
+		</table>
+	</div>
+</div>
+
+<div metal:define-macro="fence-instance-form-bladecenter">
+	<div id="fence_bladecenter_instance" class="fencedev">
+		<table>
+			<tr>
+				<td>Blade</td>
+				<td>
+					<input name="ipaddress" type="text"
+						tal:attributes="value nothing" />
+				</td>
+			</tr>
+		</table>
+	</div>
+</div>
+
+<div metal:define-macro="fence-instance-form-bullpap">
+	<div id="fence_bullpap_instance" class="fencedev">
+		<table>
+			<tr>
+				<td>Domain</td>
+				<td>
+					<input name="domain" type="text"
+						tal:attributes="value nothing" />
+				</td>
+			</tr>
+		</table>
+	</div>
+</div>
+
+<div metal:define-macro="fence-instance-form-xvm">
+	<div id="fence_xvm_instance" class="fencedev">
+		<table>
+			<tr>
+				<td>Domain</td>
+				<td>
+					<input name="domain" type="text"
+						tal:attributes="value nothing" />
+				</td>
+			</tr>
+		</table>
+	</div>
+</div>
+<div metal:define-macro="fence-instance-form-list">
+	<tal:block
+		metal:use-macro="here/form-macros/macros/fence-instance-form-apc" />
+	<tal:block
+		metal:use-macro="here/form-macros/macros/fence-instance-form-egenera" />
+	<tal:block
+		metal:use-macro="here/form-macros/macros/fence-instance-form-wti" />
+	<tal:block
+		metal:use-macro="here/form-macros/macros/fence-instance-form-brocade" />
+	<tal:block
+		metal:use-macro="here/form-macros/macros/fence-instance-form-vixel" />
+	<tal:block
+		metal:use-macro="here/form-macros/macros/fence-instance-form-sanbox2" />
+	<tal:block
+		metal:use-macro="here/form-macros/macros/fence-instance-form-mcdata" />
+	<tal:block
+		metal:use-macro="here/form-macros/macros/fence-instance-form-gndb" />
+	<tal:block
+		metal:use-macro="here/form-macros/macros/fence-instance-form-bullpap" />
+	<tal:block
+		metal:use-macro="here/form-macros/macros/fence-instance-form-xvm" />
+	<tal:block
+		metal:use-macro="here/form-macros/macros/fence-instance-form-bladecenter" />
+</div>
+
 <div metal:define-macro="node-form">
+	<script type="text/javascript"
+		src="/luci/cluster/fence_device.js">
+	</script>
 	<script type="text/javascript">
 		set_page_title('Luci ??? cluster ??? nodes ??? properties');
 	</script>
@@ -1732,7 +2063,8 @@
 		global nodeinfo python: here.getNodeInfo(modelb, nodestatus, request);
 		global status_class python: 'node_' + (nodeinfo['nodestate'] == '0' and 'active' or (nodeinfo['nodestate'] == '1' and 'inactive' or 'unknown'));
 		global cluster_node_status_str python: (nodeinfo['nodestate'] == '0' and 'Cluster member' or (nodeinfo['nodestate'] == '1' and 'Currently not a cluster participant' or 'This node is not responding'));
-		global fenceinfo python: here.getFenceInfo(modelb, request)"
+		global fenceinfo python: here.getFenceInfo(modelb, request);
+		global fencedevinfo python: here.getFencesInfo(modelb, request)"
 	/>
 
 	 <table class="cluster node" width="100%">
@@ -1874,7 +2206,6 @@
 		<tal:block metal:use-macro="here/form-macros/macros/fence-form-list" />
 	</div>
 
-	<h3>Fencing</h3>
 	<table id="fence_devices" class="cluster node fencedev">
 		<tfoot class="fencedev">
 		<tr class="cluster node fencedev"><td class="cluster node fencedev">
@@ -1895,12 +2226,27 @@
 				</span>
 			</td>
 		</tr>
+
 		<tr class="cluster node info_top fencedev">
 			<td class="cluster node fence_main fencedev">
+				<tal:block tal:repeat="cur_fencedev fencedevinfo/fencedevs">
+					<div class="invisible" id="shared_fence_devices">
+						<tal:block metal:use-macro="here/form-macros/macros/shared-fence-device-list" />
+					</div>
+				</tal:block>
+
 				<form name="main_fence_form">
 				<select name="select_div"
 					onChange="swap_fence_div('fence_container',
 								this.options[this.selectedIndex].value)">
+					<option value="fence-form-new-device">------ Use an existing Fence Device ------</option>
+					<tal:block tal:repeat="f fencedevinfo/fencedevs">
+						<option class="shared_fencedev"
+							tal:attributes="value f/name"
+							tal:content="python: f['name'] + ' (' + f['pretty_name'] + ')'"
+						/>
+					</tal:block>
+					<option value="fence-form-new-instance">------ Create a new Fence Device ------</option>
 					<tal:block metal:use-macro="here/form-macros/macros/fence-option-list" />
 				</select>
 				</form>
@@ -1912,6 +2258,8 @@
 				<select name="select_div"
 					onChange="swap_fence_div('fence_container_backup',
 						this.options[this.selectedIndex].value)">
+					<option value="fence-form-new-device">------ Use an existing Fence Device ------</option>
+					<option value="fence-form-new-instance">------ Create a new Fence Device ------</option>
 					<tal:block metal:use-macro="here/form-macros/macros/fence-option-list" />
 				</select>
 				</form>
@@ -1930,6 +2278,9 @@
 </div>
 
 <div metal:define-macro="nodes-form">
+	<script type="text/javascript"
+		src="/luci/cluster/fence_device.js">
+	</script>
 	<script type="text/javascript">
 		set_page_title('Luci ??? cluster ??? nodes');
 	</script>
@@ -2622,6 +2973,7 @@
 		set_page_title('Luci ??? cluster ??? failover domains ??? Add a failover domain');
 	</script>
 	<h2>Failover Domain Add Form</h2>
+  <tal:block tal:define="allnodes python:here.getFdomNodes(request)"/>
 </div>
 
 <div metal:define-macro="fdomconfig-form">
@@ -2674,14 +3026,17 @@
 </div>
 
 <div metal:define-macro="fencedevadd-form">
+	<script type="text/javascript"
+		src="/luci/cluster/fence_device.js">
+	</script>
 	<script type="text/javascript">
 		set_page_title('Luci ??? cluster ??? fence devices - Add a new fence device');
 	</script>
 
-	<h2>Add a Fence Device</h2>
+	<h2>Add a Sharable Fence Device</h2>
 
 	<div id="invisible" class="invisible">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-list" />
+		<tal:block metal:use-macro="here/form-macros/macros/shared-fence-form-list" />
 	</div>
 
 	<table id="fence_devices" class="cluster node fencedev">
@@ -2705,7 +3060,7 @@
 				<select name="select_div"
 					onChange="swap_fence_div('fence_container',
 								this.options[this.selectedIndex].value)">
-					<tal:block metal:use-macro="here/form-macros/macros/fence-option-list" />
+					<tal:block metal:use-macro="here/form-macros/macros/shared-fence-option-list" />
 				</select>
 				</form>
 				<div id="fence_container">
@@ -2823,6 +3178,14 @@
 		<tal:block metal:use-macro="here/form-macros/macros/fence-form-ipmilan" />
 	</tal:block>
 
+	<tal:block tal:condition="python: cur_fence_type == 'fence_xvm'">
+		<tal:block metal:use-macro="here/form-macros/macros/fence-form-xvm" />
+	</tal:block>
+
+	<tal:block tal:condition="python: cur_fence_type == 'fence_scsi'">
+		<tal:block metal:use-macro="here/form-macros/macros/fence-form-scsi" />
+	</tal:block>
+
 	<tal:block tal:condition="python: cur_fence_type == 'fence_manual'">
 		<tal:block metal:use-macro="here/form-macros/macros/fence-form-manual" />
 	</tal:block>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-11-29 22:24 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-11-29 22:24 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-11-29 22:24:46

Modified files:
	luci/cluster   : form-macros 

Log message:
	form for xvm agent

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.110&r2=1.111

--- conga/luci/cluster/form-macros	2006/11/29 18:39:50	1.110
+++ conga/luci/cluster/form-macros	2006/11/29 22:24:46	1.111
@@ -1682,7 +1682,19 @@
 	tal:attributes="id cur_fencedev/name | nothing">
 
 	<div id="fence_xvm" class="fencedev">
-		-
+	<table>
+			<tr tal:condition="exists: cur_fence_type">
+				<td><strong class="cluster">Fence Type</strong></td>
+				<td>Virtual Machine Fencing</td>
+			</tr>
+			<tr>
+				<td>Name</td>
+				<td>
+					<input name="name" type="text"
+						tal:attributes="value cur_fencedev/name | nothing" />
+				</td>
+			</tr>
+  </table>	
 	</div>
 </div>
 
@@ -1992,6 +2004,19 @@
 	</div>
 </div>
 
+<div metal:define-macro="fence-instance-form-xvm">
+	<div id="fence_xvm_instance" class="fencedev">
+		<table>
+			<tr>
+				<td>Domain</td>
+				<td>
+					<input name="domain" type="text"
+						tal:attributes="value nothing" />
+				</td>
+			</tr>
+		</table>
+	</div>
+</div>
 <div metal:define-macro="fence-instance-form-list">
 	<tal:block
 		metal:use-macro="here/form-macros/macros/fence-instance-form-apc" />
@@ -2012,6 +2037,8 @@
 	<tal:block
 		metal:use-macro="here/form-macros/macros/fence-instance-form-bullpap" />
 	<tal:block
+		metal:use-macro="here/form-macros/macros/fence-instance-form-xvm" />
+	<tal:block
 		metal:use-macro="here/form-macros/macros/fence-instance-form-bladecenter" />
 </div>
 



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-11-28 19:39 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-11-28 19:39 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-11-28 19:39:31

Modified files:
	luci/cluster   : form-macros 

Log message:
	Modification to shared fence list

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.108&r2=1.109

--- conga/luci/cluster/form-macros	2006/11/27 19:56:12	1.108
+++ conga/luci/cluster/form-macros	2006/11/28 19:39:31	1.109
@@ -1099,6 +1099,22 @@
 	<h2>Cluster Process Form</h2>
 </div>
 
+<div metal:define-macro="shared-fence-option-list">
+	<option name="fence_apc" value="fence_apc">APC Power Switch</option>
+	<option name="fence_wti" value="fence_wti">WTI Power Switch</option>
+	<option name="fence_brocade" value="fence_brocade">Brocade Fabric Switch</option>
+	<option name="fence_mcdata" value="fence_mcdata">McData SAN Switch</option>
+	<option name="fence_sanbox2" value="fence_sanbox2">QLogic SANbox2</option>
+	<option name="fence_vixel" value="fence_vixel">Vixel SAN Switch</option>
+	<option name="fence_gnbd" value="fence_gnbd">GNBD</option>
+	<option name="fence_egenera" value="fence_egenera">Egenera SAN Controller</option>
+	<option name="fence_bladecenter" value="fence_bladecenter">IBM Blade Center</option>
+	<option name="fence_bullpap" value="fence_bullpap">Bull PAP</option>
+	<option name="fence_rps10" value="fence_rps10">RPS10 Serial Switch</option>
+	<option name="fence_xvm" value="fence_xvm">Virtual Machine Fencing</option>
+	<option name="fence_scsi" value="fence_scsi">SCSI Fencing</option>
+</div>
+
 <div metal:define-macro="fence-option-list">
 	<option name="fence_apc" value="fence_apc">APC Power Switch</option>
 	<option name="fence_wti" value="fence_wti">WTI Power Switch</option>
@@ -2918,7 +2934,7 @@
 				<select name="select_div"
 					onChange="swap_fence_div('fence_container',
 								this.options[this.selectedIndex].value)">
-					<tal:block metal:use-macro="here/form-macros/macros/fence-option-list" />
+					<tal:block metal:use-macro="here/form-macros/macros/shared-fence-option-list" />
 				</select>
 				</form>
 				<div id="fence_container">



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-11-20 20:21 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-11-20 20:21 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-11-20 20:21:34

Modified files:
	luci/cluster   : form-macros 

Log message:
	forgot to use the new macto...grrr

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.106&r2=1.107

--- conga/luci/cluster/form-macros	2006/11/20 20:13:42	1.106
+++ conga/luci/cluster/form-macros	2006/11/20 20:21:34	1.107
@@ -2699,7 +2699,7 @@
 	<h2>Add a Sharable Fence Device</h2>
 
 	<div id="invisible" class="invisible">
-		<tal:block metal:use-macro="here/form-macros/macros/fence-form-list" />
+		<tal:block metal:use-macro="here/form-macros/macros/shared-fence-form-list" />
 	</div>
 
 	<table id="fence_devices" class="cluster node fencedev">



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-11-20 20:13 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-11-20 20:13 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-11-20 20:13:42

Modified files:
	luci/cluster   : form-macros 

Log message:
	minor addition to formlist to support shared devices only

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.105&r2=1.106

--- conga/luci/cluster/form-macros	2006/11/13 21:40:55	1.105
+++ conga/luci/cluster/form-macros	2006/11/20 20:13:42	1.106
@@ -1711,9 +1711,26 @@
 	<tal:block metal:use-macro="here/form-macros/macros/fence-form-bullpap" />
 	<tal:block metal:use-macro="here/form-macros/macros/fence-form-rps10" />
 	<tal:block metal:use-macro="here/form-macros/macros/fence-form-ipmilan" />
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-xvm" />
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-scsi" />
 	<tal:block metal:use-macro="here/form-macros/macros/fence-form-manual" />
 </div>
 
+<div metal:define-macro="shared-fence-form-list">
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-apc" />
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-mcdata" />
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-wti" />
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-brocade" />
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-sanbox2" />
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-vixel" />
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-gnbd" />
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-egenera" />
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-bladecenter" />
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-bullpap" />
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-xvm" />
+	<tal:block metal:use-macro="here/form-macros/macros/fence-form-scsi" />
+</div>
+
 <div metal:define-macro="node-form">
 	<script type="text/javascript">
 		set_page_title('Luci ??? cluster ??? nodes ??? properties');
@@ -2622,6 +2639,7 @@
 		set_page_title('Luci ??? cluster ??? failover domains ??? Add a failover domain');
 	</script>
 	<h2>Failover Domain Add Form</h2>
+  <tal:block tal:define="allnodes python:here.getFdomNodes(request)"/>
 </div>
 
 <div metal:define-macro="fdomconfig-form">
@@ -2678,7 +2696,7 @@
 		set_page_title('Luci ??? cluster ??? fence devices - Add a new fence device');
 	</script>
 
-	<h2>Add a Fence Device</h2>
+	<h2>Add a Sharable Fence Device</h2>
 
 	<div id="invisible" class="invisible">
 		<tal:block metal:use-macro="here/form-macros/macros/fence-form-list" />
@@ -2823,6 +2841,14 @@
 		<tal:block metal:use-macro="here/form-macros/macros/fence-form-ipmilan" />
 	</tal:block>
 
+	<tal:block tal:condition="python: cur_fence_type == 'fence_xvm'">
+		<tal:block metal:use-macro="here/form-macros/macros/fence-form-xvm" />
+	</tal:block>
+
+	<tal:block tal:condition="python: cur_fence_type == 'fence_scsi'">
+		<tal:block metal:use-macro="here/form-macros/macros/fence-form-scsi" />
+	</tal:block>
+
 	<tal:block tal:condition="python: cur_fence_type == 'fence_manual'">
 		<tal:block metal:use-macro="here/form-macros/macros/fence-form-manual" />
 	</tal:block>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-11-07  1:31 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-11-07  1:31 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-11-07 01:31:41

Modified files:
	luci/cluster   : form-macros 

Log message:
	change method name

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.98&r2=1.99

--- conga/luci/cluster/form-macros	2006/11/03 22:48:14	1.98
+++ conga/luci/cluster/form-macros	2006/11/07 01:31:41	1.99
@@ -2565,7 +2565,7 @@
 		set_page_title('Luci ??? cluster ??? fence devices');
 	</script>
 	<h2>Shared Fence Devices for Cluster: <span tal:content="request/clustername"/></h2>
-  <tal:block tal:define="global fencedevinfo python: here.getFenceInfo(modelb, None)"/>
+  <tal:block tal:define="global fencedevinfo python: here.getFencesInfo(modelb, request)"/>
 <tal:block tal:define="global fencedevs python: fencedevinfo['fencedevs']"/>
   <span tal:repeat="fencedev fencedevs">
    <h3>Agent type: <span tal:content="fencedev/pretty_name"/></h3>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-11-03 21:11 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-11-03 21:11 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-11-03 21:11:40

Modified files:
	luci/cluster   : form-macros 

Log message:
	typo

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.95&r2=1.96

--- conga/luci/cluster/form-macros	2006/11/03 21:09:53	1.95
+++ conga/luci/cluster/form-macros	2006/11/03 21:11:40	1.96
@@ -2556,7 +2556,7 @@
      </span>
     <span tal:repeat="usednode usednodes">
      <li><font color="green">
-      <a href="" tal:attribute="href usednode/nodeurl"><tal:block tal:content="usednode/nodename"/>
+      <a href="" tal:attributes="href usednode/nodeurl"><tal:block tal:content="usednode/nodename"/>
       </a></font>
      </li>
     </span>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-11-03 21:09 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-11-03 21:09 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-11-03 21:09:53

Modified files:
	luci/cluster   : form-macros 

Log message:
	typo

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.94&r2=1.95

--- conga/luci/cluster/form-macros	2006/11/03 21:07:04	1.94
+++ conga/luci/cluster/form-macros	2006/11/03 21:09:53	1.95
@@ -2550,7 +2550,7 @@
    <h3>Name: <span tal:content="fencedev/name"/></h3>
    <h3>Nodes using this device for fencing:</h3>
    <ul>
-     <tal:block tal define="global usednodes python:fencedev['nodesused']"/>
+     <tal:block tal:define="global usednodes python:fencedev['nodesused']"/>
      <span tal:condition="python: len(usednodes) == 0">
       <li>No nodes currently employ this fence device</li>
      </span>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-11-03 21:07 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-11-03 21:07 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-11-03 21:07:04

Modified files:
	luci/cluster   : form-macros 

Log message:
	partial fix for broken fence list page

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.93&r2=1.94

--- conga/luci/cluster/form-macros	2006/11/03 19:13:57	1.93
+++ conga/luci/cluster/form-macros	2006/11/03 21:07:04	1.94
@@ -2546,8 +2546,21 @@
   <tal:block tal:define="global fencedevinfo python: here.getFenceInfo(modelb, None)"/>
 <tal:block tal:define="global fencedevs python: fencedevinfo['fencedevs']"/>
   <span tal:repeat="fencedev fencedevs">
+   <h3>Agent type: <span tal:content="fencedev/pretty_name"/></h3>
    <h3>Name: <span tal:content="fencedev/name"/></h3>
-   <h3>Agent type: <span tal:content="fencedev/agent"/></h3>
+   <h3>Nodes using this device for fencing:</h3>
+   <ul>
+     <tal:block tal define="global usednodes python:fencedev['nodesused']"/>
+     <span tal:condition="python: len(usednodes) == 0">
+      <li>No nodes currently employ this fence device</li>
+     </span>
+    <span tal:repeat="usednode usednodes">
+     <li><font color="green">
+      <a href="" tal:attribute="href usednode/nodeurl"><tal:block tal:content="usednode/nodename"/>
+      </a></font>
+     </li>
+    </span>
+   </ul>
    <hr/>
   </span>
 </div>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-10-31 13:23 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2006-10-31 13:23 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2006-10-31 13:23:09

Modified files:
	luci/cluster   : form-macros 

Log message:
	trap a potential key error

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.91&r2=1.92

--- conga/luci/cluster/form-macros	2006/10/25 01:11:08	1.91
+++ conga/luci/cluster/form-macros	2006/10/31 13:23:09	1.92
@@ -21,10 +21,10 @@
     <span tal:define="global nodereports isBusy/nodereports"/>
     <span tal:repeat="nodereport nodereports">
 		 <tr><td>
-      <span tal:condition="python: nodereport['isnodecreation'] == False">
+      <span tal:condition="python: not 'isnodecreation' in nodereport or nodereport['isnodecreation'] == False">
 			  <h2><span tal:content="nodereport/desc" /></h2>
       </span>
-      <span tal:condition="python: nodereport['isnodecreation'] == True">
+      <span tal:condition="python: 'isnodecreation' in nodereport and nodereport['isnodecreation'] == True">
        <span tal:condition="python: nodereport['iserror'] == True">
 			  <h2><span tal:content="nodereport/desc" /></h2>
          <font color="red"><span tal:content="nodereport/errormessage"/></font>
@@ -2060,6 +2060,7 @@
 		set_page_title('Luci ??? cluster ??? services ??? Configure a service');
 	</script>
 	<tal:block metal:use-macro="here/form-macros/macros/service-config-head-macro" />
+
 	<table class="cluster service" width="100%">
 		<tr class="cluster service info_top">
 			<td class="cluster service service_name">
@@ -2070,6 +2071,8 @@
 			</td>
 			<td class="cluster service service_action">
 				<form method="post" onSubmit="return dropdown(this.gourl)">
+					<input type="hidden" name="pagetype" tal:attributes="
+						value request/pagetype | request/form/pagetype | nothing" />
 					<select name="gourl"
 						tal:define="global innermap sinfo/innermap;
 						starturls innermap/links">



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-10-16 20:34 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-10-16 20:34 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-10-16 20:34:37

Modified files:
	luci/cluster   : form-macros 

Log message:
	syntax fixup

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.89&r2=1.90

--- conga/luci/cluster/form-macros	2006/10/16 20:25:33	1.89
+++ conga/luci/cluster/form-macros	2006/10/16 20:34:37	1.90
@@ -1881,7 +1881,7 @@
 </div>
 
 <div metal:define-macro="xenvmadd-form">
-  <span tal:define="python:here.appendModel(request, modelb)"/>
+  <span tal:define="ress python:here.appendModel(request, modelb)"/>
   <form method="get" action="" tal:attributes="action python:request['baseurl'] + '?clustername=' + request['clustername'] + '&pagetype=29'">
   <h4>Path to configuration file: </h4><input type="text" name="xenvmpath" value=""/>
   <h4>Name of configuration file: </h4><input type="text" name="xenvmname" value=""/>
@@ -1890,7 +1890,7 @@
 </div>
 
 <div metal:define-macro="xenvmconfig-form">
-  <span tal:define="python:here.appendModel(request, modelb)"/>
+  <span tal:define="ress python:here.appendModel(request, modelb)"/>
   <h4>Properties for Xen VM <font color="green"><span tal:content="request/servicename"/></font></h4>
   <span tal:define="global xeninfo python:here.getXenVMInfo(modelb, request)">
   <form method="get" action="" tal:attributes="action python:request['baseurl'] + '?clustername=' + request['clustername'] + '&pagetype=29&servicename=' + request['servicename']">



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-10-16 18:58 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2006-10-16 18:58 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2006-10-16 18:58:22

Modified files:
	luci/cluster   : form-macros 

Log message:
	fill in fence device defaults when appropriate

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.86&r2=1.87

--- conga/luci/cluster/form-macros	2006/10/16 18:35:01	1.86
+++ conga/luci/cluster/form-macros	2006/10/16 18:58:22	1.87
@@ -808,22 +808,36 @@
 <div metal:define-macro="fence-form-apc">
 	<div id="fence_apc" class="fencedev">
 		<table>
+			<tr tal:condition="exists: cur_fence_type">
+				<td><strong class="cluster">Fence Type</strong></td>
+				<td>APC Power Switch</td>
+			</tr>
 			<tr>
 				<td>Name</td>
-				<td><input name="name" type="text"/></td>
+				<td>
+					<input name="name" type="text"
+						tal:attributes="cur_fencedev/name | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>IP Address</td>
-				<td><input name="ip_addr" type="text"/></td>
+				<td>
+					<input name="ip_addr" type="text"
+						tal:attributes="cur_fendev/ipaddr | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>Login</td>
-				<td><input name="login" type="text"/></td>
+				<td>
+					<input name="login" type="text"
+						tal:attributes="cur_fencedev/login | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>Password</td>
 				<td>
-					<input name="password" autocomplete="off" type="password"/>
+					<input name="password" type="password" autocomplete="off"
+						tal:attributes="value cur_fencedev/passwd | nothing" />
 				</td>
 			</tr>
 		</table>
@@ -834,22 +848,36 @@
 <div metal:define-macro="fence-form-mcdata">
 	<div id="fence_mcdata" class="fencedev">
 		<table>
+			<tr tal:condition="exists: cur_fence_type">
+				<td><strong class="cluster">Fence Type</strong></td>
+				<td>McData SAN Switch</td>
+			</tr>
 			<tr>
 				<td>Name</td>
-				<td><input name="name" type="text"/></td>
+				<td>
+					<input name="name" type="text"
+						tal:attributes="cur_fencedev/name | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>IP Address</td>
-				<td><input name="ip_addr" type="text"/></td>
+				<td>
+					<input name="ip_addr" type="text"
+						tal:attributes="cur_fendev/ipaddr | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>Login</td>
-				<td><input name="login" type="text"/></td>
+				<td>
+					<input name="login" type="text"
+						tal:attributes="cur_fencedev/login | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>Password</td>
 				<td>
-					<input name="password" autocomplete="off" type="password"/>
+					<input name="password" type="password" autocomplete="off"
+						tal:attributes="value cur_fencedev/passwd | nothing" />
 				</td>
 			</tr>
 		</table>
@@ -860,18 +888,29 @@
 <div metal:define-macro="fence-form-wti">
 	<div id="fence_wti" class="fencedev">
 		<table>
+			<tr tal:condition="exists: cur_fence_type">
+				<td><strong class="cluster">Fence Type</strong></td>
+				<td>WTI Power Switch</td>
+			</tr>
 			<tr>
 				<td>Name</td>
-				<td><input name="name" type="text"/></td>
+				<td>
+					<input name="name" type="text"
+						tal:attributes="cur_fencedev/name | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>IP Address</td>
-				<td><input name="ip_addr" type="text"/></td>
+				<td>
+					<input name="ip_addr" type="text"
+						tal:attributes="cur_fendev/ipaddr | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>Password</td>
 				<td>
-					<input name="password" type="password" autocomplete="off"/>
+					<input name="password" type="password" autocomplete="off"
+						tal:attributes="value cur_fencedev/passwd | nothing" />
 				</td>
 			</tr>
 		</table>
@@ -882,22 +921,36 @@
 <div metal:define-macro="fence-form-ilo">
 	<div id="fence_ilo" class="fencedev">
 		<table>
+			<tr tal:condition="exists: cur_fence_type">
+				<td><strong class="cluster">Fence Type</strong></td>
+				<td>HP iLO</td>
+			</tr>
 			<tr>
 				<td>Name</td>
-				<td><input name="name" type="text"/></td>
+				<td>
+					<input name="name" type="text"
+						tal:attributes="cur_fencedev/name | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>Hostname</td>
-				<td><input name="hostname" type="text"/></td>
+				<td>
+					<input name="hostname" type="text"
+						tal:attributes="cur_fencedev/hostname | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>Login</td>
-				<td><input name="login" type="text"/></td>
+				<td>
+					<input name="login" type="text"
+						tal:attributes="cur_fencedev/login | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>Password</td>
 				<td>
-					<input name="password" type="password" autocomplete="off"/>
+					<input name="password" type="password" autocomplete="off"
+						tal:attributes="value cur_fencedev/passwd | nothing" />
 				</td>
 			</tr>
 		</table>
@@ -908,22 +961,36 @@
 <div metal:define-macro="fence-form-drac">
 	<div id="fence_drac" class="fencedev">
 		<table>
+			<tr tal:condition="exists: cur_fence_type">
+				<td><strong class="cluster">Fence Type</strong></td>
+				<td>Dell Drac</td>
+			</tr>
 			<tr>
 				<td>Name</td>
-				<td><input name="name" type="text"/></td>
+				<td>
+					<input name="name" type="text"
+						tal:attributes="cur_fencedev/name | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>IP Address</td>
-				<td><input name="ip_addr" type="text"/></td>
+				<td>
+					<input name="ip_addr" type="text"
+						tal:attributes="cur_fendev/ipaddr | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>Login</td>
-				<td><input name="login" type="text"/></td>
+				<td>
+					<input name="login" type="text"
+						tal:attributes="cur_fencedev/login | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>Password</td>
 				<td>
-					<input name="password" type="password" autocomplete="off"/>
+					<input name="password" type="password" autocomplete="off"
+						tal:attributes="value cur_fencedev/passwd | nothing" />
 				</td>
 		</table>
 		<input type="hidden" name="fence_type" value="fence_drac" />
@@ -933,22 +1000,36 @@
 <div metal:define-macro="fence-form-rsa">
 	<div id="fence_rsa" class="fencedev">
 		<table>
+			<tr tal:condition="exists: cur_fence_type">
+				<td><strong class="cluster">Fence Type</strong></td>
+				<td>IBM RSA II</td>
+			</tr>
 			<tr>
 				<td>Name</td>
-				<td><input name="name" type="text"/></td>
+				<td>
+					<input name="name" type="text"
+						tal:attributes="cur_fencedev/name | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>Hostname</td>
-				<td><input name="hostname" type="text"/></td>
+				<td>
+					<input name="hostname" type="text"
+						tal:attributes="cur_fencedev/hostname | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>Login</td>
-				<td><input name="login" type="text"/></td>
+				<td>
+					<input name="login" type="text"
+						tal:attributes="cur_fencedev/login | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>Password</td>
 				<td>
-					<input name="password" type="password" autocomplete="off"/>
+					<input name="password" type="password" autocomplete="off"
+						tal:attributes="value cur_fencedev/passwd | nothing" />
 				</td>
 			</tr>
 		</table>
@@ -959,22 +1040,36 @@
 <div metal:define-macro="fence-form-brocade">
 	<div id="fence_brocade" class="fencedev">
 		<table>
+			<tr tal:condition="exists: cur_fence_type">
+				<td><strong class="cluster">Fence Type</strong></td>
+				<td>Brocade Fabric Switch</td>
+			</tr>
 			<tr>
 				<td>Name</td>
-				<td><input name="name" type="text"/></td>
+				<td>
+					<input name="name" type="text"
+						tal:attributes="cur_fencedev/name | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>IP Address</td>
-				<td><input name="ip_addr" type="text"/></td>
+				<td>
+					<input name="ip_addr" type="text"
+						tal:attributes="cur_fendev/ipaddr | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>Login</td>
-				<td><input name="login" type="text"/></td>
+				<td>
+					<input name="login" type="text"
+						tal:attributes="cur_fencedev/login | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>Password</td>
 				<td>
-					<input name="password" type="password" autocomplete="off"/>
+					<input name="password" type="password" autocomplete="off"
+						tal:attributes="value cur_fencedev/passwd | nothing" />
 				</td>
 			</tr>
 		</table>
@@ -985,9 +1080,16 @@
 <div metal:define-macro="fence-form-sanbox2">
 	<div id="fence_sanbox2" class="fencedev">
 		<table>
+			<tr tal:condition="exists: cur_fence_type">
+				<td><strong class="cluster">Fence Type</strong></td>
+				<td>QLogic SANbox2</td>
+			</tr>
 			<tr>
 				<td>Name</td>
-				<td><input name="name" type="text"/></td>
+				<td>
+					<input name="name" type="text"
+						tal:attributes="cur_fencedev/name | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>IP Address</td>
@@ -995,12 +1097,16 @@
 			</tr>
 			<tr>
 				<td>Login</td>
-				<td><input name="login" type="text"/></td>
+				<td>
+					<input name="login" type="text"
+						tal:attributes="cur_fencedev/login | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>Password</td>
 				<td>
-					<input name="password" type="password" autocomplete="off"/>
+					<input name="password" type="password" autocomplete="off"
+						tal:attributes="value cur_fencedev/passwd | nothing" />
 				</td>
 			</tr>
 		</table>
@@ -1011,18 +1117,29 @@
 <div metal:define-macro="fence-form-vixel">
 	<div id="fence_vixel" class="fencedev">
 		<table>
+			<tr tal:condition="exists: cur_fence_type">
+				<td><strong class="cluster">Fence Type</strong></td>
+				<td>Vixel SAN Switch</td>
+			</tr>
 			<tr>
 				<td>Name</td>
-				<td><input name="name" type="text"/></td>
+				<td>
+					<input name="name" type="text"
+						tal:attributes="cur_fencedev/name | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>IP Address</td>
-				<td><input name="ip_addr" type="text"/></td>
+				<td>
+					<input name="ip_addr" type="text"
+						tal:attributes="cur_fendev/ipaddr | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>Password</td>
 				<td>
-					<input name="password" type="password" autocomplete="off"/>
+					<input name="password" type="password" autocomplete="off"
+						tal:attributes="value cur_fencedev/passwd | nothing" />
 				</td>
 			</tr>
 		</table>
@@ -1033,13 +1150,23 @@
 <div metal:define-macro="fence-form-gnbd">
 	<div id="fence_gnbd" class="fencedev">
 		<table>
+			<tr tal:condition="exists: cur_fence_type">
+				<td><strong class="cluster">Fence Type</strong></td>
+				<td>GNBD</td>
+			</tr>
 			<tr>
 				<td>Name</td>
-				<td><input name="name" type="text"/></td>
+				<td>
+					<input name="name" type="text"
+						tal:attributes="cur_fencedev/name | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>Servers (whitespace separated list)</td>
-				<td><input name="servers" type="text"/></td>
+				<td>
+					<input name="servers" type="text"
+						tal:attributes="cur_fencedev/servers | nothing" />
+				</td>
 			</tr>
 		</table>
 		<input type="hidden" name="fence_type" value="fence_gnbd" />
@@ -1049,17 +1176,30 @@
 <div metal:define-macro="fence-form-egenera">
 	<div id="fence_egenera" class="fencedev">
 		<table>
+			<tr tal:condition="exists: cur_fence_type">
+				<td><strong class="cluster">Fence Type</strong></td>
+				<td>Egenera SAN Controller</td>
+			</tr>
 			<tr>
 				<td>Name</td>
-				<td><input name="name" type="text"/></td>
+				<td>
+					<input name="name" type="text"
+						tal:attributes="cur_fencedev/name | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>CServer</td>
-				<td><input name="cserver" type="text"/></td>
+				<td>
+					<input name="cserver" type="text"
+						tal:attributes="cur_fencedev/cserver | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>ESH Path (Optional)</td>
-				<td><input name="login" type="text" Title="default is /opt/pan-mgr/bin/esh"/></td>
+				<td>
+					<input name="login" type="text"
+						tal:attributes="cur_fencedev/login | string: /opt/pan-mgr/bin/esh" />
+				</td>
 			</tr>
 		</table>
 		<input type="hidden" name="fence_type" value="fence_egenera" />
@@ -1069,22 +1209,36 @@
 <div metal:define-macro="fence-form-bladecenter">
 	<div id="fence_bladecenter" class="fencedev">
 		<table>
+			<tr tal:condition="exists: cur_fence_type">
+				<td><strong class="cluster">Fence Type</strong></td>
+				<td>IBM Blade Center</td>
+			</tr>
 			<tr>
 				<td>Name</td>
-				<td><input name="name" type="text"/></td>
+				<td>
+					<input name="name" type="text"
+						tal:attributes="cur_fencedev/name | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>IP Address</td>
-				<td><input name="ip_addr" type="text" Title="IP Address or Hostname"/></td>
+				<td>
+					<input name="ip_addr" type="text"
+						tal:attributes="cur_fendev/ipaddr | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>Login</td>
-				<td><input name="login" type="text"/></td>
+				<td>
+					<input name="login" type="text"
+						tal:attributes="cur_fencedev/login | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>Password</td>
 				<td>
-					<input name="password" type="password" autocomplete="off"/>
+					<input name="password" type="password" autocomplete="off"
+						tal:attributes="value cur_fencedev/passwd | nothing" />
 				</td>
 			</tr>
 		</table>
@@ -1095,22 +1249,36 @@
 <div metal:define-macro="fence-form-bullpap">
 	<div id="fence_bullpap" class="fencedev">
 		<table>
+			<tr tal:condition="exists: cur_fence_type">
+				<td><strong class="cluster">Fence Type</strong></td>
+				<td>Bull PAP</td>
+			</tr>
 			<tr>
 				<td>Name</td>
-				<td><input name="name" type="text"/></td>
+				<td>
+					<input name="name" type="text"
+						tal:attributes="cur_fencedev/name | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>IP Address</td>
-				<td><input name="ip_addr" type="text" Title="IP Address or Hostname"/></td>
+				<td>
+					<input name="ip_addr" type="text"
+						tal:attributes="cur_fendev/ipaddr | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>Login</td>
-				<td><input name="login" type="text"/></td>
+				<td>
+					<input name="login" type="text"
+						tal:attributes="cur_fencedev/login | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>Password</td>
 				<td>
-					<input name="password" type="password" autocomplete="off"/>
+					<input name="password" type="password" autocomplete="off"
+						tal:attributes="value cur_fencedev/passwd | nothing" />
 				</td>
 			</tr>
 		</table>
@@ -1121,17 +1289,30 @@
 <div metal:define-macro="fence-form-rps10">
 	<div id="fence_rps10" class="fencedev">
 		<table>
+			<tr tal:condition="exists: cur_fence_type">
+				<td><strong class="cluster">Fence Type</strong></td>
+				<td>RPS10 Serial Switch</td>
+			</tr>
 			<tr>
 				<td>Name</td>
-				<td><input name="name" type="text"/></td>
+				<td>
+					<input name="name" type="text"
+						tal:attributes="cur_fencedev/name | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>Device Name</td>
-				<td><input name="device" type="text"/></td>
+				<td>
+					<input name="device" type="text"
+						tal:attributes="cur_fencedev/device | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>Port</td>
-				<td><input name="port" type="text"/></td>
+				<td>
+					<input name="port" type="text"
+						tal:attributes="cur_fencedev/port| nothing" />
+				</td>
 			</tr>
 		</table>
 		<input type="hidden" name="fence_type" value="fence_rps10"/>
@@ -1141,22 +1322,36 @@
 <div metal:define-macro="fence-form-ipmilan">
 	<div id="fence_ipmilan" class="fencedev">
 		<table>
+			<tr tal:condition="exists: cur_fence_type">
+				<td><strong class="cluster">Fence Type</strong></td>
+				<td>IPMI Lan</td>
+			</tr>
 			<tr>
 				<td>Name</td>
-				<td><input name="name" type="text"/></td>
+				<td>
+					<input name="name" type="text"
+						tal:attributes="cur_fencedev/name | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>IP Address</td>
-				<td><input name="ip_addr" type="text"/></td>
+				<td>
+					<input name="ip_addr" type="text"
+						tal:attributes="cur_fendev/ipaddr | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>Login</td>
-				<td><input name="login" type="text"/></td>
+				<td>
+					<input name="login" type="text"
+						tal:attributes="cur_fencedev/login | nothing" />
+				</td>
 			</tr>
 			<tr>
 				<td>Password</td>
 				<td>
-					<input name="password" type="password" autocomplete="off"/>
+					<input name="password" type="password" autocomplete="off"
+						tal:attributes="value cur_fencedev/passwd | nothing" />
 				</td>
 			</tr>
 			<tr>
@@ -1171,9 +1366,16 @@
 <div metal:define-macro="fence-form-manual">
 	<div id="fence_manual" class="fencedev">
 		<table>
+			<tr tal:condition="exists: cur_fence_type">
+				<td><strong class="cluster">Fence Type</strong></td>
+				<td>Manual Fencing</td>
+			</tr>
 			<tr>
 				<td>Name</td>
-				<td><input name="name" type="text"/></td>
+				<td>
+					<input name="name" type="text"
+						tal:attributes="cur_fencedev/name | nothing" />
+				</td>
 			</tr>
 			<input type="hidden" name="fence_type" value="fence_manual" />
 		</table>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-10-13 21:01 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-10-13 21:01 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-10-13 21:01:59

Modified files:
	luci/cluster   : form-macros 

Log message:
	rest of fence types

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.82&r2=1.83

--- conga/luci/cluster/form-macros	2006/10/11 20:57:07	1.82
+++ conga/luci/cluster/form-macros	2006/10/13 21:01:59	1.83
@@ -788,10 +788,20 @@
 <div metal:define-macro="fence-option-list">
 	<option name="fence_apc" value="fence_apc">APC Power Switch</option>
 	<option name="fence_wti" value="fence_wti">WTI Power Switch</option>
+	<option name="fence_brocade" value="fence_brocade">Brocade Fabric Switch</option>
+	<option name="fence_mcdata" value="fence_mcdata">McData SAN Switch</option>
+	<option name="fence_sanbox2" value="fence_sanbox2">QLogic SANbox2</option>
+	<option name="fence_vixel" value="fence_vixel">Vixel SAN Switch</option>
+	<option name="fence_gnbd" value="fence_gnbd">GNBD</option>
+	<option name="fence_egenera" value="fence_egenera">Egenera SAN Controller</option>
 	<option name="fence_ilo" value="fence_ilo">HP iLO</option>
-	<option name="fence_drac" value="fence_drac">Dell DRAC</option>
 	<option name="fence_rsa" value="fence_rsa">IBM RSA II</option>
+	<option name="fence_bladecenter" value="fence_bladecenter">IBM Blade Center</option>
+	<option name="fence_bullpap" value="fence_bullpap">Bull PAP</option>
+	<option name="fence_rps10" value="fence_rps10">RPS10 Serial Switch</option>
+	<option name="fence_drac" value="fence_drac">Dell DRAC</option>
 	<option name="fence_ipmilan" value="fence_ipmilan">IPMI Lan</option>
+	<option name="fence_manual" value="fence_manual">Manual Fencing</option>
 </div>
 
 <div metal:define-macro="fence-form-list">
@@ -799,143 +809,309 @@
 		<table>
 			<tr>
 				<td>Name</td>
-				<td><input name="name" type="text"></td>
+				<td><input name="name" type="text"/></td>
 			</tr>
 			<tr>
 				<td>IP Address</td>
-				<td><input name="ip_addr" type="text"></td>
+				<td><input name="ip_addr" type="text"/></td>
 			</tr>
 			<tr>
 				<td>Login</td>
-				<td><input name="login" type="text"></td>
+				<td><input name="login" type="text"/></td>
 			</tr>
 			<tr>
 				<td>Password</td>
 				<td>
-					<input name="password" autocomplete="off" type="password">
+					<input name="password" autocomplete="off" type="password"/>
 				</td>
 			</tr>
 		</table>
-		<input type="hidden" name="fence_type" value="apc" />
+		<input type="hidden" name="fence_type" value="fence_apc" />
 	</div>
 
 	<div id="fence_wti" class="fencedev">
 		<table>
 			<tr>
 				<td>Name</td>
-				<td><input name="name" type="text"></td>
+				<td><input name="name" type="text"/></td>
 			</tr>
 			<tr>
 				<td>IP Address</td>
-				<td><input name="ip_addr" type="text"></td>
+				<td><input name="ip_addr" type="text"/></td>
 			</tr>
 			<tr>
 				<td>Password</td>
 				<td>
-					<input name="password" type="password" autocomplete="off">
+					<input name="password" type="password" autocomplete="off"/>
 				</td>
 			</tr>
 		</table>
-		<input type="hidden" name="fence_type" value="wti" />
+		<input type="hidden" name="fence_type" value="fence_wti" />
 	</div>
 
 	<div id="fence_ilo" class="fencedev">
 		<table>
 			<tr>
 				<td>Name</td>
-				<td><input name="name" type="text"></td>
+				<td><input name="name" type="text"/></td>
 			</tr>
 			<tr>
 				<td>Hostname</td>
-				<td><input name="hostname" type="text"></td>
+				<td><input name="hostname" type="text"/></td>
 			</tr>
 			<tr>
 				<td>Login</td>
-				<td><input name="login" type="text"></td>
+				<td><input name="login" type="text"/></td>
 			</tr>
 			<tr>
 				<td>Password</td>
 				<td>
-					<input name="password" type="password" autocomplete="off">
+					<input name="password" type="password" autocomplete="off"/>
 				</td>
 			</tr>
 		</table>
-		<input type="hidden" name="fence_type" value="ilo" />
+		<input type="hidden" name="fence_type" value="fence_ilo" />
 	</div>
 
 	<div id="fence_drac" class="fencedev">
 		<table>
 			<tr>
 				<td>Name</td>
-				<td><input name="name" type="text"></td>
+				<td><input name="name" type="text"/></td>
 			</tr>
 			<tr>
 				<td>IP Address</td>
-				<td><input name="ip_addr" type="text"></td>
+				<td><input name="ip_addr" type="text"/></td>
 			</tr>
 			<tr>
 				<td>Login</td>
-				<td><input name="login" type="text"></td>
+				<td><input name="login" type="text"/></td>
 			</tr>
 			<tr>
 				<td>Password</td>
 				<td>
-					<input name="password" type="password" autocomplete="off">
+					<input name="password" type="password" autocomplete="off"/>
 				</td>
 		</table>
-		<input type="hidden" name="fence_type" value="drac" />
+		<input type="hidden" name="fence_type" value="fence_drac" />
 	</div>
 
 	<div id="fence_rsa" class="fencedev">
 		<table>
 			<tr>
 				<td>Name</td>
-				<td><input name="name" type="text"></td>
+				<td><input name="name" type="text"/></td>
 			</tr>
 			<tr>
 				<td>Hostname</td>
-				<td><input name="hostname" type="text"></td>
+				<td><input name="hostname" type="text"/></td>
+			</tr>
+			<tr>
+				<td>Login</td>
+				<td><input name="login" type="text"/></td>
+			</tr>
+			<tr>
+				<td>Password</td>
+				<td>
+					<input name="password" type="password" autocomplete="off"/>
+				</td>
+			</tr>
+		</table>
+		<input type="hidden" name="fence_type" value="fence_rsa" />
+	</div>
+
+	<div id="fence_brocade" class="fencedev">
+		<table>
+			<tr>
+				<td>Name</td>
+				<td><input name="name" type="text"/></td>
+			</tr>
+			<tr>
+				<td>IP Address</td>
+				<td><input name="ip_addr" type="text"/></td>
+			</tr>
+			<tr>
+				<td>Login</td>
+				<td><input name="login" type="text"/></td>
+			</tr>
+			<tr>
+				<td>Password</td>
+				<td>
+					<input name="password" type="password" autocomplete="off"/>
+				</td>
+			</tr>
+		</table>
+		<input type="hidden" name="fence_type" value="fence_brocade" />
+	</div>
+
+	<div id="fence_sanbox2" class="fencedev">
+		<table>
+			<tr>
+				<td>Name</td>
+				<td><input name="name" type="text"/></td>
+			</tr>
+			<tr>
+				<td>IP Address</td>
+				<td><input name="hostname" type="text"/></td>
+			</tr>
+			<tr>
+				<td>Login</td>
+				<td><input name="login" type="text"/></td>
+			</tr>
+			<tr>
+				<td>Password</td>
+				<td>
+					<input name="password" type="password" autocomplete="off"/>
+				</td>
+			</tr>
+		</table>
+		<input type="hidden" name="fence_type" value="fence_sanbox2" />
+	</div>
+
+	<div id="fence_vixel" class="fencedev">
+		<table>
+			<tr>
+				<td>Name</td>
+				<td><input name="name" type="text"/></td>
+			</tr>
+			<tr>
+				<td>IP Address</td>
+				<td><input name="ip_addr" type="text"/></td>
+			</tr>
+			<tr>
+				<td>Password</td>
+				<td>
+					<input name="password" type="password" autocomplete="off"/>
+				</td>
+			</tr>
+		</table>
+		<input type="hidden" name="fence_type" value="fence_vixel" />
+	</div>
+
+	<div id="fence_gnbd" class="fencedev">
+		<table>
+			<tr>
+				<td>Name</td>
+				<td><input name="name" type="text"/></td>
+			</tr>
+			<tr>
+				<td>Servers (whitespace separated list)</td>
+				<td><input name="servers" type="text"/></td>
+			</tr>
+		</table>
+		<input type="hidden" name="fence_type" value="fence_gnbd" />
+	</div>
+
+	<div id="fence_egenera" class="fencedev">
+		<table>
+			<tr>
+				<td>Name</td>
+				<td><input name="name" type="text"/></td>
+			</tr>
+			<tr>
+				<td>CServer</td>
+				<td><input name="cserver" type="text"/></td>
+			</tr>
+			<tr>
+				<td>ESH Path (Optional)</td>
+				<td><input name="login" type="text" Title="default is /opt/pan-mgr/bin/esh"/></td>
+			</tr>
+		</table>
+		<input type="hidden" name="fence_type" value="fence_egenera" />
+	</div>
+
+	<div id="fence_bladecenter" class="fencedev">
+		<table>
+			<tr>
+				<td>Name</td>
+				<td><input name="name" type="text"/></td>
+			</tr>
+			<tr>
+				<td>IP Address</td>
+				<td><input name="ip_addr" type="text" Title="IP Address or Hostname"/></td>
+			</tr>
+			<tr>
+				<td>Login</td>
+				<td><input name="login" type="text"/></td>
+			</tr>
+			<tr>
+				<td>Password</td>
+				<td>
+					<input name="password" type="password" autocomplete="off"/>
+				</td>
+			</tr>
+		</table>
+		<input type="hidden" name="fence_type" value="fence_bladecenter" />
+	</div>
+
+	<div id="fence_bullpap" class="fencedev">
+		<table>
+			<tr>
+				<td>Name</td>
+				<td><input name="name" type="text"/></td>
+			</tr>
+			<tr>
+				<td>IP Address</td>
+				<td><input name="ip_addr" type="text" Title="IP Address or Hostname"/></td>
 			</tr>
 			<tr>
 				<td>Login</td>
-				<td><input name="login" type="text"></td>
+				<td><input name="login" type="text"/></td>
 			</tr>
 			<tr>
 				<td>Password</td>
 				<td>
-					<input name="password" type="password" autocomplete="off">
+					<input name="password" type="password" autocomplete="off"/>
 				</td>
 			</tr>
 		</table>
-		<input type="hidden" name="fence_type" value="rsa" />
+		<input type="hidden" name="fence_type" value="fence_bullpap" />
+	</div>
+
+	<div id="fence_rps10" class="fencedev">
+		<table>
+			<tr>
+				<td>Name</td>
+				<td><input name="name" type="text"/></td>
+			</tr>
+			<tr>
+				<td>Device Name</td>
+				<td><input name="device" type="text"/></td>
+			</tr>
+			<tr>
+				<td>Port</td>
+				<td><input name="port" type="text"/></td>
+			</tr>
+		</table>
+		<input type="hidden" name="fence_type" value="fence_rps10"/>
 	</div>
 
 	<div id="fence_ipmilan" class="fencedev">
 		<table>
 			<tr>
 				<td>Name</td>
-				<td><input name="name" type="text"></td>
+				<td><input name="name" type="text"/></td>
 			</tr>
 			<tr>
 				<td>IP Address</td>
-				<td><input name="ip_addr" type="text"></td>
+				<td><input name="ip_addr" type="text"/></td>
 			</tr>
 			<tr>
 				<td>Login</td>
-				<td><input name="login" type="text"></td>
+				<td><input name="login" type="text"/></td>
 			</tr>
 			<tr>
 				<td>Password</td>
 				<td>
-					<input name="password" type="password" autocomplete="off">
+					<input name="password" type="password" autocomplete="off"/>
 				</td>
 			</tr>
 			<tr>
-				<td>Auth Type</td>
-				<td><input name="auth_type" type="text"></td>
+				<td>Authentication Type</td>
+				<td><input name="auth_type" type="text" Title="Options are to leave blank for none, password, md2, or md5"/></td>
 			</tr>
 		</table>
-		<input type="hidden" name="fence_type" value="ipmilan" />
+		<input type="hidden" name="fence_type" value="fence_ipmilan" />
 	</div>
 </div>
 
@@ -1796,7 +1972,8 @@
 		set_page_title('Luci ??? cluster ??? fence devices');
 	</script>
 	<h2>Shared Fence Devices for Cluster: <span tal:content="request/clustername"/></h2>
-  <tal:block tal:define="global fencedevinfo python: here.getFenceInfo(modelb); global fencedevs python: fencedevinfo['fencedevs']"/>
+  <tal:block tal:define="global fencedevinfo python: here.getFenceInfo(modelb)"/>
+<tal:block tal:define="global fencedevs python: fencedevinfo['fencedevs']"/>
   <span tal:repeat="fencedev fencedevs">
    <h3>Name: <span tal:content="fencedev/name"/></h3>
    <h3>Agent type: <span tal:content="fencedev/agent"/></h3>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-10-11 20:57 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-10-11 20:57 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-10-11 20:57:08

Modified files:
	luci/cluster   : form-macros 

Log message:
	fd support

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.81&r2=1.82

--- conga/luci/cluster/form-macros	2006/10/11 16:40:16	1.81
+++ conga/luci/cluster/form-macros	2006/10/11 20:57:07	1.82
@@ -1795,7 +1795,13 @@
 	<script type="text/javascript">
 		set_page_title('Luci ??? cluster ??? fence devices');
 	</script>
-	<h2>Fence Devices Form</h2>
+	<h2>Shared Fence Devices for Cluster: <span tal:content="request/clustername"/></h2>
+  <tal:block tal:define="global fencedevinfo python: here.getFenceInfo(modelb); global fencedevs python: fencedevinfo['fencedevs']"/>
+  <span tal:repeat="fencedev fencedevs">
+   <h3>Name: <span tal:content="fencedev/name"/></h3>
+   <h3>Agent type: <span tal:content="fencedev/agent"/></h3>
+   <hr/>
+  </span>
 </div>
 
 <div metal:define-macro="fencedevlist-form">



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-10-11 16:25 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-10-11 16:25 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-10-11 16:25:28

Modified files:
	luci/cluster   : form-macros 

Log message:
	fixes for cluster and node creation busywait page

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.79&r2=1.80

--- conga/luci/cluster/form-macros	2006/10/09 17:12:28	1.79
+++ conga/luci/cluster/form-macros	2006/10/11 16:25:28	1.80
@@ -18,9 +18,39 @@
 		<tr><td>
 			<img src="100wait.gif"/>
 		</td></tr>
-		<tr><td>
-			<h2><span tal:content="isBusy/desc" /></h2>
-		</td></tr>
+    <span tal:define="global nodereports isBusy/nodereports"/>
+    <span tal:repeat="nodereport nodereports">
+		 <tr><td>
+      <span tal:condition="python: nodereport['isnodecreation'] == False">
+			  <h2><span tal:content="nodereport/desc" /></h2>
+      </span>
+      <span tal:condition="python: nodereport['isnodecreation'] == True">
+       <span tal:condition="python: nodereport['iserror'] == True">
+			  <h2><span tal:content="nodereport/desc" /></h2>
+         <font color="red"><span tal:content="nodereport/errormessage"/></font>
+       </span>
+       <span tal:condition="python: nodereport['iserror'] == False">
+			  <h2><span tal:content="nodereport/desc" /></h2>
+         <i><span tal:content="nodereport/statusmessage"/></i><br/>
+          <span tal:condition="python: nodereport['statusindex'] == 0">
+           <img src="notstarted.png"/>
+          </span>
+          <span tal:condition="python: nodereport['statusindex'] == 1">
+           <img src="installed.png"/>
+          </span>
+          <span tal:condition="python: nodereport['statusindex'] == 2">
+           <img src="rebooted.png"/>
+          </span>
+          <span tal:condition="python: nodereport['statusindex'] == 3">
+           <img src="configured.png"/>
+          </span>
+          <span tal:condition="python: nodereport['statusindex'] == 4">
+           <img src="joined.png"/>
+          </span>
+       </span>
+      </span>
+		 </td></tr>
+    </span>
 	</table>
 </div>
 



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-10-04 17:45 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-10-04 17:45 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-10-04 17:45:06

Modified files:
	luci/cluster   : form-macros 

Log message:
	removed offending test code

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.76&r2=1.77

--- conga/luci/cluster/form-macros	2006/10/04 16:10:22	1.76
+++ conga/luci/cluster/form-macros	2006/10/04 17:45:06	1.77
@@ -1023,10 +1023,6 @@
 	</div>
 
 	<h3>Fencing</h3>
-  <span tal:define="global fencelevelone python:fenceinfo[0];
-                    global fenceleveltwo python:fenceinfo[1]"/>
-  <h4>Main fencing has <span tal:content="python:len(fencelevelone)"/> fences</h4>
-  <h4>Backup fencing has <span tal:content="python:len(fenceleveltwo)"/> fences</h4>
 	<table id="fence_devices" class="cluster node fencedev">
 		<tfoot class="fencedev">
 		<tr class="cluster node fencedev"><td class="cluster node fencedev">



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-09-28 20:20 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2006-09-28 20:20 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2006-09-28 20:20:12

Modified files:
	luci/cluster   : form-macros 

Log message:
	small cleanups

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.73&r2=1.74

--- conga/luci/cluster/form-macros	2006/09/27 22:24:11	1.73
+++ conga/luci/cluster/form-macros	2006/09/28 20:20:12	1.74
@@ -328,7 +328,12 @@
 	<div id="configTabContent" tal:condition="python: configTabNum == 1">
 		<script type="text/javascript" src="/luci/homebase/homebase_common.js"></script>
 		<script type="text/javascript" src="/luci/cluster/validate_config_general.js"></script>
+
 		<form name="basecluster" action="" method="post">
+			<input type="hidden" name="pagetype"
+				tal:attributes="value request/pagetype | request/form/pagetype"
+			/>
+			<input type="hidden" name="configtype" value="general" />
 		<table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
 			<thead class="systemsTable">
 				<tr class="systemsTable"><td class="systemsTable" colspan="1">
@@ -342,13 +347,15 @@
 				<tr class="systemsTable">
 					<td class="systemsTable">Cluster Name</td>
 					<td class="systemsTable">
-						<input type="text" name="cluname" value="" tal:attributes="value clusterinfo/clustername"/>
+						<input type="text" name="cluname"
+							tal:attributes="value clusterinfo/clustername"/>
 					</td>
 				</tr>
 				<tr class="systemsTable">
 					<td class="systemsTable">Configuration Version</td>
 					<td class="systemsTable">
-						<input type="text" name="cfgver" size="5" value="" tal:attributes="value clusterinfo/config_version"/>
+						<input type="text" name="cfgver" size="5"
+							tal:attributes="value clusterinfo/config_version"/>
 					</td>
 				</tr>
 			</tbody>
@@ -357,7 +364,8 @@
 				<tr class="systemsTable">
 					<td class="systemsTable" colspan="2">
 						<div class="systemsTableEnd">
-							<input type="button" value="Apply" onClick="validate_form(this.form);"/>
+							<input type="button" value="Apply"
+								onClick="validate_form(this.form);"/>
 						</div>
 					</td>
 				</tr>
@@ -367,9 +375,16 @@
 	</div>
 
 	<div id="configTabContent" tal:condition="python: configTabNum == 2">
-		<form name="fencedaemon" action="" method="get" tal:attributes="action clusterinfo/fencedaemon_url">
-		<script type="text/javascript" src="/luci/homebase/homebase_common.js"></script>
-		<script type="text/javascript" src="/luci/cluster/validate_config_fence.js"></script>
+		<form name="fencedaemon" method="post">
+			<input type="hidden" name="configtype" value="fence" />
+			<input type="hidden" name="pagetype"
+				tal:attributes="value request/pagetype | request/form/pagetype"
+			/>
+		<script type="text/javascript" src="/luci/homebase/homebase_common.js">
+		</script>
+		<script type="text/javascript" src="/luci/cluster/validate_config_fence.js">
+		</script>
+
 		<table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
 			<thead class="systemsTable">
 				<tr class="systemsTable"><td class="systemsTable" colspan="1">
@@ -383,13 +398,15 @@
 				<tr class="systemsTable">
 					<td class="systemsTable">Post Fail Delay</td>
 					<td class="systemsTable">
-						<input type="text" name="post_fail_delay" value="" tal:attributes="value clusterinfo/pfd"/>
+						<input type="text" name="post_fail_delay"
+							tal:attributes="value clusterinfo/pfd" />
 					</td>
 				</tr>
 				<tr class="systemsTable">
 					<td class="systemsTable">Post Join Delay</td>
 					<td class="systemsTable">
-						<input type="text" name="post_join_delay" value="" tal:attributes="value clusterinfo/pjd"/>
+						<input type="text" name="post_join_delay"
+							tal:attributes="value clusterinfo/pjd" />
 					</td>
 				</tr>
 			</tbody>
@@ -398,7 +415,8 @@
 				<tr class="systemsTable">
 					<td class="systemsTable" colspan="2">
 						<div class="systemsTableEnd">
-							<input type="button" value="Apply" onClick="validate_form(this.form);" />
+							<input type="button" value="Apply"
+								onClick="validate_form(this.form);" />
 						</div>
 					</td>
 				</tr>
@@ -408,10 +426,16 @@
 	</div>
 
 	<div id="configTabContent" tal:condition="python: configTabNum == 3">
-		<script type="text/javascript" src="/luci/homebase/homebase_common.js"></script>
-		<script type="text/javascript" src="/luci/cluster/validate_config_multicast.js"></script>
+		<script type="text/javascript" src="/luci/homebase/homebase_common.js">
+		</script>
+		<script type="text/javascript" src="/luci/cluster/validate_config_multicast.js">
+		</script>
 
 		<form name="multicast" action="" method="post">
+			<input type="hidden" name="configtype" value="mcast" />
+			<input type="hidden" name="pagetype"
+				tal:attributes="value request/pagetype | request/form/pagetype"
+			/>
 		<table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
 			<thead class="systemsTable">
 				<tr class="systemsTable"><td class="systemsTable" colspan="1">
@@ -457,7 +481,8 @@
 			<tfoot class="systemsTable">
 				<tr class="systemsTable"><td class="systemsTable" colspan="2">
 					<div class="systemsTableEnd">
-						<input type="button" value="Apply" onClick="validate_form(this.form);"/>
+						<input type="button" value="Apply"
+							onClick="validate_form(this.form);"/>
 					</div>
 				</td></tr>
 			</tfoot>
@@ -472,6 +497,7 @@
 			<input type="hidden" name="pagetype"
 				tal:attributes="value request/pagetype | request/form/pagetype"
 			/>
+			<input type="hidden" name="configtype" value="qdisk" />
 		<div class="configTabContent">
 		<table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
 			<thead class="systemsTable">



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-09-25 15:59 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2006-09-25 15:59 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2006-09-25 15:59:21

Modified files:
	luci/cluster   : form-macros 

Log message:
	fix logic inversion bug on the cluster list page

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.67&r2=1.68

--- conga/luci/cluster/form-macros	2006/09/25 15:46:15	1.67
+++ conga/luci/cluster/form-macros	2006/09/25 15:59:21	1.68
@@ -27,12 +27,14 @@
 <div metal:define-macro="clusters-form">
 <div id="cluster_list">
 <div class="cluster" tal:repeat="clu clusystems">
-	<span tal:define="global ragent python: here.getRicciAgent(clu)"/>
-  <span tal:condition="python: ragent == ''">
-    <h4><font color="red">An error occurred when trying to contact any of the nodes in the <span tal:content="clu"/>.</font></h4>
+	<tal:block tal:define="global ragent python: here.getRicciAgent(clu)" />
+
+ <span tal:condition="python: ragent == ''">
+    <strong class="errmsgs">An error occurred when trying to contact any of the nodes in the <span tal:replace="python: clu[0]"/> cluster.</strong>
   <hr/>
   </span>
-  <span tal:condition="python: ragent == ''">
+
+  <span tal:condition="python: ragent != ''">
 	<tal:block
 			tal:define="global stat python: here.getClusterStatus(ragent);
 			global cstatus python: here.getClustersInfo(stat,request);



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-09-25 15:46 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-09-25 15:46 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-09-25 15:46:15

Modified files:
	luci/cluster   : form-macros 

Log message:
	Straightened up fence types

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.66&r2=1.67

--- conga/luci/cluster/form-macros	2006/09/23 04:04:08	1.66
+++ conga/luci/cluster/form-macros	2006/09/25 15:46:15	1.67
@@ -826,9 +826,90 @@
 		<tr class="cluster node info_top">
 			<td class="cluster node fence_main">
 				<strong class="cluster node">Main Fencing Method</strong>
+        <form name="main_fence_form">
+         <select name="select_div" onChange="swap_div('container'), main_fence_form.select_div.options[filler.select_div.selectedIndex].value);">
+          <option name="fence_apc" value="fence_apc">APC Power Switch</option>
+          <option name="fence_wti" value="fence_wti">WTI Power Switch</option>
+          <option name="fence_ilo" value="fence_ilo">HP iLO</option>
+          <option name="fence_drac" value="fence_drac">Dell DRAC</option>
+          <option name="fence_rsa" value="fence_rsa">IBM RSA II</option>
+          <option name="fence_ipmilan" value="fence_ipmilan">IPMI Lan</option>
+         </select>
+        </form>
+        <div id="container">Container</div>
+
+        <div id="invisible" style="visibility: hidden">
+          <div id="fence_apc">
+           <table>
+           <tr><td>Name: </td><td><input name="name"></td></tr>
+           <tr><td>IP Address: </td><td><input name="ip_addr"></td></tr>
+           <tr><td>Login: </td><td><input name="login"></td></tr>
+           <tr><td>Password: </td><td><input name="password"></td></tr>
+           <input type="submit"/>
+           </table> 
+          </div>
+          <div id="fence_wti">
+           <table>
+           <tr><td>Name: </td><td><input name="name"></td></tr>
+           <tr><td>IP Address: </td><td><input name="ip_addr"></td></tr>
+           <tr><td>Password: </td><td><input name="password"></td></tr>
+           <input type="submit"/>
+           </table> 
+          </div>
+          <div id="fence_ilo">
+           <table>
+           <tr><td>Name: </td><td><input name="name"></td></tr>
+           <tr><td>Login: </td><td><input name="login"></td></tr>
+           <tr><td>Password: </td><td><input name="password"></td></tr>
+           <tr><td>Hostname: </td><td><input name="hostname"></td></tr>
+           <input type="submit"/>
+           </table> 
+          </div>
+          <div id="fence_drac">
+           <table>
+           <tr><td>Name: </td><td><input name="name"></td></tr>
+           <tr><td>IP Address: </td><td><input name="ip_addr"></td></tr>
+           <tr><td>Login: </td><td><input name="login"></td></tr>
+           <tr><td>Password: </td><td><input name="password"></td></tr>
+           <input type="submit"/>
+           </table> 
+          </div>
+          <div id="fence_rsa">
+           <table>
+           <tr><td>Name: </td><td><input name="name"></td></tr>
+           <tr><td>Login: </td><td><input name="login"></td></tr>
+           <tr><td>Password: </td><td><input name="password"></td></tr>
+           <tr><td>Hostname: </td><td><input name="hostname"></td></tr>
+           <input type="submit"/>
+           </table> 
+          </div>
+          <div id="fence_ipmilan">
+           <form name="fence_ipmilan">
+           <table>
+           <tr><td>Name: </td><td><input name="name"></td></tr>
+           <tr><td>IP Address: </td><td><input name="ip_addr"></td></tr>
+           <tr><td>Login: </td><td><input name="login"></td></tr>
+           <tr><td>Password: </td><td><input name="password"></td></tr>
+           <tr><td>Auth Type: </td><td><input name="auth_type"></td></tr>
+           <input type="submit"/>
+           </table> 
+           </form>
+          </div>
+
+        </div>
 			</td>
 			<td class="cluster node fence_backup">
 				<strong class="cluster node">Backup Fencing Method</strong>
+        <form name="backup_fence_form">
+         <select name="select_div" onChange="swap_div('container'), backup_fence_form.select_div.options[backup_fence_form.select_div.selectedIndex].value);">
+          <option name="fence_apc_b" value="fence_apc_b">APC Power Switch</option>
+          <option name="fence_wti_b" value="fence_wti_b">WTI Power Switch</option>
+          <option name="fence_ilo_b" value="fence_ilo_b">HP iLO</option>
+          <option name="fence_drac_b" value="fence_drac_b">Dell DRAC</option>
+          <option name="fence_rsa_b" value="fence_rsa_b">IBM RSA II</option>
+          <option name="fence_ipmilan_b" value="fence_ipmilan_b">IPMI Lan</option>
+         </select>
+        </form>
 			</td>
 		</tr>
 	</table>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-09-22 20:58 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-09-22 20:58 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-09-22 20:58:59

Modified files:
	luci/cluster   : form-macros 

Log message:
	minor nits

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.63&r2=1.64

--- conga/luci/cluster/form-macros	2006/09/22 20:30:27	1.63
+++ conga/luci/cluster/form-macros	2006/09/22 20:58:59	1.64
@@ -27,12 +27,12 @@
 <div metal:define-macro="clusters-form">
 <div id="cluster_list">
 <div class="cluster" tal:repeat="clu clusystems">
-	<span tal:define="global ragent python: here.getRicciAgent(clu) | nothing"/>
-  <span tal:condition="not: ragent">
+	<span tal:define="global ragent python: here.getRicciAgent(clu)"/>
+  <span tal:condition="python: ragent == ''">
     <h4><font color="red">An error occurred when trying to contact any of the nodes in the <span tal:content="clu"/>.</font></h4>
   <hr/>
   </span>
-  <span tal:condition="ragent">
+  <span tal:condition="python: ragent == ''">
 	<tal:block
 			tal:define="global stat python: here.getClusterStatus(ragent);
 			global cstatus python: here.getClustersInfo(stat,request);



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-09-22 20:30 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-09-22 20:30 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-09-22 20:30:27

Modified files:
	luci/cluster   : form-macros 

Log message:
	Fixed evil typos

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.62&r2=1.63

--- conga/luci/cluster/form-macros	2006/09/22 20:08:40	1.62
+++ conga/luci/cluster/form-macros	2006/09/22 20:30:27	1.63
@@ -27,8 +27,8 @@
 <div metal:define-macro="clusters-form">
 <div id="cluster_list">
 <div class="cluster" tal:repeat="clu clusystems">
-	<tal:define="global ragent python: here.getRicciAgent(clu) | nothing/>
-  <span tal:condition="not ragent">
+	<span tal:define="global ragent python: here.getRicciAgent(clu) | nothing"/>
+  <span tal:condition="not: ragent">
     <h4><font color="red">An error occurred when trying to contact any of the nodes in the <span tal:content="clu"/>.</font></h4>
   <hr/>
   </span>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-09-22 20:08 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-09-22 20:08 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-09-22 20:08:40

Modified files:
	luci/cluster   : form-macros 

Log message:
	Fixed evil ignoring of a return code

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.61&r2=1.62

--- conga/luci/cluster/form-macros	2006/09/22 18:21:59	1.61
+++ conga/luci/cluster/form-macros	2006/09/22 20:08:40	1.62
@@ -27,9 +27,14 @@
 <div metal:define-macro="clusters-form">
 <div id="cluster_list">
 <div class="cluster" tal:repeat="clu clusystems">
+	<tal:define="global ragent python: here.getRicciAgent(clu) | nothing/>
+  <span tal:condition="not ragent">
+    <h4><font color="red">An error occurred when trying to contact any of the nodes in the <span tal:content="clu"/>.</font></h4>
+  <hr/>
+  </span>
+  <span tal:condition="ragent">
 	<tal:block
-		tal:define="ragent python: here.getRicciAgent(clu);
-			global stat python: here.getClusterStatus(ragent);
+			tal:define="global stat python: here.getClusterStatus(ragent);
 			global cstatus python: here.getClustersInfo(stat,request);
 			global cluster_status python: 'cluster ' + (('running' in cstatus and cstatus['running'] == 'true') and 'running' or 'stopped');"
  	/>
@@ -111,6 +116,7 @@
 	</tr>
 	</table>
 	<hr>
+ </span>
 </div>
 </div>
 </div>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-30 23:40 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2006-08-30 23:40 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2006-08-30 23:40:13

Modified files:
	luci/cluster   : form-macros 

Log message:
	ui nits

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.53&r2=1.54

--- conga/luci/cluster/form-macros	2006/08/30 22:57:42	1.53
+++ conga/luci/cluster/form-macros	2006/08/30 23:40:13	1.54
@@ -998,7 +998,11 @@
 
 			<tr class="cluster service info_top">
 				<td class="cluster service service_name">
-					<strong class="cluster service">Service Name:</strong> <span tal:replace="svc/name"/>
+					<strong class="cluster service">Service Name:</strong>
+					<a tal:attributes="
+						href svc/cfgurl;
+						class python: 'cluster service ' + (running and 'running' or 'stopped')"
+						tal:content="svc/name" />
 				</td>
 
 				<td class="cluster service service_action">
@@ -1017,14 +1021,12 @@
 			<tr class="cluster service info_middle">
 				<td class="cluster service service_nodename">
 					<div class="cluster service service_status">
-						<strong class="cluster service service_name">Status:</strong>
+						<strong class="cluster service">Status:</strong>
 						<tal:block tal:condition="running">
-							<span class="running">
-								Running on <tal:block tal:replace="svc/nodename"/>
-							</span>
+							Running on <tal:block tal:replace="svc/nodename"/>
 						</tal:block>
 						<tal:block tal:condition="not: running">
-							<span class="stopped" tal:content="string:This service is stopped"/>
+							This service is stopped
 						</tal:block>
 					</div>
 					<p>Autostart is <span tal:condition="not: autostart" tal:replace="string: not" /> enabled for this service</p>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-30 22:57 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2006-08-30 22:57 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2006-08-30 22:57:43

Modified files:
	luci/cluster   : form-macros 

Log message:
	more ui stuff

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.52&r2=1.53

--- conga/luci/cluster/form-macros	2006/08/29 23:22:59	1.52
+++ conga/luci/cluster/form-macros	2006/08/30 22:57:42	1.53
@@ -1065,6 +1065,8 @@
 </div>
 
 <div metal:define-macro="serviceconfig-form">
+	<script type="text/javascript" src="/luci/homebase/homebase_common.js">
+	</script>
 	<tal:block tal:define="
 		global ricci_agent python: here.getRicciAgentForCluster(request);
 		global sstat python: here.getClusterStatus(ricci_agent);
@@ -1074,7 +1076,10 @@
 	<table class="cluster service" width="100%">
 		<tr class="cluster service info_top">
 			<td class="cluster service service_name">
-				<strong class="service_name">Service Name:</strong> <span tal:replace="sinfo/name"/>
+				<strong class="service_name">Service Name:</strong>
+				<span
+					tal:content="sinfo/name"
+					tal:attributes="class python: running and 'running' or 'stopped'" />
 			</td>
 			<td class="cluster service service_action">
 				<form method="post" onSubmit="return dropdown(this.gourl)">
@@ -1107,52 +1112,59 @@
 		<tr class="cluster service info_middle">
 			<td class="cluster service service_status">
 				<strong>Service Status:</strong>
-				<span	tal:content="python: running and 'Running' or 'Stopped'"
-						tal:attributes="class python: running and 'running' or 'stopped'" />
+				<span tal:replace="python: running and 'Running' or 'Stopped'" />
 			</td>
 		</tr>
 	</table>
 	<br/>
 	<h2>Service Composition</h2>
-	<ul tal:define="global svc_rcs sinfo/resource_list">
-		<li tal:repeat="res svc_rcs">
-			<ul tal:define="
-				global type res/type;
-				global ref res/ref_object | nothing">
-
-				<tal:block omit-tag="" tal:condition="ref">
-					<span tal:omit-tag="" tal:define="global shared string:true"/>
-				</tal:block>
-
-				<div class="" tal:attributes="class python: 'rc_indent' + str(res['indent_ctr'])">
-					<span tal:omit-tag="" tal:condition="python: type == 'IP Address: '">
-						<li metal:use-macro="here/resource-form-macros/macros/ip_macro"/>
-					</span>
-					<span tal:omit-tag="" tal:condition="python: type == 'fs'">
-						<li metal:use-macro="here/resource-form-macros/macros/fs_macro"/>
-					</span>
-					<span tal:omit-tag="" tal:condition="python: type == 'gfs'">
-						<li metal:use-macro="here/resource-form-macros/macros/gfs_macro"/>
-					</span>
-					<span tal:omit-tag="" tal:condition="python: type == 'nfsm'">
-						<li metal:use-macro="here/resource-form-macros/macros/nfsm_macro"/>
-					</span>
-					<span tal:omit-tag="" tal:condition="python: type == 'nfsx'">
-						<li metal:use-macro="here/resource-form-macros/macros/nfsx_macro"/>
-					</span>
-					<span tal:omit-tag="" tal:condition="python: type == 'nfsc'">
-						<li metal:use-macro="here/resource-form-macros/macros/nfsc_macro"/>
-					</span>
-					<span tal:omit-tag="" tal:condition="python: type == 'smb'">
-						<li metal:use-macro="here/resource-form-macros/macros/smb_macro" />
-					</span>
-					<span tal:omit-tag="" tal:condition="python: type == 'Script: '">
-						<li metal:use-macro="here/resource-form-macros/macros/scr_macro" />
-					</span>
-				</div>
-			</ul>
-		</li>
-	</ul>
+
+	<div tal:repeat="res sinfo/resource_list"
+		tal:attributes="class python: 'service_comp rc_indent' + str(res['indent_ctr'])">
+
+		<tal:block
+			tal:condition="python: res['max_depth'] > 0"
+			tal:replace="structure string:<div>" />
+
+		<tal:block tal:define="
+			global type res/type;
+			global ref res/ref_object | nothing" />
+
+		<span tal:omit-tag="" tal:condition="python: type == 'IP Address: '">
+			<tal:block metal:use-macro="here/resource-form-macros/macros/ip_macro" />
+		</span>
+
+		<span tal:omit-tag="" tal:condition="python: type == 'fs'">
+			<tal:block metal:use-macro="here/resource-form-macros/macros/fs_macro" />
+		</span>
+
+		<span tal:omit-tag="" tal:condition="python: type == 'gfs'">
+			<tal:block metal:use-macro="here/resource-form-macros/macros/gfs_macro" />
+		</span>
+
+		<span tal:omit-tag="" tal:condition="python: type == 'nfsm'">
+			<tal:block metal:use-macro="here/resource-form-macros/macros/nfsm_macro" />
+		</span>
+
+		<span tal:omit-tag="" tal:condition="python: type == 'nfsx'">
+			<tal:block metal:use-macro="here/resource-form-macros/macros/nfsx_macro" />
+		</span>
+
+		<span tal:omit-tag="" tal:condition="python: type == 'nfsc'">
+			<tal:block metal:use-macro="here/resource-form-macros/macros/nfsc_macro" />
+		</span>
+
+		<span tal:omit-tag="" tal:condition="python: type == 'smb'">
+			<tal:block metal:use-macro="here/resource-form-macros/macros/smb_macro" />
+		</span>
+
+		<span tal:omit-tag="" tal:condition="python: type == 'Script: '">
+			<tal:block metal:use-macro="here/resource-form-macros/macros/scr_macro" />
+		</span>
+
+		<tal:block
+			tal:replace="structure python: '</div>' * (res['indent_ctr'] - res['max_depth'])" />
+	</div>
 </div>
 
 <div metal:define-macro="service-form">
@@ -1227,7 +1239,7 @@
 				<li tal:attributes="class python: nodeclass">
 					<a tal:content="node/nodename"
 						tal:attributes="
-							href node/configurl;
+							href node/nodecfgurl;
 							class python: nodeclass;" />
 				</li>
 			</tal:block>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-16 23:40 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-08-16 23:40 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-08-16 23:40:04

Modified files:
	luci/cluster   : form-macros 

Log message:
	various small nits

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.48&r2=1.49

--- conga/luci/cluster/form-macros	2006/08/16 23:02:27	1.48
+++ conga/luci/cluster/form-macros	2006/08/16 23:40:03	1.49
@@ -1221,30 +1221,31 @@
 </div>
 
 <div metal:define-macro="fdomlist-form">
-   <span tal:define="ragent python:here.getRicciAgent(request/clustername);
+   <span tal:define="ragent python:here.getRicciAgentForCluster(request);
               global sta python:here.getClusterStatus(ragent);
               global fdominfo python:here.getFdomsInfo(modelb, request, sta);">
    <span tal:repeat="fdom fdominfo">
     <div class="fdomname">
-     <h2>Failover Domain Name: <font color="blue"><a href="" tal:attributes="href fdom/cfgurl"><span tal:content="fdom/name"/></a></font></h2>
+     <img src="fDom.png"/><h2>Failover Domain Name: <font color="blue"><a href="" tal:attributes="href fdom/cfgurl"><span tal:content="fdom/name"/></a></font></h2>
     </div>
     <div class="fdomordered">
     <span tal:condition="python:fdom['ordered'] == True">
-     <h2>This Failover Domain is <i>Ordered</i></h2>
+     <h4>This Failover Domain is <i>Ordered</i></h4>
     </span>
     <span tal:condition="python:fdom['ordered'] == False">
-     <h2>This Failover Domain is <i>Unordered</i></h2>
+     <h4>This Failover Domain is <i>Unordered</i></h4>
     </span>
     </div>
     <div class="fdomrestricted">
     <span tal:condition="python:fdom['restricted'] == True">
-     <h2>This Failover Domain is <i>Restricted</i></h2>
+     <h4>This Failover Domain is <i>Restricted</i></h4>
     </span>
     <span tal:condition="python:fdom['restricted'] == False">
-     <h2>This Failover Domain is <i>Unrestricted</i></h2>
+     <h4>This Failover Domain is <i>Unrestricted</i></h4>
     </span>
     </div>
     <div class="fdommembers">
+    <h3>Members of this Failover Domain</h3>
     <ul>
      <span tal:repeat="node fdom/nodeslist">
         <li style="list-style-image: url(small_node_active.png);" tal:condition="python:node['status'] == '0'">
@@ -1262,16 +1263,16 @@
     <div class="fdomservice">
       <h2>Services employing this Failover Domain: </h2>
         <ul>
-          <span tal:condition="python:len(cstatus['currentservices']) < 1">
+          <span tal:condition="python:len(fdom['svclist']) < 1">
            <li><i>No Services Defined</i></li>
           </span>
           <span tal:repeat="svc fdom/svclist">
-            <span tal:condition="python:svc['srunning'] == 'true'">
+            <span tal:condition="python:svc['status'] == 'true'">
              <li style="list-style-image:url(small_svc.png);">
               <a href="" tal:attributes="href svc/svcurl"><font color="green"><span tal:content="svc/name"/></font></a> Running On Node <span tal:content="svc/location"/>
              </li>
             </span>
-            <span tal:condition="python:svc['srunning'] != 'true'">
+            <span tal:condition="python:svc['status'] != 'true'">
              <li style="list-style-image:url(small_svc_stopped.png);">
               <a href="" tal:attributes="href svc/svcurl"><font color="red"><span tal:content="svc/name"/></font></a> Not Running
              </li>
@@ -1280,6 +1281,7 @@
        </ul>
     </div>
    </span>
+   <hr/>
   </span>
 </div>
 



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-16 21:48 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-08-16 21:48 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-08-16 21:48:38

Modified files:
	luci/cluster   : form-macros 

Log message:
	faildom junk

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.46&r2=1.47

--- conga/luci/cluster/form-macros	2006/08/16 21:33:49	1.46
+++ conga/luci/cluster/form-macros	2006/08/16 21:48:38	1.47
@@ -1220,7 +1220,66 @@
 </div>
 
 <div metal:define-macro="fdomlist-form">
-	<h2>Failover Domains List Form</h2>
+   <span tal:define="ragent python:here.getRicciAgent(request/clustername);
+              global sta python:here.getClusterStatus(ragent);
+              global fdominfo python:here.getFdomsInfo(modelb, request, sta);">
+   <span tal:repeat="fdom fdominfo">
+    <div class="fdomname">
+     <h2>Failover Domain Name: <font color="blue"><a href="" tal:attributes="href fdom/cfgurl"><span tal:content="fdom/name"/></a></font></h2>
+    </div>
+    <div class="fdomordered">
+    <span tal:condition="python:fdom['ordered'] == True">
+     <h2>This Failover Domain is <i>Ordered</i></h2>
+    </span>
+    <span tal:condition="python:fdom['ordered'] == False">
+     <h2>This Failover Domain is <i>Unordered</i></h2>
+    </span>
+    </div>
+    <div class="fdomrestricted">
+    <span tal:condition="python:fdom['restricted'] == True">
+     <h2>This Failover Domain is <i>Restricted</i></h2>
+    </span>
+    <span tal:condition="python:fdom['restricted'] == False">
+     <h2>This Failover Domain is <i>Unrestricted</i></h2>
+    </span>
+    </div>
+    <div class="fdommembers">
+    <ul>
+     <span tal:repeat="node fdom/nodeslist">
+        <li style="list-style-image: url(small_node_active.png);" tal:condition="python:node['status'] == '0'">
+         <a href="" tal:attributes="href node/nodecfgurl"><font color="green"><span tal:content="node/nodename"/></font></a>
+        </li>
+        <li style="list-style-image: url(small_node_inactive.png);" tal:condition="python:node['status'] == '1'">
+         <a href="" tal:attributes="href node/nodecfgurl"><font color="red"><span tal:content="node/nodename"/></font></a>
+        </li>
+        <li style="list-style-image: url(small_node_unknown.png);" tal:condition="python:node['status'] == '2'">
+         <a href="" tal:attributes="href node/nodecfgurl"><font color="gray"><span tal:content="node/nodename"/></font></a>
+        </li>
+     </span>
+    </ul>
+    </div>
+    <div class="fdomservice">
+      <h2>Services employing this Failover Domain: </h2>
+        <ul>
+          <span tal:condition="python:len(cstatus['currentservices']) < 1">
+           <li><i>No Services Defined</i></li>
+          </span>
+          <span tal:repeat="svc fdom/svclist">
+            <span tal:condition="python:svc['srunning'] == 'true'">
+             <li style="list-style-image:url(small_svc.png);">
+              <a href="" tal:attributes="href svc/svcurl"><font color="green"><span tal:content="svc/name"/></font></a> Running On Node <span tal:content="svc/location"/>
+             </li>
+            </span>
+            <span tal:condition="python:svc['srunning'] != 'true'">
+             <li style="list-style-image:url(small_svc_stopped.png);">
+              <a href="" tal:attributes="href svc/svcurl"><font color="red"><span tal:content="svc/name"/></font></a> Not Running
+             </li>
+            </span>
+        </span>
+       </ul>
+    </div>
+   </span>
+  </span>
 </div>
 
 <div metal:define-macro="fdomadd-form">



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-14 14:53 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-08-14 14:53 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-08-14 15:53:07

Modified files:
	luci/cluster   : form-macros 

Log message:
	indenting for parent-child resource relationships

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.41&r2=1.42

--- conga/luci/cluster/form-macros	2006/08/13 19:18:49	1.41
+++ conga/luci/cluster/form-macros	2006/08/14 14:53:07	1.42
@@ -990,7 +990,7 @@
         <span omit-tag="" tal:condition="ref">
           <span tal:omit-tag="" tal:define="global shared string:true"/>
         </span>
-	<strong tal:content="res/indent_str"/>
+	    <div class="" tal:attributes="class python:'rc_indent' + str(res['indent_ctr'])">
         <span tal:omit-tag="" tal:condition="python:type == 'IP Address: '">
           <li metal:use-macro="here/resource-form-macros/macros/ip_macro"/>
         </span>
@@ -1015,6 +1015,7 @@
         <span tal:omit-tag="" tal:condition="python:type == 'Script: '">
           <li metal:use-macro="here/resource-form-macros/macros/scr_macro" />
         </span>
+       </div>
       </ul>
     </li>
   </ul>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-13 19:18 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-08-13 19:18 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-08-13 20:18:49

Modified files:
	luci/cluster   : form-macros 

Log message:
	Moved log link

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.40&r2=1.41

--- conga/luci/cluster/form-macros	2006/08/13 19:14:54	1.40
+++ conga/luci/cluster/form-macros	2006/08/13 19:18:49	1.41
@@ -605,6 +605,10 @@
 			</div>
 		</div>
 
+    <div>
+     <a href="" tal:attributes="href nodeinfo/logurl" onClick="return popup_log(this, 'notes')">Show recent log activity for this node</a>
+    </div>
+    <hr/>
 		<div>
 			<table border="1px">
 				<tr>
@@ -620,9 +624,6 @@
 				</tr>
 			</table>
 		</div>
-    <div>
-     <a href="" tal:attributes="href nodeinfo/logurl" onClick="return popup_log(this, 'notes')">Show recent log activity for this node</a>
-    </div>
 	</div>
     <hr/>
 		<div style="padding:10px;margin:10px">



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-13 19:14 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-08-13 19:14 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-08-13 20:14:55

Modified files:
	luci/cluster   : form-macros 

Log message:
	Removed last of table tags

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.39&r2=1.40

--- conga/luci/cluster/form-macros	2006/08/13 19:04:38	1.39
+++ conga/luci/cluster/form-macros	2006/08/13 19:14:54	1.40
@@ -560,11 +560,10 @@
 		</div>
 
 		<div tal:condition="python:nodeinfo['nodestate'] == '1'">
-			<td>
+			<div style="margin-left: 0px;">
 				<img src="node_inactive.png"/>
-			</td>
-			<td>
-				<table>
+			  <div style="margin-left: 100px;">
+				 <table>
 					<tr><td>
 						<h2 style="border:0px;">Node name: <span tal:content="nodeinfo/nodename"/></h2>
 					</td></tr>
@@ -572,10 +571,11 @@
 					<tr><td style="margin:10px;padding:10px;">
 						<h2 style="border:0px;">Status: <font color="red">Currently not a cluster participant</font>
 					</td></tr>
-				</table>
-			</td>
+				 </table>
+			  </div>
+			</div>
 
-			<td style="margin:15px;vertical-align:top;">
+			<div style="margin:15px;vertical-align:top;">
 				<form method="post" onSubmit="return dropdown(this.gourl)">
 					<select name="gourl">
 						<option value="">Choose a Task...</option>
@@ -588,24 +588,24 @@
 					</select>
 					<input type="submit" value="Go"/>
 				</form>
-			</td>
+			</div>
 		</div>
 
 		<div tal:condition="python:nodeinfo['nodestate'] == '2'">
-			<td>
+			<div>
 				<img src="node_unknown.png"/>
-			</td>
+			</div>
 
-			<td>
+			<div>
 				<h2 style="border:0px;">Node name: <span tal:replace="nodeinfo/nodename"/></h2>
-			</td>
+			</div>
 
-			<td style="margin:10px;padding:10px;">
+			<div style="margin:10px;padding:10px;">
 				<h2 style="border:0px;">Status: <font color="gray">This node is not responding</font>
-			</td>
+			</div>
 		</div>
 
-		<tr><td>
+		<div>
 			<table border="1px">
 				<tr>
 					<th>Cluster daemon</th>
@@ -619,8 +619,10 @@
 					<td><span tal:content="demon/running"/></td>
 				</tr>
 			</table>
-		</td></tr>
-          <tr><td><a href="" tal:attributes="href nodeinfo/logurl" onClick="return popup_log(this, 'notes')">Show recent log activity for this node</a></td></tr>
+		</div>
+    <div>
+     <a href="" tal:attributes="href nodeinfo/logurl" onClick="return popup_log(this, 'notes')">Show recent log activity for this node</a>
+    </div>
 	</div>
     <hr/>
 		<div style="padding:10px;margin:10px">



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-13 19:04 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-08-13 19:04 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-08-13 20:04:38

Modified files:
	luci/cluster   : form-macros 

Log message:
	div check2

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.38&r2=1.39

--- conga/luci/cluster/form-macros	2006/08/13 18:46:11	1.38
+++ conga/luci/cluster/form-macros	2006/08/13 19:04:38	1.39
@@ -521,31 +521,29 @@
 		First table row is status icon, name, and dropdown
 		Second row is daemon macro and failoverdom membership
 		Third row is fencing macro
-		Fourth row is logging
 	</tal:comment>
 
-	<table tal:define="
+	<div tal:define="
 		global ricci_agent python:here.getRicciAgentForCluster(request);
 		global nodestatus python:here.getClusterStatus(ricci_agent);
 		global nodeinfo python:here.getNodeInfo(modelb, nodestatus, request)">
 
-		<tr tal:condition="python:nodeinfo['nodestate'] == '0'">
-			<td>
+		<div tal:condition="python:nodeinfo['nodestate'] == '0'">
+			<div style="margin-left: .0em;">
 				<img src="node_active.png"/>
-			</td>
-
-			<td style="horizontal-align:left;">
-				<table>
+			  <div style="margin-left:100px">
+				 <table>
 					<tr><td>
 						<h2 style="border:0px;">Node name: <span tal:content="nodeinfo/nodename"/></h2>
 					</td></tr>
 					<tr style="horizontal-align:left;"><td>
 						<h2 style="border:0px;">Status: <font color="green">Cluster member</font>
 					</td></tr>
-				</table>
-			</td>
+				 </table>
+			  </div>
+			</div>
 
-			<td style="margin:15px; vertical-align:top">
+			<div style="margin:15px; vertical-align:top">
 			<form method="post" onSubmit="return dropdown(this.gourl)">
 				<select name="gourl">
 					<option value="">Choose a Task...</option>
@@ -558,10 +556,10 @@
 				</select>
 				<input type="submit" value="Go"/>
 			</form>
-			</td>
-		</tr>
+			</div>
+		</div>
 
-		<tr tal:condition="python:nodeinfo['nodestate'] == '1'">
+		<div tal:condition="python:nodeinfo['nodestate'] == '1'">
 			<td>
 				<img src="node_inactive.png"/>
 			</td>
@@ -591,9 +589,9 @@
 					<input type="submit" value="Go"/>
 				</form>
 			</td>
-		</tr>
+		</div>
 
-		<tr tal:condition="python:nodeinfo['nodestate'] == '2'">
+		<div tal:condition="python:nodeinfo['nodestate'] == '2'">
 			<td>
 				<img src="node_unknown.png"/>
 			</td>
@@ -605,7 +603,7 @@
 			<td style="margin:10px;padding:10px;">
 				<h2 style="border:0px;">Status: <font color="gray">This node is not responding</font>
 			</td>
-		</tr>
+		</div>
 
 		<tr><td>
 			<table border="1px">
@@ -623,7 +621,7 @@
 			</table>
 		</td></tr>
           <tr><td><a href="" tal:attributes="href nodeinfo/logurl" onClick="return popup_log(this, 'notes')">Show recent log activity for this node</a></td></tr>
-	</table>
+	</div>
     <hr/>
 		<div style="padding:10px;margin:10px">
 							<h2 style="border:0px;">Services on this Node:</h2>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-13 18:46 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-08-13 18:46 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-08-13 19:46:11

Modified files:
	luci/cluster   : form-macros 

Log message:
	div check

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.37&r2=1.38

--- conga/luci/cluster/form-macros	2006/08/13 18:42:11	1.37
+++ conga/luci/cluster/form-macros	2006/08/13 18:46:11	1.38
@@ -654,10 +654,10 @@
      </div>
   <hr/>
   <h3>Fencing</h3>
-  <div width="50%">
+  <div style="margin-left: 0%;">
    <h4>Main Fencing Method</h4>
   </div>
-  <div width="50%">
+  <div style="margin-left: 50%;">
    <h4>Backup Fencing Method</h4>
   </div>
 </div>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-13 18:42 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-08-13 18:42 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-08-13 19:42:11

Modified files:
	luci/cluster   : form-macros 

Log message:
	Fence labels

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.36&r2=1.37

--- conga/luci/cluster/form-macros	2006/08/13 18:35:21	1.36
+++ conga/luci/cluster/form-macros	2006/08/13 18:42:11	1.37
@@ -639,7 +639,6 @@
               </span>
 			</div>
   <hr/>
-  <h3>Failover Domain Membership</h3>
     <div class=fdomblock>
 							<h3>Failover Domain Membership: </h3>
               <span tal:condition="python:len(nodeinfo['fdoms']) == 0">
@@ -655,6 +654,12 @@
      </div>
   <hr/>
   <h3>Fencing</h3>
+  <div width="50%">
+   <h4>Main Fencing Method</h4>
+  </div>
+  <div width="50%">
+   <h4>Backup Fencing Method</h4>
+  </div>
 </div>
 
 <div metal:define-macro="nodes-form">



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-13 18:35 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-08-13 18:35 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-08-13 19:35:22

Modified files:
	luci/cluster   : form-macros 

Log message:
	Fix some problems in node-info

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.35&r2=1.36

--- conga/luci/cluster/form-macros	2006/08/13 16:16:17	1.35
+++ conga/luci/cluster/form-macros	2006/08/13 18:35:21	1.36
@@ -622,7 +622,39 @@
 				</tr>
 			</table>
 		</td></tr>
+          <tr><td><a href="" tal:attributes="href nodeinfo/logurl" onClick="return popup_log(this, 'notes')">Show recent log activity for this node</a></td></tr>
 	</table>
+    <hr/>
+		<div style="padding:10px;margin:10px">
+							<h2 style="border:0px;">Services on this Node:</h2>
+              <span tal:condition="python:len(nodeinfo['currentservices']) == 0">
+                <h3><i>No cluster services are currently running here</i></h3>
+              </span>
+              <span tal:condition="python:len(nodeinfo['currentservices']) > 0">
+							<ul>
+								<li style="list-style-image: url(small_svc.png);" tal:repeat="svc nodeinfo/currentservices">
+									<a href="" tal:attributes="href svc/svcurl"><font color="green"><span tal:replace="svc/servicename"/></font></a>
+								</li>
+							</ul>
+              </span>
+			</div>
+  <hr/>
+  <h3>Failover Domain Membership</h3>
+    <div class=fdomblock>
+							<h3>Failover Domain Membership: </h3>
+              <span tal:condition="python:len(nodeinfo['fdoms']) == 0">
+               <h4><i>This node has no failover domain membership</i></h4>
+              </span>
+              <span tal:condition="python:len(nodeinfo['fdoms']) > 0">
+							<ul>
+								<li style="list-style-image: url(small_fdom.png);" tal:repeat="fdom nodeinfo/fdoms">
+									<a href="" tal:attributes="href fdom/fdomurl"><span tal:content="fdom/name"/></a>
+								</li>
+							</ul>
+              </span>
+     </div>
+  <hr/>
+  <h3>Fencing</h3>
 </div>
 
 <div metal:define-macro="nodes-form">
@@ -720,7 +752,7 @@
               </span>
 						</td>
 					</tr>
-          <tr><td><a href="" tal:attributes="href nd/logurl" onClick="return popup_log(this, 'notes')">Show recent log activity for this node</a>
+          <tr><td><a href="" tal:attributes="href nd/logurl" onClick="return popup_log(this, 'notes')">Show recent log activity for this node</a></td></tr>
 				</table>
 			</td>
 		</tr>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-13 14:54 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-08-13 14:54 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-08-13 15:54:08

Modified files:
	luci/cluster   : form-macros 

Log message:
	Another nit

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.33&r2=1.34

--- conga/luci/cluster/form-macros	2006/08/13 14:50:44	1.33
+++ conga/luci/cluster/form-macros	2006/08/13 14:54:08	1.34
@@ -656,12 +656,12 @@
 							<form method="post" onSubmit="return dropdown(this.gourl)">
 								<select name="gourl">
 									<option value="">Choose a Task...</option>
-									<option value="" tal:attributes="value nodeinfo/jl_url">Have node leave cluster</option>
+									<option value="" tal:attributes="value nd/jl_url">Have node leave cluster</option>
 									<option value="">----------</option>
-									<option value="" tal:attributes="value nodeinfo/fence_it_url">Fence this node</option>
-									<option value="" tal:attributes="value nodeinfo/reboot_url">Reboot this node</option>
+									<option value="" tal:attributes="value nd/fence_it_url">Fence this node</option>
+									<option value="" tal:attributes="value nd/reboot_url">Reboot this node</option>
 									<option value="">----------</option>
-									<option value="" tal:attributes="value nodeinfo/delete_url">Delete</option>
+									<option value="" tal:attributes="value nd/delete_url">Delete</option>
 								</select>
 								<input type="submit" value="Go"/>
 							</form>
@@ -672,12 +672,12 @@
 							<form method="post" onSubmit="return dropdown(this.gourl)">
 								<select name="gourl">
 									<option value="">Choose a Task...</option>
-									<option value="" tal:attributes="value nodeinfo/jl_url">Have node join cluster</option>
+									<option value="" tal:attributes="value nd/jl_url">Have node join cluster</option>
 									<option value="">----------</option>
-									<option value="" tal:attributes="value nodeinfo/fence_it_url">Fence this node</option>
-									<option value="" tal:attributes="value nodeinfo/reboot_url">Reboot this node</option>
+									<option value="" tal:attributes="value nd/fence_it_url">Fence this node</option>
+									<option value="" tal:attributes="value nd/reboot_url">Reboot this node</option>
 									<option value="">----------</option>
-									<option value="" tal:attributes="value nodeinfo/delete_url">Delete</option>
+									<option value="" tal:attributes="value nd/delete_url">Delete</option>
 								</select>
 								<input type="submit" value="Go"/>
 							</form>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-13 14:50 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-08-13 14:50 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-08-13 15:50:44

Modified files:
	luci/cluster   : form-macros 

Log message:
	Fixed minor nit

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.32&r2=1.33

--- conga/luci/cluster/form-macros	2006/08/13 14:38:30	1.32
+++ conga/luci/cluster/form-macros	2006/08/13 14:50:44	1.33
@@ -651,7 +651,7 @@
                 </h1>
               </span>
 						</td>
-            <span tal:condition="python:nodeinfo['nodestate'] == '0'">
+            <span tal:condition="python:nd['status'] == '0'">
 						<td style="margin:10px">
 							<form method="post" onSubmit="return dropdown(this.gourl)">
 								<select name="gourl">
@@ -667,7 +667,7 @@
 							</form>
 						</td>
             </span>
-            <span tal:condition="python:nodeinfo['nodestate'] == '1'">
+            <span tal:condition="python:nd['status'] == '1'">
 						<td style="margin:10px">
 							<form method="post" onSubmit="return dropdown(this.gourl)">
 								<select name="gourl">



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-13 14:38 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-08-13 14:38 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-08-13 15:38:30

Modified files:
	luci/cluster   : form-macros 

Log message:
	icon for fdoms

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.31&r2=1.32

--- conga/luci/cluster/form-macros	2006/08/13 13:49:33	1.31
+++ conga/luci/cluster/form-macros	2006/08/13 14:38:30	1.32
@@ -637,36 +637,52 @@
 					<tr style="padding:10px;margin:10px;border-width:0px;">
 						<td style="padding:10px;margin:10px;border-width:0px;">
               <span tal:condition="python:nd['status'] == '0'">
-							  <h1 style="border:0px;">Node Name: <a href="" tal:attributes="href nd/cfgurl">
+							  <h1 style="border:0px;">Node Name: <a href="" tal:attributes="href nd/configurl">
                   <font color="green"><span tal:content="nd/nodename"/></font></a>
                 </h1>
               </span>
               <span tal:condition="python:nd['status'] == '1'">
-							  <h1 style="border:0px;">Node Name: <a href="" tal:attributes="href nd/cfgurl">
+							  <h1 style="border:0px;">Node Name: <a href="" tal:attributes="href nd/configurl">
                   <font color="red"><span tal:content="nd/nodename"/></font></a></h1>
               </span>
               <span tal:condition="python:nd['status'] == '2'">
-							  <h1 style="border:0px;">Node Name: <a href="" tal:attributes="href nd/cfgurl">
+							  <h1 style="border:0px;">Node Name: <a href="" tal:attributes="href nd/configurl">
                   <font color="gray"><span tal:content="nd/nodename"/></font></a>
                 </h1>
               </span>
 						</td>
-
+            <span tal:condition="python:nodeinfo['nodestate'] == '0'">
 						<td style="margin:10px">
 							<form method="post" onSubmit="return dropdown(this.gourl)">
 								<select name="gourl">
 									<option value="">Choose a Task...</option>
-									<option value="">Have node leave cluster</option>
-									<option value="">Stop all cluster services</option>
+									<option value="" tal:attributes="value nodeinfo/jl_url">Have node leave cluster</option>
 									<option value="">----------</option>
-									<option value="">Fence this node</option>
-									<option value="">Reboot this node</option>
+									<option value="" tal:attributes="value nodeinfo/fence_it_url">Fence this node</option>
+									<option value="" tal:attributes="value nodeinfo/reboot_url">Reboot this node</option>
 									<option value="">----------</option>
-									<option value="">Delete</option>
+									<option value="" tal:attributes="value nodeinfo/delete_url">Delete</option>
 								</select>
 								<input type="submit" value="Go"/>
 							</form>
 						</td>
+            </span>
+            <span tal:condition="python:nodeinfo['nodestate'] == '1'">
+						<td style="margin:10px">
+							<form method="post" onSubmit="return dropdown(this.gourl)">
+								<select name="gourl">
+									<option value="">Choose a Task...</option>
+									<option value="" tal:attributes="value nodeinfo/jl_url">Have node join cluster</option>
+									<option value="">----------</option>
+									<option value="" tal:attributes="value nodeinfo/fence_it_url">Fence this node</option>
+									<option value="" tal:attributes="value nodeinfo/reboot_url">Reboot this node</option>
+									<option value="">----------</option>
+									<option value="" tal:attributes="value nodeinfo/delete_url">Delete</option>
+								</select>
+								<input type="submit" value="Go"/>
+							</form>
+						</td>
+            </span>
 						<td style="width:30%; text-align:right;">
 							<h3><a href="" tal:attributes="href nd/fenceurl">Manage Fencing for this Node</a></h3>
 						</td>
@@ -692,11 +708,16 @@
 						</td>
 						<td style="width:30%;text-align:right">
 							<h3>Failover Domain Membership: </h3>
+              <span tal:condition="python:len(nd['fdoms']) == 0">
+               <h4><i>This node has no failover domain membership</i></h4>
+              </span>
+              <span tal:condition="python:len(nd['fdoms']) > 0">
 							<ul>
-								<li tal:repeat="fdom nd/fdoms">
+								<li style="list-style-image: url(small_fdom.png);" tal:repeat="fdom nd/fdoms">
 									<a href="" tal:attributes="href fdom/fdomurl"><span tal:content="fdom/name"/></a>
 								</li>
 							</ul>
+              </span>
 						</td>
 					</tr>
 				</table>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-13 13:49 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-08-13 13:49 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-08-13 14:49:33

Modified files:
	luci/cluster   : form-macros 

Log message:
	node list fixes

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.30&r2=1.31

--- conga/luci/cluster/form-macros	2006/08/12 17:52:26	1.30
+++ conga/luci/cluster/form-macros	2006/08/13 13:49:33	1.31
@@ -636,14 +636,26 @@
 				<table width="800px">
 					<tr style="padding:10px;margin:10px;border-width:0px;">
 						<td style="padding:10px;margin:10px;border-width:0px;">
-							<h1 style="border:0px;">Node Name: <span tal:content="nd/nodename"/></h1>
+              <span tal:condition="python:nd['status'] == '0'">
+							  <h1 style="border:0px;">Node Name: <a href="" tal:attributes="href nd/cfgurl">
+                  <font color="green"><span tal:content="nd/nodename"/></font></a>
+                </h1>
+              </span>
+              <span tal:condition="python:nd['status'] == '1'">
+							  <h1 style="border:0px;">Node Name: <a href="" tal:attributes="href nd/cfgurl">
+                  <font color="red"><span tal:content="nd/nodename"/></font></a></h1>
+              </span>
+              <span tal:condition="python:nd['status'] == '2'">
+							  <h1 style="border:0px;">Node Name: <a href="" tal:attributes="href nd/cfgurl">
+                  <font color="gray"><span tal:content="nd/nodename"/></font></a>
+                </h1>
+              </span>
 						</td>
 
 						<td style="margin:10px">
 							<form method="post" onSubmit="return dropdown(this.gourl)">
 								<select name="gourl">
 									<option value="">Choose a Task...</option>
-									<option value="" tal:attributes="value nd/configurl">Configure</option>
 									<option value="">Have node leave cluster</option>
 									<option value="">Stop all cluster services</option>
 									<option value="">----------</option>
@@ -661,17 +673,22 @@
 					</tr>
 
 					<tr style="padding:10px;margin:10px"><td style="padding:10px;margin:10px">
-						<h2 style="border:0px;">Status: <i><span tal:content="nd/status"/></i></h2>
+						<h2 style="border:0px;">Status: <i><span tal:content="nd/status_str"/></i></h2>
 					</td></tr>
 
 					<tr style="padding:10px;margin:10px">
 						<td style="padding:10px;margin:10px">
-							<h2 style="border:0px;">Currently Hosting:</h2>
+							<h2 style="border:0px;">Services on this Node:</h2>
+              <span tal:condition="python:len(nd['currentservices']) == 0">
+                <h3><i>No cluster services are currently running here</i></h3>
+              </span>
+              <span tal:condition="python:len(nd['currentservices']) > 0">
 							<ul>
-								<li tal:repeat="svc nd/currentservices">
-									<a href="" tal:attributes="href svc/svcurl"><span tal:replace="svc/servicename"/></a>
+								<li style="list-style-image: url(small_svc.png);" tal:repeat="svc nd/currentservices">
+									<a href="" tal:attributes="href svc/svcurl"><font color="green"><span tal:replace="svc/servicename"/></font></a>
 								</li>
 							</ul>
+              </span>
 						</td>
 						<td style="width:30%;text-align:right">
 							<h3>Failover Domain Membership: </h3>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-12 17:52 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-08-12 17:52 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-08-12 18:52:26

Modified files:
	luci/cluster   : form-macros 

Log message:
	Processing for node changes

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.29&r2=1.30

--- conga/luci/cluster/form-macros	2006/08/11 14:23:07	1.29
+++ conga/luci/cluster/form-macros	2006/08/12 17:52:26	1.30
@@ -765,6 +765,7 @@
 </div>
 
 <div metal:define-macro="nodeprocess-form">
+      <span tal:define="result python:here.nodeTaskProcess(modelb, request)"/>
 	<h2>Node Process Form</h2>
 </div>
 



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-11 14:23 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-08-11 14:23 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-08-11 14:23:07

Modified files:
	luci/cluster   : form-macros 

Log message:
	Case where there are no services

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.28&r2=1.29

--- conga/luci/cluster/form-macros	2006/08/11 14:07:46	1.28
+++ conga/luci/cluster/form-macros	2006/08/11 14:23:07	1.29
@@ -103,6 +103,9 @@
 							<td style="width:30%;text-align:right">
 								<h3>Services: </h3>
 								<ul>
+                  <span tal:condition="python:len(cstatus['currentservices']) < 1">
+                   <li><i>No Services Defined</i></li>
+                  </span>
                   <span tal:repeat="svc cstatus/currentservices">
                     <span tal:condition="python:svc['srunning'] == 'true'">
 									   <li style="list-style-image:url(small_svc.png);">



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-11 14:07 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-08-11 14:07 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-08-11 14:07:46

Modified files:
	luci/cluster   : form-macros 

Log message:
	fix key value

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.27&r2=1.28

--- conga/luci/cluster/form-macros	2006/08/11 00:23:28	1.27
+++ conga/luci/cluster/form-macros	2006/08/11 14:07:46	1.28
@@ -104,12 +104,12 @@
 								<h3>Services: </h3>
 								<ul>
                   <span tal:repeat="svc cstatus/currentservices">
-                    <span tal:condition="python:svc['running'] == 'true'">
+                    <span tal:condition="python:svc['srunning'] == 'true'">
 									   <li style="list-style-image:url(small_svc.png);">
 										  <a href="" tal:attributes="href svc/svcurl"><font color="green"><span tal:content="svc/name"/></font></a>
 									   </li>
                     </span>
-                    <span tal:condition="python:svc['running'] != 'true'">
+                    <span tal:condition="python:svc['srunning'] != 'true'">
 									   <li style="list-style-image:url(small_svc.png);">
 										  <a href="" tal:attributes="href svc/svcurl"><font color="red"><span tal:content="svc/name"/></font></a>
 									   </li>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-11  0:23 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-08-11  0:23 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-08-11 00:23:28

Modified files:
	luci/cluster   : form-macros 

Log message:
	icons for services

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.26&r2=1.27

--- conga/luci/cluster/form-macros	2006/08/10 23:51:14	1.26
+++ conga/luci/cluster/form-macros	2006/08/11 00:23:28	1.27
@@ -101,11 +101,20 @@
 							</td>
 
 							<td style="width:30%;text-align:right">
-								<h3>Currently Hosting: </h3>
+								<h3>Services: </h3>
 								<ul>
-									<li tal:repeat="svc cstatus/currentservices">
-										<a href="" tal:attributes="href svc/svcurl"><span tal:content="svc/name"/></a>
-									</li>
+                  <span tal:repeat="svc cstatus/currentservices">
+                    <span tal:condition="python:svc['running'] == 'true'">
+									   <li style="list-style-image:url(small_svc.png);">
+										  <a href="" tal:attributes="href svc/svcurl"><font color="green"><span tal:content="svc/name"/></font></a>
+									   </li>
+                    </span>
+                    <span tal:condition="python:svc['running'] != 'true'">
+									   <li style="list-style-image:url(small_svc.png);">
+										  <a href="" tal:attributes="href svc/svcurl"><font color="red"><span tal:content="svc/name"/></font></a>
+									   </li>
+                    </span>
+                 </span>
 								</ul>
 							</td>
 						</tr>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-10 23:51 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-08-10 23:51 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-08-10 23:51:15

Modified files:
	luci/cluster   : form-macros 

Log message:
	typos

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.25&r2=1.26

--- conga/luci/cluster/form-macros	2006/08/10 23:48:27	1.25
+++ conga/luci/cluster/form-macros	2006/08/10 23:51:14	1.26
@@ -49,15 +49,15 @@
 							<td style="padding:10px;margin:10px">
                 <table>
                 <tr><td>
-								<h4 style="border:0px;">Status: <i><span tal:content="cstatus/status"/></i></h2>
+								<h4 style="border:0px;">Status: <i><span tal:content="cstatus/status"/></i></h4>
 							</td></tr>
 
 							<tr><td style="padding:10px;margin:10px">
-								<h4 style="border:0px;">Total Cluster Votes: <i><span tal:content="cstatus/votes"/></i></h2>
+								<h4 style="border:0px;">Total Cluster Votes: <i><span tal:content="cstatus/votes"/></i></h4>
 							</td></tr>
 
 							<tr><td style="padding:10px;margin:10px">
-								<h4 style="border:0px;">Minimum Required Quorum: <i><span tal:content="cstatus/minquorum"/></i></h2>
+								<h4 style="border:0px;">Minimum Required Quorum: <i><span tal:content="cstatus/minquorum"/></i></h4>
               </td></tr>
                 </table>
 							</td>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-10 23:48 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-08-10 23:48 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-08-10 23:48:27

Modified files:
	luci/cluster   : form-macros 

Log message:
	font change for quorum

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.24&r2=1.25

--- conga/luci/cluster/form-macros	2006/08/10 23:44:43	1.24
+++ conga/luci/cluster/form-macros	2006/08/10 23:48:27	1.25
@@ -49,15 +49,15 @@
 							<td style="padding:10px;margin:10px">
                 <table>
                 <tr><td>
-								<h2 style="border:0px;">Status: <i><span tal:content="cstatus/status"/></i></h2>
+								<h4 style="border:0px;">Status: <i><span tal:content="cstatus/status"/></i></h2>
 							</td></tr>
 
 							<tr><td style="padding:10px;margin:10px">
-								<h2 style="border:0px;">Total Cluster Votes: <i><span tal:content="cstatus/votes"/></i></h2>
+								<h4 style="border:0px;">Total Cluster Votes: <i><span tal:content="cstatus/votes"/></i></h2>
 							</td></tr>
 
 							<tr><td style="padding:10px;margin:10px">
-								<h2 style="border:0px;">Minimum Required Quorum: <i><span tal:content="cstatus/minquorum"/></i></h2>
+								<h4 style="border:0px;">Minimum Required Quorum: <i><span tal:content="cstatus/minquorum"/></i></h2>
               </td></tr>
                 </table>
 							</td>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-10 23:44 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-08-10 23:44 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-08-10 23:44:43

Modified files:
	luci/cluster   : form-macros 

Log message:
	More re-org for cluster-list

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.23&r2=1.24

--- conga/luci/cluster/form-macros	2006/08/10 23:40:29	1.23
+++ conga/luci/cluster/form-macros	2006/08/10 23:44:43	1.24
@@ -47,15 +47,19 @@
 							</td>
 
 							<td style="padding:10px;margin:10px">
+                <table>
+                <tr><td>
 								<h2 style="border:0px;">Status: <i><span tal:content="cstatus/status"/></i></h2>
-							</td>
+							</td></tr>
 
-							<td style="padding:10px;margin:10px">
+							<tr><td style="padding:10px;margin:10px">
 								<h2 style="border:0px;">Total Cluster Votes: <i><span tal:content="cstatus/votes"/></i></h2>
-							</td>
+							</td></tr>
 
-							<td style="padding:10px;margin:10px">
+							<tr><td style="padding:10px;margin:10px">
 								<h2 style="border:0px;">Minimum Required Quorum: <i><span tal:content="cstatus/minquorum"/></i></h2>
+              </td></tr>
+                </table>
 							</td>
             </tr>
             <tr>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-10 23:40 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-08-10 23:40 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-08-10 23:40:30

Modified files:
	luci/cluster   : form-macros 

Log message:
	Re-org for cluster-list

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.22&r2=1.23

--- conga/luci/cluster/form-macros	2006/08/10 23:06:20	1.22
+++ conga/luci/cluster/form-macros	2006/08/10 23:40:29	1.23
@@ -46,6 +46,19 @@
 								<h1 style="border:0px;">Cluster Name: <a href="" tal:attributes="href cstatus/clucfg"><font color="red"><span tal:content="cstatus/clusteralias"/></font></a></h1>
 							</td>
 
+							<td style="padding:10px;margin:10px">
+								<h2 style="border:0px;">Status: <i><span tal:content="cstatus/status"/></i></h2>
+							</td>
+
+							<td style="padding:10px;margin:10px">
+								<h2 style="border:0px;">Total Cluster Votes: <i><span tal:content="cstatus/votes"/></i></h2>
+							</td>
+
+							<td style="padding:10px;margin:10px">
+								<h2 style="border:0px;">Minimum Required Quorum: <i><span tal:content="cstatus/minquorum"/></i></h2>
+							</td>
+            </tr>
+            <tr>
 							<td style="margin:10px">
 								<form method="post" onSubmit="return dropdown(this.gourl)">
 									<select name="gourl" tal:condition="python:cstatus['running'] == 'true'">
@@ -63,19 +76,6 @@
 							</td>
 						</tr>
 
-						<tr style="padding:10px;margin:10px">
-							<td style="padding:10px;margin:10px">
-								<h2 style="border:0px;">Status: <i><span tal:content="cstatus/status"/></i></h2>
-							</td>
-
-							<td style="padding:10px;margin:10px">
-								<h2 style="border:0px;">Total Cluster Votes: <i><span tal:content="cstatus/votes"/></i></h2>
-							</td>
-
-							<td style="padding:10px;margin:10px">
-								<h2 style="border:0px;">Minimum Required Quorum: <i><span tal:content="cstatus/minquorum"/></i></h2>
-							</td>
-						</tr>
 
 						<tr style="padding:10px;margin:10px">
 							<td style="padding:10px;margin:10px">



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-10 15:49 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-08-10 15:49 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-08-10 15:49:34

Modified files:
	luci/cluster   : form-macros 

Log message:
	typo

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.20&r2=1.21

--- conga/luci/cluster/form-macros	2006/08/10 14:16:03	1.20
+++ conga/luci/cluster/form-macros	2006/08/10 15:49:34	1.21
@@ -891,7 +891,7 @@
      <span tal:condition="ref">
       <h4>This is a shared resource</h4>
      </span>
-     <span tal:condition="not ref">
+     <span tal:condition="not: ref">
       <h4>This is a resource private to this service</h4>
      </span>
    </span>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-10 14:16 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-08-10 14:16 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-08-10 14:16:03

Modified files:
	luci/cluster   : form-macros 

Log message:
	Test code snippet for ryan

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.19&r2=1.20

--- conga/luci/cluster/form-macros	2006/08/09 21:38:00	1.19
+++ conga/luci/cluster/form-macros	2006/08/10 14:16:03	1.20
@@ -885,8 +885,17 @@
   <h2> Service Composition</h2>
   <span tal:define="global svc_rcs sinfo/resource_list"/>
   <span tal:repeat="svc_rc svc_rcs">
-   <h4 tal:content="svc_rc/type"/>
-   <h4 tal:content="svc_rc/indent_ctr"/>
+   <h4> Name: <span tal:content="svc_rc/resource_name"/></h4>
+   <h4> Type: <span tal:content="svc_rc/type"/></h4>
+   <span tal:define="ref svc_rc/ref_object | nothing">
+     <span tal:condition="ref">
+      <h4>This is a shared resource</h4>
+     </span>
+     <span tal:condition="not ref">
+      <h4>This is a resource private to this service</h4>
+     </span>
+   </span>
+   <h4>Indent level:  <span tal:content="svc_rc/indent_ctr"/></h4>
   </span>
 </div>
 



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-09 21:38 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-08-09 21:38 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-08-09 21:38:00

Modified files:
	luci/cluster   : form-macros 

Log message:
	Test code

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.18&r2=1.19

--- conga/luci/cluster/form-macros	2006/08/03 18:45:13	1.18
+++ conga/luci/cluster/form-macros	2006/08/09 21:38:00	1.19
@@ -882,6 +882,12 @@
 			<h1 tal:condition="running" style="border:0px;">Service Status: <font color="green"><i>Running</i></font></h1>
 		</td></tr>
 	</table>
+  <h2> Service Composition</h2>
+  <span tal:define="global svc_rcs sinfo/resource_list"/>
+  <span tal:repeat="svc_rc svc_rcs">
+   <h4 tal:content="svc_rc/type"/>
+   <h4 tal:content="svc_rc/indent_ctr"/>
+  </span>
 </div>
 
 <div metal:define-macro="service-form">



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-02 17:27 rmccabe
  0 siblings, 0 replies; 94+ messages in thread
From: rmccabe @ 2006-08-02 17:27 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2006-08-02 17:27:18

Modified files:
	luci/cluster   : form-macros 

Log message:
	i hate to commit this, because it's bound to cause rejects for somebody, but i had to reformat the file in order to be able to read and work with it

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.15&r2=1.16

--- conga/luci/cluster/form-macros	2006/08/01 15:43:19	1.15
+++ conga/luci/cluster/form-macros	2006/08/02 17:27:18	1.16
@@ -1,91 +1,126 @@
 <html>
-  <head>
-    <title tal:content="template/title">The title</title>
-  </head>
-  <body>
-    
-  <div metal:define-macro="entry-form">
-   <h2>Entry Form</h2>
-  </div>
-  <div metal:define-macro="busywaitpage">
-   <table>
-    <tr>
-     <td>
-      <h2>Please be patient - this cluster's configuration is being modified.</h2>
-     </td>
-    </tr>
-    <tr>
-     <td>
-      <img src="100wait.gif"/>
-     </td>
-    </tr>
-    <tr>
-     <td>
-     <h2><span tal:content="isBusy/flag_desc"/></h2>
-     </td>
-    </tr>
-   </table>
-    
-  </div>
-
-  <div metal:define-macro="clusters-form">
-     <table>
-      <tbody>
-       <span tal:repeat="clu clusystems">
-        <span tal:define="ragent python:here.getRicciAgent(clu)">
-         <span tal:define="global stat python:here.getClusterStatus(ragent)"/>
-         <span tal:define="global cstatus python:here.getClustersInfo(stat,request)"/>
-        </span>
-       <tr width="100%" STYLE="border-bottom: blue 3px groove;">
-        <td width="100%" STYLE="border-bottom: #8cacbb 3px solid;">
-         <table width="800px">
-          <tr STYLE="padding:10px;margin:10px;border-width:0px;">
-            <span tal:condition="python:cstatus['running'] == 'true'">
-            <td STYLE="padding:10px;margin:10px;border-width:0px;"><h1 STYLE="border:0px;">Cluster Name: <a href="" tal:attributes="href cstatus/clucfg"><font color="green"><span tal:content="cstatus/clusteralias"/></font></a></h1></td>
-            </span>
-            <span tal:condition="python:cstatus['running'] == 'false'">
-            <td STYLE="padding:10px;margin:10px;border-width:0px;"><h1 STYLE="border:0px;">Cluster Name: <a href="" tal:attributes="href cstatus/clucfg"><font color="red"><span tal:content="cstatus/clusteralias"/></font></a></h1></td>
-            </span>
-            <td STYLE="margin:10px"><form METHOD=POST onSubmit="return dropdown(this.gourl)">
-              <SELECT NAME="gourl">
-               <span tal:condition="python:cstatus['running'] == 'true'">
-               <OPTION VALUE="">This cluster is running...</OPTION>
-               <OPTION VALUE=""><font color="red">Stop this cluster</font></OPTION>
-               <OPTION VALUE="">Restart this cluster</OPTION>
-               </span>
-               <span tal:condition="python:cstatus['running'] == 'false'">
-               <OPTION VALUE="">This cluster is stopped...</OPTION>
-               <OPTION VALUE=""><font color="green">Start this cluster</font></OPTION>
-               <OPTION VALUE="">Restart this cluster</OPTION>
-               </span>
-              </SELECT>
-              <INPUT TYPE=SUBMIT VALUE="Go"/>
-             </FORM>
-            </td>
-       </tr>
-       <tr STYLE="padding:10px;margin:10px">
-            <td STYLE="padding:10px;margin:10px"><h2 STYLE="border:0px;">Status:  <i><span tal:content="cstatus/status"/></i></h2></td>
-            <td STYLE="padding:10px;margin:10px"><h2 STYLE="border:0px;">Total Cluster Votes:  <i><span tal:content="cstatus/votes"/></i></h2></td>
-            <td STYLE="padding:10px;margin:10px"><h2 STYLE="border:0px;">Minimum Required Quorum:  <i><span tal:content="cstatus/minquorum"/></i></h2></td>
-       </tr>
-       <tr STYLE="padding:10px;margin:10px"><td STYLE="padding:10px;margin:10px"><h2 STYLE="border:0px;">Nodes:</h2>  <ul>
-          <span tal:repeat="nd cstatus/currentnodes">
-           <span tal:condition="python:nd['status'] == '0'"><li STYLE="list-style-image: url(small_node_active.png);"><a href="" tal:attributes="href nd/configurl"><font color="green"><span tal:content="nd/nodename"/></font></a></li></span>           <span tal:condition="python:nd['status'] == '1'"><li STYLE="list-style-image: url(small_node_inactive.png);"><a href="" tal:attributes="href nd/configurl"><font color="red"><span tal:content="nd/nodename"/></font></a></li></span>           <span tal:condition="python:nd['status'] == '2'"><li STYLE="list-style-image: url(small_node_unknown.png);"><a href="" tal:attributes="href nd/configurl"><font color="gray"><span tal:content="nd/nodename"/></font></a></li></span>          </span>
-           </ul></td>
-           <td STYLE="width:30%;text-align:right"><h3>Currently Hosting: </h3><ul><span tal:repeat="svc cstatus/currentservices"><li><a href="" tal:attributes="href svc/svcurl"><span tal:content="svc/name"/></a></li></span></ul></td>
-       </tr>
-        
-        </span>
-      </tbody>
-     </table>
-  </div>
-
-  <div metal:define-macro="cluster-form">
-   <h2>Cluster Form</h2>
-  </div>
 
+<head>
+	<title tal:content="template/title">The title</title>
+</head>
+
+<body>
+
+<div metal:define-macro="entry-form">
+	<h2>Entry Form</h2>
+</div>
+
+<div metal:define-macro="busywaitpage">
+	<table>
+		<tr><td>
+			<h2>Please be patient - this cluster's configuration is being modified.</h2>
+		</td></tr>
+		<tr><td>
+			<img src="100wait.gif"/>
+		</td></tr>
+		<tr><td>
+			<h2><span tal:content="isBusy/desc" /></h2>
+		</td></tr>
+
+		<tr><td>
+			<h2><span tal:replace="isBusy/desc"/></h2>
+		</td></tr>
+	</table>
+</div>
+
+<div metal:define-macro="clusters-form">
+	<table>
+		<tbody>
+			<tr width="100%" style="border-bottom: blue 3px groove;"
+				tal:repeat="clu clusystems">
+
+				<td width="100%" style="border-bottom: #8cacbb 3px solid;"
+					tal:define="ragent python:here.getRicciAgent(clu);
+							global stat python:here.getClusterStatus(ragent);
+							global cstatus python:here.getClustersInfo(stat,request);">
+
+					<table width="800px">
+						<tr style="padding:10px;margin:10px;border-width:0px;">
+							<td tal:condition="python:cstatus['running'] == 'true'" style="padding:10px;margin:10px;border-width:0px;">
+								<h1 style="border:0px;">Cluster Name: <a href="" tal:attributes="href cstatus/clucfg"><font color="green"><span tal:content="cstatus/clusteralias"/></font></a></h1>
+							</td>
+
+							<td tal:condition="python:cstatus['running'] != 'true'" style="padding:10px;margin:10px;border-width:0px;">
+								<h1 style="border:0px;">Cluster Name: <a href="" tal:attributes="href cstatus/clucfg"><font color="red"><span tal:content="cstatus/clusteralias"/></font></a></h1>
+							</td>
+
+							<td style="margin:10px">
+								<form method="post" onSubmit="return dropdown(this.gourl)">
+									<select name="gourl" tal:condition="python:cstatus['running'] == 'true'">
+										<option value="">This cluster is running...</option>
+										<option value=""><font color="red">Stop this cluster</font></option>
+										<option value="">Restart this cluster</option>
+									</select>
+									<select name="gourl" tal:condition="python:cstatus['running'] != 'true'">
+										<option value="">This cluster is stopped...</option>
+										<option value=""><font color="green">Start this cluster</font></option>
+										<option value="">Restart this cluster</option>
+									</select>
+									<input type="submit" value="Go"/>
+								</form>
+							</td>
+						</tr>
+
+						<tr style="padding:10px;margin:10px">
+							<td style="padding:10px;margin:10px">
+								<h2 style="border:0px;">Status: <i><span tal:content="cstatus/status"/></i></h2>
+							</td>
+
+							<td style="padding:10px;margin:10px">
+								<h2 style="border:0px;">Total Cluster Votes: <i><span tal:content="cstatus/votes"/></i></h2>
+							</td>
+
+							<td style="padding:10px;margin:10px">
+								<h2 style="border:0px;">Minimum Required Quorum: <i><span tal:content="cstatus/minquorum"/></i></h2>
+							</td>
+						</tr>
+
+						<tr style="padding:10px;margin:10px">
+							<td style="padding:10px;margin:10px">
+								<h2 style="border:0px;">Nodes:</h2>
+								<ul>
+								<tal:block tal:repeat="nd cstatus/currentnodes">
+									<li style="list-style-image: url(small_node_active.png);"
+										tal:condition="python:nd['status'] == '0'">
+										<a href="" tal:attributes="href nd/configurl"><font color="green"><span tal:content="nd/nodename"/></font></a>
+									</li>
+									<li style="list-style-image: url(small_node_inactive.png);" tal:condition="python:nd['status'] == '1'">
+										<a href="" tal:attributes="href nd/configurl"><font color="red"><span tal:content="nd/nodename"/></font></a>
+									</li>
+									<li style="list-style-image: url(small_node_unknown.png);" tal:condition="python:nd['status'] == '2'">
+										<a href="" tal:attributes="href nd/configurl"><font color="gray"><span tal:content="nd/nodename"/></font></a>
+									</li>
+								</tal:block>
+								</ul>
+							</td>
+
+							<td style="width:30%;text-align:right">
+								<h3>Currently Hosting: </h3>
+								<ul>
+									<li tal:repeat="svc cstatus/currentservices">
+										<a href="" tal:attributes="href svc/svcurl"><span tal:content="svc/name"/></a>
+									</li>
+								</ul>
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</tbody>
+	</table>
+</div>
+
+<div metal:define-macro="cluster-form">
+	<h2>Cluster Form</h2>
+</div>
 
-  <div metal:define-macro="clusteradd-form" style="margin-left: 1em">
+
+<div metal:define-macro="clusteradd-form" style="margin-left: 1em">
 	<script type="text/javascript" src="/luci/homebase/homebase_common.js">
 	</script>
 	<script type="text/javascript" src="/luci/homebase/validate_cluster_add.js">
@@ -231,323 +266,428 @@
 			<input type="button" class="hbSubmit" name="Submit" value="Submit" onClick="validateForm(document.adminform);" />
 		</div>
 	</form>
-  </div>
-  <div metal:define-macro="clusterconfig-form">
-  <!-- <span tal:define="global ricci_agent python:here.getRicciAgentForCluster(request)"/> -->
-  <span tal:define="global clusterinfo python:here.getClusterInfo(modelb, request)"/> 
-   <form name="basecluster" action="" method="get" tal:attributes="action clusterinfo/basecluster_url">
-    <table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
-     <thead class="systemsTable"> 
-      <tr class="systemsTable"><td class="systemsTable" colspan="1">
-         <div class="systemsTableTop">
-           <strong>General Properties</strong>
-         </div>
-       </td></tr>
-      </thead>
-      <tbody class="systemsTable">
-       <tr class="systemsTable">
-        <td class="systemsTable">Cluster Name</td>
-        <td class="systemsTable">
-         <input type="text"  name="cluname" value="" tal:attributes="value clusterinfo/clustername"/>
-        </td>
-       </tr>
-       <tr class="systemsTable">
-        <td class="systemsTable">Configuration Version</td>
-        <td class="systemsTable">
-         <input type="text" name="cfgver" size="5" value="" tal:attributes="value clusterinfo/config_version"/>
-        </td>
-       </tr>
-      </tbody>
-      <tfoot class="systemsTable">
-       <tr class="systemsTable">
-        <td class="systemsTable" colspan="2">
-         <div class="systemsTableEnd">
-          <input type="submit" value="Apply"/>
-         </div>
-        </td>
-       </tr>
-      </tfoot>
-    </table>
-  </form>
-  <hr/>
-   <form name="fencedaemon" action="" method="get" tal:attributes="action clusterinfo/fencedaemon_url">
-    <table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
-     <thead class="systemsTable"> 
-      <tr class="systemsTable"><td class="systemsTable" colspan="1">
-         <div class="systemsTableTop">
-           <strong>Fence Daemon Properties</strong>
-         </div>
-       </td></tr>
-      </thead>
-      <tbody class="systemsTable">
-       <tr class="systemsTable">
-        <td class="systemsTable">Post Fail Delay</td>
-        <td class="systemsTable">
-         <input type="text" name="post_fail_delay" value="" tal:attributes="value clusterinfo/pfd"/>
-        </td>
-       </tr>
-       <tr class="systemsTable">
-        <td class="systemsTable">Post Join Delay</td>
-        <td class="systemsTable">
-         <input type="text" name="post_join_delay" value="" tal:attributes="value clusterinfo/pjd"/>
-        </td>
-       </tr>
-      </tbody>
-      <tfoot class="systemsTable">
-        <tr class="systemsTable">
-         <td class="systemsTable" colspan="2">
-          <div class="systemsTableEnd">
-           <input type="submit" value="Apply"/>
-          </div>
-         </td></tr>
-      </tfoot>
-     </table>
-  </form>
-  <hr/>
-   <form name="multicast" action="" method="get" tal:attributes="action clusterinfo/multicast_url">
-    <table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
-     <thead class="systemsTable"> 
-      <tr class="systemsTable"><td class="systemsTable" colspan="1">
-         <div class="systemsTableTop">
-           <strong>Multicast Configuration</strong>
-         </div>
-       </td></tr>
-      </thead>
-      <tbody class="systemsTable">
-        <tr class="systemsTable">
-         <td class="systemsTable"><input type="radio" name="mcast" value="False" checked="" tal:attributes="checked python:clusterinfo['is_mcast'] == 'False'"/><b> Let cluster choose the multicast address</b>
-         </td>
-        </tr>
-        <tr class="systemsTable">
-         <td class="systemsTable"><input type="radio" name="mcast" value="True"/> <b> I prefer to choose the multicast address</b>
-         </td>
-        </tr>
-       <tr class="systemsTable">
-        <td class="systemsTable" colspan="2"><input type="text" name="mcast_address" value="" tal:attributes="value clusterinfo/mcast_addr"/>
-        </td>
-       </tr>
-      </tbody>
-      <tfoot class="systemsTable">
-       <tr class="systemsTable"><td class="systemsTable" colspan="2">
-         <div class="systemsTableEnd">
-          <input type="submit" value="Apply"/>
-         </div>
-       </td></tr>
-      </tfoot>
-     </table>
-  </form>
-  <hr/>
-   <form name="quorum_partition" action="" method="get" tal:attributes="action clusterinfo/quorumd_url">
-    <table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
-     <thead class="systemsTable"> 
-      <tr class="systemsTable"><td class="systemsTable" colspan="1">
-         <div class="systemsTableTop">
-           <strong>Quorum Partition Configuration</strong>
-         </div>
-       </td></tr>
-      </thead>
-      <tbody class="systemsTable">
-        <tr class="systemsTable">
-         <td class="systemsTable"><input type="radio" name="quorumd" value="False" checked="" tal:attributes="checked python:clusterinfo['is_quorumd'] == 'False'"/><b> Do not use a Quorum Partition</b>
-         </td>
-        </tr>
-        <tr class="systemsTable">
-         <td class="systemsTable"><input type="radio" name="quorumd" value="True"/> <b> I prefer to use a Quorum Partition</b>
-         </td>
-        </tr>
-       <tr class="systemsTable">
-        <td class="systemsTable" colspan="2">Interval: <input type="text" name="interval" value="" tal:attributes="value clusterinfo/interval"/>
-        </td>
-       </tr>
-       <tr class="systemsTable">
-        <td class="systemsTable" colspan="2">Votes: <input type="text" name="votes" value="" tal:attributes="value clusterinfo/votes"/>
-        </td>
-       </tr>
-       <tr class="systemsTable">
-        <td class="systemsTable" colspan="2">TKO: <input type="text" name="tko" value="" tal:attributes="value clusterinfo/tko"/>
-        </td>
-       </tr>
-       <tr class="systemsTable">
-        <td class="systemsTable" colspan="2">Minimum Score: <input type="text" name="min_score" value="" tal:attributes="value clusterinfo/min_score"/>
-        </td>
-       </tr>
-       <tr class="systemsTable">
-        <td class="systemsTable" colspan="2">Device: <input type="text" name="device" value="" tal:attributes="value clusterinfo/device"/>
-        </td>
-       </tr>
-       <tr class="systemsTable">
-        <td class="systemsTable" colspan="2">Label: <input type="text" name="label" value="" tal:attributes="value clusterinfo/label"/>
-        </td>
-       </tr>
-      </tbody>
-     </table>
-    <table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
-     <thead class="systemsTable"> 
-      <tr class="systemsTable"><td class="systemsTable" colspan="1">
-         <div class="systemsTableTop">
-           <strong>Heuristics</strong>
-         </div>
-       </td></tr>
-      <tr class="systemsTable">
-        <th class="systemsTable">
-         <div class="systemsTableTop">
-           Name
-         </div>
-       </th>
-        <th class="systemsTable">
-         <div class="systemsTableTop">
-           Path to Program
-         </div>
-       </th>
-        <th class="systemsTable">
-         <div class="systemsTableTop">
-           Interval
-         </div>
-       </th>
-        <th class="systemsTable">
-         <div class="systemsTableTop">
-           Score
-         </div>
-       </th>
-      </tr>
-      </thead>
-    
-      <tbody class="systemsTable">
-      <span tal:define="global heuristics clusterinfo/hlist"/>
-      <span tal:repeat="heuristic heuristics">
-       <tr class="systemsTable">
-        <td class="systemsTable"><input type="text" name="hname" value="" tal:attributes="value heuristic/hname"/>
-        </td>
-        <td class="systemsTable"><input type="text" name="hinterval" value="" tal:attributes="value heuristic/hinterval"/>
-        </td>
-        <td class="systemsTable" colspan="2"><input type="text" name="hprog" value="" tal:attributes="value heuristic/hprog"/>
-        </td>
-        <td class="systemsTable"><input type="text" name="hscore" value="" tal:attributes="value heuristic/hscore"/>
-        </td>
-       </tr>
-      </span>
-     </tbody>
-      <tfoot class="systemsTable">
-       <tr class="systemsTable"><td class="systemsTable" colspan="2">
-         <div class="systemsTableEnd">
-          <input type="submit" value="Apply"/>
-         </div>
-       </td></tr>
-      </tfoot>
-    </table>
-   </form>
-  </div>
-  <div metal:define-macro="clusterprocess-form">
-   <span tal:define="global r_agent python:here.getRicciAgentForCluster(request)"/> 
-   <span tal:define="res python:here.processClusterProps(r_agent, request)"/>
-  </div>
-  <div metal:define-macro="node-form">
-     <span tal:define="global ricci_agent python:here.getRicciAgentForCluster(request)"/>
-     <span tal:define="global nodestatus python:here.getClusterStatus(ricci_agent)"/>
-       <span tal:define="global nodeinfo python:here.getNodeInfo(modelb, nodestatus, request)"/>
-    <!-- First table row is status icon, name, and dropdown -->>
-    <table>
-     <span tal:condition="python:nodeinfo['nodestate'] == '0'">
-      <tr>
-        <td><img src="node_active.png"/></td><td STYLE="horizontal-align:left;"><table><tr><td><h2 STYLE="border:0px;">Node name: <span tal:content="nodeinfo/nodename"/></h2></td></tr>
-        <tr STYLE="horizontal-align:left;"><td><h2 STYLE="border:0px;">Status: <font color="green">Cluster member</font></td></tr></table></td>
-          <td STYLE="margin:15px; vertical-align:top"><form METHOD=POST onSubmit="return dropdown(this.gourl)">
-           <SELECT NAME="gourl">
-            <OPTION VALUE="">Choose a Task...</OPTION>
-            <OPTION VALUE="" tal:attributes="VALUE nodeinfo/jl_url">Have node leave cluster</OPTION>
-            <OPTION VALUE="">----------</OPTION>
-            <OPTION VALUE="" tal:attributes="VALUE nodeinfo/fence_url">Fence this node</OPTION>
-            <OPTION VALUE="" tal:attributes="VALUE nodeinfo/reboot_url">Reboot this node</OPTION>
-            <OPTION VALUE="">----------</OPTION>
-            <OPTION VALUE="" tal:attributes="VALUE nodeinfo/delete_url">Delete this node</OPTION>
-          </SELECT>
-          <INPUT TYPE=SUBMIT VALUE="Go"/>
-          </FORM>
-         </td>
-      </tr>
-                                                                                
-     </span>
-     <span tal:condition="python:nodeinfo['nodestate'] == '1'">
-      <tr><td><img src="node_inactive.png"/></td><td><table><tr><td><h2 STYLE="border:0px;">Node name: <span tal:content="nodeinfo/nodename"/></h2></td></tr>
-          <tr><td STYLE="margin:10px;padding:10px;"><h2 STYLE="border:0px;">Status: <font color="red">Currently not a cluster participant</font></td></tr></table></td>
-          <td STYLE="margin:15px;vertical-align:top;"><form METHOD=POST onSubmit="return dropdown(this.gourl)">
-           <SELECT NAME="gourl">
-            <OPTION VALUE="">Choose a Task...</OPTION>
-            <OPTION VALUE="" tal:attributes="VALUE nodeinfo/jl_url">Have node join cluster</OPTION>
-            <OPTION VALUE="">----------</OPTION>
-            <OPTION VALUE="" tal:attributes="VALUE nodeinfo/fence_url">Fence this node</OPTION>
-            <OPTION VALUE="" tal:attributes="VALUE nodeinfo/reboot_url">Reboot this node</OPTION>
-            <OPTION VALUE="">----------</OPTION>
-            <OPTION VALUE="" tal:attributes="VALUE nodeinfo/delete_url">Delete this node</OPTION>
-          </SELECT>
-          <INPUT TYPE=SUBMIT VALUE="Go"/>
-          </FORM>
-         </td>
-      </tr>
-                                                                                
-     </span>
-     <span tal:condition="python:nodeinfo['nodestate'] == '2'">
-      <tr><td><img src="node_unknown.png"/></td><td><h2 STYLE="border:0px;">Node name: <span tal:content="nodeinfo/nodename"/></h2></td><td STYLE="margin:10px;padding:10px;"><h2 STYLE="border:0px;">Status: <font color="gray">This node is not responding</font></td></tr>
-     </span>
-      </table>
-      <table>
-      <tr><td><table border="1px"><tr><th>Cluster daemon</th><th>Enabled at start-up</th><th>Currently running</th></tr>
-                      <span tal:repeat="demon nodeinfo/d_states">
-                       <tr><td><span tal:content="demon/name"/></td><td><span tal:content="demon/enabled"/><a href="" STYLE="text-align:right;">(Change)</a></td><td><span tal:content="demon/running"/></td></tr>
-                      </span>
-               </table>
-    <!-- second row is daemon macro and failoverdom membership -->
-    <!-- third row is fencing macro -->
-    <!-- fourth row is logging -->
-  </div>
-  <div metal:define-macro="nodes-form">
-    <table>
-     <span tal:define="global ricci_agent python:here.getRicciAgentForCluster(request)"/>
-     <span tal:define="global status python:here.getClusterStatus(ricci_agent)"/>
-     <span tal:define="global nds python:here.getNodesInfo(modelb,status,request)"/>
-     <span tal:repeat="nd nds">
-     <tr width="100%" STYLE="border-bottom: blue 3px groove;">
-      <td width="100%" STYLE="border-bottom: #8cacbb 3px solid;">
-       <table width="800px">
-        <tr STYLE="padding:10px;margin:10px;border-width:0px;"><td STYLE="padding:10px;margin:10px;border-width:0px;"><h1 STYLE="border:0px;">Node Name: <span tal:content="nd/nodename"/></h1></td>
-            <td STYLE="margin:10px"><form METHOD=POST onSubmit="return dropdown(this.gourl)">
-              <SELECT NAME="gourl">
-               <OPTION VALUE="">Choose a Task...</OPTION>
-               <OPTION VALUE="" tal:attributes="VALUE nd/configurl">Configure</OPTION>
-               <OPTION VALUE="">Have node leave cluster</OPTION>
-               <OPTION VALUE="">Stop all cluster services</OPTION>
-               <OPTION VALUE="">----------</OPTION>
-               <OPTION VALUE="">Fence this node</OPTION>
-               <OPTION VALUE="">Reboot this node</OPTION>
-               <OPTION VALUE="">----------</OPTION>
-               <OPTION VALUE="">Delete</OPTION>
-              </SELECT>
-              <INPUT TYPE=SUBMIT VALUE="Go"/>
-             </FORM>
-            </td>
-            <td STYLE="width:30%; text-align:right;"><h3><a href="" tal:attributes="href nd/fenceurl">Manage Fencing for this Node</a></h3></td>
-       </tr>
-       <tr STYLE="padding:10px;margin:10px"><td STYLE="padding:10px;margin:10px"><h2 STYLE="border:0px;">Status:  <i><span tal:content="nd/status"/></i></h2></td></tr>
-       <tr STYLE="padding:10px;margin:10px"><td STYLE="padding:10px;margin:10px"><h2 STYLE="border:0px;">Currently Hosting:</h2>  <ul><span tal:repeat="svc nd/currentservices"><li><a href="" tal:attributes="href svc/svcurl"><span tal:content="svc/servicename"/></a></li></span></ul></td>
-           <td STYLE="width:30%;text-align:right"><h3>Failover Domain Membership: </h3><ul><span tal:repeat="fdom nd/fdoms"><li><a href="" tal:attributes="href fdom/fdomurl"><span tal:content="fdom/name"/></a></li></span></ul></td>
-       </tr>
-      </table>
-        </tr>
-     
-     </span>
-     </table>
-  </div>
-  <div metal:define-macro="nodelist-form">
-   <h2>Node List Form</h2>
-  </div>
-  <div metal:define-macro="nodegrid-form">
-   <h2>Node Grid Form</h2>
-  </div>
-  <div metal:define-macro="nodeconfig-form">
-   <h2>Node Configuration Form</h2>
-  </div>
+</div>
+
+<div metal:define-macro="clusterconfig-form">
+	<tal:comment tal:replace="nothing">
+		<span tal:define="global ricci_agent python:here.getRicciAgentForCluster(request)"/>
+	</tal:comment>
+
+	<form name="basecluster" action="" method="get"
+		tal:attributes="action clusterinfo/basecluster_url"
+		tal:define="global clusterinfo python:here.getClusterInfo(modelb, request)"> 
+
+	<table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
+		<thead class="systemsTable"> 
+			<tr class="systemsTable"><td class="systemsTable" colspan="1">
+				<div class="systemsTableTop">
+					<strong>General Properties</strong>
+				</div>
+			</td></tr>
+		</thead>
+
+		<tbody class="systemsTable">
+			<tr class="systemsTable">
+				<td class="systemsTable">Cluster Name</td>
+				<td class="systemsTable">
+					<input type="text" name="cluname" value="" tal:attributes="value clusterinfo/clustername"/>
+				</td>
+			</tr>
+			<tr class="systemsTable">
+				<td class="systemsTable">Configuration Version</td>
+				<td class="systemsTable">
+					<input type="text" name="cfgver" size="5" value="" tal:attributes="value clusterinfo/config_version"/>
+				</td>
+			</tr>
+		</tbody>
+
+		<tfoot class="systemsTable">
+			<tr class="systemsTable">
+				<td class="systemsTable" colspan="2">
+					<div class="systemsTableEnd">
+						<input type="submit" value="Apply"/>
+					</div>
+				</td>
+			</tr>
+		</tfoot>
+	</table>
+
+	</form>
+	<hr/>
+
+	<form name="fencedaemon" action="" method="get" tal:attributes="action clusterinfo/fencedaemon_url">
+	<table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
+		<thead class="systemsTable"> 
+			<tr class="systemsTable"><td class="systemsTable" colspan="1">
+				<div class="systemsTableTop">
+					<strong>Fence Daemon Properties</strong>
+				</div>
+			</td></tr>
+		</thead>
+
+		<tbody class="systemsTable">
+			<tr class="systemsTable">
+				<td class="systemsTable">Post Fail Delay</td>
+				<td class="systemsTable">
+					<input type="text" name="post_fail_delay" value="" tal:attributes="value clusterinfo/pfd"/>
+				</td>
+			</tr>
+
+			<tr class="systemsTable">
+				<td class="systemsTable">Post Join Delay</td>
+				<td class="systemsTable">
+					<input type="text" name="post_join_delay" value="" tal:attributes="value clusterinfo/pjd"/>
+				</td>
+			</tr>
+		</tbody>
+
+		<tfoot class="systemsTable">
+			<tr class="systemsTable">
+				<td class="systemsTable" colspan="2">
+					<div class="systemsTableEnd">
+						<input type="submit" value="Apply"/>
+					</div>
+				</td>
+			</tr>
+		</tfoot>
+	</table>
+
+	</form>
+	<hr/>
+
+	<form name="multicast" action="" method="get" tal:attributes="action clusterinfo/multicast_url">
+
+	<table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
+		<thead class="systemsTable"> 
+			<tr class="systemsTable"><td class="systemsTable" colspan="1">
+				<div class="systemsTableTop">
+					<strong>Multicast Configuration</strong>
+				</div>
+			</td></tr>
+		</thead>
+
+		<tbody class="systemsTable">
+			<tr class="systemsTable">
+				<td class="systemsTable">
+					<input type="radio" name="mcast" value="False" checked="" tal:attributes="checked python:clusterinfo['is_mcast'] == 'False'"/><strong>Let cluster choose the multicast address</strong>
+				</td>
+			</tr>
+			<tr class="systemsTable">
+				<td class="systemsTable">
+					<input type="radio" name="mcast" value="True"/><strong>I prefer to choose the multicast address</strong>
+				</td>
+			</tr>
+
+			<tr class="systemsTable">
+				<td class="systemsTable" colspan="2">
+					<input type="text" name="mcast_address" value="" tal:attributes="value clusterinfo/mcast_addr"/>
+				</td>
+			</tr>
+		</tbody>
+
+		<tfoot class="systemsTable">
+			<tr class="systemsTable"><td class="systemsTable" colspan="2">
+				<div class="systemsTableEnd">
+					<input type="submit" value="Apply"/>
+				</div>
+			</td></tr>
+		</tfoot>
+	</table>
+
+	</form>
+	<hr/>
+
+	<form name="quorum_partition" action="" method="get" tal:attributes="action clusterinfo/quorumd_url">
+	<table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
+		<thead class="systemsTable"> 
+			<tr class="systemsTable"><td class="systemsTable" colspan="1">
+				<div class="systemsTableTop">
+					<strong>Quorum Partition Configuration</strong>
+				</div>
+			</td></tr>
+		</thead>
+
+		<tbody class="systemsTable">
+			<tr class="systemsTable"><td class="systemsTable">
+				<input type="radio" name="quorumd" value="False" checked="" tal:attributes="checked python:clusterinfo['is_quorumd'] == 'False'"/>
+					<strong>Do not use a Quorum Partition</strong>
+			</td></tr>
+
+			<tr class="systemsTable"><td class="systemsTable">
+				<input type="radio" name="quorumd" value="True"/>
+					<strong>I prefer to use a Quorum Partition</strong>
+			</td></tr>
+
+			<tr class="systemsTable"><td class="systemsTable" colspan="2">
+				Interval: <input type="text" name="interval" value="" tal:attributes="value clusterinfo/interval"/>
+			</td></tr>
+
+			<tr class="systemsTable"><td class="systemsTable" colspan="2">
+				Votes: <input type="text" name="votes" value="" tal:attributes="value clusterinfo/votes"/>
+			</td></tr>
+
+			<tr class="systemsTable"><td class="systemsTable" colspan="2">
+				TKO: <input type="text" name="tko" value="" tal:attributes="value clusterinfo/tko"/>
+			</td></tr>
+
+			<tr class="systemsTable"><td class="systemsTable" colspan="2">
+				Minimum Score: <input type="text" name="min_score" value="" tal:attributes="value clusterinfo/min_score"/>
+			</td></tr>
+
+			<tr class="systemsTable"><td class="systemsTable" colspan="2">
+				Device: <input type="text" name="device" value="" tal:attributes="value clusterinfo/device"/>
+			</td></tr>
+
+			<tr class="systemsTable"><td class="systemsTable" colspan="2">
+				Label: <input type="text" name="label" value="" tal:attributes="value clusterinfo/label"/>
+			</td></tr>
+		</tbody>
+	</table>
+
+	<table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
+		<thead class="systemsTable"> 
+			<tr class="systemsTable"><td class="systemsTable" colspan="1">
+				<div class="systemsTableTop">
+					<strong>Heuristics</strong>
+				</div>
+			</td></tr>
+
+			<tr class="systemsTable">
+				<th class="systemsTable">
+					<div class="systemsTableTop">Name</div>
+				</th>
+				<th class="systemsTable">
+					<div class="systemsTableTop">Path to Program</div>
+				</th>
+				<th class="systemsTable">
+					<div class="systemsTableTop">Interval</div>
+				</th>
+				<th class="systemsTable">
+					<div class="systemsTableTop">Score</div>
+				</th>
+			</tr>
+		</thead>
+
+		<tbody class="systemsTable"
+			tal:define="global heuristics clusterinfo/hlist">
+
+			<tr class="systemsTable" tal:repeat="heuristic heuristics">
+				<td class="systemsTable">
+					<input type="text" name="hname" value="" tal:attributes="value heuristic/hname"/>
+				</td>
+				<td class="systemsTable">
+					<input type="text" name="hinterval" value="" tal:attributes="value heuristic/hinterval"/>
+				</td>
+				<td class="systemsTable" colspan="2">
+					<input type="text" name="hprog" value="" tal:attributes="value heuristic/hprog"/>
+				</td>
+				<td class="systemsTable">
+					<input type="text" name="hscore" value="" tal:attributes="value heuristic/hscore"/>
+				</td>
+			</tr>
+		</tbody>
+
+		<tfoot class="systemsTable">
+			<tr class="systemsTable"><td class="systemsTable" colspan="2">
+				<div class="systemsTableEnd">
+					<input type="submit" value="Apply"/>
+				</div>
+			</td></tr>
+		</tfoot>
+	</table>
+	</form>
+</div>
+
+<div metal:define-macro="clusterprocess-form">
+	<span tal:define="global r_agent python:here.getRicciAgentForCluster(request)"/> 
+	<span tal:define="res python:here.processClusterProps(r_agent, request)"/>
+</div>
+
+<div metal:define-macro="node-form">
+	<tal:comment tal:replace="nothing">
+		First table row is status icon, name, and dropdown
+		Second row is daemon macro and failoverdom membership
+		Third row is fencing macro
+		Fourth row is logging
+	</tal:comment>
+
+	<table tal:define="
+		global ricci_agent python:here.getRicciAgentForCluster(request);
+		global nodestatus python:here.getClusterStatus(ricci_agent);
+		global nodeinfo python:here.getNodeInfo(modelb, nodestatus, request)">
+
+		<tr tal:condition="python:nodeinfo['nodestate'] == '0'">
+			<td>
+				<img src="node_active.png"/>
+			</td>
+
+			<td style="horizontal-align:left;">
+				<table>
+					<tr><td>
+						<h2 style="border:0px;">Node name: <span tal:content="nodeinfo/nodename"/></h2>
+					</td></tr>
+					<tr style="horizontal-align:left;"><td>
+						<h2 style="border:0px;">Status: <font color="green">Cluster member</font>
+					</td></tr>
+				</table>
+			</td>
+
+			<td style="margin:15px; vertical-align:top">
+			<form method="post" onSubmit="return dropdown(this.gourl)">
+				<select name="gourl">
+					<option value="">Choose a Task...</option>
+					<option value="" tal:attributes="value nodeinfo/jl_url">Have node leave cluster</option>
+					<option value="">----------</option>
+					<option value="" tal:attributes="value nodeinfo/fence_url">Fence this node</option>
+					<option value="" tal:attributes="value nodeinfo/reboot_url">Reboot this node</option>
+					<option value="">----------</option>
+					<option value="" tal:attributes="value nodeinfo/delete_url">Delete this node</option>
+				</select>
+				<input type="submit" value="Go"/>
+			</form>
+			</td>
+		</tr>
+
+		<tr tal:condition="python:nodeinfo['nodestate'] == '1'">
+			<td>
+				<img src="node_inactive.png"/>
+			</td>
+			<td>
+				<table>
+					<tr><td>
+						<h2 style="border:0px;">Node name: <span tal:content="nodeinfo/nodename"/></h2>
+					</td></tr>
+
+					<tr><td style="margin:10px;padding:10px;">
+						<h2 style="border:0px;">Status: <font color="red">Currently not a cluster participant</font>
+					</td></tr>
+				</table>
+			</td>
+
+			<td style="margin:15px;vertical-align:top;">
+				<form method="post" onSubmit="return dropdown(this.gourl)">
+					<select name="gourl">
+						<option value="">Choose a Task...</option>
+						<option value="" tal:attributes="value nodeinfo/jl_url">Have node join cluster</option>
+						<option value="">----------</option>
+						<option value="" tal:attributes="value nodeinfo/fence_url">Fence this node</option>
+						<option value="" tal:attributes="value nodeinfo/reboot_url">Reboot this node</option>
+						<option value="">----------</option>
+						<option value="" tal:attributes="value nodeinfo/delete_url">Delete this node</option>
+					</select>
+					<input type="submit" value="Go"/>
+				</form>
+			</td>
+		</tr>
+
+		<tr tal:condition="python:nodeinfo['nodestate'] == '2'">
+			<td>
+				<img src="node_unknown.png"/>
+			</td>
+
+			<td>
+				<h2 style="border:0px;">Node name: <span tal:replace="nodeinfo/nodename"/></h2>
+			</td>
+
+			<td style="margin:10px;padding:10px;">
+				<h2 style="border:0px;">Status: <font color="gray">This node is not responding</font>
+			</td>
+		</tr>
+
+		<tr><td>
+			<table border="1px">
+				<tr>
+					<th>Cluster daemon</th>
+					<th>Enabled at start-up</th>
+					<th>Currently running</th>
+				</tr>
+
+				<tr tal:repeat="demon nodeinfo/d_states">
+					<td><span tal:content="demon/name"/></td>
+					<td><span tal:content="demon/enabled"/><a href="" style="text-align:right;">(Change)</a></td>
+					<td><span tal:content="demon/running"/></td>
+				</tr>
+			</table>
+		</td></tr>
+	</table>
+</div>
+
+<div metal:define-macro="nodes-form">
+	<table tal:define="
+		global ricci_agent python:here.getRicciAgentForCluster(request);
+		global status python:here.getClusterStatus(ricci_agent);
+		global nds python:here.getNodesInfo(modelb,status,request)">
+
+		<tr tal:repeat="nd nds" width="100%" style="border-bottom: blue 3px groove;">
+			<td width="100%" style="border-bottom: #8cacbb 3px solid;">
+				<table width="800px">
+					<tr style="padding:10px;margin:10px;border-width:0px;">
+						<td style="padding:10px;margin:10px;border-width:0px;">
+							<h1 style="border:0px;">Node Name: <span tal:content="nd/nodename"/></h1>
+						</td>
+
+						<td style="margin:10px">
+							<form method="post" onSubmit="return dropdown(this.gourl)">
+								<select name="gourl">
+									<option value="">Choose a Task...</option>
+									<option value="" tal:attributes="value nd/configurl">Configure</option>
+									<option value="">Have node leave cluster</option>
+									<option value="">Stop all cluster services</option>
+									<option value="">----------</option>
+									<option value="">Fence this node</option>
+									<option value="">Reboot this node</option>
+									<option value="">----------</option>
+									<option value="">Delete</option>
+								</select>
+								<input type="submit" value="Go"/>
+							</form>
+						</td>
+						<td style="width:30%; text-align:right;">
+							<h3><a href="" tal:attributes="href nd/fenceurl">Manage Fencing for this Node</a></h3>
+						</td>
+					</tr>
+
+					<tr style="padding:10px;margin:10px"><td style="padding:10px;margin:10px">
+						<h2 style="border:0px;">Status: <i><span tal:content="nd/status"/></i></h2>
+					</td></tr>
+
+					<tr style="padding:10px;margin:10px">
+						<td style="padding:10px;margin:10px">
+							<h2 style="border:0px;">Currently Hosting:</h2>
+							<ul>
+								<li tal:repeat="svc nd/currentservices">
+									<a href="" tal:attributes="href svc/svcurl"><span tal:replace="svc/servicename"/></a>
+								</li>
+							</ul>
+						</td>
+						<td style="width:30%;text-align:right">
+							<h3>Failover Domain Membership: </h3>
+							<ul>
+								<li tal:repeat="fdom nd/fdoms">
+									<a href="" tal:attributes="href fdom/fdomurl"><span tal:content="fdom/name"/></a>
+								</li>
+							</ul>
+						</td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+ </div>
+
+<div metal:define-macro="nodelist-form">
+	<h2>Node List Form</h2>
+ </div>
+
+<div metal:define-macro="nodegrid-form">
+	<h2>Node Grid Form</h2>
+</div>
+
+<div metal:define-macro="nodeconfig-form">
+	<h2>Node Configuration Form</h2>
+</div>
 
-  <div metal:define-macro="nodeadd-form">
+<div metal:define-macro="nodeadd-form">
 	<script type="text/javascript" src="/luci/homebase/homebase_common.js">
 	</script>
 
@@ -609,197 +749,224 @@
 			<input type="button" class="hbSubmit" name="Submit" value="Submit" onClick="validateForm(document.adminform);" />
 		</div>
 	</form>
-  </div>
+</div>
+
+<div metal:define-macro="nodeprocess-form">
+	<h2>Node Process Form</h2>
+</div>
+
+<div metal:define-macro="services-form">
+	<h2>Services Form</h2>
+</div>
+
+<div metal:define-macro="servicelist-form">
+	<table tal:define="
+			global ricci_agent python:here.getRicciAgentForCluster(request);
+			global svcstatus python:here.getClusterStatus(ricci_agent);
+			global svcinf python:here.getServicesInfo(svcstatus,modelb,request);
+			global svcs svcinf/services">
+
+	<tr width="100%" style="border-bottom: blue 3px groove;" tal:repeat="svc svcs">
+		<td width="100%" style="border-bottom: #8cacbb 3px solid;">
+			<table width="800px">
+				<tr style="padding:10px;margin:10px;border-width:0px;">
+					<td style="padding:10px;margin:10px;border-width:0px;">
+						<h1 style="border:0px;">Service Name: <span tal:replace="svc/name"/></h1>
+					</td>
+
+					<td style="margin:10px">
+						<form method="post" onSubmit="return dropdown(this.gourl)">
+							<select name="gourl">
+								<option value="">Choose a Task...</option>
+								<option value="" tal:attributes="value svc/cfgurl">Configure</option>
+								<option value="">----------</option>
+								<option value="">Delete</option>
+							</select>
+							<input type="submit" value="Go"/>
+						</form>
+					</td>
+
+					<td style="width:30%; text-align:right;"
+						tal:define="autostart svc/autostart |nothing">
+						<h2 tal:condition="autostart" style="border:0px;">Autostart is enabled for this service</h2>
+						<h2 tal:condition="not: autostart" style="border:0px;">Autostart is not enabled for this service</h2>
+					</td>
+				</tr>
+
+				<tr style="padding:10px;margin:10px" tal:define="running svc/running |nothing">
+					<td tal:condition="running" style="padding:10px;margin:10px">
+						<h2 style="border:0px;">Status: <i><font color="green">Running on <span tal:content="svc/nodename"/></font></i></h2>
+					</td>
+
+					<td tal:condition="not: running" style="padding:10px;margin:10px">
+						<h2 style="border:0px;">Status: <i><font color="red">This service is stopped</font></i></h2>
+					</td>
+
+					<td tal:condition="running" style="width:30%;text-align:right">
+						<h2 style="border:0px;">Failover Domain Association: <span tal:replace="svc/faildom"/></h2>
+					</td>
+				</tr>
+			</table>
+		</tr>
+	</table>
+</div>
+
+<div metal:define-macro="serviceadd-form">
+	<h2>Service Add Form</h2>
+</div>
+
+<div metal:define-macro="servicestart">
+	<span tal:define="global ricci_agent python:here.getRicciAgentForCluster(request)"/>
+	<span tal:define="result python:here.serviceStart(ricci_agent, request)"/>
+	<!-- <span metal:use-macro="here/form-macros/macros/serviceconfig-form"/> -->
+</div>
+
+
+<div metal:define-macro="servicerestart">
+	<span tal:define="global ricci_agent python:here.getRicciAgentForCluster(request)"/>
+	<span tal:define="result python:here.serviceRestart(ricci_agent, request)"/>
+	<!-- <span metal:use-macro="here/form-macros/macros/serviceconfig-form"/> -->
+</div>
+
+<div metal:define-macro="servicestop">
+	<span tal:define="global ricci_agent python:here.getRicciAgentForCluster(request)"/>
+	<span tal:define="result python:here.serviceStop(ricci_agent,request)"/>
+	<!-- <span metal:use-macro="here/form-macros/macros/serviceconfig-form"/> -->
+</div>
+
+<div metal:define-macro="serviceconfig-form">
+	<tal:block tal:define="
+					global ricci_agent python:here.getRicciAgentForCluster(request);
+					global sstat python:here.getClusterStatus(ricci_agent);
+					global sinfo python:here.getServiceInfo(sstat, modelb,request);
+					global running sinfo/running | nothing;" />
+
+	<table width="800px">
+		<tr style="padding:10px;margin:10px;border-width:0px;">
+			<td style="padding:10px;margin:10px;border-width:0px;">
+				<h1 style="border:0px;">Service Name: <span tal:content="sinfo/name"/></h1>
+			</td>
+
+			<td style="margin:10px">
+			<form method="post" onSubmit="return dropdown(this.gourl)">
+				<select name="gourl"
+					tal:define="global innermap sinfo/innermap;
+								starturls innermap/links">
+
+					<tal:block tal:condition="running">
+						<option value=""><span tal:replace="innermap/current"/></option>
+						<option value="" tal:attributes="value innermap/restarturl">Restart this service</option>
+						<option value="">----------</option>
+						<option value="" tal:attributes="value innermap/disableurl">Disable this service</option>
+						<option value="">----------</option>
+						<option tal:repeat="starturl innermap/links" value="" tal:attributes="value starturl/url">Start this service on <span tal:replace="starturl/nodename"/></option>
+						<option value="">----------</option>
+						<option value="">Delete this service</option>
+					</tal:block>
+
+					<tal:block tal:condition="not: running">
+						<option value=""><span tal:replace="innermap/current"/></option>
+						<option value="">----------</option>
+						<option value="" tal:attributes="value innermap/enableurl">Enable this service</option>
+						<option value="">----------</option>
+					</tal:block>
+
+					<option value="" tal:repeat="starturl starturls" tal:attributes="value starturl/url">Start this service on <span tal:replace="starturl/nodename"/></option>
+					<option value="">----------</option>
+					<option value="">Delete This service</option>
+				</select>
+				<input type="submit" value="Go"/>
+			</form>
+			</td>
+		</tr>
+
+		<tr style="padding:10px;margin:10px;border-width:0px;"><td style="width:30%;text-align:center">
+			<h1 tal:condition="not: running" style="border:0px;">Service Status: <font color="red"><i>Stopped</i></font></h1>
+			<h1 tal:condition="running" style="border:0px;">Service Status: <font color="green"><i>Running</i></font></h1>
+		</td></tr>
+	</table>
+</div>
+
+<div metal:define-macro="service-form">
+	<h2>Service Form</h2>
+</div>
+
+<div metal:define-macro="serviceprocess-form">
+	<h2>Service Process Form</h2>
+</div>
+
+<div metal:define-macro="resources-form">
+	<h2>Resources Form</h2>
+</div>
+
+<div metal:define-macro="resourcelist-form">
+	<h2>Resource List Form</h2>
+</div>
+
+<div metal:define-macro="resourceadd-form">
+	<h2>Resource Add Form</h2>
+</div>
+
+<div metal:define-macro="resourceconfig-form">
+	<h2>Resource Configuration Form</h2>
+</div>
+
+<div metal:define-macro="resource-form">
+	<h2>Resource Form</h2>
+</div>
+
+<div metal:define-macro="resourceprocess-form">
+	<h2>Resource Process Form</h2>
+</div>
+
+<div metal:define-macro="fdoms-form">
+	<h2>Failover Domains Form</h2>
+</div>
+
+<div metal:define-macro="fdomlist-form">
+	<h2>Failover Domains List Form</h2>
+</div>
+
+<div metal:define-macro="fdomadd-form">
+	<h2>Failover Domain Add Form</h2>
+</div>
+
+<div metal:define-macro="fdomconfig-form">
+	<h2>Failover Domain Configuration Form</h2>
+</div>
+
+<div metal:define-macro="fdom-form">
+	<h2>Failover Domain Form</h2>
+</div>
+
+<div metal:define-macro="fdomprocess-form">
+	<h2>Failover Domain Process Form</h2>
+</div>
+
+<div metal:define-macro="fencedevs-form">
+	<h2>Fence Devices Form</h2>
+</div>
+
+<div metal:define-macro="fencedevlist-form">
+	<h2>Fence Device List Form</h2>
+</div>
+
+<div metal:define-macro="fencedevadd-form">
+	<h2>Fence Device Add Form</h2>
+</div>
+
+<div metal:define-macro="fencedevconfig-form">
+	<h2>Fence Device Configuration Form</h2>
+</div>
+
+<div metal:define-macro="fencedev-form">
+	<h2>Fence Device Form</h2>
+</div>
+
+<div metal:define-macro="fencedevprocess-form">
+	<h2>Fence Device Process Form</h2>
+</div>
+
 
-  <div metal:define-macro="nodeprocess-form">
-   <h2>Node Process Form</h2>
-  </div>
-  <div metal:define-macro="services-form">
-   <h2>Services Form</h2>
-  </div>
-  <div metal:define-macro="servicelist-form">
-    <table>
-     <span tal:define="global ricci_agent python:here.getRicciAgentForCluster(request)"/>
-     <span tal:define="global svcstatus python:here.getClusterStatus(ricci_agent)"/>
-     <span tal:define="global svcinf python:here.getServicesInfo(svcstatus,modelb,request)"/>
-     <span tal:define="global svcs svcinf/services"/>
-     <span tal:repeat="svc svcs">
-     <tr width="100%" STYLE="border-bottom: blue 3px groove;">
-      <td width="100%" STYLE="border-bottom: #8cacbb 3px solid;">
-       <table width="800px">
-        <tr STYLE="padding:10px;margin:10px;border-width:0px;"><td STYLE="padding:10px;margin:10px;border-width:0px;"><h1 STYLE="border:0px;">Service Name: <span tal:content="svc/name"/></h1></td>
-            <td STYLE="margin:10px"><form METHOD=POST onSubmit="return dropdown(this.gourl)">
-              <SELECT NAME="gourl">
-               <OPTION VALUE="">Choose a Task...</OPTION>
-               <OPTION VALUE="" tal:attributes="VALUE svc/cfgurl">Configure</OPTION>
-               <OPTION VALUE="">----------</OPTION>
-               <OPTION VALUE="">Delete</OPTION>
-              </SELECT>
-              <INPUT TYPE=SUBMIT VALUE="Go"/>
-             </FORM>
-            </td>
-           <span tal:define="autostart svc/autostart |nothing">
-            <span tal:condition="autostart">
-             <td STYLE="width:30%; text-align:right;"><h2 STYLE="border:0px;">Autostart is enabled for this service</h2></td>
-            </span>
-            <span tal:condition="not: autostart">
-             <td STYLE="width:30%; text-align:right;"><h2 STYLE="border:0px;">Autostart is enabled for this service</h2></td>
-            </span>
-           </span>
-       </tr>
-        <span tal:define="running svc/running |nothing">
-         <span tal:condition="running">
-          <tr STYLE="padding:10px;margin:10px">
-           <td STYLE="padding:10px;margin:10px"><h2 STYLE="border:0px;">Status:  <i><font color="green">Running on <span tal:content="svc/nodename"/></font></i></h2></td>
-           <td STYLE="width:30%;text-align:right"><h2 STYLE="border:0px;">Failover Domain Association: <span tal:content="svc/faildom"/></h2></td>
-          </tr>
-         </span>
-         <span tal:condition="not: running">
-          <tr STYLE="padding:10px;margin:10px">
-           <td STYLE="padding:10px;margin:10px"><h2 STYLE="border:0px;">Status:  <i><font color="red">This service is stopped</font></i></h2></td>
-
-           <td STYLE="width:30%;text-align:center"><h2 STYLE="border:0px;">Failover Domain Association: <span tal:content="svc/faildom"/></h2></td>
-          </tr>
-         </span>
-        </span>
- 
-      </table>
-        </tr>
-     
-     </span>
-     </table>
- 
-  </div>
-  <div metal:define-macro="serviceadd-form">
-   <h2>Service Add Form</h2>
-  </div>
-  <div metal:define-macro="servicestart">
-    <span tal:define="global ricci_agent python:here.getRicciAgentForCluster(request)"/>
-    <span tal:define="result python:here.serviceStart(ricci_agent, request)"/>
-    <!-- <span metal:use-macro="here/form-macros/macros/serviceconfig-form"/> -->
-  </div>
-  <div metal:define-macro="servicerestart">
-  <span tal:define="global ricci_agent python:here.getRicciAgentForCluster(request)"/>
-    <span tal:define="result python:here.serviceRestart(ricci_agent, request)"/>
-    <!-- <span metal:use-macro="here/form-macros/macros/serviceconfig-form"/> -->
-  </div>
-  <div metal:define-macro="servicestop">
-  <span tal:define="global ricci_agent python:here.getRicciAgentForCluster(request)"/>
-    <span tal:define="result python:here.serviceStop(ricci_agent,request)"/>
-    <!-- <span metal:use-macro="here/form-macros/macros/serviceconfig-form"/> -->
-  </div>
-  <div metal:define-macro="serviceconfig-form">
-  <span tal:define="global ricci_agent python:here.getRicciAgentForCluster(request)"/>
-   <span tal:define="global sstat python:here.getClusterStatus(ricci_agent)"/>
-   <span tal:define="global sinfo python:here.getServiceInfo(sstat, modelb,request)">
-    <span tal:define="global running sinfo/running | nothing"/>
-   <table width="800px">
-    <tr STYLE="padding:10px;margin:10px;border-width:0px;">
-     <td STYLE="padding:10px;margin:10px;border-width:0px;"><h1 STYLE="border:0px;">Service Name: <span tal:content="sinfo/name"/></h1></td>
-       <td STYLE="margin:10px"><form METHOD=POST onSubmit="return dropdown(this.gourl)">
-         <SELECT NAME="gourl">
-          <span tal:define="global innermap sinfo/innermap"/>
-          <span tal:condition="running">
-           <OPTION VALUE=""><span tal:content="innermap/current"/></OPTION>
-           <OPTION VALUE="" tal:attributes="VALUE innermap/restarturl">Restart this service</OPTION>
-           <OPTION VALUE="">----------</OPTION>
-           <OPTION VALUE="" tal:attributes="VALUE innermap/disableurl">Disable this service</OPTION>
-           <OPTION VALUE="">----------</OPTION>
-            <span tal:repeat="starturl innermap/links">
-             <OPTION VALUE=""  tal:attributes="VALUE starturl/url">Start this service on <span tal:content="starturl/nodename"/></OPTION>
-            </span>
-           <OPTION VALUE="">----------</OPTION>
-           <OPTION VALUE="">Delete this service</OPTION>
-           </span>
-           <span tal:condition="not: running">
-           <OPTION VALUE=""><span tal:content="innermap/current"/></OPTION>
-           <OPTION VALUE="">----------</OPTION>
-           <OPTION VALUE="" tal:attributes="VALUE innermap/enableurl">Enable this service</OPTION>
-           <OPTION VALUE="">----------</OPTION>
-           <span tal:define="starturls innermap/links">
-            <span tal:repeat="starturl starturls">
-             <OPTION VALUE="" tal:attributes="VALUE starturl/url">Start this service on <span tal:content="starturl/nodename"/></OPTION>
-            </span>
-           </span>
-           <OPTION VALUE="">----------</OPTION>
-           <OPTION VALUE="">Delete This service</OPTION>
-           </span>
-          </SELECT>
-          <INPUT TYPE=SUBMIT VALUE="Go"/>
-         </FORM>
-        </td>
-       </tr>
-     
-       <tr STYLE="padding:10px;margin:10px;border-width:0px;">
-      <span tal:condition="running">
-       <td STYLE="width:30%;text-align:center"><h1 STYLE="border:0px;">Service Status: <font color="green"><i>Running</i></font></h1></td>
-      </span>
-      <span tal:condition="not: running">
-       <td STYLE="width:30%;text-align:center"><h1 STYLE="border:0px;">Service Status: <font color="red"><i>Stopped</i></font></h1></td>
-      </span>
-    </tr>
-   </table>
-   </span>
-  </div>
-  <div metal:define-macro="service-form">
-   <h2>Service Form</h2>
-  </div>
-  <div metal:define-macro="serviceprocess-form">
-   <h2>Service Process Form</h2>
-  </div>
-  <div metal:define-macro="resources-form">
-   <h2>Resources Form</h2>
-  </div>
-  <div metal:define-macro="resourcelist-form">
-   <h2>Resource List Form</h2>
-  </div>
-  <div metal:define-macro="resourceadd-form">
-   <h2>Resource Add Form</h2>
-  </div>
-  <div metal:define-macro="resourceconfig-form">
-   <h2>Resource Configuration Form</h2>
-  </div>
-  <div metal:define-macro="resource-form">
-   <h2>Resource Form</h2>
-  </div>
-  <div metal:define-macro="resourceprocess-form">
-   <h2>Resource Process Form</h2>
-  </div>
-  <div metal:define-macro="fdoms-form">
-   <h2>Failover Domains Form</h2>
-  </div>
-  <div metal:define-macro="fdomlist-form">
-   <h2>Failover Domains List Form</h2>
-  </div>
-  <div metal:define-macro="fdomadd-form">
-   <h2>Failover Domain Add Form</h2>
-  </div>
-  <div metal:define-macro="fdomconfig-form">
-   <h2>Failover Domain Configuration Form</h2>
-  </div>
-  <div metal:define-macro="fdom-form">
-   <h2>Failover Domain Form</h2>
-  </div>
-  <div metal:define-macro="fdomprocess-form">
-   <h2>Failover Domain Process Form</h2>
-  </div>
-  <div metal:define-macro="fencedevs-form">
-   <h2>Fence Devices Form</h2>
-  </div>
-  <div metal:define-macro="fencedevlist-form">
-   <h2>Fence Device List Form</h2>
-  </div>
-  <div metal:define-macro="fencedevadd-form">
-   <h2>Fence Device Add Form</h2>
-  </div>
-  <div metal:define-macro="fencedevconfig-form">
-   <h2>Fence Device Configuration Form</h2>
-  </div>
-  <div metal:define-macro="fencedev-form">
-   <h2>Fence Device Form</h2>
-  </div>
-  <div metal:define-macro="fencedevprocess-form">
-   <h2>Fence Device Process Form</h2>
-  </div>
-  </body>
+</body>
 </html>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-08-01 15:43 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-08-01 15:43 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-08-01 15:43:20

Modified files:
	luci/cluster   : form-macros 

Log message:
	Fix for description field

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.14&r2=1.15

--- conga/luci/cluster/form-macros	2006/07/28 19:49:20	1.14
+++ conga/luci/cluster/form-macros	2006/08/01 15:43:19	1.15
@@ -21,7 +21,7 @@
     </tr>
     <tr>
      <td>
-     <h2><span tal:content="isBusy/desc"/></h2>
+     <h2><span tal:content="isBusy/flag_desc"/></h2>
      </td>
     </tr>
    </table>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-07-28 19:49 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-07-28 19:49 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-07-28 19:49:20

Modified files:
	luci/cluster   : form-macros 

Log message:
	description field in bustwait page

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.13&r2=1.14

--- conga/luci/cluster/form-macros	2006/07/25 20:17:32	1.13
+++ conga/luci/cluster/form-macros	2006/07/28 19:49:20	1.14
@@ -19,6 +19,11 @@
       <img src="100wait.gif"/>
      </td>
     </tr>
+    <tr>
+     <td>
+     <h2><span tal:content="isBusy/desc"/></h2>
+     </td>
+    </tr>
    </table>
     
   </div>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-07-25 20:17 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-07-25 20:17 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-07-25 20:17:32

Modified files:
	luci/cluster   : form-macros 

Log message:
	added rule

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.12&r2=1.13

--- conga/luci/cluster/form-macros	2006/07/25 17:40:43	1.12
+++ conga/luci/cluster/form-macros	2006/07/25 20:17:32	1.13
@@ -331,6 +331,7 @@
       </tfoot>
      </table>
   </form>
+  <hr/>
    <form name="quorum_partition" action="" method="get" tal:attributes="action clusterinfo/quorumd_url">
     <table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
      <thead class="systemsTable"> 



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-07-25 17:40 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-07-25 17:40 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-07-25 17:40:43

Modified files:
	luci/cluster   : form-macros 

Log message:
	support for quorumd

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.11&r2=1.12

--- conga/luci/cluster/form-macros	2006/07/25 02:27:08	1.11
+++ conga/luci/cluster/form-macros	2006/07/25 17:40:43	1.12
@@ -331,9 +331,109 @@
       </tfoot>
      </table>
   </form>
+   <form name="quorum_partition" action="" method="get" tal:attributes="action clusterinfo/quorumd_url">
+    <table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
+     <thead class="systemsTable"> 
+      <tr class="systemsTable"><td class="systemsTable" colspan="1">
+         <div class="systemsTableTop">
+           <strong>Quorum Partition Configuration</strong>
+         </div>
+       </td></tr>
+      </thead>
+      <tbody class="systemsTable">
+        <tr class="systemsTable">
+         <td class="systemsTable"><input type="radio" name="quorumd" value="False" checked="" tal:attributes="checked python:clusterinfo['is_quorumd'] == 'False'"/><b> Do not use a Quorum Partition</b>
+         </td>
+        </tr>
+        <tr class="systemsTable">
+         <td class="systemsTable"><input type="radio" name="quorumd" value="True"/> <b> I prefer to use a Quorum Partition</b>
+         </td>
+        </tr>
+       <tr class="systemsTable">
+        <td class="systemsTable" colspan="2">Interval: <input type="text" name="interval" value="" tal:attributes="value clusterinfo/interval"/>
+        </td>
+       </tr>
+       <tr class="systemsTable">
+        <td class="systemsTable" colspan="2">Votes: <input type="text" name="votes" value="" tal:attributes="value clusterinfo/votes"/>
+        </td>
+       </tr>
+       <tr class="systemsTable">
+        <td class="systemsTable" colspan="2">TKO: <input type="text" name="tko" value="" tal:attributes="value clusterinfo/tko"/>
+        </td>
+       </tr>
+       <tr class="systemsTable">
+        <td class="systemsTable" colspan="2">Minimum Score: <input type="text" name="min_score" value="" tal:attributes="value clusterinfo/min_score"/>
+        </td>
+       </tr>
+       <tr class="systemsTable">
+        <td class="systemsTable" colspan="2">Device: <input type="text" name="device" value="" tal:attributes="value clusterinfo/device"/>
+        </td>
+       </tr>
+       <tr class="systemsTable">
+        <td class="systemsTable" colspan="2">Label: <input type="text" name="label" value="" tal:attributes="value clusterinfo/label"/>
+        </td>
+       </tr>
+      </tbody>
+     </table>
+    <table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
+     <thead class="systemsTable"> 
+      <tr class="systemsTable"><td class="systemsTable" colspan="1">
+         <div class="systemsTableTop">
+           <strong>Heuristics</strong>
+         </div>
+       </td></tr>
+      <tr class="systemsTable">
+        <th class="systemsTable">
+         <div class="systemsTableTop">
+           Name
+         </div>
+       </th>
+        <th class="systemsTable">
+         <div class="systemsTableTop">
+           Path to Program
+         </div>
+       </th>
+        <th class="systemsTable">
+         <div class="systemsTableTop">
+           Interval
+         </div>
+       </th>
+        <th class="systemsTable">
+         <div class="systemsTableTop">
+           Score
+         </div>
+       </th>
+      </tr>
+      </thead>
+    
+      <tbody class="systemsTable">
+      <span tal:define="global heuristics clusterinfo/hlist"/>
+      <span tal:repeat="heuristic heuristics">
+       <tr class="systemsTable">
+        <td class="systemsTable"><input type="text" name="hname" value="" tal:attributes="value heuristic/hname"/>
+        </td>
+        <td class="systemsTable"><input type="text" name="hinterval" value="" tal:attributes="value heuristic/hinterval"/>
+        </td>
+        <td class="systemsTable" colspan="2"><input type="text" name="hprog" value="" tal:attributes="value heuristic/hprog"/>
+        </td>
+        <td class="systemsTable"><input type="text" name="hscore" value="" tal:attributes="value heuristic/hscore"/>
+        </td>
+       </tr>
+      </span>
+     </tbody>
+      <tfoot class="systemsTable">
+       <tr class="systemsTable"><td class="systemsTable" colspan="2">
+         <div class="systemsTableEnd">
+          <input type="submit" value="Apply"/>
+         </div>
+       </td></tr>
+      </tfoot>
+    </table>
+   </form>
   </div>
   <div metal:define-macro="clusterprocess-form">
-   <h2>Howdy!</h2>
+   <span tal:define="global r_agent python:here.getRicciAgentForCluster(request)"/> 
+   <span tal:define="res python:here.processClusterProps(r_agent, request)"/>
   </div>
   <div metal:define-macro="node-form">
      <span tal:define="global ricci_agent python:here.getRicciAgentForCluster(request)"/>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-07-24 20:10 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-07-24 20:10 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-07-24 20:10:13

Modified files:
	luci/cluster   : form-macros 

Log message:
	removed stray angle brackets

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.9&r2=1.10

--- conga/luci/cluster/form-macros	2006/07/24 19:01:50	1.9
+++ conga/luci/cluster/form-macros	2006/07/24 20:10:13	1.10
@@ -232,8 +232,8 @@
   <!-- <span tal:define="global ricci_agent python:here.getRicciAgentForCluster(request)"/> -->
   <span tal:define="global clusterinfo python:here.getClusterInfo(modelb, request)"/> 
    <form name="basecluster" action="" method="get" tal:attributes="action clusterinfo/basecluster_url">
-    <h4><b>Cluster Name</b></h4><input type="text" name="cluname" value="" <tal:attributes="value clusterinfo/clustername"/>
-    <h4><b>Configuration Version</b></h4><input type="text" name="cfgver" value="" <tal:attributes="value clusterinfo/config_version"/>
+    <h4><b>Cluster Name:</b></h4><input type="text" name="cluname" value="" tal:attributes="value clusterinfo/clustername"/>
+    <h4><b>Configuration Version</b></h4><input type="text" name="cfgver" value="" tal:attributes="value clusterinfo/config_version"/>
     <input type="submit" value="Apply"/>
   </form>
   <hr/>



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-07-21 17:16 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-07-21 17:16 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-07-21 17:16:50

Modified files:
	luci/cluster   : form-macros 

Log message:
	added links in cluster list

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.7&r2=1.8

--- conga/luci/cluster/form-macros	2006/07/21 14:49:46	1.7
+++ conga/luci/cluster/form-macros	2006/07/21 17:16:50	1.8
@@ -34,26 +34,34 @@
        <tr width="100%" STYLE="border-bottom: blue 3px groove;">
         <td width="100%" STYLE="border-bottom: #8cacbb 3px solid;">
          <table width="800px">
-          <tr STYLE="padding:10px;margin:10px;border-width:0px;"><td STYLE="padding:10px;margin:10px;border-width:0px;"><h1 STYLE="border:0px;">Cluster Name: <span tal:content="cstatus/clustername"/></h1></td>
+          <tr STYLE="padding:10px;margin:10px;border-width:0px;">
+            <span tal:condition="python:cstatus['running'] == 'true'">
+            <td STYLE="padding:10px;margin:10px;border-width:0px;"><h1 STYLE="border:0px;">Cluster Name: <a href="" tal:attributes="href cstatus/clucfg"><font color="green"><span tal:content="cstatus/clusteralias"/></font></a></h1></td>
+            </span>
+            <span tal:condition="python:cstatus['running'] == 'false'">
+            <td STYLE="padding:10px;margin:10px;border-width:0px;"><h1 STYLE="border:0px;">Cluster Name: <a href="" tal:attributes="href cstatus/clucfg"><font color="red"><span tal:content="cstatus/clusteralias"/></font></a></h1></td>
+            </span>
             <td STYLE="margin:10px"><form METHOD=POST onSubmit="return dropdown(this.gourl)">
               <SELECT NAME="gourl">
                <span tal:condition="python:cstatus['running'] == 'true'">
                <OPTION VALUE="">This cluster is running...</OPTION>
                <OPTION VALUE=""><font color="red">Stop this cluster</font></OPTION>
+               <OPTION VALUE="">Restart this cluster</OPTION>
                </span>
                <span tal:condition="python:cstatus['running'] == 'false'">
                <OPTION VALUE="">This cluster is stopped...</OPTION>
                <OPTION VALUE=""><font color="green">Start this cluster</font></OPTION>
+               <OPTION VALUE="">Restart this cluster</OPTION>
                </span>
               </SELECT>
               <INPUT TYPE=SUBMIT VALUE="Go"/>
              </FORM>
             </td>
-            <td STYLE="width:30%; text-align:right;"><h1 STYLE="border:0px;">Pretty Name: <span tal:content="cstatus/clusteralias"/></h1></td>
        </tr>
-       <tr STYLE="padding:10px;margin:10px"><td STYLE="padding:10px;margin:10px"><h2 STYLE="border:0px;">Status:  <i><span tal:content="cstatus/status"/></i></h2></td>
-                                            <td STYLE="padding:10px;margin:10px"><h2 STYLE="border:0px;">Total Cluster Votes:  <i><span tal:content="cstatus/votes"/></i></h2></td>
-                                            <td STYLE="padding:10px;margin:10px"><h2 STYLE="border:0px;">Minimum Required Quorum:  <i><span tal:content="cstatus/minquorum"/></i></h2></td>
+       <tr STYLE="padding:10px;margin:10px">
+            <td STYLE="padding:10px;margin:10px"><h2 STYLE="border:0px;">Status:  <i><span tal:content="cstatus/status"/></i></h2></td>
+            <td STYLE="padding:10px;margin:10px"><h2 STYLE="border:0px;">Total Cluster Votes:  <i><span tal:content="cstatus/votes"/></i></h2></td>
+            <td STYLE="padding:10px;margin:10px"><h2 STYLE="border:0px;">Minimum Required Quorum:  <i><span tal:content="cstatus/minquorum"/></i></h2></td>
        </tr>
        <tr STYLE="padding:10px;margin:10px"><td STYLE="padding:10px;margin:10px"><h2 STYLE="border:0px;">Nodes:</h2>  <ul>
           <span tal:repeat="nd cstatus/currentnodes">
@@ -220,6 +228,8 @@
 	</form>
   </div>
   <div metal:define-macro="clusterconfig-form">
+  <!-- <span tal:define="global ricci_agent python:here.getRicciAgentForCluster(request)"/> -->
+  <!-- <span tal:define="global clusterinfo python:here.getClusterInfo(modelb, request)"/> -->
    <h2>Cluster Configuration Form</h2>
   </div>
   <div metal:define-macro="node-form">



^ permalink raw reply	[flat|nested] 94+ messages in thread

* [Cluster-devel] conga/luci/cluster form-macros
@ 2006-07-14 16:09 jparsons
  0 siblings, 0 replies; 94+ messages in thread
From: jparsons @ 2006-07-14 16:09 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-07-14 16:09:40

Modified files:
	luci/cluster   : form-macros 

Log message:
	node config support

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.3&r2=1.4

--- conga/luci/cluster/form-macros	2006/07/05 20:40:29	1.3
+++ conga/luci/cluster/form-macros	2006/07/14 16:09:39	1.4
@@ -54,7 +54,10 @@
                                             <td STYLE="padding:10px;margin:10px"><h2 STYLE="border:0px;">Total Cluster Votes:  <i><span tal:content="cstatus/votes"/></i></h2></td>
                                             <td STYLE="padding:10px;margin:10px"><h2 STYLE="border:0px;">Minimum Required Quorum:  <i><span tal:content="cstatus/minquorum"/></i></h2></td>
        </tr>
-       <tr STYLE="padding:10px;margin:10px"><td STYLE="padding:10px;margin:10px"><h2 STYLE="border:0px;">Nodes:</h2>  <ul><span tal:repeat="nd cstatus/currentnodes"><li><a href="" tal:attributes="href nd/configurl"><span tal:content="nd/nodename"/></a></li></span></ul></td>
+       <tr STYLE="padding:10px;margin:10px"><td STYLE="padding:10px;margin:10px"><h2 STYLE="border:0px;">Nodes:</h2>  <ul>
+          <span tal:repeat="nd cstatus/currentnodes">
+           <span tal:condition="python:nd['status'] == '0'"><li STYLE="list-style-image: url(small_node_active.png);"><a href="" tal:attributes="href nd/configurl"><font color="green"><span tal:content="nd/nodename"/></font></a></li></span>           <span tal:condition="python:nd['status'] == '1'"><li STYLE="list-style-image: url(small_node_inactive.png);"><a href="" tal:attributes="href nd/configurl"><font color="red"><span tal:content="nd/nodename"/></font></a></li></span>           <span tal:condition="python:nd['status'] == '2'"><li STYLE="list-style-image: url(small_node_unknown.png);"><a href="" tal:attributes="href nd/configurl"><font color="gray"><span tal:content="nd/nodename"/></font></a></li></span>          </span>
+           </ul></td>
            <td STYLE="width:30%;text-align:right"><h3>Currently Hosting: </h3><ul><span tal:repeat="svc cstatus/currentservices"><li><a href="" tal:attributes="href svc/svcurl"><span tal:content="svc/name"/></a></li></span></ul></td>
        </tr>
         
@@ -143,7 +146,63 @@
    <h2>Cluster Configuration Form</h2>
   </div>
   <div metal:define-macro="node-form">
-   <h2>Node Form</h2>
+     <span tal:define="global ricci_agent python:here.getRicciAgentForCluster(request)"/>
+     <span tal:define="global nodestatus python:here.getClusterStatus(ricci_agent)"/>
+       <span tal:define="global nodeinfo python:here.getNodeInfo(modelb, nodestatus, request)"/>
+    <!-- First table row is status icon, name, and dropdown -->
+    <table>
+     <span tal:condition="python:nodeinfo['nodestate'] == '0'">
+      <tr>
+        <td><img src="node_active.png"/></td><td STYLE="horizontal-align:left;"><table><tr><td><h2 STYLE="border:0px;">Node name: <span tal:content="nodeinfo/nodename"/></h2></td></tr>
+        <tr STYLE="horizontal-align:left;"><td><h2 STYLE="border:0px;">Status: <font color="green">Cluster member</font></td></tr></table></td>
+          <td STYLE="margin:15px; vertical-align:top"><form METHOD=POST onSubmit="return dropdown(this.gourl)">
+           <SELECT NAME="gourl">
+            <OPTION VALUE="">Choose a Task...</OPTION>
+            <OPTION VALUE="" tal:attributes="VALUE nodeinfo/jl_url">Have node leave cluster</OPTION>
+            <OPTION VALUE="">----------</OPTION>
+            <OPTION VALUE="" tal:attributes="VALUE nodeinfo/fence_url">Fence this node</OPTION>
+            <OPTION VALUE="" tal:attributes="VALUE nodeinfo/reboot_url">Reboot this node</OPTION>
+            <OPTION VALUE="">----------</OPTION>
+            <OPTION VALUE="" tal:attributes="VALUE nodeinfo/delete_url">Delete this node</OPTION>
+          </SELECT>
+          <INPUT TYPE=SUBMIT VALUE="Go"/>
+          </FORM>
+         </td>
+      </tr>
+                                                                                
+     </span>
+     <span tal:condition="python:nodeinfo['nodestate'] == '1'">
+      <tr><td><img src="node_inactive.png"/></td><td><table><tr><td><h2 STYLE="border:0px;">Node name: <span tal:content="nodeinfo/nodename"/></h2></td></tr>
+          <tr><td STYLE="margin:10px;padding:10px;"><h2 STYLE="border:0px;">Status: <font color="red">Currently not a cluster participant</font></td></tr></table></td>
+          <td STYLE="margin:15px;vertical-align:top;"><form METHOD=POST onSubmit="return dropdown(this.gourl)">
+           <SELECT NAME="gourl">
+            <OPTION VALUE="">Choose a Task...</OPTION>
+            <OPTION VALUE="" tal:attributes="VALUE nodeinfo/jl_url">Have node join cluster</OPTION>
+            <OPTION VALUE="">----------</OPTION>
+            <OPTION VALUE="" tal:attributes="VALUE nodeinfo/fence_url">Fence this node</OPTION>
+            <OPTION VALUE="" tal:attributes="VALUE nodeinfo/reboot_url">Reboot this node</OPTION>
+            <OPTION VALUE="">----------</OPTION>
+            <OPTION VALUE="" tal:attributes="VALUE nodeinfo/delete_url">Delete this node</OPTION>
+          </SELECT>
+          <INPUT TYPE=SUBMIT VALUE="Go"/>
+          </FORM>
+         </td>
+      </tr>
+                                                                                
+     </span>
+     <span tal:condition="python:nodeinfo['nodestate'] == '2'">
+      <tr><td><img src="node_unknown.png"/></td><td><h2 STYLE="border:0px;">Node name: <span tal:content="nodeinfo/nodename"/></h2></td><td STYLE="margin:10px;padding:10px;"><h2 STYLE="border:0px;">Status: <font color="gray">This node is not responding</font></td></tr>
+     </span>
+      </table>
+      <table>
+      <tr><td><table border="1px"><tr><th>Cluster daemon</th><th>Enabled at start-up</th><th>Currently running</th></tr>
+                      <span tal:repeat="demon nodeinfo/d_states">
+                       <tr><td><span tal:content="demon/name"/></td><td><span tal:content="demon/enabled"/><a href="" STYLE="text-align:right;">(Change)</a></td><td><span tal:content="demon/running"/></td></tr>
+                      </span>
+               </table>
+    <!-- second row is daemon macro and failoverdom membership -->
+    <!-- third row is fencing macro -->
+    <!-- fourth row is logging -->
   </div>
   <div metal:define-macro="nodes-form">
     <table>



^ permalink raw reply	[flat|nested] 94+ messages in thread

end of thread, other threads:[~2007-11-19 18:23 UTC | newest]

Thread overview: 94+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-01-30 21:39 [Cluster-devel] conga/luci/cluster form-macros jparsons
  -- strict thread matches above, loose matches on Subject: below --
2007-11-19 18:23 rmccabe
2007-08-09 20:26 rmccabe
2007-07-26 20:31 rmccabe
2007-06-12 15:33 rmccabe
2007-02-28 21:54 rmccabe
2007-02-28 21:42 rmccabe
2007-02-14 15:06 rmccabe
2007-02-14 15:04 rmccabe
2007-02-09 20:33 rmccabe
2007-02-09 20:32 rmccabe
2007-02-02  1:03 rmccabe
2007-01-30 21:06 jparsons
2007-01-26 16:53 rmccabe
2007-01-24 20:05 rmccabe
2007-01-22 21:18 rmccabe
2007-01-16 17:38 rmccabe
2007-01-16 17:37 rmccabe
2007-01-15 18:57 rmccabe
2007-01-15 18:57 rmccabe
2007-01-15 17:17 rmccabe
2007-01-09 22:20 rmccabe
2007-01-07 17:36 rmccabe
2006-12-22 17:18 kupcevic
2006-12-20 22:07 jparsons
2006-12-20 20:24 jparsons
2006-12-18 22:15 jparsons
2006-12-13 23:55 rmccabe
2006-12-13 23:54 rmccabe
2006-12-04 22:59 rmccabe
2006-11-30 22:31 jparsons
2006-11-30 22:31 jparsons
2006-11-30 22:21 jparsons
2006-11-30 22:19 jparsons
2006-11-30 21:28 jparsons
2006-11-30 21:24 jparsons
2006-11-30 20:47 jparsons
2006-11-30 20:45 jparsons
2006-11-30 20:10 jparsons
2006-11-29 22:24 jparsons
2006-11-28 19:39 jparsons
2006-11-20 20:21 jparsons
2006-11-20 20:13 jparsons
2006-11-07  1:31 jparsons
2006-11-03 21:11 jparsons
2006-11-03 21:09 jparsons
2006-11-03 21:07 jparsons
2006-10-31 13:23 rmccabe
2006-10-16 20:34 jparsons
2006-10-16 18:58 rmccabe
2006-10-13 21:01 jparsons
2006-10-11 20:57 jparsons
2006-10-11 16:25 jparsons
2006-10-04 17:45 jparsons
2006-09-28 20:20 rmccabe
2006-09-25 15:59 rmccabe
2006-09-25 15:46 jparsons
2006-09-22 20:58 jparsons
2006-09-22 20:30 jparsons
2006-09-22 20:08 jparsons
2006-08-30 23:40 rmccabe
2006-08-30 22:57 rmccabe
2006-08-16 23:40 jparsons
2006-08-16 21:48 jparsons
2006-08-14 14:53 jparsons
2006-08-13 19:18 jparsons
2006-08-13 19:14 jparsons
2006-08-13 19:04 jparsons
2006-08-13 18:46 jparsons
2006-08-13 18:42 jparsons
2006-08-13 18:35 jparsons
2006-08-13 14:54 jparsons
2006-08-13 14:50 jparsons
2006-08-13 14:38 jparsons
2006-08-13 13:49 jparsons
2006-08-12 17:52 jparsons
2006-08-11 14:23 jparsons
2006-08-11 14:07 jparsons
2006-08-11  0:23 jparsons
2006-08-10 23:51 jparsons
2006-08-10 23:48 jparsons
2006-08-10 23:44 jparsons
2006-08-10 23:40 jparsons
2006-08-10 15:49 jparsons
2006-08-10 14:16 jparsons
2006-08-09 21:38 jparsons
2006-08-02 17:27 rmccabe
2006-08-01 15:43 jparsons
2006-07-28 19:49 jparsons
2006-07-25 20:17 jparsons
2006-07-25 17:40 jparsons
2006-07-24 20:10 jparsons
2006-07-21 17:16 jparsons
2006-07-14 16:09 jparsons

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.