[Cluster-devel] conga/luci/site/luci/Extensions cluster_adapte ...

rmccabe at sourceware.org rmccabe at sourceware.org
Wed Oct 11 17:29:48 UTC 2006


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

Modified files:
	luci/site/luci/Extensions: cluster_adapters.py 
	                           homebase_adapters.py 

Log message:
	fix a couple of cluster deploy errors

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/cluster_adapters.py.diff?cvsroot=cluster&r1=1.91&r2=1.92
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/homebase_adapters.py.diff?cvsroot=cluster&r1=1.25&r2=1.26

--- conga/luci/site/luci/Extensions/cluster_adapters.py	2006/10/11 16:35:19	1.91
+++ conga/luci/site/luci/Extensions/cluster_adapters.py	2006/10/11 17:29:46	1.92
@@ -159,19 +159,21 @@
 	try:
 		cluster_os = nodeList[0]['os']
 		if not cluster_os:
-			raise
-		if len(filter(lambda x: x != cluster_os, nodeList[1:])) > 0:
-			raise
+			raise KeyError('OS for ' + nodeList[0]['host'] + ' is blank')
 	except KeyError, e:
-		errors.append('Unable to identify the operating system running on the first cluster node.')
-		cluster_properties['isComplete'] = False
-	except:
-		errors.append('Cluster nodes must be running compatible operating systems.')
 		cluster_properties['isComplete'] = False
+		errors.append('Unable to identify the operating system running on the first cluster node: ' + str(e))
 
 	if cluster_properties['isComplete'] != True:
 		nodeUnauth(nodeList)
 		return (False, {'errors': errors, 'requestResults':cluster_properties })
+	else:
+		try:
+			if len(filter(lambda x: x['os'] != cluster_os, nodeList[1:])) > 0:
+				raise Exception('different operating systems were detected.')
+		except:
+			cluster_properties['isComplete'] = False
+			errors.append('Cluster nodes must be running compatible operating systems.')
 
 	if cluster_properties['isComplete'] == True:
 		batchNode = createClusterBatch(cluster_os,
@@ -2223,7 +2225,7 @@
       ricci = item[0].split("____") #This removes the 'flag' suffix
       rc = RicciCommunicator(ricci[0])
       batch_xml = rc.batch_report(item[1].getProperty(BATCH_ID))
-      (creation_status, total) = rc.batch_status(batch_xml)
+      (creation_status, total) = batch_status(batch_xml)
       if creation_status < 0:  #an error was encountered
         if creation_status == -(INSTALL_TASK):
           node_report['iserror'] = True
--- conga/luci/site/luci/Extensions/homebase_adapters.py	2006/10/11 16:18:58	1.25
+++ conga/luci/site/luci/Extensions/homebase_adapters.py	2006/10/11 17:29:46	1.26
@@ -148,6 +148,7 @@
 
 def nodeAuth(cluster, host, passwd):
 	systemName = host
+	os_str = 'rhel5'
 
 	try:
 		rc = RicciCommunicator(host)
@@ -156,15 +157,14 @@
 		systemName = rc.system_name()
 	except:
 		error = 'Unable to establish a connection to the ricci agent on \"' + host + '\"'
-		return { 'host': host, 'ricci_host': systemName, 'errors': error, 'cur_auth': False, 'os': None }
-
+		return { 'host': host, 'ricci_host': systemName, 'errors': error, 'cur_auth': False, 'os': os_str }
 
 	if rc.authed():
 		prevAuth = True
 	else:
 		prevAuth = False
 		if not passwd:
-			return { 'host': host, 'ricci_host': systemName, 'prev_auth': False, 'cur_auth': False, 'os': None}
+			return { 'host': host, 'ricci_host': systemName, 'prev_auth': False, 'cur_auth': False, 'os': os_str }
 		else:
 			try:
 				rc.auth(passwd)
@@ -190,7 +190,7 @@
 		return node
 
 	error = 'Unable to authenticate to the ricci agent on \"' + host + '\"'
-	return { 'host': host, 'ricci_host': systemName, 'prev_auth': False , 'cur_auth': False, 'errors': error, 'os': None }
+	return { 'host': host, 'ricci_host': systemName, 'prev_auth': False , 'cur_auth': False, 'errors': error, 'os': os_str }
 
 def validateAddClusterInitial(self, request):
 	errors = list()
@@ -225,6 +225,10 @@
 	except:
 		cluster_info = None
 
+	os_str = resolveOSType(rc.os())
+	if os_str == None:
+		os_str = "rhel5"  #Backup plan in case all is almost lost...
+
 	if not cluster_info or not cluster_info[0]:
 		if not prevAuth:
 			rc.unauth()
@@ -239,7 +243,7 @@
 	if cluConf:
 		nodeList = getClusterConfNodes(cluConf)
 
-	if not cluConf or not nodeList or len(nodeList) < 2:
+	if not cluConf or not nodeList or len(nodeList) < 1:
 		if not prevAuth:
 			rc.unauth()
 		return (False, { 'errors': [ 'Error retrieving member nodes for cluster \"' + clusterName + '\"' ] })
@@ -248,7 +252,7 @@
 	if systemName[:9] == 'localhost':
 		systemName = sysData[0]
 
-	node = { 'host': sysData[0], 'ricci_host': systemName, 'prev_auth': prevAuth, 'cur_auth': rc.authed() }
+	node = { 'host': sysData[0], 'ricci_host': systemName, 'prev_auth': prevAuth, 'cur_auth': rc.authed(), 'os': os_str }
 	nodeHash[sysData[0]] = node
 	rnodeHash[systemName] = node
 	newNodeList.append(node)




More information about the Cluster-devel mailing list