[Cluster-devel] conga/luci homebase/form-macros site/luci/Exte ...

rmccabe at sourceware.org rmccabe at sourceware.org
Fri Oct 13 17:04:14 UTC 2006


CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2006-10-13 17:04:11

Modified files:
	luci/homebase  : form-macros 
	luci/site/luci/Extensions: homebase_adapters.py ricci_bridge.py 

Log message:
	fix for bz #209997

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/homebase/form-macros.diff?cvsroot=cluster&r1=1.39&r2=1.40
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/homebase_adapters.py.diff?cvsroot=cluster&r1=1.29&r2=1.30
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/ricci_bridge.py.diff?cvsroot=cluster&r1=1.26&r2=1.27

--- conga/luci/homebase/form-macros	2006/10/09 16:16:11	1.39
+++ conga/luci/homebase/form-macros	2006/10/13 17:04:09	1.40
@@ -1,7 +1,7 @@
 <html>
 
 <tal:comment replace="nothing">
-	$Id: form-macros,v 1.39 2006/10/09 16:16:11 rmccabe Exp $
+	$Id: form-macros,v 1.40 2006/10/13 17:04:09 rmccabe Exp $
 </tal:comment>
 
 <head>
@@ -482,19 +482,19 @@
 		set_page_title('Luci — homebase — Add a running cluster to be managed by Luci');
 	</script>
 
-	<tal:block tal:omit-tag=""
-		tal:define="global sessionObj python:request.SESSION.get('checkRet')" />
+	<tal:block tal:define="
+		global sessionObj python:request.SESSION.get('checkRet')" />
 
-	<form name="adminform" action="" method="post">
+	<h2 class="homebase">Add Cluster</h2>
+
+	<form name="adminform" action="" method="post"
+		tal:condition="python: sessionObj and len(sessionObj)">
 		<input name="pagetype" type="hidden"
 			tal:attributes="value request/form/pagetype | request/pagetype | nothing" />
 
-
 		<input name="absoluteURL" type="hidden"
 			tal:attributes="value python:data['children'][data['curIndex']]['absolute_url']" />
 
-		<h2 class="homebase">Add Cluster</h2>
-
 		<table id="systemsTable" class="systemsTable" border="0" cellspacing="0">
 			<thead class="systemsTable">
 				<tr class="systemsTable"><td class="systemsTable" colspan="2">
@@ -511,10 +511,11 @@
 
 			<tfoot class="systemsTable">
 				<tr class="systemsTable"><td colspan="2" class="systemsTable">
-					<div tal:condition="python: not sessionObj['requestResults']['isComplete']">
+					<div tal:condition="python: not 'isComplete' in sessionObj['requestResults'] or not sessionObj['requestResults']['isComplete']">
 						<input type="checkbox" name="allSameCheckBox" id="allSameCheckBox" onClick="allPasswdsSame(adminform);"/> Check if storage system passwords are identical.
 					</div>
-					<div class="systemsTable" tal:condition="python: sessionObj['requestResults']['isComplete']"> </div>
+					<div class="systemsTable"
+						tal:condition="python: 'isComplete' in sessionObj['requestResults'] and sessionObj['requestResults']['isComplete']"> </div>
 				</td></tr>
 			</tfoot>
 
@@ -522,7 +523,7 @@
 				tal:define="global sysNum python: 0"
 			/>
 
-			<tbody class="systemsTable">
+			<tbody class="systemsTable" tal:condition="python: 'nodeList' in sessionObj['requestResults']">
 			<tal:block tal:repeat="node python: sessionObj['requestResults']['nodeList']">
 				<span tal:omit-tag=""
 					tal:define="global nodeAuth python: node['cur_auth']" />
@@ -564,6 +565,13 @@
 			<input type="button" name="Submit" value="Add This Cluster" onClick="validateForm(document.adminform);" />
 		</div>
 	</form>
+
+	<div tal:condition="python: not sessionObj or not len(sessionObj)">
+		<span class="error">
+			A data integrity error has occurred. Please attempt to add this cluster to the Luci management interface again.
+		</span>
+		<tal:block tal:define="nop python:here.abortManageCluster(request)" />
+	</div>
 </div>
 
 
--- conga/luci/site/luci/Extensions/homebase_adapters.py	2006/10/12 19:40:44	1.29
+++ conga/luci/site/luci/Extensions/homebase_adapters.py	2006/10/13 17:04:11	1.30
@@ -300,15 +300,38 @@
 			clusterName = request.form['clusterName']
 		except:
 			clusterName = ''
-		return (False, { 'errors': [ 'A data integrity error has occurred. Please attempt adding the cluster again.' ], 'requestResults': { 'clusterName': clusterName } })
+
+		try:
+			nodeList = requestResults['nodeList']
+			nodeUnauth(nodeList)
+		except:
+			pass
+
+		return (False, { 'errors': [ 'A data integrity error has occurred. Please attempt adding the cluster again.' ], 'requestResults': { 'clusterName': clusterName, 'isComplete': False, 'nodeList': [] } })
 		
-	if not 'clusterName' in request.form or request.form['clusterName'] == '':
-		return (False, { 'errors': ['No cluster name given'], 'requestResults': requestResults })
+	try:
+		clusterName = request.form['clusterName']
+		if not clusterName:
+			raise
+	except:
+		return (False, { 'errors': ['No cluster name was given.'], 'requestResults': requestResults })
+
+	try:
+		nodeList = requestResults['nodeList']
+		if not nodeList or len(nodeList) < 1:
+			raise
+	except:
+		return (False, { 'errors': ['No cluster nodes were given.'], 'requestResults': requestResults })
 
-	clusterName = request.form['clusterName']
-	nodeList = requestResults['nodeList']
-	nodeHash = requestResults['nodeHash']
-	rnodeHash = requestResults['rnodeHash']
+	try:
+		nodeHash = requestResults['nodeHash']
+	except:
+		nodeHash = {}
+
+	try:
+		rnodeHash = requestResults['rnodeHash']
+	except:
+		rnodeHash = {}
 
 	# This should never fail
 	try:
@@ -317,6 +340,10 @@
 			raise
 	except:
 		nodeUnauth(nodeList)
+		try:
+			requestResults['isComplete'] = False
+		except:
+			pass
 		return (False, {
 				'errors': [ 'Unknown number of nodes entered' ],
 				'requestResults': requestResults })
@@ -345,7 +372,7 @@
 
 		if not oldNode:
 			nodeUnauth(nodeList)
-			return (False, { 'errors': [ 'A data integrity error has occurred. Please attempt adding the cluster again.' ], 'requestResults': { 'clusterName': clusterName } })
+			return (False, { 'errors': [ 'A data integrity error has occurred. Please attempt adding the cluster again.' ], 'requestResults': { 'clusterName': clusterName, 'nodeList': nodeList, 'isComplete': False } })
 
 		if oldNode['host'] != node['host']:
 			del nodeHash[oldNode['host']]
@@ -679,9 +706,9 @@
 			raise
 		if havePermAddCluster(self):
 			addCluster = {}
-			addCluster['Title'] = 'Add a Cluster'
+			addCluster['Title'] = 'Add an Existing Cluster'
 			addCluster['absolute_url'] = url + '?pagetype=' + HOMEBASE_ADD_CLUSTER
-			addCluster['Description'] = 'Add a cluster to the Luci cluster management interface.'
+			addCluster['Description'] = 'Add an existing cluster to the Luci cluster management interface.'
 			if pagetype == HOMEBASE_ADD_CLUSTER:
 				addCluster['currentItem'] = True
 				ret['curIndex'] = index
@@ -909,7 +936,8 @@
 	try:
 		sessionData = request.SESSION.get('checkRet')
 		nodeUnauth(sessionData['requestResults']['nodeList'])
-	except: pass
+	except:
+		pass
 
 def manageCluster(self, clusterName, nodeList):
 	clusterName = str(clusterName)
--- conga/luci/site/luci/Extensions/ricci_bridge.py	2006/10/12 22:41:27	1.26
+++ conga/luci/site/luci/Extensions/ricci_bridge.py	2006/10/13 17:04:11	1.27
@@ -13,7 +13,6 @@
   def __init__(self, hostname, port=11111):
     self.__hostname = hostname
     self.__port = port
-    return
     
     
   def process(self, xml_out):




More information about the Cluster-devel mailing list