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

rmccabe at sourceware.org rmccabe at sourceware.org
Thu Aug 9 04:37:21 UTC 2007


CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2007-08-09 04:37:21

Modified files:
	luci/cluster   : form-macros validate_xvm_key.js 
	luci/site/luci/Extensions: StorageReport.py cluster_adapters.py 
	luci/storage   : form-macros 

Log message:
	pull in fixes from the RHEL5 branch

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.206&r2=1.207
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/validate_xvm_key.js.diff?cvsroot=cluster&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/StorageReport.py.diff?cvsroot=cluster&r1=1.25&r2=1.26
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/cluster_adapters.py.diff?cvsroot=cluster&r1=1.266&r2=1.267
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/form-macros.diff?cvsroot=cluster&r1=1.22&r2=1.23

--- conga/luci/cluster/form-macros	2007/08/08 21:00:06	1.206
+++ conga/luci/cluster/form-macros	2007/08/09 04:37:20	1.207
@@ -982,7 +982,7 @@
 
 				<tr id="fence_xvm_config" class="invisible">
 					<td class="systemsTable" colspan="2" id="fence_xvm_config">
-						<table class="systemsTable">
+						<table class="systemsTable" width="100%">
 							<tr class="systemsTable">
 								<td class="systemsTable">
 									<div id="fence_xvm_hosts" />
--- conga/luci/cluster/validate_xvm_key.js	2007/08/08 21:00:06	1.1
+++ conga/luci/cluster/validate_xvm_key.js	2007/08/09 04:37:20	1.2
@@ -12,16 +12,21 @@
 	var node_num = 0;
 
 	var hclu_elem = document.getElementById('host_cluster_name');
-	if (hclu_elem) {
+	if (hclu_elem && hclu_elem.value) {
 		++node_num;
 		url += '&node' + node_num + '=' + hclu_elem.value;
 	}
 	var vclu_elem = document.getElementById('virt_cluster_name');
-	if (vclu_elem) {
+	if (vclu_elem && vclu_elem.value) {
 		++node_num;
 		url += '&node' + node_num + '=' + vclu_elem.value;
 	}
-    initiate_async_get(url, cluster_member_callback);
+
+	if (!node_num) {
+		alert('No node names were entered');
+	} else {
+	    initiate_async_get(url, cluster_member_callback);
+	}
 }
 
 function cluster_member_callback() {
@@ -50,9 +55,15 @@
 		return;
 	}
 
-	obj = obj.responseXML;
+	try {
+		obj = obj.responseXML.getElementsByTagName('dict')[0];
+	} catch (e) {
+		alert('Received a malformed response from the luci server.');
+		return;
+	}
+
 	var clusters = [];
-	var dict_tags = obj.firstChild.getElementsByTagName('dict');
+	var dict_tags = obj.getElementsByTagName('dict');
 	for (var i = 0 ; i < dict_tags.length ; i++) {
 		try {
 			var cnode_names = [];
@@ -81,31 +92,33 @@
 	for (var i = 0 ; i < clusters.length ; i++) {
 		var cnode_list = clusters[i][1];
 
-		var div = document.createElement('div');
-		var p = document.createElement('p');
 		var span = document.createElement('strong');
-		var ul = document.createElement('ul');
-
-		p.className = 'cluster';
 		span.className = 'cluster';
-		span.textContent = 'Cluster: ' + clusters[i][0];
 
-		p.appendChild(span);
-		div.appendChild(p);
+		var txtnode = document.createTextNode('Cluster: ' + clusters[i][0]);
+		span.appendChild(txtnode);
+
+		var ul = document.createElement('ul');
+		ul.className = 'vanilla';
 
 		for (var j = 0 ; j < cnode_list.length ; j++) {
 			var li = document.createElement('li');
 			var input = document.createElement('input');
-			var lispan = document.createElement('span');
+			var litxt = document.createTextNode(cnode_list[j]);
+
 			input.type = 'checkbox';
 			input.name = '__NODE_HOSTNAME__';
 			input.value = cnode_list[j];
 			input.checked = 'checked';
-			lispan.textContent = cnode_list[j];
+
 			li.appendChild(input);
-			li.appendChild(lispan);
+			li.appendChild(litxt);
 			ul.appendChild(li);
 		}
+
+		var div = document.createElement('div');
+		div.className = 'fence';
+		div.appendChild(span);
 		div.appendChild(ul);
 		xvm_div_elem.appendChild(div);
 	}
@@ -115,5 +128,9 @@
 		form_elem.pagetype.value = '60';
 		fc_elem.className = 'invisible';
 		xvm_hidden_elem.className = 'systemsTable';
+		var applyelem = document.getElementById('fence_config_submit');
+		if (applyelem) {
+			applyelem.disabled = true;
+		}
 	}
 }
--- conga/luci/site/luci/Extensions/StorageReport.py	2007/07/27 16:43:47	1.25
+++ conga/luci/site/luci/Extensions/StorageReport.py	2007/08/09 04:37:20	1.26
@@ -2060,7 +2060,7 @@
     length_in_bytes = 0
     for t in mapper_data['sources']:
         length_in_bytes += int(t['props']['size']['value'])
-    ppb = (length * 1.0) / length_in_bytes  # pixels per byte
+    ppb = (length * 1.0) / max(0.00001, length_in_bytes)  # pixels per byte
     lower_cyl['offset'] = int(lower_cyl['offset'] * ppb)
     for d in lower_cyl['cyls']:
         d['beg'] = int(d['beg'] * ppb)
--- conga/luci/site/luci/Extensions/cluster_adapters.py	2007/08/08 21:26:37	1.266
+++ conga/luci/site/luci/Extensions/cluster_adapters.py	2007/08/09 04:37:20	1.267
@@ -27,8 +27,6 @@
 from homebase_adapters import parseHostForm
 from LuciClusterActions import propagateClusterConfAsync
 
-from LuciZopeAsync import get_cluster_nodes_async
-
 from LuciClusterInfo import getClusterInfo, \
 	getModelBuilder, LuciExtractCluModel
 
@@ -2171,8 +2169,8 @@
 				luci_log.info('Setting fence_xvm key for node "%s" failed' % i)
 			continue
 
-		set_node_flag(self, clustername, i, batch_num,
-			FENCE_XVM_KEY_CREATE, 'Creating a fence_xvm key file')
+		set_node_flag(self, clustername, i, batch_num, FENCE_XVM_KEY_CREATE,
+			'Creating fence_xvm key file for host "%s"' % i)
 
 	request.RESPONSE.redirect('%s?pagetype=%s&clustername=%s&tab=2&busyfirst=true' \
 		% (baseurl, CLUSTER_CONFIG, clustername))
--- conga/luci/storage/form-macros	2007/06/27 08:14:22	1.22
+++ conga/luci/storage/form-macros	2007/08/09 04:37:21	1.23
@@ -896,7 +896,7 @@
    <div metal:use-macro="here/form-macros/macros/form-scripts"/>
    <span tal:omit-tag="" 
          tal:condition="not: mapper/new_sources">
-    There is no available <span tal:replace="mapper/pretty_sources_name"/> to be added to <span tal:replace="mapper/pretty_type"/> '<span tal:replace="mapper/pretty_name"/>'. 
+    There are no available <span tal:replace="mapper/pretty_sources_name"/> to be added to <span tal:replace="mapper/pretty_type"/> '<span tal:replace="mapper/pretty_name"/>'. 
      <br/>
      <br/>
     <a tal:define="go_to_mapper_url  python:'./?pagetype=52&mapper_type=' + mapper['mapper_type'] + '&mapper_id=' + mapper['mapper_id'] + '&storagename=' + storagename" 




More information about the Cluster-devel mailing list