[Cluster-devel] conga/luci/site/luci/Extensions cluster_adapte ...
jparsons at sourceware.org
jparsons at sourceware.org
Fri Jul 28 14:02:45 UTC 2006
CVSROOT: /cvs/cluster
Module name: conga
Changes by: jparsons at sourceware.org 2006-07-28 14:02:45
Modified files:
luci/site/luci/Extensions: cluster_adapters.py
conga_constants.py
Log message:
Refactored how DB flags are created for service changes, and also added DB Flags for cluster creation.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/cluster_adapters.py.diff?cvsroot=cluster&r1=1.18&r2=1.19
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/conga_constants.py.diff?cvsroot=cluster&r1=1.5&r2=1.6
--- conga/luci/site/luci/Extensions/cluster_adapters.py 2006/07/28 11:46:35 1.18
+++ conga/luci/site/luci/Extensions/cluster_adapters.py 2006/07/28 14:02:45 1.19
@@ -131,20 +131,38 @@
cluster_properties['isComplete'] = False
errors.append(error)
return (False, {'errors': errors, 'requestResults':cluster_properties })
-
+ batch_id_map = {}
for i in nodeList:
try:
rc = RicciCommunicator(i['ricci_host'])
resultNode = rc.process_batch(batchNode, async=True)
+ batch_id_map[i['ricci_host']] = resultNode.getAttribute('batch_id')
except:
nodeUnauth(nodeList)
cluster_properties['isComplete'] = False
errors.append('An error occurred while attempting to add cluster node \"' + i['ricci_host'] + '\"')
return (False, {'errors': errors, 'requestResults':cluster_properties })
+ buildClusterCreateFlags(batch_id_map, clusterName)
+
messages.append('Creation of cluster \"' + clusterName + '\" has begun')
return (True, {'errors': errors, 'messages': messages })
+def buildClusterCreateFlags(self, batch_map, clusterName):
+ path = CLUSTER_FOLDER_PATH + clusterName
+ clusterfolder = self.restrictedTraverse(path)
+ for key in batch_map.keys():
+ id = batch_map[key]
+ batch_id = str(id)
+ clusterfolder.manage_addProduct['ManagedSystem'].addManagedSystem(key)
+ #now designate this new object properly
+ objpath = path + "/" + key
+ flag = self.restrictedTraverse(objpath)
+ flag[BATCH_ID] = batch_id
+ flag[TASKTYPE] = CLUSTER_ADD
+ flag[FLAG_DESC] = "Creating node " + key + " for cluster " + clusterName
+
+
def validateAddClusterNode(self, request):
if 'clusterName' in request.form:
clusterName = request.form['clusterName']
@@ -888,7 +906,13 @@
path = CLUSTER_FOLDER_PATH + cluname
clusterfolder = self.restrictedTraverse(path)
batch_id = str(batch_number)
- clusterfolder.manage_addProduct['ManagedSystem'].addManagedSystem(ricci_agent + "___" + batch_id)
+ clusterfolder.manage_addProduct['ManagedSystem'].addManagedSystem(ricci_agent)
+ #Now we need to annotate the new DB object
+ objpath = path + "/" + ricci_agent
+ flag = self.restrictedTraverse(objpath)
+ flag[BATCH_ID] = batch_id
+ flag[TASKTYPE] = SERVICE_START
+ flag[FLAG_DESC] = "Starting service " + svcname
response = req.RESPONSE
response.redirect(req['HTTP_REFERER'] + "&busyfirst=true")
@@ -905,7 +929,13 @@
path = CLUSTER_FOLDER_PATH + cluname
clusterfolder = self.restrictedTraverse(path)
batch_id = str(batch_number)
- clusterfolder.manage_addProduct['ManagedSystem'].addManagedSystem(ricci_agent + "___" + batch_id)
+ clusterfolder.manage_addProduct['ManagedSystem'].addManagedSystem(ricci_agent)
+ #Now we need to annotate the new DB object
+ objpath = path + "/" + ricci_agent
+ flag = self.restrictedTraverse(objpath)
+ flag[BATCH_ID] = batch_id
+ flag[TASKTYPE] = SERVICE_RESTART
+ flag[FLAG_DESC] = "Restarting service " + svcname
response = req.RESPONSE
response.redirect(req['HTTP_REFERER'] + "&busyfirst=true")
@@ -921,11 +951,14 @@
path = CLUSTER_FOLDER_PATH + cluname
clusterfolder = self.restrictedTraverse(path)
batch_id = str(batch_number)
- clusterfolder.manage_addProduct['ManagedSystem'].addManagedSystem(ricci_agent + "___" + batch_id)
- #newobjpath = path + "/" + batch_id
- #newobj = self.restrictedTraverse(newobjpath)
- #newobj.manage_addProperty('title', ricci_agent, 'string')
- #newobj.manage_addProperty('Description', "Please be Patient - Stopping Service", 'string')
+ clusterfolder.manage_addProduct['ManagedSystem'].addManagedSystem(ricci_agent)
+ #Now we need to annotate the new DB object
+ objpath = path + "/" + ricci_agent
+ flag = self.restrictedTraverse(objpath)
+ flag[BATCH_ID] = batch_id
+ flag[TASKTYPE] = SERVICE_STOP
+ flag[FLAG_DESC] = "Stopping service " + svcname
+
time.sleep(2)
response = req.RESPONSE
@@ -1276,9 +1309,8 @@
##3) The ricci agent has no recollection of the task, so handle like 1 above
for item in items:
#Check here for more than 1 entry (an error)
- datastrings = item[0].split('___')
- rb = ricci_bridge(datastrings[0])
- finished = rb.checkBatch(datastrings[1])
+ rb = ricci_bridge(item[0])
+ finished = rb.checkBatch(item[1][BATCH_ID])
if finished == True:
clusterfolder.manage_delObjects(item[0])
return map
--- conga/luci/site/luci/Extensions/conga_constants.py 2006/07/25 02:28:46 1.5
+++ conga/luci/site/luci/Extensions/conga_constants.py 2006/07/28 14:02:45 1.6
@@ -52,7 +52,10 @@
PAGETYPE="pagetype"
ACTIONTYPE="actiontype"
+TASKTYPE="tasktype"
CLUNAME="clustername"
+BATCH_ID="batch_id"
+FLAG_DESC="flag_desc"
PATH_TO_PRIVKEY="/var/lib/luci/var/certs/privkey.pem"
PATH_TO_CACERT="/var/lib/luci/var/certs/cacert.pem"
More information about the Cluster-devel
mailing list