[Cluster-devel] conga/luci cluster/form-macros cluster/index_h ...

rmccabe at sourceware.org rmccabe at sourceware.org
Fri Sep 8 22:54:33 UTC 2006


CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2006-09-08 22:54:32

Modified files:
	luci/cluster   : form-macros index_html resource-form-macros 
	                 resource_form_handlers.js 
	luci/homebase  : homebase_common.js luci_homebase.css 
	luci/site/luci/Extensions: cluster_adapters.py 

Log message:
	resource and service stuff

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.56&r2=1.57
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/index_html.diff?cvsroot=cluster&r1=1.11&r2=1.12
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/resource-form-macros.diff?cvsroot=cluster&r1=1.7&r2=1.8
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/resource_form_handlers.js.diff?cvsroot=cluster&r1=1.4&r2=1.5
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/homebase/homebase_common.js.diff?cvsroot=cluster&r1=1.7&r2=1.8
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/homebase/luci_homebase.css.diff?cvsroot=cluster&r1=1.19&r2=1.20
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/cluster_adapters.py.diff?cvsroot=cluster&r1=1.62&r2=1.63

--- conga/luci/cluster/form-macros	2006/09/06 22:13:33	1.56
+++ conga/luci/cluster/form-macros	2006/09/08 22:54:32	1.57
@@ -1139,13 +1139,14 @@
 	<br/>
 	<h2>Service Composition</h2>
 
+	<div id="service_comp_list">
 	<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:replace="structure python: '<div>'" />
 
 
 		<tal:block tal:define="
@@ -1187,8 +1188,8 @@
 		<div
 			tal:condition="python: res['max_depth'] != 0"
 			tal:attributes="
-				class python: 'service_tree rc_indent' + str(res['indent_ctr'] - 1)">
-			<img class="service_tree" name="arrow_down"
+				class python: 'rc_indent' + str(res['indent_ctr'] - 1)">
+			<img class="service_tree" name="arrow_down" alt="[-]"
 				src="/luci/cluster/arrow_down.png"
 				onClick="collapse_div(this)">
 			<span class="service_tree">Hide Children</span>
@@ -1197,6 +1198,7 @@
 		<tal:block
 			tal:replace="structure python: '</div>' * (res['indent_ctr'] - res['max_depth'])" />
 	</div>
+	</div>
 </div>
 
 <div metal:define-macro="service-form">
--- conga/luci/cluster/index_html	2006/08/28 23:04:59	1.11
+++ conga/luci/cluster/index_html	2006/09/08 22:54:32	1.12
@@ -29,6 +29,7 @@
       </metal:cache>
 
       <metal:headslot define-slot="head_slot" />
+		<tal:block tal:define="global sinfo nothing" />
     <div tal:define="global hascluster request/clustername |nothing; global busywaiting python:None;"/>
     <span tal:condition="not: hascluster">
     <meta googaa="ooo"/>
--- conga/luci/cluster/resource-form-macros	2006/09/06 22:13:33	1.7
+++ conga/luci/cluster/resource-form-macros	2006/09/08 22:54:32	1.8
@@ -70,22 +70,25 @@
 		src="/luci/cluster/resource_form_handlers.js">
 	</script>
 
+	<tal:block
+		tal:define="
+			global res python: here.getResourceInfo(modelb, request);" />
+
 	<h2>Add a Resource</h2>
-	<strong>Select Resource Type</strong>
+	<strong>Select a Resource Type</strong>
 	<br/>
 
 	<form>
 	<select name="select_div"
 		onChange="swap_div('container', this.form.select_div.options[this.form.select_div.selectedIndex].value);">
-		<option name="blank" value="blank">Select a resource type</option>
-		<option name="IP" value="IP">IP Resource</option>
-		<option name="FS" value="FS">FS Resource</option>
-		<option name="GFS" value="GFS">GFS Resource</option>
-		<option name="NFSM" value="NFSM">NFS Mount Resource</option>
-		<option name="NFSC" value="NFSC">NFS Client Resource</option>
-		<option name="NFSX" value="NFSX">NFS Export Resource</option>
-		<option name="SCR" value="SCR">Script Resource</option>
-		<option name="SMB" value="SMB">Samba Resource</option>
+		<option name="IP" value="IP">IP address</option>
+		<option name="FS" value="FS">File system</option>
+		<option name="GFS" value="GFS">GFS file system</option>
+		<option name="NFSM" value="NFSM">NFS mount</option>
+		<option name="NFSC" value="NFSC">NFS client</option>
+		<option name="NFSX" value="NFSX">NFS export</option>
+		<option name="SCR" value="SCR">Script</option>
+		<option name="SMB" value="SMB">Samba</option>
 	</select>
 	</form>
 
@@ -150,19 +153,19 @@
 
 <div metal:define-macro="resourceconfig-form">
 	<script type="text/javascript"
-		src="luci/cluster/resource_form_handlers.js">
+		src="/luci/cluster/resource_form_handlers.js">
 	</script>
 
 	<tal:block tal:define="
-		global msg python: here.appendModel(request, modelb);
 		global restoedit request/resourcename | nothing" />
 
-	<tal:block tal:condition="restoedit">
+	<tal:block tal:condition="restoedit"
 		tal:define="
+			global msg python: here.appendModel(request, modelb);
 			global res python: here.getResourceInfo(modelb, request);
-			global type res/tag_name">
+			global type python: res['tag_name']">
 
-		<h2>Configure <span tal:replace="res/name"/></h2>
+		<h2>Configure <span tal:replace="python: res['name']" /></h2>
 
 		<span tal:omit-tag="" tal:condition="python: type == 'ip'">
 			<div metal:use-macro="here/resource-form-macros/macros/ip_macro"/>
@@ -198,17 +201,12 @@
 	</tal:block>
 </div>
 
-<div id="IP" metal:define-macro="ip_macro">
-
+<div class="rescfg" id="IP" metal:define-macro="ip_macro">
 <tal:block tal:condition="python: ptype == '33' or ptype == '24'"
 	tal:define="
 		global edit python: True;
-		global resName res/name;
-		global address python: resName.split('.');
-		global ip1 python: address[0];
-		global ip2 python: address[1];
-		global ip3 python: address[2];
-		global ip4 python: address[3];
+		global resName res/name | nothing;
+		global ip_address python: resName;
 		global monitor_link res/attrs/monitor_link | nothing;
 		global cluname request/clustername;
 		tmp_URL context/cluster/index_html/absolute_url;
@@ -223,17 +221,20 @@
 		tmp_URL context/cluster/index_html/absolute_url;
 		global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname" />
 
-	<strong class="reshdr">IP Address Resource Configuration</strong>
+	<div class="reshdr">IP Address Resource Configuration</div>
 
 	<form name="ip_form" id="ip_form" method="get"
 		tal:attributes="action processURL">
-
 	<input name="pagetype" type="hidden" value="35"/>
 
-	<input name="clustername" type="hidden" tal:attributes="value cluname"/>
+	<input name="tree_level" type="hidden"
+		tal:attributes="value res/indent_ctr | string:0" />
+
+	<input name="clustername" type="hidden"
+		tal:attributes="value cluname | nothing" />
 
 	<input name="oldname" type="hidden"
-		tal:attributes="value res/name"
+		tal:attributes="value res/name | nothing"
 		tal:condition="python: edit == True" />
 
 	<input name="edit" type="hidden" value="1"
@@ -243,20 +244,14 @@
 
 	<table id="ipResourceTable" class="systemsTable">
 		<tr class="systemsTable">
+			<td class="systemsTable">IP address</td>
 			<td class="systemsTable">
-				<strong>IP</strong>
-			</td>
-			<td class="systemsTable">
-				<input size="3" name="ip1" type="text" maxlength="3" tal:attributes="value ip1 | nothing"/>.
-				<input size="3" name="ip2" type="text" maxlength="3" tal:attributes="value ip2 | nothing"/>.
-				<input size="3" name="ip3" type="text" maxlength="3" tal:attributes="value ip3 | nothing"/>.
-				<input size="3" name="ip4" type="text" maxlength="3" tal:attributes="value ip4 | nothing"/>
+				<input size="15" name="ip_address" type="text" maxlength="15"
+					tal:attributes="value ip_address | nothing" />
 			</td>
 		</tr>
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>Monitor Link</strong>
-			</td>
+			<td class="systemsTable">Monitor link</td>
 			<td class="systemsTable">
 				<input type="checkbox" name="monitorLink"
 					tal:attributes="
@@ -266,30 +261,34 @@
 	</table>
 
 	<div class="hbSubmit">
-		<input class="hbSubmit" type="button" value="Submit"
-			onClick="validate(this.form);" />
-		<input class="hbSubmit" type="button" value="Add a child resource"
-			onClick="add_child_resource(this.form)" />
-		<input class="hbSubmit" value="Delete this resource"
-			onClick="delete_resource(this.form)" />
+		<input class="hbSubmit" type="button"
+			onClick="validate_form(this.form);"
+			tal:attributes="value python: sinfo and 'Apply' or 'Submit'" />
+
+		<tal:block tal:condition="sinfo">
+			<input class="hbSubmit" type="button" value="Add a child"
+				onClick="add_child_resource(this.form)" />
+			<input class="hbSubmit" type="button" value="Delete this resource"
+				onClick="delete_resource(this.form)" />
+		</tal:block>
 	</div>
 
 	</form>
 </div>
 
-<div id="FS" metal:define-macro="fs_macro">
+<div class="rescfg" id="FS" metal:define-macro="fs_macro">
 <tal:block tal:condition="python: ptype == '33' or ptype == '24'"
 	tal:define="
 		global edit python: True;
-		global resName res/name;
-		global mountPoint res/attrs/mountpoint;
-		global device res/attrs/device;
-		global fstype res/attrs/fstype;
-		global opt res/attrs/options;
-		global fsid res/attrs/fsid;
-		global force_unmount res/attrs/force_unmount;
-		global reboot_fail res/attrs/self_fence;
-		global fscheck res/attrs/force_fsck;
+		global resName res/name | nothing;
+		global mountPoint res/attrs/mountpoint | nothing;
+		global device res/attrs/device | nothing;
+		global fstype res/attrs/fstype | nothing;
+		global opt res/attrs/options | nothing;
+		global fsid res/attrs/fsid | nothing;
+		global force_unmount res/attrs/force_unmount | nothing;
+		global reboot_fail res/attrs/self_fence | nothing;
+		global fscheck res/attrs/force_fsck | nothing;
 		global cluname request/clustername;
 		tmp_URL context/cluster/index_html/absolute_url;
 		global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname+'&edit=1'" />
@@ -305,17 +304,20 @@
 		tmp_URL context/cluster/index_html/absolute_url;
 		global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname" />
 
-	<strong class="reshdr">File System Resource Configuration</strong>
+	<div class="reshdr">File System Resource Configuration</div>
 
 	<form name="fs_form" method="get" tal:attributes="action processURL">
-
 	<input name="pagetype" type="hidden" value="35" />
 
-	<input name="clustername" type="hidden" tal:attributes="value cluname" />
+	<input name="tree_level" type="hidden"
+		tal:attributes="value res/indent_ctr | string:0" />
+
+	<input name="clustername" type="hidden"
+		tal:attributes="value cluname | nothing" />
 
 	<input name="oldname" type="hidden"
 		tal:condition="python: edit == True"
-		tal:attributes="value res/name" />
+		tal:attributes="value res/name | nothing" />
 
 	<input name="edit" type="hidden" value="1"
 		tal:condition="python: edit == True" />
@@ -324,9 +326,7 @@
 
 	<table id="fileSystemTable" class="systemsTable">
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>Resource Name</strong>
-			</td>
+			<td class="systemsTable">Name</td>
 			<td class="systemsTable">
 				<input type="text" size="20"
 					id="resourceName" name="resourceName"
@@ -335,9 +335,7 @@
 		</tr>
 
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>File System Type</strong>
-			</td>
+			<td class="systemsTable">File system type</td>
 			<td class="systemsTable">
 				<select id="fstype" name="fstype">
 					<option name="ext3" value="ext3"
@@ -351,29 +349,23 @@
 		</tr>
 
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>Mount Point</strong>
-			</td>
+			<td class="systemsTable">Mount point</td>
 			<td class="systemsTable">
 				<input type="text" size="20" id="mountpoint" name="mountpoint"
-					tal:attributes="value mountPoint | nothing"/>
+					tal:attributes="value mountPoint | nothing" />
 			</td>
 		</tr>
 
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>Device</strong>
-			</td>
+			<td class="systemsTable">Device</td>
 			<td class="systemsTable">
 				<input type="text" size="20" id="device" name="device"
-					tal:attributes="value device | nothing"/>
+					tal:attributes="value device | nothing" />
 			</td>
 		</tr>
 
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>Options</strong>
-			</td>
+			<td class="systemsTable">Options</td>
 			<td class="systemsTable">
 				<input type="text" size="20" id="options" name="options"
 					tal:attributes="value opt | nothing" />
@@ -381,9 +373,7 @@
 		</tr>
 
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>File System ID</strong>
-			</td>
+			<td class="systemsTable">File system ID</td>
 			<td class="systemsTable">
 				<input type="text" size="20" id="fsid" name="fsid"
 					tal:attributes="value fsid | nothing" />
@@ -391,9 +381,7 @@
 		</tr>
 
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>Force unmount</strong>
-			</td>
+			<td class="systemsTable">Force unmount</td>
 			<td class="systemsTable">
 				<input type="checkbox" id="forceunmount" name="forceunmount"
 					tal:attributes="checked python: force_unmount == '1' and 'checked'" />
@@ -401,9 +389,7 @@
 		</tr>
 
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>Reboot host node if unmount fails</strong>
-			</td>
+			<td class="systemsTable">Reboot host node if unmount fails</td>
 			<td class="systemsTable">
 				<input type="checkbox" id="selffence" name="selffence"
 					tal:attributes="
@@ -412,9 +398,7 @@
 		</tr>
 
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>Check file system before mounting</strong>
-			</td>
+			<td class="systemsTable">Check file system before mounting</td>
 			<td class="systemsTable">
 				<input type="checkbox" id="checkfs" name="checkfs"
 					tal:attributes="
@@ -424,29 +408,33 @@
 	</table>
 
 	<div class="hbSubmit">
-		<input class="hbSubmit" type="button" value="Submit"
-			onClick="validate(this.form);" />
-		<input class="hbSubmit" type="button" value="Add a child resource"
-			onClick="add_child_resource(this.form)" />
-		<input class="hbSubmit" value="Delete this resource"
-			onClick="delete_resource(this.form)" />
+		<input class="hbSubmit" type="button"
+			onClick="validate_form(this.form);"
+			tal:attributes="value python: sinfo and 'Apply' or 'Submit'" />
+
+		<tal:block tal:condition="sinfo">
+			<input class="hbSubmit" type="button" value="Add a child"
+				onClick="add_child_resource(this.form)" />
+			<input class="hbSubmit" type="button" value="Delete this resource"
+				onClick="delete_resource(this.form)" />
+		</tal:block>
 	</div>
 
 	</form>
 </div>
 
-<div id="GFS" metal:define-macro="gfs_macro">
+<div class="rescfg" id="GFS" metal:define-macro="gfs_macro">
 <tal:block tal:condition="python: ptype == '33' or ptype =='24'"
 	tal:define="
 		global edit python: True;
-		global resName res/name;
-		global mountPoint res/attrs/mountpoint;
-		global device res/attrs/device;
-		global fstype res/attrs/fstype;
-		global opt res/attrs/options;
-		global fsid res/attrs/fsid;
-		global force_unmount res/attrs/force_unmount;
-		global cluname request/clustername;
+		global resName res/name | nothing;
+		global mountPoint res/attrs/mountpoint | nothing;
+		global device res/attrs/device | nothing;
+		global fstype res/attrs/fstype | nothing;
+		global opt res/attrs/options | nothing;
+		global fsid res/attrs/fsid | nothing;
+		global force_unmount res/attrs/force_unmount | nothing;
+		global cluname request/clustername | nothing;
 		tmp_URL context/cluster/index_html/absolute_url;
 		global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname+'&edit=1'" />
 
@@ -458,17 +446,20 @@
 		tmp_URL context/cluster/index_html/absolute_url;
 		global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname" />
 
-	<strong class="reshdr">GFS Resource Configuration</strong>
-	<form name="gfs_form" method="get" tal:attributes="action processURL">
+	<div class="reshdr">GFS Resource Configuration</div>
 
+	<form name="gfs_form" method="get" tal:attributes="action processURL">
 	<input name="pagetype" type="hidden" value="35" />
 
+	<input name="tree_level" type="hidden"
+		tal:attributes="value res/indent_ctr | string:0" />
+
 	<input name="clustername" type="hidden"
-		tal:attributes="value cluname" />
+		tal:attributes="value cluname | nothing" />
 
 	<input name="oldname" type="hidden"
 		tal:condition="python: edit == True"
-		tal:attributes="value res/name" />
+		tal:attributes="value res/name | nothing" />
 
 	<input name="edit" type="hidden" value="1"
 		tal:condition="python: edit == True" />
@@ -477,9 +468,7 @@
 
 	<table id="gfsTable" class="systemsTable">
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>Resource Name</strong>
-			</td>
+			<td class="systemsTable">Name</td>
 			<td class="systemsTable">
 				<input type="text" size="20"
 					id="resourceName" name="resourceName"
@@ -488,10 +477,7 @@
 		</tr>
 
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>Mount Point</strong>
-			</td>
-
+			<td class="systemsTable">Mount point</td>
 			<td class="systemsTable">
 				<input type="text" size="20" id="mountPoint" name="mountpoint"
 					tal:attributes="value mountpoint | nothing" />
@@ -499,9 +485,7 @@
 		</tr>
 
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>Device</strong>
-			</td>
+			<td class="systemsTable">Device</td>
 			<td class="systemsTable">
 				<input type="text" size="20" id="device" name="device"
 					tal:attributes="value device | nothing"/>
@@ -509,9 +493,7 @@
 		</tr>
 
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>Options</strong>
-			</td>
+			<td class="systemsTable">Options</td>
 			<td class="systemsTable">
 				<input type="text" size="20" id="options" name="options"
 					tal:attributes="value opt | nothing" />
@@ -519,9 +501,7 @@
 		</tr>
 
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>File System ID</strong>
-			</td>
+			<td class="systemsTable">File system ID</td>
 			<td class="systemsTable">
 				<input type="text" size="20" id="fsid" name="fsid"
 					tal:attributes="value fsid | nothing" />
@@ -529,9 +509,7 @@
 		</tr>
 
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>Force unmount</strong>
-			</td>
+			<td class="systemsTable">Force unmount</td>
 			<td class="systemsTable">
 				<input type="checkbox" id="forceunmount" name="forceunmount"
 					tal:attributes="
@@ -541,28 +519,32 @@
 	</table>
 
 	<div class="hbSubmit">
-		<input class="hbSubmit" type="button" value="Submit"
-			onClick="validate(this.form);" />
-		<input class="hbSubmit" type="button" value="Add a child resource"
-			onClick="add_child_resource(this.form)" />
-		<input class="hbSubmit" value="Delete this resource"
-			onClick="delete_resource(this.form)" />
+		<input class="hbSubmit" type="button"
+			onClick="validate_form(this.form);"
+			tal:attributes="value python: sinfo and 'Apply' or 'Submit'" />
+
+		<tal:block tal:condition="sinfo">
+			<input class="hbSubmit" type="button" value="Add a child"
+				onClick="add_child_resource(this.form)" />
+			<input class="hbSubmit" type="button" value="Delete this resource"
+				onClick="delete_resource(this.form)" />
+		</tal:block>
 	</div>
 
 	</form>
 </div>
 
-<div id="NFSM" metal:define-macro="nfsm_macro">
+<div class="rescfg" id="NFSM" metal:define-macro="nfsm_macro">
 <tal:block tal:condition="python: ptype == '33' or ptype =='24'"
 	tal:define="
 		global edit python: True;
-		global resName res/name;
-		global mountpoint res/attrs/mountpoint;
-		global opt res/attrs/options;
-		global expath res/attrs/export;
-		global nfstype res/attrs/fstype;
-		global hostname res/attrs/host;
-		global force_unmount res/attrs/force_unmount;
+		global resName res/name | nothing;
+		global mountpoint res/attrs/mountpoint | nothing;
+		global opt res/attrs/options | nothing;
+		global expath res/attrs/export | nothing;
+		global nfstype res/attrs/fstype | nothing;
+		global hostname res/attrs/host | nothing;
+		global force_unmount res/attrs/force_unmount | nothing;
 		global cluname request/clustername;
 		tmp_URL context/cluster/index_html/absolute_url;
 		global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname+'&edit=1'" />
@@ -574,17 +556,21 @@
 		global cluname request/clustername;
 		tmp_URL context/cluster/index_html/absolute_url;
 		global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname" />
-	<form name="nfsm_form" method="get" tal:attributes="action processURL">
 
-	<strong class="reshdr">NFS Mount Resource Configuration</strong>
+	<div class="reshdr">NFS Mount Resource Configuration</div>
 
+	<form name="nfsm_form" method="get" tal:attributes="action processURL">
 	<input name="pagetype" type="hidden" value="35" />
 
-	<input name="clustername" type="hidden" tal:attributes="value cluname"/>
+	<input name="tree_level" type="hidden"
+		tal:attributes="value res/indent_ctr | string:0" />
+
+	<input name="clustername" type="hidden"
+		tal:attributes="value cluname | nothing" />
 
 	<input name="oldname" type="hidden"
 		tal:condition="python: edit == True"
-		tal:attributes="value res/name" />
+		tal:attributes="value res/name | nothing" />
 
 	<input name="edit" type="hidden" value="1"
 		tal:condition="python: edit == True" />
@@ -593,9 +579,7 @@
 
 	<table id="nfsMountTable" class="systemsTable">
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>Resource Name</strong>
-			</td>
+			<td class="systemsTable">Name</td>
 			<td class="systemsTable">
 				<input type="text" size="20"
 					id="resourceName" name="resourceName"
@@ -604,9 +588,7 @@
 		</tr>
 
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>Mount Point</strong>
-			</td>
+			<td class="systemsTable">Mount point</td>
 			<td class="systemsTable">
 				<input type="text" size="20" id="mountpoint" name="mountpoint"
 					tal:attributes="value mountpoint | nothing" />
@@ -614,9 +596,7 @@
 		</tr>
 
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>Host</strong>
-			</td>
+			<td class="systemsTable">Host</td>
 			<td class="systemsTable">
 				<input type="text" size="20" id="host" name="host"
 					tal:attributes="value hostname | nothing" />
@@ -624,19 +604,15 @@
 		</tr>
 
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>Export Path</strong>
-			</td>
+			<td class="systemsTable">Export path</td>
 			<td class="systemsTable">
 				<input type="text" size="20" id="exportpath" name="exportpath"
-					tal:attributes="value expath | nothing"/>
+					tal:attributes="value expath | nothing" />
 			</td>
 		</tr>
 
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>NFS Type</strong>
-			</td>
+			<td class="systemsTable">NFS version</td>
 			<td class="systemsTable">
 				<input type="radio" name="nfstype" value="nfs"
 					tal:attributes="checked python: (edit == nothing or nfstype == 'nfs') and 'checked'" />
@@ -649,19 +625,15 @@
 		</tr>
 
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>Options</strong>
-			</td>
+			<td class="systemsTable">Options</td>
 			<td class="systemsTable">
 				<input type="text" size="20" id="options" name="options"
-					tal:attributes="value opt | nothing"/>
+					tal:attributes="value opt | nothing" />
 			</td>
 		</tr>
 
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>Force unmount</strong>
-			</td>
+			<td class="systemsTable">Force unmount</td>
 			<td class="systemsTable">
 				<input type="checkbox" id="forceunmount" name="forceunmount"
 					tal:attributes="
@@ -671,24 +643,28 @@
 	</table>
 
 	<div class="hbSubmit">
-		<input class="hbSubmit" type="button" value="Submit"
-			onClick="validate(this.form);" />
-		<input class="hbSubmit" type="button" value="Add a child resource"
-			onClick="add_child_resource(this.form)" />
-		<input class="hbSubmit" value="Delete this resource"
-			onClick="delete_resource(this.form)" />
+		<input class="hbSubmit" type="button"
+			onClick="validate_form(this.form);"
+			tal:attributes="value python: sinfo and 'Apply' or 'Submit'" />
+
+		<tal:block tal:condition="sinfo">
+			<input class="hbSubmit" type="button" value="Add a child"
+				onClick="add_child_resource(this.form)" />
+			<input class="hbSubmit" type="button" value="Delete this resource"
+				onClick="delete_resource(this.form)" />
+		</tal:block>
 	</div>
 
 	</form>
 </div>
 
-<div id="NFSC" metal:define-macro="nfsc_macro">
+<div class="rescfg" id="NFSC" metal:define-macro="nfsc_macro">
 <tal:block tal:condition="python: ptype == '33' or ptype == '24'"
 	tal:define="
 		global edit python: True;
-		global resName res/name;
-		global target res/attrs/target;
-		global opt res/attrs/options;
+		global resName res/name | nothing;
+		global target res/attrs/target | nothing;
+		global opt res/attrs/options | nothing;
 		global expath res/attrs/readOnly | nothing;
 		global cluname request/clustername;
 		tmp_URL context/cluster/index_html/absolute_url;
@@ -701,17 +677,20 @@
 		tmp_URL context/cluster/index_html/absolute_url;
 		global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname" />
 
-	<strong class="reshdr">NFS Client Resource Configuration</strong>
+	<div class="reshdr">NFS Client Resource Configuration</div>
 
 	<form name="nfsc_form" method="post" tal:attributes="action processURL">
-
 	<input name="pagetype" type="hidden" value="35" />
 
-	<input name="clustername" type="hidden" tal:attributes="value cluname" />
+	<input name="tree_level" type="hidden"
+		tal:attributes="value res/indent_ctr | string:0" />
+
+	<input name="clustername" type="hidden"
+		tal:attributes="value cluname | nothing" />
 
 	<input name="oldname" type="hidden"
 		tal:condition="python: edit == True"
-		tal:attributes="value res/name" />
+		tal:attributes="value res/name | nothing" />
 
 	<input name="edit" type="hidden" value="1"
 		tal:condition="python: edit == True" />
@@ -720,9 +699,7 @@
 
 	<table id="nfsClientTable" class="systemsTable">
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>Resource Name</strong>
-			</td>
+			<td class="systemsTable">Name</td>
 			<td class="systemsTable">
 				<input type="text" size="20"
 					id="resourceName" name="resourceName"
@@ -731,9 +708,7 @@
 		</tr>
 
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>Target</strong>
-			</td>
+			<td class="systemsTable">Target</td>
 			<td class="systemsTable">
 				<input type="text" size="20" id="target" name="target"
 					tal:attributes="value target | nothing"/>
@@ -741,9 +716,7 @@
 		</tr>
 
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>Options</strong>
-			</td>
+			<td class="systemsTable">Options</td>
 			<td class="systemsTable">
 				<input type="text" size="20" id="options" name="options"
 					tal:attributes="value opt | nothing"/>
@@ -752,22 +725,26 @@
 	</table>
 
 	<div class="hbSubmit">
-		<input class="hbSubmit" type="button" value="Submit"
-			onClick="validate(this.form);" />
-		<input class="hbSubmit" type="button" value="Add a child resource"
-			onClick="add_child_resource(this.form)" />
-		<input class="hbSubmit" value="Delete this resource"
-			onClick="delete_resource(this.form)" />
+		<input class="hbSubmit" type="button"
+			onClick="validate_form(this.form);"
+			tal:attributes="value python: sinfo and 'Apply' or 'Submit'" />
+
+		<tal:block tal:condition="sinfo">
+			<input class="hbSubmit" type="button" value="Add a child"
+				onClick="add_child_resource(this.form)" />
+			<input class="hbSubmit" type="button" value="Delete this resource"
+				onClick="delete_resource(this.form)" />
+		</tal:block>
 	</div>
 
 	</form>
 </div>
 
-<div id="NFSX" metal:define-macro="nfsx_macro">
+<div class="rescfg" id="NFSX" metal:define-macro="nfsx_macro">
 <tal:block tal:condition="python: ptype == '33' or ptype == '24'"
 	tal:define="
 		global edit python: True;
-		global resName res/name;
+		global resName res/name | nothing;
 		global cluname request/clustername;
 		tmp_URL context/cluster/index_html/absolute_url;
 		global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname+'&edit=1'" />
@@ -778,16 +755,20 @@
 		tmp_URL context/cluster/index_html/absolute_url;
 		global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname" />
 
-	<strong class="reshdr">NFS Export Resource Configuration</strong>
-	<form name="nfsx_form" method="post" tal:attributes="action processURL">
+	<div class="reshdr">NFS Export Resource Configuration</div>
 
+	<form name="nfsx_form" method="post" tal:attributes="action processURL">
 	<input name="pagetype" type="hidden" value="35" />
 
-	<input name="clustername" type="hidden" tal:attributes="value cluname" />
+	<input name="tree_level" type="hidden"
+		tal:attributes="value res/indent_ctr | string:0" />
+
+	<input name="clustername" type="hidden"
+		tal:attributes="value cluname | nothing" />
 
 	<input name="oldname" type="hidden"
 		tal:condition="python: edit == True"
-		tal:attributes="value res/name" />
+		tal:attributes="value res/name | nothing" />
 
 	<input name="edit" type="hidden" value="1"
 		tal:condition="python: edit == True" />
@@ -796,9 +777,7 @@
 
 	<table id="nfsExportTable" class="systemsTable">
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>Name</strong>
-			</td>
+			<td class="systemsTable">Name</td>
 			<td class="systemsTable">
 				<input type="text" size="20"
 					id="resourceName" name="resourceName"
@@ -808,23 +787,27 @@
 	</table>
 
 	<div class="hbSubmit">
-		<input class="hbSubmit" type="button" value="Submit"
-			onClick="validate(this.form);" />
-		<input class="hbSubmit" type="button" value="Add a child resource"
-			onClick="add_child_resource(this.form)" />
-		<input class="hbSubmit" value="Delete this resource"
-			onClick="delete_resource(this.form)" />
+		<input class="hbSubmit" type="button"
+			onClick="validate_form(this.form);"
+			tal:attributes="value python: sinfo and 'Apply' or 'Submit'" />
+
+		<tal:block tal:condition="sinfo">
+			<input class="hbSubmit" type="button" value="Add a child"
+				onClick="add_child_resource(this.form)" />
+			<input class="hbSubmit" type="button" value="Delete this resource"
+				onClick="delete_resource(this.form)" />
+		</tal:block>
 	</div>
 
 	</form>
 </div>
 
-<div id="SCR" metal:define-macro="scr_macro">
+<div class="rescfg" id="SCR" metal:define-macro="scr_macro">
 <tal:block tal:condition="python: ptype == '33' or ptype == '24'"
 	tal:define="
 		global edit string:true;
-		global resName res/name;
-		global filename res/attrs/file;
+		global resName res/name | nothing;
+		global filename res/attrs/file | nothing;
 		global cluname request/clustername;
 		tmp_URL context/cluster/index_html/absolute_url;
 		global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname+'&edit=1'" />
@@ -835,16 +818,20 @@
 		tmp_URL context/cluster/index_html/absolute_url;
 		global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname" />
 
-	<strong class="reshdr">Script Resource Configuration</strong>
-	<form name="scr_form" method="post" tal:attributes="action processURL">
+	<div class="reshdr">Script Resource Configuration</div>
 
+	<form name="scr_form" method="post" tal:attributes="action processURL">
 	<input name="pagetype" type="hidden" value="35" />
 
-	<input name="clustername" type="hidden" tal:attributes="value cluname" />
+	<input name="tree_level" type="hidden"
+		tal:attributes="value res/indent_ctr | string:0" />
+
+	<input name="clustername" type="hidden"
+		tal:attributes="value cluname | nothing" />
 
 	<input name="oldname" type="hidden"
 		tal:condition="python: edit == 'true'"
-		tal:attributes="value res/name" />
+		tal:attributes="value res/name | nothing" />
 
 	<input name="edit" type="hidden" value="1"
 		tal:condition="python: edit == 'true'" />
@@ -853,9 +840,7 @@
 
 	<table id="scriptTable" class="systemsTable">
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>Name</strong>
-			</td>
+			<td class="systemsTable">Name</td>
 			<td class="systemsTable">
 				<input type="text" size="20"
 					id="resourceName" name="resourceName"
@@ -864,9 +849,7 @@
 		</tr>
 
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>Full path to script file</strong>
-			</td>
+			<td class="systemsTable">Full path to script file</td>
 			<td class="systemsTable">
 				<input type="text" size="20" id="file" name="file"
 					tal:attributes="value filename | nothing" />
@@ -875,45 +858,55 @@
 	</table>
 
 	<div class="hbSubmit">
-		<input class="hbSubmit" type="button" value="Submit"
-			onClick="validate(this.form);" />
-		<input class="hbSubmit" type="button" value="Add a child resource"
-			onClick="add_child_resource(this.form)" />
-		<input class="hbSubmit" value="Delete this resource"
-			onClick="delete_resource(this.form)" />
+		<input class="hbSubmit" type="button"
+			onClick="validate_form(this.form);"
+			tal:attributes="value python: sinfo and 'Apply' or 'Submit'" />
+
+		<tal:block tal:condition="sinfo">
+			<input class="hbSubmit" type="button" value="Add a child"
+				onClick="add_child_resource(this.form)" />
+			<input class="hbSubmit" type="button" value="Delete this resource"
+				onClick="delete_resource(this.form)" />
+		</tal:block>
 	</div>
 
 	</form>
 </div>
 
-<div id="SMB" metal:define-macro="smb_macro">
+<div class="rescfg" id="SMB" metal:define-macro="smb_macro">
 <tal:block tal:condition="python: ptype == '33' or ptype == '24'"
 	tal:define="
 		global edit python: True;
-		global resName res/name;
-		global workgroup res/attrs/workgroup;
+		global resName res/name | nothing;
+		global workgroup res/attrs/workgroup | nothing;
 		global cluname request/clustername;
 		tmp_URL context/cluster/index_html/absolute_url;
 		global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname+'&edit=1'" />
 
 <tal:block tal:condition="python: ptype != '33'"
 	tal:define="
-		global edit python: false;
+		global edit python: False;
 		global cluname request/clustername;
 		tmp_URL context/cluster/index_html/absolute_url;
 		global processURL python: tmp_URL+'?pagetype=35&clustername='+cluname" />
 
-	<strong class="reshdr" tal:condition="python: edit != 'true'">Samba Server Configuration</strong>
+	<div class="reshdr"
+		tal:condition="python: edit != 'true'">
+		Samba Server Configuration
+	</div>
 
 	<form name="smb_form" method="post" tal:attributes="action processURL">
-
 	<input name="pagetype" type="hidden" value="35" />
 
-	<input name="clustername" type="hidden" tal:attributes="value cluname" />
+	<input name="tree_level" type="hidden"
+		tal:attributes="value res/indent_ctr | string:0" />
+
+	<input name="clustername" type="hidden"
+		tal:attributes="value cluname | nothing" />
 
 	<input name="oldname" type="hidden"
 		tal:condition="python: edit == True"
-		tal:attributes="value res/name" />
+		tal:attributes="value res/name | nothing" />
 
 	<input name="edit" type="hidden" value="1"
 		tal:condition="python: edit == True" />
@@ -922,9 +915,7 @@
 
 	<table id="sambaTable" class="systemsTable">
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>Name</strong>
-			</td>
+			<td class="systemsTable">Name</td>
 			<td class="systemsTable">
 				<input type="text" size="20"
 					id="resourceName" name="resourceName"
@@ -933,9 +924,7 @@
 		</tr>
 
 		<tr class="systemsTable">
-			<td class="systemsTable">
-				<strong>Workgroup</strong>
-			</td>
+			<td class="systemsTable">Workgroup</td>
 			<td class="systemsTable">
 				<input type="text" size="20" id="workgroup" name="workgroup"
 					tal:attributes="value workgroup | nothing"/>
@@ -944,12 +933,16 @@
 	</table>
 
 	<div class="hbSubmit">
-		<input class="hbSubmit" type="button" value="Submit"
-			onClick="validate(this.form);" />
-		<input class="hbSubmit" type="button" value="Add a child resource"
-			onClick="add_child_resource(this.form)" />
-		<input class="hbSubmit" value="Delete this resource"
-			onClick="delete_resource(this.form)" />
+		<input class="hbSubmit" type="button"
+			onClick="validate_form(this.form);"
+			tal:attributes="value python: sinfo and 'Apply' or 'Submit'" />
+
+		<tal:block tal:condition="sinfo">
+			<input class="hbSubmit" type="button" value="Add a child"
+				onClick="add_child_resource(this.form)" />
+			<input class="hbSubmit" type="button" value="Delete this resource"
+				onClick="delete_resource(this.form)" />
+		</tal:block>
 	</div>
 
 	</form>
--- conga/luci/cluster/resource_form_handlers.js	2006/09/06 22:13:33	1.4
+++ conga/luci/cluster/resource_form_handlers.js	2006/09/08 22:54:32	1.5
@@ -18,11 +18,14 @@
 
 function validate_ip(form) {
 	var errors = new Array();
-	var ipstr =	form.ip1.value + '.' + form.ip2.value + '.' +
-				form.ip3.value + '.' + form.ip4.value;
 
+	if (!form.ip_address || str_is_blank(form.ip_address.value))
+		errors.push('You did not give an IP address.');
+	return (errors);
+
+	var ipstr =	form.ip_address.value;
 	if (!isValidHost(ipstr))
-		errors.push('\"' + ipstr '\" is an invalid IP address.');
+		errors.push('\"' + ipstr + '\" is an invalid IP address.');
 	return (errors);
 }
 
@@ -71,7 +74,7 @@
 }
 
 function validate_gfs(form) {
-	my errors = new Array();
+	var errors = new Array();
 
 	if (!form.mountpoint || str_is_blank(form.mountpoint.value))
 		errors.push('No file system mount point was given.');
@@ -110,20 +113,33 @@
 form_validators['scr'] = validate_script;
 form_validators['smb'] = validate_samba;
 
-function validate(form) {
+function validate_form(form) {
 	var valfn = form_validators[form.type.value];
 	if (!valfn)
 		return (-1);
 
-	if (error_dialog(valfn(form)))
+	var errors = valfn(form);
+	if (form.type.value != 'ip') {
+		if (!form.resourceName || str_is_blank(form.resourceName.value))
+			errors.push('No resource name was given.')
+	}
+
+	if (error_dialog(errors))
 		return (-1);
 	form.submit();
 }
 
 function delete_resource(form) {
-	return (-1);
+	if (!confirm('Are you sure you want to delete this resource?'))
+		return (-1);
+	form.submit();
 }
 
 function add_child_resource(form) {
-	return (-1);
+	if (!form || !form.tree_level ||
+		!is_valid_int(form.tree_level.value, 0, null))
+	{
+		return (-1);
+	}
+	var level = Number(form.tree_level.value);
 }
--- conga/luci/homebase/homebase_common.js	2006/09/05 21:25:45	1.7
+++ conga/luci/homebase/homebase_common.js	2006/09/08 22:54:32	1.8
@@ -8,14 +8,22 @@
 	else
 		span = null;
 
-	div = image.parentNode.parentNode.parentNode.getElementsByTagName('div');
-	if (!div || div.length < 1)
+	var div = null;
+	divc = image.parentNode.parentNode.parentNode.getElementsByTagName('div');
+	for (var i = 0 ; i < divc.length ; i++) {
+		if (divc[i].className.match(/service_comp/)) {
+			div = divc[i];
+			break;
+		}
+	}
+
+	if (!div)
 		return (-1);
-	div = div[3];
 
 	if (image.name == 'arrow_down') {
 		image.src = 'arrow_right.png';
 		image.name = 'arrow_right';
+		image.alt = '[-]';
 		if (span)
 			span.innerHTML = 'Show Children';
 		div.style.visibility = 'hidden';
@@ -23,6 +31,7 @@
 	} else {
 		image.src = 'arrow_down.png';
 		image.name = 'arrow_down';
+		image.alt = '[+]';
 		if (span)
 			span.innerHTML = 'Hide Children';
 		div.style.visibility = 'inherit';
--- conga/luci/homebase/luci_homebase.css	2006/09/06 22:14:42	1.19
+++ conga/luci/homebase/luci_homebase.css	2006/09/08 22:54:32	1.20
@@ -259,14 +259,23 @@
 strong.cluster {
 	text-align: top;
 	font-size: 9pt;
-	letter-spacing: 120%;
+	letter-spacing: +1px;
 }
 
+*.reshdr {
+	text-align: top;
+	font-size: 9pt;
+	letter-spacing: +1px;
+	font-weight: 600;
+	padding-bottom: +1em;
+}
+
+
 strong.service_name,
 strong.node_name,
 strong.cluster_name {
 	font-size: 10pt;
-	letter-spacing: 120%;
+	letter-spacing: +1px;
 }
 
 td.service_name,
@@ -363,38 +372,36 @@
 }
 
 div.systemsList {
-	margin-top: .25em !important;
-	margin-bottom: .25em !important;
+	margin-top: .25em ! important;
+	margin-bottom: .25em ! important;
 }
 
-div.service_comp {
+#service_comp_list {
 	background: #dee7ec;
-	padding: .66em;
-	margin-top: .5em;
-}
-
-div.rc_indent0 {
-	margin-left: 0px;
 	max-width: 700px;
+	padding: 1em;
 }
 
-div.rc_indent1 {
-	margin-left: 30px 
-}
-
-div.rc_indent2 {
-	margin-left: 60px 
+div.rescfg {
+	background: #dee7ec;
 }
 
-div.rc_indent3 {
-	margin-left: 90px 
+div.service_comp {
+	background: #dee7ec;
+	padding: .66em;
+	margin-top: .5em;
+	border-left: thin solid #c9c9c9;
+	border-bottom: thin solid #c9c9c9;
+	margin-bottom: 1em;
 }
 
-div.rc_indent4 {
-	margin-left: 120px 
+div.service_comp > div.service_comp {
+	margin-left: +20px;
+	margin-bottom: 0px;
+	border-bottom: none;
 }
-
-div.rc_indent5 {
-	margin-left: 150px 
+/*
+div.rc_indent0 {
+	border-left: none ! important;
 }
-
+*/
--- conga/luci/site/luci/Extensions/cluster_adapters.py	2006/08/30 22:59:01	1.62
+++ conga/luci/site/luci/Extensions/cluster_adapters.py	2006/09/08 22:54:32	1.63
@@ -150,7 +150,7 @@
 			cluster_properties['isComplete'] = False
 			errors.append(error)
 			return (False, {'errors': errors, 'requestResults':cluster_properties })
-                batch_id_map = {}
+		batch_id_map = {}
 		for i in nodeList:
 			try:
 				rc = RicciCommunicator(i['ricci_host'])
@@ -1786,21 +1786,23 @@
   return resList
                                                                                 
 def getResourceInfo(modelb, request):
-  resMap = {}
-  name = request['resourcename']
-  baseurl = request['URL']
-  cluname = request['clustername']
-  for res in modelb.getResources():
-    if res.getName() == name:
-          resMap['name'] = res.getName()
-	  resMap['type'] = res.resource_type
-	  resMap['tag_name'] = res.TAG_NAME
-	  resMap['attrs'] = res.attr_hash
-	  resMap['cfgurl'] = baseurl + "?" + "clustername=" + cluname + "&resourcename=" + res.getName() + "&pagetype=" + RESOURCE_CONFIG
-          return resMap
-
-  return {}
+	resMap = {}
 
+	try:
+		name = request['resourcename']
+		baseurl = request['URL']
+		cluname = request['clustername']
+
+		for res in modelb.getResources():
+			if res.getName() == name:
+				resMap['name'] = res.getName()
+				resMap['type'] = res.resource_type
+				resMap['tag_name'] = res.TAG_NAME
+				resMap['attrs'] = res.attr_hash
+				resMap['cfgurl'] = baseurl + "?" + "clustername=" + cluname + "&resourcename=" + res.getName() + "&pagetype=" + RESOURCE_CONFIG
+				return resMap
+	except: pass
+	return {}
 
 def delResource(self, request, ragent):
   modelb = request.SESSION.get('model')
@@ -1906,13 +1908,13 @@
   else:
     res = apply(Ip)
   form = request.form
-  addr = form["ip1"]+"."+form["ip2"]+"."+form["ip3"]+"."+form["ip4"]
+  addr = form['ip_address']
   res.attr_hash["address"] = addr
   if form.has_key('monitorLink'):
     res.attr_hash["monitor_link"] = '1'
   else:
     res.attr_hash["monitor_link"] = '0'
-  modelb.getResourcesPtr().addChild(res);
+  modelb.getResourcesPtr().addChild(res)
   return res
 
 def addFs(request):
@@ -1943,7 +1945,7 @@
   else:
     res.attr_hash["force_fsck"] = '0'
                                                                                 
-  modelb.getResourcesPtr().addChild(res);
+  modelb.getResourcesPtr().addChild(res)
   return res
                                                                                 
 def addGfs(request):
@@ -1964,7 +1966,7 @@
   else:
     res.attr_hash["force_unmount"] = '0'
                                                                                 
-  modelb.getResourcesPtr().addChild(res);
+  modelb.getResourcesPtr().addChild(res)
   return res
 
 def addNfsm(request):
@@ -1986,7 +1988,7 @@
   else:
     res.attr_hash["force_unmount"] = '0'
                                                                                 
-  modelb.getResourcesPtr().addChild(res);
+  modelb.getResourcesPtr().addChild(res)
   return res
                                                                                 
 def addNfsc(request):
@@ -2000,7 +2002,7 @@
   res.attr_hash["target"] = form["target"]
   res.attr_hash["options"] = form["options"]
                                                                                 
-  modelb.getResourcesPtr().addChild(res);
+  modelb.getResourcesPtr().addChild(res)
   return res
                                                                                 
 def addNfsx(request):
@@ -2012,7 +2014,7 @@
   form = request.form
   res.attr_hash["name"] = form["resourceName"]
                                                                                 
-  modelb.getResourcesPtr().addChild(res);
+  modelb.getResourcesPtr().addChild(res)
   return res
 
 def addScr(request):
@@ -2025,7 +2027,7 @@
   res.attr_hash["name"] = form["resourceName"]
   res.attr_hash["file"] = form["file"]
                                                                                 
-  modelb.getResourcesPtr().addChild(res);
+  modelb.getResourcesPtr().addChild(res)
   return res
                                                                                 
 def addSmb(request):
@@ -2038,7 +2040,7 @@
   res.attr_hash["name"] = form["resourceName"]
   res.attr_hash["workgroup"] = form["workgroup"]
                                                                                 
-  modelb.getResourcesPtr().addChild(res);
+  modelb.getResourcesPtr().addChild(res)
   return res
                                                                                 
 def appendModel(request, model):




More information about the Cluster-devel mailing list