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

rmccabe at sourceware.org rmccabe at sourceware.org
Fri Jan 26 17:56:15 UTC 2007


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

Modified files:
	luci/cluster   : form-macros resource-form-macros 
	                 resource_form_handlers.js 
	luci/site/luci/Extensions: cluster_adapters.py 

Log message:
	fix for adding global resources to services and other cleanup/polish

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.162&r2=1.163
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/resource-form-macros.diff?cvsroot=cluster&r1=1.29&r2=1.30
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/resource_form_handlers.js.diff?cvsroot=cluster&r1=1.28&r2=1.29
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/cluster_adapters.py.diff?cvsroot=cluster&r1=1.211&r2=1.212

--- conga/luci/cluster/form-macros	2007/01/26 16:53:53	1.162
+++ conga/luci/cluster/form-macros	2007/01/26 17:56:14	1.163
@@ -223,14 +223,14 @@
 
 		<table id="systemsTable" class="systemsTable" cellspacing="0">
 			<thead class="systemsTable">
-                <tr class="systemsTable"><td class="systemsTable" colspan="2">
-                    <div class="systemsTableTop">
-                        <strong>Cluster Name</strong>
-                        <input class="hbInputSys" type="text"
+				<tr class="systemsTable"><td class="systemsTable" colspan="2">
+					<div class="systemsTableTop">
+						<strong>Cluster Name</strong>
+						<input class="hbInputSys" type="text"
 							id="clusterName" name="clusterName"
 							tal:attributes="value add_cluster/name | nothing" />
-                    </div>
-                </td></tr>
+					</div>
+				</td></tr>
 				<tr class="systemsTable">
 					<th class="systemsTable">Node Hostname</th>
 					<th class="systemsTable">Root Password</th>
@@ -2700,62 +2700,62 @@
 <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 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 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 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 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 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 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 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 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 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 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 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 tal:condition="python: cur_fence_type == 'fence_bladecenter'">
 		<tal:block
 			metal:use-macro="here/form-macros/macros/fence-instance-form-bladecenter" />
 	</tal:block>
@@ -3738,8 +3738,10 @@
 		<tal:block tal:repeat="gr global_resources">
 			<tal:block tal:define="
 				global res gr;
-				global type res/type;
+				global type python: 'tag_name' in res and res['tag_name'] or '';
 				global resourceIsRef python: True" />
+				<span tal:content="type" />
+				<span tal:content="res" />
 
 			<tal:block metal:use-macro="here/form-macros/macros/serviceconfig-type-macro" />
 		</tal:block>
@@ -3790,45 +3792,55 @@
 </div>
 
 <div metal:define-macro="serviceconfig-type-macro" tal:omit-tag="">
-	<tal:block tal:condition="python: type == 'ip' or type == 'IP Address: '">
-		<tal:block
-			metal:use-macro="here/resource-form-macros/macros/ip_macro" />
+	<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' or type == 'File System: '">
-		<tal:block
-			metal:use-macro="here/resource-form-macros/macros/fs_macro" />
+	<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 == 'GFS: '">
-		<tal:block
-			metal:use-macro="here/resource-form-macros/macros/gfs_macro" />
+	<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 == 'nfsm' or type == 'NFS Mount: '">
-		<tal:block
-			metal:use-macro="here/resource-form-macros/macros/nfsm_macro" />
+	<tal:block tal:condition="python: type == 'nfsm'">
+		<div metal:use-macro="here/resource-form-macros/macros/nfsm_macro"/>
 	</tal:block>
 
-	<tal:block tal:condition="python: type == 'nfsx' or type == 'NFS Export: '">
-		<tal:block
-			metal:use-macro="here/resource-form-macros/macros/nfsx_macro" />
+	<tal:block tal:condition="python: type == 'nfsx'">
+		<div metal:use-macro="here/resource-form-macros/macros/nfsx_macro"/>
 	</tal:block>
 
-	<tal:block tal:condition="python: type == 'nfsc' or type == 'NFS Client: '">
-		<tal:block
-			metal:use-macro="here/resource-form-macros/macros/nfsc_macro" />
+	<tal:block tal:condition="python: type == 'nfsc'">
+		<div metal:use-macro="here/resource-form-macros/macros/nfsc_macro"/>
 	</tal:block>
 
-	<tal:block
-		tal:condition="python: type == 'smb' or type == 'Samba Service: '">
-		<tal:block
-			metal:use-macro="here/resource-form-macros/macros/smb_macro" />
+	<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' or type == 'Script: '">
-		<tal:block
-			metal:use-macro="here/resource-form-macros/macros/scr_macro" />
+	<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 == '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>
 </div>
 
@@ -3930,7 +3942,7 @@
 			tal:replace="structure python: '<div class=nothing>'" />
 
 		<tal:block tal:define="
-			global type res/type;
+			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" />
@@ -3979,9 +3991,11 @@
 		<tal:block tal:repeat="gr global_resources">
 			<tal:block tal:define="
 				global res gr;
-				global type res/type;
+				global type python: 'tag_name' in res and res['tag_name'] or '';
 				global resourceIsRef python: True" />
 
+				<span tal:content="type" />
+				<span tal:content="res" />
 			<tal:block metal:use-macro="here/form-macros/macros/serviceconfig-type-macro" />
 		</tal:block>
 	</div>
@@ -4238,12 +4252,12 @@
 
 	<tal:block tal:condition="exists: fencedevs/fencedevs">
 		<table class="systemsTable">
-	        <thead 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>
+				</tr>
 			</thead>
 			<tr class="systemsTable" tal:repeat="f fencedevs/fencedevs">
 				<td class="systemsTable" tal:content="f/name | string:[unknown]"/>
@@ -4334,7 +4348,7 @@
 		<tal:block metal:use-macro="here/form-macros/macros/fence-form-manual" />
 	</tal:block>
 
-    <tal:block tal:condition="exists:cur_fencedev/unknown">
+	<tal:block tal:condition="exists:cur_fencedev/unknown">
 		<tal:block metal:use-macro="here/form-macros/macros/fence-form-unknown" />
 	</tal:block>
 </div>
@@ -4376,7 +4390,7 @@
 				tal:attributes="value request/clustername" />
 			<input type="hidden" name="orig_name"
 				tal:attributes="value request/fencename"/>
-  			<input type="hidden" name="fencename"
+			<input type="hidden" name="fencename"
 				tal:attributes="value request/fencename" />
 
 			<div class="hbSubmit">
@@ -4408,22 +4422,28 @@
 <div metal:define-macro="conf_editor-form">
 	<h2>Edit cluster.conf</h2>
 	<form method="post"
-	      tal:attributes="action python: './?' + request['QUERY_STRING']"
-	      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"
-		    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']"/>
-	  <input tal:attributes="type  string:hidden;
-	                         name  string:clustername;
-	                         value python:request['clustername']"/>
-	  <input type="button" 
-	         value="Reset"
-	         tal:attributes="onclick python:'window.location.assign(\'./?pagetype=' + request['pagetype'] + '&clustername=' + request['clustername'] + '\')'"/>
-	  <input type="submit" value="Propagate"/>
+		tal:attributes="action python: './?' + request['QUERY_STRING']"
+		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"
+		tal:attributes="rows python: len(ret['cluster_conf'].splitlines()) + 8"
+		tal:content="structure ret/cluster_conf">
+	</textarea>
+
+	<input type="hidden" name="pagetype"
+		 tal:attributes="
+			value request/pagetype | nothing" />
+
+	<input type="hidden" name="clustername"
+		tal:attributes="
+			value request/clustername | nothing" />
+
+	<input type="button" value="Reset"
+		tal:attributes="onclick python:'window.location.assign(\'./?pagetype=' + request['pagetype'] + '&clustername=' + request['clustername'] + '\')'" />
+
+	<input type="submit" value="Propagate" />
 	</form>
 </div>
 
--- conga/luci/cluster/resource-form-macros	2007/01/22 17:05:59	1.29
+++ conga/luci/cluster/resource-form-macros	2007/01/26 17:56:14	1.30
@@ -281,66 +281,17 @@
 	</script>
 
 	<tal:block tal:define="global resourcename request/resourcename | request/form/resourceName | nothing" />
+
 	<tal:block tal:condition="resourcename"
 		tal:define="
 			global res python: here.getResourceInfo(modelb, request);
 			global type python: 'tag_name' in res and res['tag_name'] or ''">
 
 	<h2>Configure <span tal:replace="res/name | string: resource" /></h2>
+	<br/>
 
-	<div class="reschoose">
-		<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 == 'nfsm'">
-			<div metal:use-macro="here/resource-form-macros/macros/nfsm_macro"/>
-		</tal:block>
-
-		<tal:block tal:condition="python: type == 'nfsx'">
-			<div metal:use-macro="here/resource-form-macros/macros/nfsx_macro"/>
-		</tal:block>
-
-		<tal:block tal:condition="python: type == 'nfsc'">
-			<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 == '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>
-	</div>
+	<div class="reschoose"
+		metal:use-macro="here/form-macros/macros/serviceconfig-type-macro" />
 	</tal:block>
 </div>
 
--- conga/luci/cluster/resource_form_handlers.js	2007/01/22 17:06:00	1.28
+++ conga/luci/cluster/resource_form_handlers.js	2007/01/26 17:56:14	1.29
@@ -279,7 +279,10 @@
 	var errors = check_form(form);
 	if (error_dialog(errors))
 		return (-1);
-	form.submit();
+
+	var confirm_str = form.edit ? 'Update this resource?' : 'Add this resource?';
+	if (confirm(confirm_str))
+		form.submit();
 }
 
 function delete_resource(form) {
--- conga/luci/site/luci/Extensions/cluster_adapters.py	2007/01/24 19:45:44	1.211
+++ conga/luci/site/luci/Extensions/cluster_adapters.py	2007/01/26 17:56:14	1.212
@@ -5050,6 +5050,7 @@
 		itemmap['name'] = item.getName()
 		itemmap['attrs'] = item.attr_hash
 		itemmap['type'] = item.resource_type
+		itemmap['tag_name'] = item.TAG_NAME
 		itemmap['cfgurl'] = baseurl + "?" + "clustername=" + cluname + "&resourcename=" + item.getName() + "&pagetype=" + RESOURCE_CONFIG
 		itemmap['url'] = baseurl + "?" + "clustername=" + cluname + "&resourcename=" + item.getName() + "&pagetype=" + RESOURCE
 		itemmap['delurl'] = baseurl + "?" + "clustername=" + cluname + "&resourcename=" + item.getName() + "&pagetype=" + RESOURCE_REMOVE
@@ -5264,7 +5265,7 @@
 		return errstr
 
 	try:
-		set_node_flag(self, clustername, ragent, str(batch_number), RESOURCE_REMOVE, "Removing Resource \'%s\'" % request['resourcename'])
+		set_node_flag(self, clustername, ragent, str(batch_number), RESOURCE_REMOVE, "Removing resource \'%s\'" % request['resourcename'])
 	except Exception, e:
 		luci_log.debug_verbose('delResource7: failed to set flags: %s' % str(e))
 
@@ -6593,7 +6594,17 @@
 		res_name = res.attr_hash['address']
 
 	try:
-		set_node_flag(self, clustername, ragent, str(batch_number), RESOURCE_ADD, "Creating New Resource \'%s\'" % res_name)
+		try:
+			if request.form.has_key('edit'):
+				action_type = RESOURCE_CONFIG
+				action_str = 'Configuring resource \"%s\"' % res_name
+			else:
+				raise Exception, 'new'
+		except Exception, e:
+			action_type = RESOURCE_ADD
+			action_str = 'Creating new resource \"%s\"' % res_name
+
+		set_node_flag(self, clustername, ragent, str(batch_number), action_type, action_str)
 	except Exception, e:
 		luci_log.debug_verbose('addResource7: failed to set flags: %s' % str(e))
 




More information about the Cluster-devel mailing list