From mboxrd@z Thu Jan 1 00:00:00 1970 From: rmccabe@sourceware.org Date: 12 Nov 2006 02:10:54 -0000 Subject: [Cluster-devel] conga/luci cluster/form-macros site/luci/Exten ... Message-ID: <20061112021054.1156.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: rmccabe at sourceware.org 2006-11-12 02:10:53 Modified files: luci/cluster : form-macros luci/site/luci/Extensions: LuciSyslog.py cluster_adapters.py conga_constants.py ricci_bridge.py ricci_communicator.py Log message: fix for bz# 213266 Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.103&r2=1.104 http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/LuciSyslog.py.diff?cvsroot=cluster&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/cluster_adapters.py.diff?cvsroot=cluster&r1=1.161&r2=1.162 http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/conga_constants.py.diff?cvsroot=cluster&r1=1.24&r2=1.25 http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/ricci_bridge.py.diff?cvsroot=cluster&r1=1.41&r2=1.42 http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/ricci_communicator.py.diff?cvsroot=cluster&r1=1.18&r2=1.19 --- conga/luci/cluster/form-macros 2006/11/10 19:44:57 1.103 +++ conga/luci/cluster/form-macros 2006/11/12 02:10:52 1.104 @@ -25,26 +25,33 @@ -

- +

+ + -

-
- +

+
+ - - - - - + + + [cluster software installed] + - + [cluster node rebooted] + + + + [cluster node configured] - - + + + [cluster node joined cluster] @@ -378,6 +385,7 @@ +
    @@ -439,7 +447,7 @@ Cluster Name + tal:attributes="value clusterinfo/clustername" /> @@ -1082,6 +1090,7 @@ +
    @@ -2117,7 +2126,10 @@
    -

    Node Process Form

    + +
    + +
    --- conga/luci/site/luci/Extensions/LuciSyslog.py 2006/11/06 20:21:04 1.9 +++ conga/luci/site/luci/Extensions/LuciSyslog.py 2006/11/12 02:10:53 1.10 @@ -3,14 +3,12 @@ LOG_DAEMON, LOG_PID, LOG_NDELAY, LOG_INFO, \ LOG_WARNING, LOG_AUTH, LOG_DEBUG -"""Exception class for the LuciSyslog facility -""" +# Exception class for the LuciSyslog facility class LuciSyslogError(Exception): def __init__(self, msg): Exception.__init__(self, msg) -"""Facility that provides centralized syslog(3) functionality for luci -""" +# Facility that provides centralized syslog(3) functionality for luci class LuciSyslog: def __init__(self): self.__init = 0 @@ -50,11 +48,24 @@ def debug_verbose(self, msg): if not LUCI_DEBUG_MODE or LUCI_DEBUG_VERBOSITY < 2 or not self.__init: return - try: - syslog(LOG_DEBUG, msg) - except: - pass - #raise LuciSyslogError, 'syslog debug call failed' + + msg_len = len(msg) + if msg_len < 1: + return + + while True: + cur_len = min(msg_len, 800) + cur_msg = msg[:cur_len] + try: + syslog(LOG_DEBUG, cur_msg) + except: + pass + + msg_len -= cur_len + if msg_len > 0: + msg = msg[cur_len:] + else: + break def debug(self, msg): if not LUCI_DEBUG_MODE or not self.__init: --- conga/luci/site/luci/Extensions/cluster_adapters.py 2006/11/10 19:44:57 1.161 +++ conga/luci/site/luci/Extensions/cluster_adapters.py 2006/11/12 02:10:53 1.162 @@ -339,7 +339,8 @@ while i < len(nodeList): clunode = nodeList[i] try: - batchNode = addClusterNodeBatch(clusterName, + batchNode = addClusterNodeBatch(clunode['os'], + clusterName, True, True, enable_storage, @@ -370,8 +371,8 @@ success = True try: rc = RicciCommunicator(clunode['host']) - except: - luci_log.info('Unable to connect to the ricci daemon on host ' + clunode['host']) + except Exception, e: + luci_log.info('Unable to connect to the ricci daemon on host %s: %s'% (clunode['host'], str(e))) success = False if success: @@ -995,6 +996,9 @@ def createCluConfigTree(self, request, model): dummynode = {} + if not model: + return {} + #There should be a positive page type try: pagetype = request[PAGETYPE] @@ -1418,6 +1422,8 @@ return model.getClusterName() def getClusterAlias(self, model): + if not model: + return '' alias = model.getClusterAlias() if alias is None: return model.getClusterName() @@ -1539,7 +1545,21 @@ except Exception, e: luci_log.debug('GRA4: cluster_info error: %s' % str(e)) - if cluname != lower(clu_info[0]) and cluname != lower(clu_info[1]): + try: + cur_name = str(clu_info[0]).strip().lower() + if not cur_name: + raise + except: + cur_name = None + + try: + cur_alias = str(clu_info[1]).strip().lower() + if not cur_alias: + raise + except: + cur_alias = None + + if (cur_name is not None and cluname != cur_name) and (cur_alias is not None and cluname != cur_alias): try: luci_log.debug('GRA5: %s reports it\'s in cluster %s:%s; we expect %s' \ % (hostname, clu_info[0], clu_info[1], cluname)) @@ -1580,12 +1600,18 @@ return getRicciAgent(self, clustername) def getClusterStatus(self, rc): - doc = getClusterStatusBatch(rc) + try: + doc = getClusterStatusBatch(rc) + except Exception, e: + luci_log.debug_verbose('GCS0: error: %s' % str(e)) + doc = None + if not doc: try: - luci_log.debug_verbose('getClusterStatusBatch returned None for %s/%s' % rc.cluster_info()) + luci_log.debug_verbose('GCS1: returned None for %s/%s' % rc.cluster_info()) except: pass + return {} results = list() @@ -2031,7 +2057,7 @@ response = request.RESPONSE response.redirect('%s?pagetype=%s&clustername=%s&busyfirst=true' \ - % (request['URL'], NODES, model.getClusterName())) + % (request['URL'], NODES, model.getClusterName())) def getClusterInfo(self, model, req): try: @@ -2061,7 +2087,7 @@ except Exception, e2: luci_log.debug_verbose('GCI2 unable to set model in session: %s' % str(e2)) except Exception, e: - luci_log.debug_verbose('GCI3: unable to get model for cluster %s: %s' % cluname, str(e)) + luci_log.debug_verbose('GCI3: unable to get model for cluster %s: %s' % (cluname, str(e))) return {} prop_baseurl = req['URL'] + '?' + PAGETYPE + '=' + CLUSTER_CONFIG + '&' + CLUNAME + '=' + cluname + '&' @@ -2639,34 +2665,34 @@ return None response = request.RESPONSE - response.redirect(request['URL'] + "?pagetype=" + NODE_LIST + "&clustername=" + clustername + '&busyfirst=true') + response.redirect(request['URL'] + "?pagetype=" + NODES + "&clustername=" + clustername + '&busyfirst=true') elif task == NODE_JOIN_CLUSTER: if nodeJoin(self, rc, clustername, nodename_resolved) is None: luci_log.debug_verbose('NTP: nodeJoin failed') return None response = request.RESPONSE - response.redirect(request['URL'] + "?pagetype=" + NODE_LIST + "&clustername=" + clustername + '&busyfirst=true') + response.redirect(request['URL'] + "?pagetype=" + NODES + "&clustername=" + clustername + '&busyfirst=true') elif task == NODE_REBOOT: if forceNodeReboot(self, rc, clustername, nodename_resolved) is None: luci_log.debug_verbose('NTP: nodeReboot failed') return None response = request.RESPONSE - response.redirect(request['URL'] + "?pagetype=" + NODE_LIST + "&clustername=" + clustername + '&busyfirst=true') + response.redirect(request['URL'] + "?pagetype=" + NODES + "&clustername=" + clustername + '&busyfirst=true') elif task == NODE_FENCE: if forceNodeFence(self, clustername, nodename, nodename_resolved) is None: luci_log.debug_verbose('NTP: nodeFencefailed') return None response = request.RESPONSE - response.redirect(request['URL'] + "?pagetype=" + NODE_LIST + "&clustername=" + clustername + '&busyfirst=true') + response.redirect(request['URL'] + "?pagetype=" + NODES + "&clustername=" + clustername + '&busyfirst=true') elif task == NODE_DELETE: if nodeDelete(self, rc, model, clustername, nodename, nodename_resolved) is None: luci_log.debug_verbose('NTP: nodeDelete failed') return None response = request.RESPONSE - response.redirect(request['URL'] + "?pagetype=" + NODE_LIST + "&clustername=" + clustername + '&busyfirst=true') + response.redirect(request['URL'] + "?pagetype=" + NODES + "&clustername=" + clustername + '&busyfirst=true') def getNodeInfo(self, model, status, request): infohash = {} @@ -3396,7 +3422,7 @@ luci_log.debug_verbose('ICB6b: rc is none') except Exception, e: rc = None - luci_log.debug_verbose('ICB7: ricci returned error in iCB for %s: %s' \ + luci_log.debug_verbose('ICB7: RC: %s: %s' \ % (cluname, str(e))) batch_id = None @@ -3410,7 +3436,8 @@ luci_log.debug_verbose('ICB8B: failed to get batch_id from %s: %s' \ % (item[0], str(e))) except: - luci_log.debug_verbose('ICB8C: failed to get batch_id from %s' % item[0]) + luci_log.debug_verbose('ICB8C: failed to get batch_id from %s' \ + % item[0]) if batch_id is not None: try: @@ -3458,18 +3485,31 @@ elif laststatus == 0: node_report['statusindex'] = 0 node_report['statusmessage'] = RICCI_CONNECT_FAILURE_MSG + PRE_INSTALL + elif laststatus == DISABLE_SVC_TASK: + node_report['statusindex'] = DISABLE_SVC_TASK + node_report['statusmessage'] = RICCI_CONNECT_FAILURE_MSG + PRE_CFG elif laststatus == REBOOT_TASK: node_report['statusindex'] = REBOOT_TASK node_report['statusmessage'] = RICCI_CONNECT_FAILURE_MSG + PRE_CFG elif laststatus == SEND_CONF: node_report['statusindex'] = SEND_CONF node_report['statusmessage'] = RICCI_CONNECT_FAILURE_MSG + PRE_JOIN + elif laststatus == ENABLE_SVC_TASK: + node_report['statusindex'] = ENABLE_SVC_TASK + node_report['statusmessage'] = RICCI_CONNECT_FAILURE_MSG + PRE_JOIN + else: + node_report['statusindex'] = 0 + node_report['statusmessage'] = RICCI_CONNECT_FAILURE_MSG + ' Install is in an unknown state.' 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 + elif creation_status == -(DISABLE_SVC_TASK): + node_report['iserror'] = True + (err_code, err_msg) = extract_module_status(batch_xml, DISABLE_SVC_TASK) + node_report['errormessage'] = CLUNODE_CREATE_ERRORS[DISABLE_SVC_TASK] + err_msg elif creation_status == -(REBOOT_TASK): node_report['iserror'] = True (err_code, err_msg) = extract_module_status(batch_xml, REBOOT_TASK) @@ -3478,6 +3518,10 @@ node_report['iserror'] = True (err_code, err_msg) = extract_module_status(batch_xml, SEND_CONF) node_report['errormessage'] = CLUNODE_CREATE_ERRORS[SEND_CONF] + err_msg + elif creation_status == -(ENABLE_SVC_TASK): + node_report['iserror'] = True + (err_code, err_msg) = extract_module_status(batch_xml, DISABLE_SVC_TASK) + node_report['errormessage'] = CLUNODE_CREATE_ERRORS[ENABLE_SVC_TASK] + err_msg elif creation_status == -(START_NODE): node_report['iserror'] = True (err_code, err_msg) = extract_module_status(batch_xml, START_NODE) @@ -3485,7 +3529,13 @@ else: node_report['iserror'] = True node_report['errormessage'] = CLUNODE_CREATE_ERRORS[0] - clusterfolder.manage_delObjects(item[0]) + + try: + clusterfolder.manage_delObjects(item[0]) + except Exception, e: + luci_log.debug_verbose('ICB14: delObjects: %s: %s' \ + % (item[0], str(e))) + nodereports.append(node_report) continue else: #either batch completed successfully, or still running @@ -3497,7 +3547,7 @@ try: clusterfolder.manage_delObjects(item[0]) except Exception, e: - luci_log.info('ICB14: Unable to delete %s: %s' % (item[0], str(e))) + luci_log.info('ICB15: Unable to delete %s: %s' % (item[0], str(e))) continue else: map['busy'] = "true" @@ -3507,8 +3557,12 @@ nodereports.append(node_report) propslist = list() propslist.append(LAST_STATUS) - item[1].manage_delProperties(propslist) - item[1].manage_addProperty(LAST_STATUS, creation_status, "int") + try: + item[1].manage_delProperties(propslist) + item[1].manage_addProperty(LAST_STATUS, creation_status, "int") + except Exception, e: + luci_log.debug_verbose('ICB16: last_status err: %s %d: %s' \ + % (item[0], creation_status, str(e))) continue else: @@ -3548,6 +3602,7 @@ if isBusy: part1 = req['ACTUAL_URL'] part2 = req['QUERY_STRING'] + dex = part2.find("&busyfirst") if dex != (-1): tmpstr = part2[:dex] #This strips off busyfirst var @@ -3555,7 +3610,6 @@ ###FIXME - The above assumes that the 'busyfirst' query var is@the ###end of the URL... wholeurl = part1 + "?" + part2 - #map['url'] = "5, url=" + req['ACTUAL_URL'] + "?" + req['QUERY_STRING'] map['refreshurl'] = "5; url=" + wholeurl req['specialpagetype'] = "1" else: @@ -3564,7 +3618,6 @@ map['refreshurl'] = '5; url=' + req['ACTUAL_URL'] + '?' + query except: map['refreshurl'] = '5; url=/luci/cluster?pagetype=3' - luci_log.debug_verbose('ICB17: refreshurl is \"%s\"' % map['refreshurl']) return map def getClusterOS(self, rc): --- conga/luci/site/luci/Extensions/conga_constants.py 2006/11/09 20:32:02 1.24 +++ conga/luci/site/luci/Extensions/conga_constants.py 2006/11/12 02:10:53 1.25 @@ -91,26 +91,36 @@ NODE_UNKNOWN_STR="Unknown State" #cluster/node create batch task index -INSTALL_TASK=1 -REBOOT_TASK=2 -SEND_CONF=3 -START_NODE=4 -RICCI_CONNECT_FAILURE=(-1000) +INSTALL_TASK = 1 +DISABLE_SVC_TASK = 2 +REBOOT_TASK = 3 +SEND_CONF = 4 +ENABLE_SVC_TASK = 5 +START_NODE = 6 +RICCI_CONNECT_FAILURE = (-1000) -RICCI_CONNECT_FAILURE_MSG="A problem was encountered connecting with this node. " +RICCI_CONNECT_FAILURE_MSG = "A problem was encountered connecting with this node. " #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: "] +CLUNODE_CREATE_ERRORS = [ + "An unknown error occurred when creating this node: ", + "A problem occurred when installing packages: ", + "A problem occurred when disabling cluster services on this node: ", + "A problem occurred when rebooting this node: ", + "A problem occurred when propagating the configuration to this node: ", + "A problem occurred when enabling cluster services on this node: ", + "A problem occurred when starting this node: " +] #cluster/node create error status messages -PRE_INSTALL="The install state is not yet complete" -PRE_REBOOT="Installation complete, but reboot not yet complete" -PRE_CFG="Reboot stage successful, but configuration for the cluster is not yet distributed" -PRE_JOIN="Packages are installed and configuration has been distributed, but the node has not yet joined the cluster." +PRE_INSTALL = "The install state is not yet complete" +PRE_REBOOT = "Installation complete, but reboot not yet complete" +PRE_CFG = "Reboot stage successful, but configuration for the cluster is not yet distributed" +PRE_JOIN = "Packages are installed and configuration has been distributed, but the node has not yet joined the cluster." -POSSIBLE_REBOOT_MESSAGE="This node is not currently responding and is probably
    rebooting as planned. This state should persist for 5 minutes or so..." +POSSIBLE_REBOOT_MESSAGE = "This node is not currently responding and is probably
    rebooting as planned. This state should persist for 5 minutes or so..." -REDIRECT_MSG=" You will be redirected in 5 seconds. Please fasten your safety restraints." +REDIRECT_MSG = " You will be redirected in 5 seconds. Please fasten your safety restraints." # Homebase-specific constants @@ -128,7 +138,7 @@ CLUSTER_NODE_NOT_MEMBER = 0x02 CLUSTER_NODE_ADDED = 0x04 -PLONE_ROOT='luci' +PLONE_ROOT = 'luci' LUCI_DEBUG_MODE = 1 LUCI_DEBUG_VERBOSITY = 2 --- conga/luci/site/luci/Extensions/ricci_bridge.py 2006/11/06 23:55:23 1.41 +++ conga/luci/site/luci/Extensions/ricci_bridge.py 2006/11/12 02:10:53 1.42 @@ -28,7 +28,8 @@ return False -def addClusterNodeBatch(cluster_name, +def addClusterNodeBatch(os_str, + cluster_name, install_base, install_services, install_shared_storage, @@ -65,13 +66,31 @@ need_reboot = install_base or install_services or install_shared_storage or install_LVS if need_reboot: + batch += '' + batch += '' + batch += '' + batch += '' + if os_str == 'rhel4': + batch += '' + batch += '' + batch += '' + batch += '' + batch += '' + batch += '' + batch += '' batch += '' batch += '' batch += '' batch += '' else: - # need placeholder instead of reboot + # need 2 placeholders instead of disable services / reboot + batch += '' + batch += '' + batch += '' + batch += '' + batch += '' + batch += '' batch += '' batch += '' @@ -95,6 +114,26 @@ batch += '' batch += '' + if need_reboot: + batch += '' + batch += '' + batch += '' + batch += '' + if os_str == 'rhel4': + batch += '' + batch += '' + batch += '' + batch += '' + batch += '' + batch += '' + else: + # placeholder instead of enable services + batch += '' + batch += '' + batch += '' + batch += '' + batch += '' + batch += '' batch += '' batch += '' @@ -142,13 +181,31 @@ need_reboot = install_base or install_services or install_shared_storage or install_LVS if need_reboot: + batch += '' + batch += '' + batch += '' + batch += '' + if os_str == 'rhel4': + batch += '' + batch += '' + batch += '' + batch += '' + batch += '' + batch += '' + batch += '' batch += '' batch += '' batch += '' batch += '' else: - # need placeholder instead of reboot + # need 2 placeholders instead of disable services / reboot + batch += '' + batch += '' + batch += '' + batch += '' + batch += '' + batch += '' batch += '' batch += '' @@ -188,6 +245,26 @@ batch += '' batch += '' + if need_reboot: + batch += '' + batch += '' + batch += '' + batch += '' + if os_str == 'rhel4': + batch += '' + batch += '' + batch += '' + batch += '' + batch += '' + batch += '' + else: + # placeholder instead of enable services + batch += '' + batch += '' + batch += '' + batch += '' + batch += '' + batch += '' batch += '' batch += '' @@ -301,7 +378,7 @@ def getNodeLogs(rc): errstr = 'log not accessible' - batch_str = '' + batch_str = '' ricci_xml = rc.batch_run(batch_str, async=False) if not ricci_xml: @@ -350,7 +427,7 @@ return entry def nodeReboot(rc): - batch_str = '' + batch_str = '' ricci_xml = rc.batch_run(batch_str) return batchAttemptResult(ricci_xml) @@ -364,13 +441,13 @@ if purge == False: purge_conf = 'false' - batch_str = '' + batch_str = '' ricci_xml = rc.batch_run(batch_str) return batchAttemptResult(ricci_xml) def nodeFence(rc, nodename): - batch_str = '' + batch_str = '' ricci_xml = rc.batch_run(batch_str) return batchAttemptResult(ricci_xml) @@ -380,28 +457,28 @@ if cluster_startup == True: cstartup = 'true' - batch_str = '' + batch_str = '' ricci_xml = rc.batch_run(batch_str) return batchAttemptResult(ricci_xml) def startService(rc, servicename, preferrednode=None): if preferrednode != None: - batch_str = '' + batch_str = '' else: - batch_str = '' + batch_str = '' ricci_xml = rc.batch_run(batch_str) return batchAttemptResult(ricci_xml) def restartService(rc, servicename): - batch_str = '' + batch_str = '' ricci_xml = rc.batch_run(batch_str) return batchAttemptResult(ricci_xml) def stopService(rc, servicename): - batch_str = '' + batch_str = '' ricci_xml = rc.batch_run(batch_str) return batchAttemptResult(ricci_xml) --- conga/luci/site/luci/Extensions/ricci_communicator.py 2006/11/06 23:55:23 1.18 +++ conga/luci/site/luci/Extensions/ricci_communicator.py 2006/11/12 02:10:53 1.19 @@ -34,7 +34,7 @@ raise RicciError, 'Error connecting to %s:%d: unknown error' \ % (self.__hostname, self.__port) - luci_log.debug_verbose('Connected to %s:%d' \ + luci_log.debug_verbose('RC:init0: Connected to %s:%d' \ % (self.__hostname, self.__port)) try: self.ss = ssl(sock, self.__privkey_file, self.__cert_file) @@ -51,7 +51,7 @@ # receive ricci header hello = self.__receive() try: - luci_log.debug_verbose('Received header from %s: \"%s\"' \ + luci_log.debug_verbose('RC:init1: Received header from %s: \"%s\"' \ % (self.__hostname, hello.toxml())) except: pass @@ -67,34 +67,34 @@ def hostname(self): - luci_log.debug_verbose('[auth %d] reported hostname = %s' \ + luci_log.debug_verbose('RC:hostname: [auth %d] reported hostname = %s' \ % (self.__authed, self.__hostname)) return self.__hostname def authed(self): - luci_log.debug_verbose('reported authed = %d for %s' \ + luci_log.debug_verbose('RC:authed: reported authed = %d for %s' \ % (self.__authed, self.__hostname)) return self.__authed def system_name(self): - luci_log.debug_verbose('[auth %d] reported system_name = %s for %s' \ + luci_log.debug_verbose('RC:system_name: [auth %d] reported system_name = %s for %s' \ % (self.__authed, self.__reported_hostname, self.__hostname)) return self.__reported_hostname def cluster_info(self): - luci_log.debug_verbose('[auth %d] reported cluster_info = (%s,%s) for %s' \ + luci_log.debug_verbose('RC:cluster_info: [auth %d] reported cluster_info = (%s,%s) for %s' \ % (self.__authed, self.__cluname, self.__clualias, self.__hostname)) return (self.__cluname, self.__clualias) def os(self): - luci_log.debug_verbose('[auth %d] reported system_name = %s for %s' \ + luci_log.debug_verbose('RC:os: [auth %d] reported system_name = %s for %s' \ % (self.__authed, self.__os, self.__hostname)) return self.__os def dom0(self): - luci_log.debug_verbose('[auth %d] reported system_name = %s for %s' \ + luci_log.debug_verbose('RC:dom0: [auth %d] reported system_name = %s for %s' \ % (self.__authed, self.__dom0, self.__hostname)) return self.__dom0 def auth(self, password): if self.authed(): - luci_log.debug_verbose('already authenticated to %s' \ + luci_log.debug_verbose('RC:auth0: already authenticated to %s' \ % self.__hostname) return True @@ -111,7 +111,8 @@ resp = self.__receive() self.__authed = resp.firstChild.getAttribute('authenticated') == 'true' - luci_log.debug_verbose('auth call returning %d' % self.__authed) + luci_log.debug_verbose('RC:auth1: auth call returning %d' \ + % self.__authed) return self.__authed @@ -124,26 +125,26 @@ self.__send(doc) resp = self.__receive() - luci_log.debug_verbose('trying to unauthenticate to %s' \ + luci_log.debug_verbose('RC:unauth0: trying to unauthenticate to %s' \ % self.__hostname) try: ret = resp.firstChild.getAttribute('success') - luci_log.debug_verbose('unauthenticate returned %s for %s' \ + luci_log.debug_verbose('RC:unauth1: unauthenticate returned %s for %s' \ % (ret, self.__hostname)) if ret != '0': raise Exception, 'Invalid response' except: errstr = 'Error authenticating to host %s: %s' \ % (self.__hostname, str(ret)) - luci_log.debug(errstr) + luci_log.debug_verbose('RC:unauth2:' + errstr) raise RicciError, errstr return True def process_batch(self, batch_xml, async=False): try: - luci_log.debug_verbose('auth=%d to %s for batch %s [async=%d]' \ + luci_log.debug_verbose('RC:PB0: [auth=%d] to %s for batch %s [async=%d]' \ % (self.__authed, self.__hostname, batch_xml.toxml(), async)) except: pass @@ -169,7 +170,7 @@ try: self.__send(doc) except Exception, e: - luci_log.debug('Error sending XML \"%s\" to host %s' \ + luci_log.debug_verbose('RC:PB1: Error sending XML \"%s\" to host %s' \ % (doc.toxml(), self.__hostname)) raise RicciError, 'Error sending XML to host %s: %s' \ % (self.__hostname, str(e)) @@ -179,13 +180,13 @@ # receive response doc = self.__receive() try: - luci_log.debug_verbose('received from %s XML \"%s\"' \ + luci_log.debug_verbose('RC:PB2: received from %s XML \"%s\"' \ % (self.__hostname, doc.toxml())) except: pass if doc.firstChild.getAttribute('success') != '0': - luci_log.debug_verbose('batch command failed') + luci_log.debug_verbose('RC:PB3: batch command failed') raise RicciError, 'The last ricci command to host %s failed' \ % self.__hostname @@ -195,7 +196,7 @@ if node.nodeName == 'batch': batch_node = node.cloneNode(True) if batch_node == None: - luci_log.debug_verbose('batch node missing ') + luci_log.debug_verbose('RC:PB4: batch node missing ') raise RicciError, 'missing in ricci\'s response from %s' \ % self.__hostname @@ -204,23 +205,23 @@ def batch_run(self, batch_str, async=True): try: batch_xml_str = '' + batch_str + '' - luci_log.debug_verbose('attempting batch \"%s\" for host %s' \ + luci_log.debug_verbose('RC:BRun0: attempting batch \"%s\" for host %s' \ % (batch_xml_str, self.__hostname)) batch_xml = minidom.parseString(batch_xml_str).firstChild except Exception, e: - luci_log.debug('received invalid batch XML for %s: \"%s\": %s' \ + luci_log.debug_verbose('RC:BRun1: received invalid batch XML for %s: \"%s\": %s' \ % (self.__hostname, batch_xml_str, str(e))) raise RicciError, 'batch XML is malformed' try: ricci_xml = self.process_batch(batch_xml, async) try: - luci_log.debug_verbose('received XML \"%s\" from host %s in response to batch command.' \ + luci_log.debug_verbose('RC:BRun2: received XML \"%s\" from host %s in response to batch command.' \ % (ricci_xml.toxml(), self.__hostname)) except: pass except: - luci_log.debug('An error occurred while trying to process the batch job: %s' % batch_xml_str) + luci_log.debug_verbose('RC:BRun3: An error occurred while trying to process the batch job: \"%s\"' % batch_xml_str) return None doc = minidom.Document() @@ -228,7 +229,7 @@ return doc def batch_report(self, batch_id): - luci_log.debug_verbose('[auth=%d] asking for batchid# %s for host %s' \ + luci_log.debug_verbose('RC:BRep0: [auth=%d] asking for batchid# %s for host %s' \ % (self.__authed, batch_id, self.__hostname)) if not self.authed(): @@ -271,7 +272,7 @@ try: pos = self.ss.write(buff) except Exception, e: - luci_log.debug('Error sending XML \"%s\" to %s: %s' \ + luci_log.debug_verbose('RC:send0: Error sending XML \"%s\" to %s: %s' \ % (buff, self.__hostname, str(e))) raise RicciError, 'write error while sending XML to host %s' \ % self.__hostname @@ -280,7 +281,7 @@ % self.__hostname buff = buff[pos:] try: - luci_log.debug_verbose('Sent XML \"%s\" to host %s' \ + luci_log.debug_verbose('RC:send1: Sent XML \"%s\" to host %s' \ % (xml_doc.toxml(), self.__hostname)) except: pass @@ -302,19 +303,19 @@ # we haven't received all of the XML data yet. continue except Exception, e: - luci_log.debug('Error reading data from %s: %s' \ + luci_log.debug_verbose('RC:recv0: Error reading data from %s: %s' \ % (self.__hostname, str(e))) raise RicciError, 'Error reading data from host %s' % self.__hostname except: raise RicciError, 'Error reading data from host %s' % self.__hostname - luci_log.debug_verbose('Received XML \"%s\" from host %s' \ + luci_log.debug_verbose('RC:recv1: Received XML \"%s\" from host %s' \ % (xml_in, self.__hostname)) try: if doc == None: doc = minidom.parseString(xml_in) except Exception, e: - luci_log.debug('Error parsing XML \"%s" from %s' \ + luci_log.debug_verbose('RC:recv2: Error parsing XML \"%s" from %s' \ % (xml_in, str(e))) raise RicciError, 'Error parsing XML from host %s: %s' \ % (self.__hostname, str(e)) @@ -326,7 +327,7 @@ try: if doc.firstChild.nodeName != 'ricci': - luci_log.debug('Expecting \"ricci\" got XML \"%s\" from %s' % + luci_log.debug_verbose('RC:recv3: Expecting \"ricci\" got XML \"%s\" from %s' % (xml_in, self.__hostname)) raise Exception, 'Expecting first XML child node to be \"ricci\"' except Exception, e: @@ -344,7 +345,7 @@ try: return RicciCommunicator(hostname) except Exception, e: - luci_log.debug('Error creating a ricci connection to %s: %s' \ + luci_log.debug_verbose('RC:GRC0: Error creating a ricci connection to %s: %s' \ % (hostname, str(e))) return None pass @@ -394,7 +395,7 @@ def batch_status(batch_xml): if batch_xml.nodeName != 'batch': try: - luci_log.debug('Expecting an XML batch node. Got \"%s\"' \ + luci_log.debug_verbose('RC:BS0: Expecting an XML batch node. Got \"%s\"' \ % batch_xml.toxml()) except: pass @@ -414,10 +415,10 @@ last = last + 1 last = last - 2 * last try: - luci_log.debug_verbose('Returning (%d, %d) for batch_status(\"%s\")' \ + luci_log.debug_verbose('RC:BS1: Returning (%d, %d) for batch_status(\"%s\")' \ % (last, total, batch_xml.toxml())) except: - luci_log.debug_verbose('Returning last, total') + luci_log.debug_verbose('RC:BS2: Returning last, total') return (last, total) @@ -443,7 +444,7 @@ # * error_msg: error message def extract_module_status(batch_xml, module_num=1): if batch_xml.nodeName != 'batch': - luci_log.debug('Expecting \"batch\" got \"%s\"' % batch_xml.toxml()) + luci_log.debug_verbose('RC:EMS0: Expecting \"batch\" got \"%s\"' % batch_xml.toxml()) raise RicciError, 'Invalid XML node; expecting a batch node' c = 0