All of lore.kernel.org
 help / color / mirror / Atom feed
From: rmccabe@sourceware.org <rmccabe@sourceware.org>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] conga/luci/site/luci/Extensions conga_constant ...
Date: 14 May 2007 16:02:22 -0000	[thread overview]
Message-ID: <20070514160222.22466.qmail@sourceware.org> (raw)

CVSROOT:	/cvs/cluster
Module name:	conga
Branch: 	EXPERIMENTAL
Changes by:	rmccabe at sourceware.org	2007-05-14 16:02:16

Modified files:
	luci/site/luci/Extensions: conga_constants.py LuciDB.py 

Log message:
	More cleanup..

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/conga_constants.py.diff?cvsroot=cluster&only_with_tag=EXPERIMENTAL&r1=1.39.2.2&r2=1.39.2.3
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/LuciDB.py.diff?cvsroot=cluster&only_with_tag=EXPERIMENTAL&r1=1.1.2.3&r2=1.1.2.4

--- conga/luci/site/luci/Extensions/conga_constants.py	2007/05/04 19:10:24	1.39.2.2
+++ conga/luci/site/luci/Extensions/conga_constants.py	2007/05/14 16:02:11	1.39.2.3
@@ -140,7 +140,8 @@
 CLUSTER_NODE_NOT_MEMBER	= 0x02
 CLUSTER_NODE_ADDED		= 0x04
 
-# Debugging parameters. Set LUCI_DEBUG_MODE to 1 and LUCI_DEBUG_VERBOSITY
+# Debugging parameters. Set LUCI_DEBUG_MODE to True and LUCI_DEBUG_VERBOSITY
 # to >= 2 to get full debugging output in syslog (LOG_DAEMON/LOG_DEBUG).
-LUCI_DEBUG_MODE			= 1
+
+LUCI_DEBUG_MODE			= True
 LUCI_DEBUG_VERBOSITY	= 2
--- conga/luci/site/luci/Extensions/Attic/LuciDB.py	2007/05/08 22:19:35	1.1.2.3
+++ conga/luci/site/luci/Extensions/Attic/LuciDB.py	2007/05/14 16:02:11	1.1.2.4
@@ -1,43 +1,52 @@
 from AccessControl import getSecurityManager
-from conga_constants import CLUSTER_FOLDER_PATH, BATCH_ID, TASKTYPE, FLAG_DESC, CLUSTER_ADD, CLUSTER_NODE_ADDED, CLUSTER_NODE_NEED_AUTH, LAST_STATUS, PLONE_ROOT, STORAGE_FOLDER_PATH, CLUSTER_NODE_NOT_MEMBER
 import RicciQuery as rq
 from ricci_communicator import RicciCommunicator
 from LuciZope import isAdmin
 
+from conga_constants import CLUSTER_FOLDER_PATH, BATCH_ID, TASKTYPE, \
+	FLAG_DESC, CLUSTER_ADD, CLUSTER_NODE_ADDED, CLUSTER_NODE_NEED_AUTH, \
+	LAST_STATUS, PLONE_ROOT, STORAGE_FOLDER_PATH, CLUSTER_NODE_NOT_MEMBER, \
+	LUCI_DEBUG_MODE
+
 from homebase_adapters import luci_log
 
 def getClusterNode(self, nodename, clustername):
 	try:
-		cluster_node = self.restrictedTraverse('%s%s/%s' % (CLUSTER_FOLDER_PATH, clustername, nodename))
+		cluster_node = self.restrictedTraverse('%s%s/%s' \
+			% (CLUSTER_FOLDER_PATH, clustername, nodename))
 		if not cluster_node:
 			return None
 		return cluster_node
 	except Exception, e:
-		luci_log.debug_verbose('getClusterNode0: %s %s: %r' \
-			% (nodename, clustername, e))
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('getClusterNode0: %s %s: %r' \
+				% (nodename, clustername, e))
 	return None
 
 def getStorageNode(self, nodename):
 	try:
-		storage_node = self.restrictedTraverse('%s%s' % (STORAGE_FOLDER_PATH, nodename))
+		storage_node = self.restrictedTraverse('%s%s' \
+			% (STORAGE_FOLDER_PATH, nodename))
 		if not storage_node:
 			return None
 		return storage_node
 	except Exception, e:
-		luci_log.debug_verbose('getStorageNode0: %s: %r' % (nodename, e))
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('getStorageNode0: %s: %r' % (nodename, e))
 	return None
 
-def testNodeFlag(node, flag_mask):
+def testNodeStatus(node, flag_mask):
 	try:
 		flags = node.getProperty('flags')
 		if flags is None:
 			return False
 		return flags & flag_mask != 0
 	except Exception, e:
-		luci_log.debug_verbose('testNodeFlag0: %r' % e)
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('testNodeStatus0: %r' % e)
 	return False
 
-def setNodeFlag(node, flag_mask):
+def setNodeStatus(node, flag_mask):
 	try:
 		flags = node.getProperty('flags')
 		if flags is None:
@@ -47,9 +56,10 @@
 		try:
 			node.manage_addProperty('flags', flag_mask, 'int')
 		except Exception, e:
-			luci_log.debug_verbose('setNodeFlag0: %r' % e)
+			if LUCI_DEBUG_MODE is True:
+				luci_log.debug_verbose('setNodeStatus0: %r' % e)
 
-def delNodeFlag(node, flag_mask):
+def clearNodeStatus(node, flag_mask):
 	try:
 		flags = node.getProperty('flags')
 		if flags is None:
@@ -57,7 +67,8 @@
 		if flags & flag_mask != 0:
 			node.manage_changeProperties({ 'flags': flags & ~flag_mask })
 	except Exception, e:
-		luci_log.debug_verbose('delNodeFlag0: %r' % e)
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('clearNodeStatus0: %r' % e)
 
 def set_node_flag(self, cluname, agent, batchid, task, desc):
 	path = '%s%s' % (CLUSTER_FOLDER_PATH, cluname)
@@ -76,14 +87,17 @@
 	except Exception, e:
 		errmsg = 'SNF0: error creating flag (%s,%s,%s) at %s: %r' \
 					% (batch_id, task, desc, objpath, e)
-		luci_log.debug_verbose(errmsg)
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose(errmsg)
 		raise Exception, errmsg
 
-def noNodeFlagsPresent(self, nodefolder, flagname, hostname):
+def noNodeStatussPresent(self, nodefolder, flagname, hostname):
 	try:
 		items = nodefolder.objectItems('ManagedSystem')
 	except Exception, e:
-		luci_log.debug('NNFP0: error getting flags for %s: %r' % (nodefolder[0], e))
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug('NNFP0: error getting flags for %s: %r' \
+				% (nodefolder[0], e))
 		return None
 
 	for item in items:
@@ -95,27 +109,32 @@
 			# hostname must be a FQDN
 			rc = RicciCommunicator(hostname)
 		except Exception, e:
-			luci_log.info('NNFP1: ricci error %s: %r' % (hostname, e))
+			if LUCI_DEBUG_MODE is True:
+				luci_log.info('NNFP1: ricci error %s: %r' % (hostname, e))
 			return None
 
 		if not rc.authed():
 			try:
 				snode = getStorageNode(self, hostname)
-				setNodeFlag(snode, CLUSTER_NODE_NEED_AUTH)
+				setNodeStatus(snode, CLUSTER_NODE_NEED_AUTH)
 			except:
 				pass
-			luci_log.info('NNFP2: %s not authenticated' % item[0])
+			if LUCI_DEBUG_MODE is True:
+				luci_log.info('NNFP2: %s not authenticated' % item[0])
 
 		batch_ret = rq.checkBatch(rc, item[1].getProperty(BATCH_ID))
 		finished = batch_ret[0]
 		if finished == True or finished == -1:
 			if finished == -1:
-				luci_log.debug_verbose('NNFP2: batch error: %s' % batch_ret[1])
+				if LUCI_DEBUG_MODE is True:
+					luci_log.debug_verbose('NNFP2: batch error: %s' \
+						% batch_ret[1])
 			try:
 				nodefolder.manage_delObjects([item[0]])
 			except Exception, e:
-				luci_log.info('NNFP3: manage_delObjects for %s failed: %r' \
-					% (item[0], e))
+				if LUCI_DEBUG_MODE is True:
+					luci_log.info('NNFP3: manage_delObjects for %s failed: %r' \
+						% (item[0], e))
 				return None
 			return True
 		else:
@@ -130,8 +149,9 @@
 		clusterfolder = self.restrictedTraverse(path)
 		objs = clusterfolder.objectItems('Folder')
 	except Exception, e:
-		luci_log.debug_verbose('RNN0: error for %s/%s: %r' \
-			% (nodename, clustername, e))
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('RNN0: error for %s/%s: %r' \
+				% (nodename, clustername, e))
 		return nodename
 
 	for obj in objs:
@@ -141,8 +161,9 @@
 		except:
 			continue
 
-	luci_log.debug_verbose('RNN1: failed for %s/%s: nothing found' \
-		% (nodename, clustername))
+	if LUCI_DEBUG_MODE is True:
+		luci_log.debug_verbose('RNN1: failed for %s/%s: nothing found' \
+			% (nodename, clustername))
 	return nodename
 
 def resolveClusterChanges(self, clusterName, model):
@@ -151,17 +172,19 @@
 		if not mb_nodes or not len(mb_nodes):
 			raise Exception, 'node list is empty'
 	except Exception, e:
-		luci_log.debug_verbose('RCC0: no model builder nodes found for %s: %r' \
-				% (clusterName, e))
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('RCC0: no model builder nodes found for %s: %r' % (clusterName, e))
 		return 'Unable to find cluster nodes for %s' % clusterName
 
 	try:
-		cluster_node = self.restrictedTraverse('%s/systems/cluster/%s' % (PLONE_ROOT, clusterName))
+		cluster_node = self.restrictedTraverse('%s/systems/cluster/%s' \
+			% (PLONE_ROOT, clusterName))
 		if not cluster_node:
 			raise Exception, 'cluster node is none'
 	except Exception, e:
-		luci_log.debug('RCC1: cant find cluster node for %s: %r'
-			% (clusterName, e))
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug('RCC1: cant find cluster node for %s: %r' \
+				% (clusterName, e))
 		return 'Unable to find an entry for %s in the Luci database.' % clusterName
 
 	try:
@@ -170,7 +193,8 @@
 			raise Exception, 'no database nodes'
 	except Exception, e:
 		# Should we just create them all? Can this even happen?
-		luci_log.debug('RCC2: error: %r' % e)
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug('RCC2: error: %r' % e)
 		return 'Unable to find database entries for any nodes in %s' % clusterName
 
 	same_host = lambda x, y: x == y or x[:len(y) + 1] == y + '.' or y[:len(x) + 1] == x + '.'
@@ -201,24 +225,27 @@
 		try:
 			# or alternately
 			# new_node = cluster_node.restrictedTraverse(i)
-			# #setNodeFlag(self, new_node, CLUSTER_NODE_NOT_MEMBER)
+			# #setNodeStatus(self, new_node, CLUSTER_NODE_NOT_MEMBER)
 			cluster_node.delObjects([i])
 			messages.append('Node "%s" is no longer in a member of cluster "%s." It has been deleted from the management interface for this cluster.' % (i, clusterName))
-			luci_log.debug_verbose('VCC3: deleted node %s' % i)
+			if LUCI_DEBUG_MODE is True:
+				luci_log.debug_verbose('VCC3: deleted node %s' % i)
 		except Exception, e:
-			luci_log.debug_verbose('VCC4: delObjects: %s: %r' % (i, e))
+			if LUCI_DEBUG_MODE is True:
+				luci_log.debug_verbose('VCC4: delObjects: %s: %r' % (i, e))
 
 	new_flags = CLUSTER_NODE_NEED_AUTH | CLUSTER_NODE_ADDED
 	for i in new_list:
 		try:
-			cluster_node.manage_addFolder(i, '__luci__:csystem:%s' % clusterName)
+			cluster_node.manage_addFolder(i)
 			new_node = cluster_node.restrictedTraverse(i)
-			setNodeFlag(self, new_node, new_flags)
+			setNodeStatus(self, new_node, new_flags)
 			messages.append('A new cluster node, "%s," is now a member of cluster "%s." It has been added to the management interface for this cluster, but you must authenticate to it in order for it to be fully functional.' % (i, clusterName))
 		except Exception, e:
 			messages.append('A new cluster node, "%s," is now a member of cluster "%s,". but it has not been added to the management interface for this cluster as a result of an error creating a database entry for it.' % (i, clusterName))
-			luci_log.debug_verbose('VCC5: addFolder: %s/%s: %r' \
-				% (clusterName, i, e))
+			if LUCI_DEBUG_MODE is True:
+				luci_log.debug_verbose('VCC5: addFolder: %s/%s: %r' \
+					% (clusterName, i, e))
 
 	return messages
 
@@ -228,7 +255,9 @@
 	try:
 		clusterfolder = self.restrictedTraverse(path)
 	except Exception, e:
-		luci_log.debug_verbose('buildCCF0: no cluster folder at %s: %r' % (path, e))
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('buildCCF0: no cluster folder at %s: %r' \
+				% (path, e))
 		return None
 
 	for key in batch_map.keys():
@@ -248,8 +277,8 @@
 			flag.manage_addProperty(FLAG_DESC, 'Creating node "%s" for cluster "%s"' % (key, clusterName), 'string')
 			flag.manage_addProperty(LAST_STATUS, 0, 'int')
 		except Exception, e:
-			luci_log.debug_verbose('buildCCF1: error creating flag for %s: %r' \
-				% (key, e))
+			if LUCI_DEBUG_MODE is True:
+				luci_log.debug_verbose('buildCCF1: error creating flag for %s: %r' % (key, e))
 
 def manageCluster(self, clusterName, node_list, cluster_os):
 	clusterName = str(clusterName)
@@ -259,48 +288,55 @@
 		if not clusters:
 			raise Exception, 'cannot find the cluster entry in the DB'
 	except Exception, e:
-		luci_log.debug_verbose('MC0: %s: %r' % (clusterName, e))
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('MC0: %s: %r' % (clusterName, e))
 		return 'Unable to create cluster %s: the cluster directory is missing.' % clusterName
 
 	try:
 		newCluster = self.restrictedTraverse('%s%s' % (CLUSTER_FOLDER_PATH, clusterName))
 		if newCluster:
-			luci_log.debug_verbose('MC1: cluster %s: already exists' % clusterName)
+			if LUCI_DEBUG_MODE is True:
+				luci_log.debug_verbose('MC1: cluster %s: already exists' \
+					% clusterName)
 			return 'A cluster named %s is already managed by Luci' % clusterName
 	except:
 		pass
 
 	try:
-		clusters.manage_addFolder(clusterName, '__luci__:cluster')
+		clusters.manage_addFolder(clusterName)
 		newCluster = self.restrictedTraverse('%s%s' % (CLUSTER_FOLDER_PATH, clusterName))
 		if not newCluster:
 			raise Exception, 'unable to create the cluster DB entry for %s' % clusterName
 	except Exception, e:
-		luci_log.debug_verbose('MC2: %s: %r' % (clusterName, e))
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('MC2: %s: %r' % (clusterName, e))
 		return 'Unable to create cluster %s: %r' % (clusterName, e)
 
 	try:
 		newCluster.manage_acquiredPermissions([])
 		newCluster.manage_role('View', ['Access Contents Information', 'View'])
 	except Exception, e:
-		luci_log.debug_verbose('MC3: %s: %r' % (clusterName, e))
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('MC3: %s: %r' % (clusterName, e))
 		try:
 			clusters.manage_delObjects([clusterName])
 		except Exception, e:
-			luci_log.debug_verbose('MC4: %s: %r' % (clusterName, e))
+			if LUCI_DEBUG_MODE is True:
+				luci_log.debug_verbose('MC4: %s: %r' % (clusterName, e))
 		return 'Unable to set permissions on new cluster: %s: %r' % (clusterName, e)
 
 	try:
 		newCluster.manage_addProperty('cluster_os', cluster_os, 'string')
 	except Exception, e:
-		luci_log.debug_verbose('MC5: %s: %s: %r' \
-			% (clusterName, cluster_os, e))
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('MC5: %s: %s: %r' \
+				% (clusterName, cluster_os, e))
 
 	for i in node_list:
 		host = node_list[i]['host']
 
 		try:
-			newCluster.manage_addFolder(host, '__luci__:csystem:%s' % clusterName)
+			newCluster.manage_addFolder(host)
 			newSystem = self.restrictedTraverse('%s%s/%s' % (CLUSTER_FOLDER_PATH, clusterName, host))
 			if not newSystem:
 				raise Exception, 'unable to create cluster system DB entry for node %s' % host
@@ -310,11 +346,13 @@
 			try:
 				clusters.manage_delObjects([clusterName])
 			except Exception, e:
-				luci_log.debug_verbose('MC6: %s: %s: %r' \
-					% (clusterName, host, e))
+				if LUCI_DEBUG_MODE is True:
+					luci_log.debug_verbose('MC6: %s: %s: %r' \
+						% (clusterName, host, e))
 
-			luci_log.debug_verbose('MC7: %s: %s: %r' \
-				% (clusterName, host, e))
+			if LUCI_DEBUG_MODE is True:
+				luci_log.debug_verbose('MC7: %s: %s: %r' \
+					% (clusterName, host, e))
 			return 'Unable to create cluster node %s for cluster %s: %r' \
 				% (host, clusterName, e)
 
@@ -323,7 +361,8 @@
 		if not ssystem:
 			raise Exception, 'The storage DB entry is missing'
 	except Exception, e:
-		luci_log.debug_verbose('MC8: %s: %s: %r' % (clusterName, host, e))
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('MC8: %s: %s: %r' % (clusterName, host, e))
 		return 'Error adding storage node %s: %r' % (host, e)
 
 	# Only add storage systems if the cluster and cluster node DB
@@ -339,12 +378,14 @@
 			pass
 
 		try:
-			ssystem.manage_addFolder(host, '__luci__:system')
+			ssystem.manage_addFolder(host)
 			newSystem = self.restrictedTraverse('%s%s' % (STORAGE_FOLDER_PATH, host))
 			newSystem.manage_acquiredPermissions([])
 			newSystem.manage_role('View', [ 'Access contents information' , 'View' ])
 		except Exception, e:
-			luci_log.debug_verbose('MC9: %s: %s: %r' % (clusterName, host, e))
+			if LUCI_DEBUG_MODE is True:
+				luci_log.debug_verbose('MC9: %s: %s: %r' \
+					% (clusterName, host, e))
 
 def createClusterSystems(self, clusterName, node_list):
 	try:
@@ -352,7 +393,8 @@
 		if not clusterObj:
 			raise Exception, 'cluster %s DB entry is missing' % clusterName
 	except Exception, e:
-		luci_log.debug_verbose('CCS0: %s: %r' % (clusterName, e))
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('CCS0: %s: %r' % (clusterName, e))
 		return 'No cluster named "%s" is managed by Luci' % clusterName
 
 	for x in node_list:
@@ -360,9 +402,11 @@
 		host = str(i['host'])
 
 		try:
-			clusterObj.manage_addFolder(host, '__luci__:csystem:%s' % clusterName)
+			clusterObj.manage_addFolder(host)
 		except Exception, e:
-			luci_log.debug_verbose('CCS0a: %s: %s: %r' % (clusterName, host, e))
+			if LUCI_DEBUG_MODE is True:
+				luci_log.debug_verbose('CCS0a: %s: %s: %r' \
+					% (clusterName, host, e))
 
 		try:
 			newSystem = self.restrictedTraverse('%s%s/%s' % (CLUSTER_FOLDER_PATH, clusterName, host))
@@ -371,7 +415,9 @@
 			newSystem.manage_acquiredPermissions([])
 			newSystem.manage_role('View', [ 'Access contents information' , 'View' ])
 		except Exception, e:
-			luci_log.debug_verbose('CCS1: %s: %s: %r' % (clusterName, host, e))
+			if LUCI_DEBUG_MODE is True:
+				luci_log.debug_verbose('CCS1: %s: %s: %r' \
+					% (clusterName, host, e))
 			return 'Unable to create cluster node %s for cluster %s: %r' \
 				% (host, clusterName, e)
 
@@ -381,7 +427,8 @@
 			raise Exception, 'storage DB entry is missing'
 	except Exception, e:
 		# This shouldn't fail, but if it does, it's harmless right now
-		luci_log.debug_verbose('CCS2: %s: %r' % (clusterName, host, e))
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('CCS2: %s: %r' % (clusterName, host, e))
 		return None
 
 	# Only add storage systems if the and cluster node DB
@@ -398,13 +445,13 @@
 			pass
 
 		try:
-			ssystem.manage_addFolder(host, '__luci__:system')
+			ssystem.manage_addFolder(host)
 			newSystem = self.restrictedTraverse('%s%s' % (STORAGE_FOLDER_PATH, host))
 			newSystem.manage_acquiredPermissions([])
 			newSystem.manage_role('View', [ 'Access contents information' , 'View' ])
 		except Exception, e:
-			luci_log.debug_verbose('CCS3: %s: %r' % (clusterName, host, e))
-
+			if LUCI_DEBUG_MODE is True:
+				luci_log.debug_verbose('CCS3: %s: %r' % (clusterName, host, e))
 
 def delSystem(self, systemName):
 	try:
@@ -412,7 +459,8 @@
 		if not ssystem:
 			raise Exception, 'storage DB entry is missing'
 	except Exception, e:
-		luci_log.debug_verbose('delSystem0: %s: %r' % (systemName, e))
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('delSystem0: %s: %r' % (systemName, e))
 		return 'Unable to find storage system %s: %r' % (systemName, e)
 
 	try:
@@ -423,9 +471,11 @@
 		try:
 			ssystem.manage_delObjects([ systemName ])
 		except Exception, e1:
-			luci_log.debug_verbose('delSystem1: %s: %r' % (systemName, e1))
+			if LUCI_DEBUG_MODE is True:
+				luci_log.debug_verbose('delSystem1: %s: %r' % (systemName, e1))
 			return 'Unable to delete the storage system %s' % systemName
-		luci_log.debug_verbose('delSystem2: %s: %r' % (systemName, e))
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('delSystem2: %s: %r' % (systemName, e))
 		return
 
 	# Only unauthenticate if the system isn't a member of
@@ -458,18 +508,19 @@
 	try:
 		ssystem.manage_delObjects([ systemName ])
 	except Exception, e:
-		luci_log.debug_verbose('delSystem3: %s: %r' % (systemName, e))
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('delSystem3: %s: %r' % (systemName, e))
 		return 'Unable to delete storage system %s: %r' \
 			% (systemName, e)
 
-
 def delCluster(self, clusterName):
 	try:
 		clusters = self.restrictedTraverse(CLUSTER_FOLDER_PATH)
 		if not clusters:
 			raise Exception, 'clusters DB entry is missing'
 	except Exception, e:
-		luci_log.debug_verbose('delCluster0: %r' % e)
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('delCluster0: %r' % e)
 		return 'Unable to find cluster %s' % clusterName
 
 	err = delClusterSystems(self, clusterName)
@@ -479,7 +530,8 @@
 	try:
 		clusters.manage_delObjects([ clusterName ])
 	except Exception, e:
-		luci_log.debug_verbose('delCluster1: %s %r' % (clusterName, e))
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('delCluster1: %s %r' % (clusterName, e))
 		return 'Unable to delete cluster %s' % clusterName
 
 def delClusterSystem(self, cluster, systemName):
@@ -491,14 +543,15 @@
 			rc = RicciCommunicator(systemName, enforce_trust=False)
 			rc.unauth()
 		except Exception, e:
-			luci_log.debug_verbose('delClusterSystem0: ricci error for %s: %r' \
-				% (systemName, e))
+			if LUCI_DEBUG_MODE is True:
+				luci_log.debug_verbose('delClusterSystem0: ricci error for %s: %r' % (systemName, e))
 
 	try:
 		cluster.manage_delObjects([ systemName ])
 	except Exception, e:
 		err_str = 'Error deleting cluster object %s: %r' % (systemName, e)
-		luci_log.debug_verbose('delClusterSystem1: %s' % err_str)
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('delClusterSystem1: %s' % err_str)
 		return err_str
 
 def delClusterSystems(self, clusterName):
@@ -512,19 +565,23 @@
 			if not csystems or len(csystems) < 1:
 				return None
 		except Exception, e:
-			luci_log.debug_verbose('delCluSystems0: %r' % e)
+			if LUCI_DEBUG_MODE is True:
+				luci_log.debug_verbose('delCluSystems0: %r' % e)
 			return None
 	except Exception, er:
-		luci_log.debug_verbose('delCluSystems1: error for %s: %r' \
-			% (clusterName, er))
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('delCluSystems1: error for %s: %r' \
+				% (clusterName, er))
 		return str(er)
 
 	error_list = list()
 	for i in csystems:
 		err = delClusterSystem(self, cluster, i[0])
 		if err:
-			error_list.append('Unable to delete the cluster system %s: %s\n' % (i[0], err))
-			luci_log.debug_verbose('delCluSystems2: %s' % err)
+			error_list.append('Unable to delete the cluster system %s: %s\n' \
+				% (i[0], err))
+			if LUCI_DEBUG_MODE is True:
+				luci_log.debug_verbose('delCluSystems2: %s' % err)
 	return ''.join(error_list)
 
 # In case we want to give access to non-admin users in the future
@@ -562,7 +619,7 @@
 	need_auth_hash = {}
 	for i in storage:
 		storageList.append(i[0])
-		if testNodeFlag(i[1], CLUSTER_NODE_NEED_AUTH) != False:
+		if testNodeStatus(i[1], CLUSTER_NODE_NEED_AUTH) != False:
 			need_auth_hash[i[0]] = i[1]
 
 	chash = {}
@@ -570,7 +627,7 @@
 		csystems = getClusterSystems(self, i[0])
 		cslist = list()
 		for c in csystems:
-			if testNodeFlag(c[1], CLUSTER_NODE_NEED_AUTH) != False:
+			if testNodeStatus(c[1], CLUSTER_NODE_NEED_AUTH) != False:
 				need_auth_hash[c[0]] = c[1]
 			cslist.append(c[0])
 		chash[i[0]] = cslist
@@ -581,131 +638,67 @@
 	return ret
 
 def getClusterSystems(self, clusterName):
-	if isAdmin(self):
-		try:
-			return self.restrictedTraverse('%s%s/objectItems' % (CLUSTER_FOLDER_PATH, clusterName))('Folder')
-		except Exception, e:
-			luci_log.debug_verbose('GCSy0: %s: %r' % (clusterName, e))
-			return None
-
 	try:
-		i = getSecurityManager().getUser()
-		if not i:
-			raise Exception, 'security manager says no user'
+		cluster_nodes = self.restrictedTraverse('%s%s/objectItems' % (CLUSTER_FOLDER_PATH, clusterName))('Folder')
 	except Exception, e:
-		luci_log.debug_verbose('GCSy1: %s: %r' % (clusterName, e))
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('GCSy0: %s: %r' % (clusterName, e))
 		return None
 
+	if isAdmin(self):
+		return cluster_nodes
+
 	try:
-		csystems = self.restrictedTraverse('%s%s/objectItems' % (CLUSTER_FOLDER_PATH, clusterName))('Folder')
-		if not csystems or len(csystems) < 1:
-			return None
+		cluster =  self.restrictedTraverse('%s%s/objectItems' \
+			% (CLUSTER_FOLDER_PATH, clusterName))
 	except Exception, e:
-		luci_log.debug_verbose('GCSy2: %s: %r' % (clusterName, e))
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('GCSy1: %s: %r' % (clusterName, e))
 		return None
 
-	allowedCSystems = list()
-	for c in csystems:
-		try:
-			if i.has_role('View', c[1]):
-				allowedCSystems.append(c)
-		except Exception, e:
-			luci_log.debug_verbose('GCSy3: %s: %s: %r' \
-				% (clusterName, c[0], e))
-
-	return allowedCSystems
+	if cluster_permission_check(self, cluster):
+		return cluster_nodes 
+	return None
 
 def getClusters(self):
-	if isAdmin(self):
-		try:
-			return self.restrictedTraverse('%s/systems/cluster/objectItems' % PLONE_ROOT)('Folder')
-		except Exception, e:
-			luci_log.debug_verbose('GC0: %r' % e)
-			return None
-	try:
-		i = getSecurityManager().getUser()
-		if not i:
-			raise Exception, 'GSMGU failed'
-	except Exception, e:
-		luci_log.debug_verbose('GC1: %r' % e)
-		return None
-
 	try:
 		clusters = self.restrictedTraverse('%s/systems/cluster/objectItems' % PLONE_ROOT)('Folder')
-		if not clusters or len(clusters) < 1:
-			return None
 	except Exception, e:
-		luci_log.debug_verbose('GC2: %r' % e)
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('GC0: %r' % e)
 		return None
 
-	allowedClusters = list()
-	for c in clusters:
-		try:
-			if i.has_role('View', c[1]):
-				allowedClusters.append(c)
-		except Exception, e:
-			luci_log.debug_verbose('GC3: %s: %r' % (c[0], e))
-
-	return allowedClusters
-
-
-def getStorage(self):
 	if isAdmin(self):
-		try:
-			return self.restrictedTraverse('%s/systems/storage/objectItems' % PLONE_ROOT)('Folder')
-		except Exception, e:
-			luci_log.debug_verbose('GS0: %r' % e)
-			return None
-
-	try:
-		i = getSecurityManager().getUser()
-		if not i:
-			raise Exception, 'GSMGU failed'
-	except Exception, e:
-		luci_log.debug_verbose('GS1: %r' % e)
-		return None
+		return clusters
+	return check_clusters(self, clusters)
 
+def getStorage(self):
 	try:
 		storage = self.restrictedTraverse('%s/systems/storage/objectItems' % PLONE_ROOT)('Folder')
-		if not storage or len(storage) < 1:
-			return None
 	except Exception, e:
-		luci_log.debug_verbose('GS2: %r' % e)
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('GS0: %r' % e)
 		return None
-
-	allowedStorage = list()
-	for s in storage:
-		try:
-			if i.has_role('View', s[1]):
-				allowedStorage.append(s)
-		except Exception, e:
-			luci_log.debug_verbose('GS3: %r' % e)
-
-	return allowedStorage
+	if isAdmin(self):
+		return storage
+	return allowed_systems(storage)
 
 def check_clusters(self, clusters):
-	sm = getSecurityManager()
-	user = sm.getUser()
-
-	clist = list()
-	for cluster in clusters:
-		if user.has_permission('View', cluster):
-			clist.append(cluster)
-	return clist
+	user = getSecurityManager().getUser()
+	return filter(lambda x: user.has_role('View', x[1]), clusters)
 
 def cluster_permission_check(cluster):
 	try:
-		sm = getSecurityManager()
-		user = sm.getUser()
-		if user.has_permission('View', cluster):
+		user = getSecurityManager().getUser()
+		if user.has_role('View', cluster[1]):
 			return True
 	except:
 		pass
 	return False
 
-def allowed_systems(self, user, systems):
-	user = getSecurityManager().getUser().getUser()
-	return map(lambda x: user.has_permission('View', x[1]), systems)
+def allowed_systems(self, systems):
+	user = getSecurityManager().getUser()
+	return filter(lambda x: user.has_role('View', x[1]), systems)
 
 def access_to_host_allowed(self, hostname, allowed_systems_list):
 	allowed = dict(map(lambda x: [ x[0], None ], allowed_systems_list))
@@ -717,31 +710,37 @@
 		if not perm:
 			return None
 	except Exception, e:
-		luci_log.debug_verbose('GRA0: %r' % e)
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('GRA0: %r' % e)
 		return None
 
 	try:
 		path = '%s%s' % (CLUSTER_FOLDER_PATH, clustername)
 		clusterfolder = self.restrictedTraverse(path)
 		if not clusterfolder:
-			luci_log.debug('GRA1: cluster folder %s for %s is missing' \
-				% (path, clustername))
+			if LUCI_DEBUG_MODE is True:
+				luci_log.debug('GRA1: cluster folder %s for %s is missing' \
+					% (path, clustername))
 			return None
 
 		nodes = clusterfolder.objectItems('Folder')
 		if len(nodes) < 1:
-			luci_log.debug('GRA2: no cluster nodes for %s found.' % clustername)
+			if LUCI_DEBUG_MODE is True:
+				luci_log.debug('GRA2: no cluster nodes for %s found' \
+					% clustername)
 			raise Exception, 'No cluster nodes were found@%s' % path
 	except Exception, e:
 		try:
-			luci_log.debug('GRA3: cluster folder %s for %s is missing: %r' \
-				% (path, clustername, e))
+			if LUCI_DEBUG_MODE is True:
+				luci_log.debug('GRA3: cluster folder %s for %s is missing: %r' \
+					% (path, clustername, e))
 
 			if len(clusterfolder.objectItems()) < 1:
 				clusters = self.restrictedTraverse(str(CLUSTER_FOLDER_PATH))
 				clusters.manage_delObjects([clustername])
 		except Exception, ein:
-			luci_log.debug_verbose('GRA4: %r' % ein)
+			if LUCI_DEBUG_MODE is True:
+				luci_log.debug_verbose('GRA4: %r' % ein)
 		return None
 
 	cluname = clustername.lower()
@@ -757,12 +756,14 @@
 		try:
 			rc = RicciCommunicator(hostname)
 			if not rc:
-				luci_log.debug_verbose('GRA5: rc is None')
+				if LUCI_DEBUG_MODE is True:
+					luci_log.debug_verbose('GRA5: rc is None')
 				continue
 
 			ricci_hostname = rc.hostname()
 			if not ricci_hostname:
-				luci_log.debug_verbose('GRA6: ricci_hostname is blank')
+				if LUCI_DEBUG_MODE is True:
+					luci_log.debug_verbose('GRA6: ricci_hostname is blank')
 				continue
 
 			clu_info = rc.cluster_info()
@@ -770,25 +771,32 @@
 			cur_name = str(clu_info[0]).strip().lower()
 			if not cur_name:
 				cur_name = None
-				luci_log.debug_verbose('GRA7: cluster name is none for %s' % ricci_hostname)
+				if LUCI_DEBUG_MODE is True:
+					luci_log.debug_verbose('GRA7: cluster name is none for %s' \
+						% ricci_hostname)
 
 			cur_alias = str(clu_info[1]).strip().lower()
 			if not cur_alias:
 				cur_alias = None
-				luci_log.debug_verbose('GRA8: cluster alias is none for %s' % ricci_hostname)
+				if LUCI_DEBUG_MODE is True:
+					luci_log.debug_verbose('GRA8: no cluster alias for %s' \
+						% ricci_hostname)
 
 			if (cur_name is not None and cluname != cur_name) and (cur_alias is not None and cluname != cur_alias):
-				luci_log.debug('GRA9: node %s reports it\'s in cluster %s:%s; we expect %s' % (hostname, clu_info[0], clu_info[1], cluname))
-				setNodeFlag(self, node, CLUSTER_NODE_NOT_MEMBER)
+				if LUCI_DEBUG_MODE is True:
+					luci_log.debug('GRA9: node %s reports it\'s in cluster [%s:%s] we expect %s' % (hostname, clu_info[0], clu_info[1], cluname))
+				setNodeStatus(self, node, CLUSTER_NODE_NOT_MEMBER)
 				continue
 
 			if rc.authed():
 				return rc
 
-			setNodeFlag(node[1], CLUSTER_NODE_NEED_AUTH)
+			setNodeStatus(node[1], CLUSTER_NODE_NEED_AUTH)
 		except Exception, eout:
-			luci_log.debug_verbose('GRA10: %r' % eout)
+			if LUCI_DEBUG_MODE is True:
+				luci_log.debug_verbose('GRA10: %r' % eout)
 
-	luci_log.debug('GRA11: no ricci agent could be found for cluster %s' \
-		% cluname)
+	if LUCI_DEBUG_MODE is True:
+		luci_log.debug('GRA11: no ricci agent could be found for cluster %s' \
+			% cluname)
 	return None



             reply	other threads:[~2007-05-14 16:02 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-14 16:02 rmccabe [this message]
  -- strict thread matches above, loose matches on Subject: below --
2007-06-08 18:26 [Cluster-devel] conga/luci/site/luci/Extensions conga_constant rmccabe
2006-07-24 19:39 jparsons

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070514160222.22466.qmail@sourceware.org \
    --to=rmccabe@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.