From mboxrd@z Thu Jan 1 00:00:00 1970 From: jparsons@sourceware.org Date: 11 Oct 2006 20:58:13 -0000 Subject: [Cluster-devel] conga/luci/site/luci/Extensions cluster_adapte ... Message-ID: <20061011205813.26838.qmail@sourceware.org> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit CVSROOT: /cvs/cluster Module name: conga Changes by: jparsons at sourceware.org 2006-10-11 20:58:13 Modified files: luci/site/luci/Extensions: cluster_adapters.py conga_constants.py Log message: added laststatus field to props Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/cluster_adapters.py.diff?cvsroot=cluster&r1=1.93&r2=1.94 http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/conga_constants.py.diff?cvsroot=cluster&r1=1.12&r2=1.13 --- conga/luci/site/luci/Extensions/cluster_adapters.py 2006/10/11 17:43:30 1.93 +++ conga/luci/site/luci/Extensions/cluster_adapters.py 2006/10/11 20:58:13 1.94 @@ -232,6 +232,7 @@ flag.manage_addProperty(BATCH_ID,batch_id, "string") flag.manage_addProperty(TASKTYPE,CLUSTER_ADD, "string") flag.manage_addProperty(FLAG_DESC,"Creating node " + key + " for cluster " + clusterName, "string") + flag.manage_addProperty(LAST_STATUS, 0, "int") def validateAddClusterNode(self, request): @@ -2236,11 +2237,22 @@ node_report['iserror'] = False #Default value node_report['desc'] = item[1].getProperty(FLAG_DESC) 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) = batch_status(batch_xml) + try: + rc = RicciCommunicator(ricci[0]) + batch_xml = rc.batch_report(item[1].getProperty(BATCH_ID)) + (creation_status, total) = batch_status(batch_xml) + except: + creation_status = RICCI_CONNECT_FAILURE #No contact with ricci (-1000) + if creation_status < 0: #an error was encountered - if creation_status == -(INSTALL_TASK): + if creation_status == RICCI_CONNECT_FAILURE: + laststatus = item[1].getProperty(LAST_STATUS) + if laststatus == INSTALL_TASK: #This means maybe node is rebooting + nodereport['statusindex'] = INSTALL_TASK + nodereport['statusmessage'] = POSSIBLE_REBOOT_MESSAGE + nodereports.append(node_report) + continue + elif creation_status == -(INSTALL_TASK): node_report['iserror'] = True (err_code, err_msg) = extract_module_status(batch_xml, INSTALL_TASK) node_report['errormessage'] = CLUNODE_CREATE_ERRORS[INSTALL_TASK] + err_msg @@ -2275,7 +2287,7 @@ node_report['statusmessage'] = "Node still being created" node_report['statusindex'] = creation_status nodereports.append(node_report) - clusterfolder.manage_delObjects(item[0]) + item[1].manage_addProperty(LAST_STATUS,creation_status, "int") continue else: --- conga/luci/site/luci/Extensions/conga_constants.py 2006/10/10 21:26:01 1.12 +++ conga/luci/site/luci/Extensions/conga_constants.py 2006/10/11 20:58:13 1.13 @@ -58,6 +58,7 @@ CLUNAME="clustername" BATCH_ID="batch_id" FLAG_DESC="flag_desc" +LAST_STATUS="last_status" PATH_TO_PRIVKEY="/var/lib/luci/var/certs/privkey.pem" PATH_TO_CACERT="/var/lib/luci/var/certs/cacert.pem" @@ -75,6 +76,9 @@ REBOOT_TASK=2 SEND_CONF=3 START_NODE=4 +RICCI_CONNECT_FAILURE=(-1000) #cluster/node create error messages CLUNODE_CREATE_ERRORS = ["An unknown error occurred when creating this node: ", "A problem occurred when installing packages: ","A problem occurred when rebooting this node: ", "A problem occurred when propagating the configuration to this node: ", "A problem occurred when starting this node: "] + +POSSIBLE_REBOOT_MESSAGE="This node is not currently responding and is probably
rebooting as planned. This state should persist for 5 minutes or so..."