cluster-devel.redhat.com archive mirror
 help / color / mirror / Atom feed
From: jparsons@sourceware.org <jparsons@sourceware.org>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] conga/luci/site/luci/Extensions cluster_adapte ...
Date: 28 Jul 2006 11:46:35 -0000	[thread overview]
Message-ID: <20060728114635.21869.qmail@sourceware.org> (raw)

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	jparsons at sourceware.org	2006-07-28 11:46:35

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

Log message:
	Big fixes for resource support

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/cluster_adapters.py.diff?cvsroot=cluster&r1=1.17&r2=1.18
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/ricci_bridge.py.diff?cvsroot=cluster&r1=1.9&r2=1.10

--- conga/luci/site/luci/Extensions/cluster_adapters.py	2006/07/27 16:34:11	1.17
+++ conga/luci/site/luci/Extensions/cluster_adapters.py	2006/07/28 11:46:35	1.18
@@ -5,6 +5,13 @@
 from ricci_bridge import *
 import time
 import Products.ManagedSystem
+from Ip import Ip
+from Clusterfs import Clusterfs
+from Fs import Fs
+from NFSClient import NFSClient
+from Netfs import Netfs
+from Script import Script
+from Samba import Samba
 
 #Policy for showing the cluster chooser menu:
 #1) If there are no clusters in the ManagedClusterSystems
@@ -1320,7 +1327,7 @@
                                                                                 
   return {}
                                                                                 
-def addResource(self, request):
+def addResource(self, request, ragent):
   if not request.form:
     return "Nothing submitted, no changes made."
                                                                                 
@@ -1336,20 +1343,32 @@
            'smb': addSmb}
                                                                                 
   type = request.form["type"]
-  return types[type](request)
+  res = types[type](request)
+  modelb = request.SESSION.get('model')
+  modelstr = ""
+  conf = modelb.exportModelAsString()
+  rb = ricci_bridge(ragent)
+  #try:
+  if True:
+    batch_id, result = rb.setClusterConf(str(conf))
+  #except:
+  else:
+    return "Some error occured in setClusterConf\n"
+
+  return "Resource Added"
 
 def getResourceForEdit(modelb, name):
-  resPtr = modelb.getResourcesPtr()
-  resources = resPrt.getChildren()
-                                                                                
+  resources = modelb.getResourcesPtr().getChildren()
+                                                                               
   for res in resources:
     if res.getName() == name:
       resources.removeChild(res)
       break
-                                                                                
+                                                                              
   return res
+
 def addIp(request):
-  modelb = request.SESSION["model"]
+  modelb = request.SESSION.get('model')
   if request.form.has_key('edit'):
     res = getResourceForEdit(modelb, request.form['oldname'])
   else:
@@ -1365,7 +1384,7 @@
   return res
 
 def addFs(request):
-  modelb = request.SESSION["model"]
+  modelb = request.SESSION.get('model')
   if request.form.has_key('edit'):
     res = getResourceForEdit(modelb, request.form['oldname'])
   else:
@@ -1396,7 +1415,7 @@
   return res
                                                                                 
 def addGfs(request):
-  modelb = request.SESSION["model"]
+  modelb = request.SESSION.get('model')
   if request.form.has_key('edit'):
     res = getResourceForEdit(modelb, request.form['oldname'])
   else:
@@ -1417,7 +1436,7 @@
   return res
 
 def addNfsm(request):
-  modelb = request.SESSION["model"]
+  modelb = request.SESSION.get('model')
   if request.form.has_key('edit'):
     res = getResourceForEdit(modelb, request.form['oldname'])
   else:
@@ -1439,7 +1458,7 @@
   return res
                                                                                 
 def addNfsc(request):
-  modelb = request.SESSION["model"]
+  modelb = request.SESSION.get('model')
   if request.form.has_key('edit'):
     res = getResourceForEdit(modelb, request.form['oldname'])
   else:
@@ -1453,7 +1472,7 @@
   return res
                                                                                 
 def addNfsx(request):
-  modelb = request.SESSION["model"]
+  modelb = request.SESSION.get('model')
   if request.form.has_key('edit'):
     res = getResourceForEdit(modelb, request.form['oldname'])
   else:
@@ -1465,7 +1484,7 @@
   return res
 
 def addScr(request):
-  modelb = request.SESSION["model"]
+  modelb = request.SESSION.get('model')
   if request.form.has_key('edit'):
     res = getResourceForEdit(modelb, request.form['oldname'])
   else:
@@ -1478,7 +1497,7 @@
   return res
                                                                                 
 def addSmb(request):
-  modelb = request.SESSION["model"]
+  modelb = request.SESSION.get('model')
   if request.form.has_key('edit'):
     res = getResourceForEdit(modelb, request.form['oldname'])
   else:
@@ -1493,5 +1512,8 @@
 def appendModel(request, model):
   try:
     request.SESSION.set('model', model)
-  except: pass
+  except:
+    pass
+  return
+
 
--- conga/luci/site/luci/Extensions/ricci_bridge.py	2006/07/27 14:23:59	1.9
+++ conga/luci/site/luci/Extensions/ricci_bridge.py	2006/07/28 11:46:35	1.10
@@ -1,4 +1,3 @@
-
 from time import *
 import os
 from socket import *
@@ -10,526 +9,516 @@
 
 
 class ricci_bridge:
-    def __init__(self, hostname, port=11111):
-        self.__hostname = hostname
-        self.__port = port
-        return
+  def __init__(self, hostname, port=11111):
+    self.__hostname = hostname
+    self.__port = port
+    return
     
     
-    def process(self, xml_out):
-        #if os.path.exists("/opt/zopetooey/Extensions/certs/privkey.pem"):
-        #  return "<h1>Path Exists</h1>"
-        #else:
-        #  return "<h1>Path Does Not Exist</h1>"
-        CLUSTER_STR='<?xml version="1.0" ?><ricci async="false" function="process_batch" version="1.0"><batch><module name="cluster"><request API_version="1.0"><function_call name="get_cluster.conf"/></request></module></batch></ricci>'
+  def process(self, xml_out):
+    CLUSTER_STR='<?xml version="1.0" ?><ricci async="false" function="process_batch" version="1.0"><batch><module name="cluster"><request API_version="1.0"><function_call name="get_cluster.conf"/></request></module></batch></ricci>'
         
-        doc = self.makeConnection(CLUSTER_STR)
+    doc = self.makeConnection(CLUSTER_STR)
         
-        if doc == None:
-          print "Sorry, doc is None"
-        if doc != None:
-          bt_node = None
-          for node in doc.firstChild.childNodes:
+    if doc == None:
+      print "Sorry, doc is None"
+    if doc != None:
+      bt_node = None
+      for node in doc.firstChild.childNodes:
+        if node.nodeType == xml.dom.Node.ELEMENT_NODE:
+          if node.nodeName == 'batch':
+            bt_node = node
+      if bt_node == None:
+        print "bt_node == None"
+        doc = None
+      else:
+        #print doc.toxml()
+        mod_node = None
+        for node in bt_node.childNodes:
             if node.nodeType == xml.dom.Node.ELEMENT_NODE:
-              if node.nodeName == 'batch':
-                bt_node = node
-          if bt_node == None:
-            print "bt_node == None"
+                if node.nodeName == 'module':
+                    mod_node = node
+        if mod_node == None:
+            print "mod_node == None"
             doc = None
-          else:
-            #print doc.toxml()
-            mod_node = None
-            for node in bt_node.childNodes:
+        else:
+            resp_node = None
+            for node in mod_node.childNodes:
                 if node.nodeType == xml.dom.Node.ELEMENT_NODE:
-                    if node.nodeName == 'module':
-                        mod_node = node
-            if mod_node == None:
-                print "mod_node == None"
+                    resp_node = node
+            if resp_node == None:
+                print "resp_node == None"
                 doc = None
             else:
-                resp_node = None
-                for node in mod_node.childNodes:
+                fr_node = None
+                for node in resp_node.childNodes:
                     if node.nodeType == xml.dom.Node.ELEMENT_NODE:
-                        resp_node = node
-                if resp_node == None:
-                    print "resp_node == None"
+                      fr_node = node
+                if fr_node == None:
+                    print "fr_node == None"
                     doc = None
                 else:
-                    fr_node = None
-                    for node in resp_node.childNodes:
-                        if node.nodeType == xml.dom.Node.ELEMENT_NODE:
-                          fr_node = node
-                    if fr_node == None:
-                        print "fr_node == None"
-                        doc = None
+                    varnode = None
+                    for node in fr_node.childNodes:
+                      if node.nodeName == 'var':
+                          varnode = node
+                          break
+                    if varnode == None:
+                       print "varnode == None"
+                       doc = None
                     else:
-                        varnode = None
-                        for node in fr_node.childNodes:
-                          if node.nodeName == 'var':
-                              varnode = node
+                      cl_node = None
+                      for node in varnode.childNodes:
+                          if node.nodeName == 'cluster':
+                              cl_node = node
                               break
-                        if varnode == None:
-                           print "varnode == None"
-                           doc = None
-                        else:
-                          cl_node = None
-                          for node in varnode.childNodes:
-                              if node.nodeName == 'cluster':
-                                  cl_node = node
-                                  break
-                          if cl_node == None:
-                            print "cl_node == None"
-                            doc = None
-                          else:
-                              docc = minidom.Document()
-                              docc.appendChild(cl_node)
-
-        return docc
-    
-    def __sendall(self, str, ssl_sock):
-        print str
-        s = str
-        while len(s) != 0:
-            pos = ssl_sock.write(s)
-            s = s[pos:]
-        return
-    
+                      if cl_node == None:
+                        print "cl_node == None"
+                        doc = None
+                      else:
+                          docc = minidom.Document()
+                          docc.appendChild(cl_node)
+
+    return docc
     
-    def __receive(self, ssl_sock):
-        doc = None
-        xml_in = ''
-        try:
-            while True:
-                buff = ssl_sock.read(1024)
-                if buff == '':
-                    break
-                xml_in += buff
-                try:
-                    doc = minidom.parseString(xml_in)
-                    break
-                except:
-                    pass
-        except:
-            pass
-        try:
-            #print 'try parse xml'
-            doc = minidom.parseString(xml_in)
-            #print 'xml is good'
-        except:
-            pass
-        #print "response--------------------------------"
-        #print doc.toxml()
-        #print "response--------------------------------"
-        return doc
+  def __sendall(self, str, ssl_sock):
+    print str
+    s = str
+    while len(s) != 0:
+        pos = ssl_sock.write(s)
+        s = s[pos:]
+    return
 
-    def getClusterStatus(self):
-        CLUSTER_STR='<?xml version="1.0" ?><ricci async="false" function="process_batch" version="1.0"><batch><module name="cluster"><request API_version="1.0"><function_call name="status"/></request></module></batch></ricci>'
-        # socket
-        sock = socket(AF_INET, SOCK_STREAM)
-        sock.connect((self.__hostname, self.__port))
-        ss = ssl(sock, PATH_TO_PRIVKEY, PATH_TO_CACERT)
-
-        # receive ricci header
-        hello = self.__receive(ss)
-        if hello != None:
-            pass
-            #print hello.toxml()
-        self.__sendall(CLUSTER_STR, ss)
-        
-        
-        # receive response
-        doc = self.__receive(ss)
-        if doc == None:
-          print "Sorry, doc is None"
-        else:
-          payload = self.extractPayload(doc)
-        sock.shutdown(2)
-        sock.close()
-
-        return payload
-
-    def startService(self,servicename, preferrednode = None):
-        if preferrednode != None:
-          QUERY_STR='<?xml version="1.0" ?><ricci async="true" function="process_batch" version="1.0"><batch><module name="cluster"><request sequence="1254" API_version="1.0"><function_call name="start_service"><var mutable="false" name="servicename" type="string" value=\"' + servicename + '\"/><var mutable="false" name="nodename" type="string" value=\"' + preferrednode + '\" /></function_call></request></module></batch></ricci>'
-        else:
-          QUERY_STR='<?xml version="1.0" ?><ricci async="true" function="process_batch" version="1.0"><batch><module name="cluster"><request sequence="1254" API_version="1.0"><function_call name="start_service"><var mutable="false" name="servicename" type="string" value=\"' + servicename + '\"/></function_call></request></module></batch></ricci>'
+    
+  def __receive(self, ssl_sock):
+    doc = None
+    xml_in = ''
+    try:
+        while True:
+            buff = ssl_sock.read(1024)
+            if buff == '':
+                break
+            xml_in += buff
+            try:
+                doc = minidom.parseString(xml_in)
+                break
+            except:
+                pass
+    except:
+        pass
+    try:
+        #print 'try parse xml'
+        doc = minidom.parseString(xml_in)
+        #print 'xml is good'
+    except:
+        pass
+    return doc
+
+  def getClusterStatus(self):
+    CLUSTER_STR='<?xml version="1.0" ?><ricci async="false" function="process_batch" version="1.0"><batch><module name="cluster"><request API_version="1.0"><function_call name="status"/></request></module></batch></ricci>'
+    # socket
+    sock = socket(AF_INET, SOCK_STREAM)
+    sock.connect((self.__hostname, self.__port))
+    ss = ssl(sock, PATH_TO_PRIVKEY, PATH_TO_CACERT)
+
+    # receive ricci header
+    hello = self.__receive(ss)
+    if hello != None:
+        pass
+        #print hello.toxml()
+    self.__sendall(CLUSTER_STR, ss)
+    
+    
+    # receive response
+    doc = self.__receive(ss)
+    if doc == None:
+      print "Sorry, doc is None"
+    else:
+      payload = self.extractPayload(doc)
+    sock.shutdown(2)
+    sock.close()
+
+    return payload
+
+  def startService(self,servicename, preferrednode = None):
+    if preferrednode != None:
+      QUERY_STR='<?xml version="1.0" ?><ricci async="true" function="process_batch" version="1.0"><batch><module name="cluster"><request sequence="1254" API_version="1.0"><function_call name="start_service"><var mutable="false" name="servicename" type="string" value=\"' + servicename + '\"/><var mutable="false" name="nodename" type="string" value=\"' + preferrednode + '\" /></function_call></request></module></batch></ricci>'
+    else:
+      QUERY_STR='<?xml version="1.0" ?><ricci async="true" function="process_batch" version="1.0"><batch><module name="cluster"><request sequence="1254" API_version="1.0"><function_call name="start_service"><var mutable="false" name="servicename" type="string" value=\"' + servicename + '\"/></function_call></request></module></batch></ricci>'
 
-        try:
-          payload = self.makeConnection(QUERY_STR)
-        except RicciReceiveError, r:
-          return None
-          
+    try:
+      payload = self.makeConnection(QUERY_STR)
+    except RicciReceiveError, r:
+      return None
+      
 
-        batch_number, result = self.batchAttemptResult(payload)
-        return (batch_number, result)
+    batch_number, result = self.batchAttemptResult(payload)
+    return (batch_number, result)
 
-    def restartService(self,servicename):
-        QUERY_STR='<?xml version="1.0" ?><ricci async="true" function="process_batch" version="1.0"><batch><module name="cluster"><request sequence="1254" API_version="1.0"><function_call name="restart_service"><var mutable="false" name="servicename" type="string" value=\"' + servicename + '\"/></function_call></request></module></batch></ricci>'
+  def restartService(self,servicename):
+    QUERY_STR='<?xml version="1.0" ?><ricci async="true" function="process_batch" version="1.0"><batch><module name="cluster"><request sequence="1254" API_version="1.0"><function_call name="restart_service"><var mutable="false" name="servicename" type="string" value=\"' + servicename + '\"/></function_call></request></module></batch></ricci>'
 
-        try:
-          payload = self.makeConnection(QUERY_STR)
-        except RicciReceiveError, r:
-          return None
-          
+    try:
+      payload = self.makeConnection(QUERY_STR)
+    except RicciReceiveError, r:
+      return None
+      
 
-        batch_number, result = self.batchAttemptResult(payload)
-        return (batch_number, result)
+    batch_number, result = self.batchAttemptResult(payload)
+    return (batch_number, result)
 
 
-    def stopService(self,servicename):
-        QUERY_STR='<?xml version="1.0" ?><ricci async="true" function="process_batch" version="1.0"><batch><module name="cluster"><request sequence="1254" API_version="1.0"><function_call name="stop_service"><var mutable="false" name="servicename" type="string" value=\"' + servicename + '\"/></function_call></request></module></batch></ricci>'
+  def stopService(self,servicename):
+    QUERY_STR='<?xml version="1.0" ?><ricci async="true" function="process_batch" version="1.0"><batch><module name="cluster"><request sequence="1254" API_version="1.0"><function_call name="stop_service"><var mutable="false" name="servicename" type="string" value=\"' + servicename + '\"/></function_call></request></module></batch></ricci>'
 
-        try:
-          payload = self.makeConnection(QUERY_STR)
-        except RicciReceiveError, r:
-          return None
-          
+    try:
+      payload = self.makeConnection(QUERY_STR)
+    except RicciReceiveError, r:
+      return None
+      
 
-        batch_number, result = self.batchAttemptResult(payload)
-        return (batch_number, result)
+    batch_number, result = self.batchAttemptResult(payload)
+    return (batch_number, result)
 
-    def getDaemonStates(self, dlist):
-      CLUSTER_STR='<?xml version="1.0" ?><ricci async="false" function="process_batch" version="1.0"><batch><module name="service"><request API_version="1.0"><function_call name="query"><var mutable="false" name="search" type="list_xml">'
-                                                                                
-      for item in dlist:
-        CLUSTER_STR = CLUSTER_STR + '<service name=\"' + item + '\"/>'
+  def getDaemonStates(self, dlist):
+    CLUSTER_STR='<?xml version="1.0" ?><ricci async="false" function="process_batch" version="1.0"><batch><module name="service"><request API_version="1.0"><function_call name="query"><var mutable="false" name="search" type="list_xml">'
                                                                                 
-      CLUSTER_STR = CLUSTER_STR + '</var></function_call></request></module></batch></ricci>'
+    for item in dlist:
+      CLUSTER_STR = CLUSTER_STR + '<service name=\"' + item + '\"/>'
                                                                                 
-      try:
-        payload = self.makeConnection(CLUSTER_STR)
-      except RicciReceiveError, r:
-        return None
+    CLUSTER_STR = CLUSTER_STR + '</var></function_call></request></module></batch></ricci>'
                                                                                 
-      result = self.extractDaemonInfo(payload)
+    try:
+      payload = self.makeConnection(CLUSTER_STR)
+    except RicciReceiveError, r:
+      return None
                                                                                 
-      return result
-                                                                                
-    def makeConnection(self,query_str):
-        # socket
-        sock = socket(AF_INET, SOCK_STREAM)
-        sock.connect((self.__hostname, self.__port))
-        ss = ssl(sock, PATH_TO_PRIVKEY, PATH_TO_CACERT)
-
-        # receive ricci header
-        hello = self.__receive(ss)
-        if hello != None:
-            pass
-            #print hello.toxml()
-        self.__sendall(query_str, ss)
-        
-        
-        # receive response
-        payload = self.__receive(ss)
-        if payload == None:
-          raise RicciReceiveError('FATAL',"Unable to receive ricci data for %s" % self.__hostname)
-        sock.shutdown(2)
-        sock.close()
-
-        return payload
-
-
-    def extractPayload(self, doc):
-          docc = None
-          bt_node = None
-          for node in doc.firstChild.childNodes:
-            if node.nodeType == xml.dom.Node.ELEMENT_NODE:
-              if node.nodeName == 'batch':
-                bt_node = node
-          if bt_node == None:
-            doc = None
-          else:
-            #print doc.toxml()
-            mod_node = None
-            for node in bt_node.childNodes:
-                if node.nodeType == xml.dom.Node.ELEMENT_NODE:
-                    if node.nodeName == 'module':
-                        mod_node = node
-            if mod_node == None:
-                doc = None
-            else:
-                resp_node = None
-                for node in mod_node.childNodes:
-                    if node.nodeType == xml.dom.Node.ELEMENT_NODE:
-                        resp_node = node
-                if resp_node == None:
-                    doc = None
-                else:
-                    fr_node = None
-                    for node in resp_node.childNodes:
-                        if node.nodeType == xml.dom.Node.ELEMENT_NODE:
-                          fr_node = node
-                    if fr_node == None:
-                        doc = None
-                    else:
-                        varnode = None
-                        for node in fr_node.childNodes:
-                          if node.nodeName == 'var':
-                              varnode = node
-                              break
-                        if varnode == None:
-                           doc = None
-                        else:
-                          cl_node = None
-                          for node in varnode.childNodes:
-                              if node.nodeName == 'cluster':
-                                  cl_node = node
-                                  break
-                          if cl_node == None:
-                            doc = None
-                          else:
-                              docc = minidom.Document()
-                              docc.appendChild(cl_node)
-          return docc
-
-
-    def getBatchResult(self, doc):
-          docc = None
-          bt_node = None
-          for node in doc.firstChild.childNodes:
-            if node.nodeType == xml.dom.Node.ELEMENT_NODE:
-              if node.nodeName == 'batch':
-                bt_node = node
-          if bt_node == None:
-            doc = None
+    result = self.extractDaemonInfo(payload)
+                                                                              
+    return result
+                                                                              
+  def makeConnection(self,query_str):
+    # socket
+    sock = socket(AF_INET, SOCK_STREAM)
+    sock.connect((self.__hostname, self.__port))
+    ss = ssl(sock, PATH_TO_PRIVKEY, PATH_TO_CACERT)
+
+    # receive ricci header
+    hello = self.__receive(ss)
+    if hello != None:
+        pass
+        #print hello.toxml()
+    self.__sendall(query_str, ss)
+    
+    
+    # receive response
+    payload = self.__receive(ss)
+    if payload == None:
+      raise RicciReceiveError('FATAL',"Unable to receive ricci data for %s" % self.__hostname)
+    sock.shutdown(2)
+    sock.close()
+
+    return payload
+
+
+  def extractPayload(self, doc):
+    docc = None
+    bt_node = None
+    for node in doc.firstChild.childNodes:
+      if node.nodeType == xml.dom.Node.ELEMENT_NODE:
+        if node.nodeName == 'batch':
+          bt_node = node
+    if bt_node == None:
+      doc = None
+    else:
+      #print doc.toxml()
+      mod_node = None
+      for node in bt_node.childNodes:
+          if node.nodeType == xml.dom.Node.ELEMENT_NODE:
+              if node.nodeName == 'module':
+                  mod_node = node
+      if mod_node == None:
+          doc = None
+      else:
+          resp_node = None
+          for node in mod_node.childNodes:
+              if node.nodeType == xml.dom.Node.ELEMENT_NODE:
+                  resp_node = node
+          if resp_node == None:
+              doc = None
           else:
-            #print doc.toxml()
-            mod_node = None
-            for node in bt_node.childNodes:
-                if node.nodeType == xml.dom.Node.ELEMENT_NODE:
-                    if node.nodeName == 'module':
-                        mod_node = node
-            if mod_node == None:
-                doc = None
-            else:
-                resp_node = None
-                for node in mod_node.childNodes:
-                    if node.nodeType == xml.dom.Node.ELEMENT_NODE:
-                        resp_node = node
-                if resp_node == None:
-                    doc = None
-                else:
-                    fr_node = None
-                    for node in resp_node.childNodes:
-                        if node.nodeType == xml.dom.Node.ELEMENT_NODE:
-                          fr_node = node
-                    if fr_node == None:
-                        doc = None
+              fr_node = None
+              for node in resp_node.childNodes:
+                  if node.nodeType == xml.dom.Node.ELEMENT_NODE:
+                    fr_node = node
+              if fr_node == None:
+                  doc = None
+              else:
+                  varnode = None
+                  for node in fr_node.childNodes:
+                    if node.nodeName == 'var':
+                        varnode = node
+                        break
+                  if varnode == None:
+                     doc = None
+                  else:
+                    cl_node = None
+                    for node in varnode.childNodes:
+                        if node.nodeName == 'cluster':
+                            cl_node = node
+                            break
+                    if cl_node == None:
+                      doc = None
                     else:
-                        varnode = None
-                        for node in fr_node.childNodes:
-                          if node.nodeName == 'var':
-                              varnode = node
-                              break
-                        if varnode == None:
-                           doc = None
-                        else:
-                          cl_node = None
-                          for node in varnode.childNodes:
-                              if node.nodeName == 'cluster':
-                                  cl_node = node
-                                  break
-                          if cl_node == None:
-                            doc = None
-                          else:
-                              docc = minidom.Document()
-                              docc.appendChild(cl_node)
-          return docc
-
-    def extractClusterConf(self, doc):
-          docc = None
-          bt_node = None
-          for node in doc.firstChild.childNodes:
-            if node.nodeType == xml.dom.Node.ELEMENT_NODE:
-              if node.nodeName == 'batch':
-                bt_node = node
-          if bt_node == None:
-            print "bt_node == None"
-            doc = None
+                        docc = minidom.Document()
+                        docc.appendChild(cl_node)
+    return docc
+
+
+  def getBatchResult(self, doc):
+    docc = None
+    bt_node = None
+    for node in doc.firstChild.childNodes:
+      if node.nodeType == xml.dom.Node.ELEMENT_NODE:
+        if node.nodeName == 'batch':
+          bt_node = node
+    if bt_node == None:
+      doc = None
+    else:
+      #print doc.toxml()
+      mod_node = None
+      for node in bt_node.childNodes:
+          if node.nodeType == xml.dom.Node.ELEMENT_NODE:
+              if node.nodeName == 'module':
+                  mod_node = node
+      if mod_node == None:
+          doc = None
+      else:
+          resp_node = None
+          for node in mod_node.childNodes:
+              if node.nodeType == xml.dom.Node.ELEMENT_NODE:
+                  resp_node = node
+          if resp_node == None:
+              doc = None
           else:
-            #print doc.toxml()
-            mod_node = None
-            for node in bt_node.childNodes:
-                if node.nodeType == xml.dom.Node.ELEMENT_NODE:
-                    if node.nodeName == 'module':
-                        mod_node = node
-            if mod_node == None:
-                print "mod_node == None"
-                doc = None
-            else:
-                resp_node = None
-                for node in mod_node.childNodes:
-                    if node.nodeType == xml.dom.Node.ELEMENT_NODE:
-                        resp_node = node
-                if resp_node == None:
-                    print "resp_node == None"
-                    doc = None
-                else:
-                    fr_node = None
-                    for node in resp_node.childNodes:
-                        if node.nodeType == xml.dom.Node.ELEMENT_NODE:
-                          fr_node = node
-                    if fr_node == None:
-                        print "fr_node == None"
-                        doc = None
+              fr_node = None
+              for node in resp_node.childNodes:
+                  if node.nodeType == xml.dom.Node.ELEMENT_NODE:
+                    fr_node = node
+              if fr_node == None:
+                  doc = None
+              else:
+                  varnode = None
+                  for node in fr_node.childNodes:
+                    if node.nodeName == 'var':
+                        varnode = node
+                        break
+                  if varnode == None:
+                     doc = None
+                  else:
+                    cl_node = None
+                    for node in varnode.childNodes:
+                        if node.nodeName == 'cluster':
+                            cl_node = node
+                            break
+                    if cl_node == None:
+                      doc = None
                     else:
-                        varnode = None
-                        for node in fr_node.childNodes:
-                          if node.nodeName == 'var':
-                              varnode = node
-                              break
-                        if varnode == None:
-                           print "varnode == None"
-                           doc = None
-                        else:
-                          cl_node = None
-                          for node in varnode.childNodes:
-                              if node.nodeName == 'cluster':
-                                  cl_node = node
-                                  break
-                          if cl_node == None:
-                            print "cl_node == None"
-                            doc = None
-                          else:
-                              docc = minidom.Document()
-                              docc.appendChild(cl_node)
-
-          return docc
-
-    def extractDaemonInfo(self, doc):
-          print "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
-          print doc.toxml()
-          print "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"
-          resultlist = list()
-          docc = None
-          bt_node = None
-          for node in doc.firstChild.childNodes:
-            if node.nodeType == xml.dom.Node.ELEMENT_NODE:
-              if node.nodeName == 'batch':
-                bt_node = node
-          if bt_node == None:
-            print "bt_node == None"
-            doc = None
+                      docc = minidom.Document()
+                      docc.appendChild(cl_node)
+    return docc
+
+  def extractClusterConf(self, doc):
+    docc = None
+    bt_node = None
+    for node in doc.firstChild.childNodes:
+      if node.nodeType == xml.dom.Node.ELEMENT_NODE:
+        if node.nodeName == 'batch':
+          bt_node = node
+    if bt_node == None:
+      print "bt_node == None"
+      doc = None
+    else:
+      #print doc.toxml()
+      mod_node = None
+      for node in bt_node.childNodes:
+          if node.nodeType == xml.dom.Node.ELEMENT_NODE:
+              if node.nodeName == 'module':
+                  mod_node = node
+      if mod_node == None:
+          print "mod_node == None"
+          doc = None
+      else:
+          resp_node = None
+          for node in mod_node.childNodes:
+              if node.nodeType == xml.dom.Node.ELEMENT_NODE:
+                  resp_node = node
+          if resp_node == None:
+              print "resp_node == None"
+              doc = None
           else:
-            #print doc.toxml()
-            mod_node = None
-            for node in bt_node.childNodes:
-                if node.nodeType == xml.dom.Node.ELEMENT_NODE:
-                    if node.nodeName == 'module':
-                        mod_node = node
-            if mod_node == None:
-                print "mod_node == None"
-                doc = None
-            else:
-                resp_node = None
-                for node in mod_node.childNodes:
-                    if node.nodeType == xml.dom.Node.ELEMENT_NODE:
-                        resp_node = node
-                if resp_node == None:
-                    print "resp_node == None"
-                    doc = None
-                else:
-                    fr_node = None
-                    for node in resp_node.childNodes:
-                        if node.nodeType == xml.dom.Node.ELEMENT_NODE:
-                          fr_node = node
-                    if fr_node == None:
-                        print "fr_node == None"
-                        doc = None
+              fr_node = None
+              for node in resp_node.childNodes:
+                  if node.nodeType == xml.dom.Node.ELEMENT_NODE:
+                    fr_node = node
+              if fr_node == None:
+                  print "fr_node == None"
+                  doc = None
+              else:
+                  varnode = None
+                  for node in fr_node.childNodes:
+                    if node.nodeName == 'var':
+                        varnode = node
+                        break
+                  if varnode == None:
+                     print "varnode == None"
+                     doc = None
+                  else:
+                    cl_node = None
+                    for node in varnode.childNodes:
+                        if node.nodeName == 'cluster':
+                            cl_node = node
+                            break
+                    if cl_node == None:
+                      print "cl_node == None"
+                      doc = None
                     else:
-                        varnode = None
-                        for node in fr_node.childNodes:
-                          if node.nodeName == 'var':
-                              varnode = node
-                              break
-                        if varnode == None:
-                           print "varnode == None"
-                           doc = None
-                        else:
-                          svc_node = None
-                          for node in varnode.childNodes:
-                              if node.nodeName == 'service':
-                                  svchash = {}
-                                  svchash['name'] = node.getAttribute('name')
-                                  svchash['enabled'] = node.getAttribute('enabled')
-                                  svchash['running'] = node.getAttribute('running')
-                                  resultlist.append(svchash)
-                                                                                
-          return resultlist
+                        docc = minidom.Document()
+                        docc.appendChild(cl_node)
+
+    return docc
 
-    def batchAttemptResult(self, doc):
-          docc = None
-          rc_node = None
-          for node in doc.firstChild.childNodes:
+  def extractDaemonInfo(self, doc):
+    resultlist = list()
+    docc = None
+    bt_node = None
+    for node in doc.firstChild.childNodes:
+      if node.nodeType == xml.dom.Node.ELEMENT_NODE:
+        if node.nodeName == 'batch':
+          bt_node = node
+    if bt_node == None:
+      print "bt_node == None"
+      doc = None
+    else:
+      #print doc.toxml()
+      mod_node = None
+      for node in bt_node.childNodes:
+          if node.nodeType == xml.dom.Node.ELEMENT_NODE:
+              if node.nodeName == 'module':
+                  mod_node = node
+      if mod_node == None:
+          print "mod_node == None"
+          doc = None
+      else:
+          resp_node = None
+          for node in mod_node.childNodes:
               if node.nodeType == xml.dom.Node.ELEMENT_NODE:
-                  if node.nodeName == 'batch':
-                      #get batch number and status code
-                      batch_number = node.getAttribute('batch_id')
-                      result = node.getAttribute('status')
-                      return (batch_number, result)
+                  resp_node = node
+          if resp_node == None:
+              print "resp_node == None"
+              doc = None
+          else:
+              fr_node = None
+              for node in resp_node.childNodes:
+                  if node.nodeType == xml.dom.Node.ELEMENT_NODE:
+                    fr_node = node
+              if fr_node == None:
+                  print "fr_node == None"
+                  doc = None
+              else:
+                  varnode = None
+                  for node in fr_node.childNodes:
+                    if node.nodeName == 'var':
+                        varnode = node
+                        break
+                  if varnode == None:
+                     print "varnode == None"
+                     doc = None
                   else:
-                      print "RETURNING NONE!!!"
-                      return (None, None )
-      
+                    svc_node = None
+                    for node in varnode.childNodes:
+                        if node.nodeName == 'service':
+                            svchash = {}
+                            svchash['name'] = node.getAttribute('name')
+                            svchash['enabled'] = node.getAttribute('enabled')
+                            svchash['running'] = node.getAttribute('running')
+                            resultlist.append(svchash)
+                                                                          
+    return resultlist
+
+  def batchAttemptResult(self, doc):
+    docc = None
+    rc_node = None
+    for node in doc.firstChild.childNodes:
+        if node.nodeType == xml.dom.Node.ELEMENT_NODE:
+            if node.nodeName == 'batch':
+                #get batch number and status code
+                batch_number = node.getAttribute('batch_id')
+                result = node.getAttribute('status')
+                return (batch_number, result)
+            else:
+                print "RETURNING NONE!!!"
+                return (None, None )
+
 
         
-    def getRicciResponse(self):
-      sock = socket(AF_INET, SOCK_STREAM)
-      try:
-        sock.connect((self.__hostname, self.__port))
-      except:
-        return False
-      ss = ssl(sock, PATH_TO_PRIVKEY, PATH_TO_CACERT)
-      # receive ricci header
-      hello = self.__receive(ss)
-      if hello != None:
-        return True
-      else:
-        return False
+  def getRicciResponse(self):
+    sock = socket(AF_INET, SOCK_STREAM)
+    try:
+      sock.connect((self.__hostname, self.__port))
+    except:
+      return False
+    ss = ssl(sock, PATH_TO_PRIVKEY, PATH_TO_CACERT)
+    # receive ricci header
+    hello = self.__receive(ss)
+    if hello != None:
+      return True
+    else:
+      return False
 
-    def checkBatch(self, batch_id):
-      QUERY_STR = '<?xml version="1.0" ?><ricci version="1.0" function="batch_report" batch_id="' + batch_id + '"/>'
+  def checkBatch(self, batch_id):
+    QUERY_STR = '<?xml version="1.0" ?><ricci version="1.0" function="batch_report" batch_id="' + batch_id + '"/>'
 
-      try:
-        payload = self.makeConnection(QUERY_STR)
-      except RicciReceiveError, r:
-        return None
-          
-      #return true if finished or not present
-      success = payload.firstChild.getAttribute('success')
-      if success != "0":
-          return True  #I think this is ok...if id cannot be found
-      for node in payload.firstChild.childNodes:
-          if node.nodeType == xml.dom.Node.ELEMENT_NODE:
-              if node.nodeName == 'batch':
-                  #get batch number and status code
-                  batch_number = node.getAttribute('batch_id')
-                  result = node.getAttribute('status')
-                  if result == "0":
-                      return True
-                  else:
-                      return False
-              else:
-                  return False
+    try:
+      payload = self.makeConnection(QUERY_STR)
+    except RicciReceiveError, r:
+      return None
+        
+    #return true if finished or not present
+    success = payload.firstChild.getAttribute('success')
+    if success != "0":
+        return True  #I think this is ok...if id cannot be found
+    for node in payload.firstChild.childNodes:
+        if node.nodeType == xml.dom.Node.ELEMENT_NODE:
+            if node.nodeName == 'batch':
+                #get batch number and status code
+                batch_number = node.getAttribute('batch_id')
+                result = node.getAttribute('status')
+                if result == "0":
+                    return True
+                else:
+                    return False
+            else:
+                return False
 
-      return False
+    return False
 
-def setClusterConf(clusterconf, propagate=True):
-  if propagate == True:
-    propg = "True"
-  else:
-    propg = "False"
-
-  QUERY_STR='<?xml version="1.0" ?><ricci async="true" function="process_batch" version="1.0"><batch><module name="cluster"><request API_version="1.0"><function_call name="set_cluster.conf"/><var propagate="' + propg + '" cluster.conf="' + clusterconf + '"/></request></module></batch></ricci>'
-
-  try:
-    payload = self.makeConnection(QUERY_STR)
-  except RicciReceiveError, r:
-    return None
-                                                                                
-                                                                                
-  batch_number, result = self.batchAttemptResult(payload)
-  return (batch_number, result)
+  def setClusterConf(self, clusterconf, propagate=True):
+    if propagate == True:
+      propg = "True"
+    else:
+      propg = "False"
+
+    QUERY_STR='<?xml version="1.0" ?><ricci async="true" function="process_batch" version="1.0"><batch><module name="cluster"><request API_version="1.0"><function_call name="set_cluster.conf"/><var propagate="' + propg + '" cluster.conf="' + str(clusterconf) + '"/></request></module></batch></ricci>'
+
+    try:
+      payload = self.makeConnection(QUERY_STR)
+    except RicciReceiveError, r:
+      return None
+                                                                            
+                                                                            
+    batch_number, result = self.batchAttemptResult(payload)
+    return (batch_number, result)
 
 
 def createClusterBatch(cluster_name, cluster_alias, nodeList, services, shared_storage, LVS):



             reply	other threads:[~2006-07-28 11:46 UTC|newest]

Thread overview: 185+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-07-28 11:46 jparsons [this message]
  -- strict thread matches above, loose matches on Subject: below --
2008-07-17 16:36 [Cluster-devel] conga/luci/site/luci/Extensions cluster_adapte rmccabe
2008-04-18 20:37 rmccabe
2007-12-12 15:45 rmccabe
2007-08-23 19:00 rmccabe
2007-08-22 20:57 rmccabe
2007-05-03 19:51 rmccabe
2007-04-02 16:35 rmccabe
2007-04-02 15:56 rmccabe
2007-03-27  2:03 rmccabe
2007-03-16  3:19 rmccabe
2007-03-16  3:19 rmccabe
2007-03-16  3:19 rmccabe
2007-03-13  3:07 rmccabe
2007-03-13  3:06 rmccabe
2007-03-12  5:47 rmccabe
2007-03-12  5:46 rmccabe
2007-03-12  5:46 rmccabe
2007-03-06 22:48 rmccabe
2007-03-01 20:22 rmccabe
2007-03-01 20:22 rmccabe
2007-03-01 20:22 rmccabe
2007-02-13 19:50 rmccabe
2007-02-13 19:50 rmccabe
2007-02-12 20:25 rmccabe
2007-02-12 20:24 rmccabe
2007-02-07 22:00 rmccabe
2007-02-07 21:30 rmccabe
2007-02-05 19:56 rmccabe
2007-01-31 23:45 rmccabe
2007-01-31 19:28 rmccabe
2007-01-31 18:50 rmccabe
2007-01-30 21:41 jparsons
2007-01-30 21:21 jparsons
2007-01-30 21:05 jparsons
2007-01-29 23:30 rmccabe
2007-01-26 19:35 rmccabe
2007-01-18  2:48 rmccabe
2007-01-17 22:26 rmccabe
2007-01-17 22:14 rmccabe
2007-01-10 23:33 jparsons
2007-01-10 22:45 rmccabe
2007-01-10 20:06 rmccabe
2006-12-20 20:40 jparsons
2006-12-14 21:37 rmccabe
2006-12-14 17:03 rmccabe
2006-12-08 23:02 rmccabe
2006-11-30 20:12 jparsons
2006-11-27 21:06 rmccabe
2006-11-27 21:05 rmccabe
2006-11-27 18:15 rmccabe
2006-11-20 23:32 rmccabe
2006-11-20 15:05 jparsons
2006-11-17  5:50 rmccabe
2006-11-17  5:48 rmccabe
2006-11-10 18:18 rmccabe
2006-11-10 17:59 rmccabe
2006-11-09 22:30 rmccabe
2006-11-09 14:17 rmccabe
2006-11-08 21:42 rmccabe
2006-11-08 15:52 jparsons
2006-11-07 20:14 jparsons
2006-11-07 20:13 jparsons
2006-11-07  2:36 jparsons
2006-11-07  1:32 jparsons
2006-11-06 23:55 rmccabe
2006-11-05  0:59 rmccabe
2006-11-03 21:13 jparsons
2006-11-03  1:24 rmccabe
2006-11-03  1:08 rmccabe
2006-11-02 20:58 rmccabe
2006-11-02 20:45 rmccabe
2006-11-02 20:41 rmccabe
2006-11-02  3:17 rmccabe
2006-10-31 17:18 rmccabe
2006-10-31  0:16 rmccabe
2006-10-30 22:52 rmccabe
2006-10-30 20:43 jparsons
2006-10-27  1:11 rmccabe
2006-10-25  0:43 rmccabe
2006-10-24 14:08 rmccabe
2006-10-23 20:47 jparsons
2006-10-20 22:09 rmccabe
2006-10-20 21:59 rmccabe
2006-10-19 14:57 rmccabe
2006-10-18 23:12 rmccabe
2006-10-18 19:16 rmccabe
2006-10-16 21:01 rmccabe
2006-10-16 20:51 jparsons
2006-10-16 19:17 jparsons
2006-10-16  5:28 rmccabe
2006-10-16  4:54 rmccabe
2006-10-16  4:51 rmccabe
2006-10-13 22:56 rmccabe
2006-10-12 22:11 jparsons
2006-10-12 21:00 kupcevic
2006-10-12 20:54 jparsons
2006-10-12 20:48 jparsons
2006-10-12 19:40 rmccabe
2006-10-12 17:27 jparsons
2006-10-12 17:08 jparsons
2006-10-12 15:50 jparsons
2006-10-12 15:45 jparsons
2006-10-12  0:04 jparsons
2006-10-11 23:56 jparsons
2006-10-11 23:11 jparsons
2006-10-11 23:08 rmccabe
2006-10-11 22:37 jparsons
2006-10-11 20:58 jparsons
2006-10-11 17:43 jparsons
2006-10-11 17:29 rmccabe
2006-10-11 16:35 jparsons
2006-10-11 16:25 jparsons
2006-10-11 16:18 rmccabe
2006-10-10 21:33 kupcevic
2006-10-09 20:21 rmccabe
2006-10-04 16:20 rmccabe
2006-10-04 16:05 jparsons
2006-10-04 15:11 jparsons
2006-10-02 22:30 rmccabe
2006-10-02 21:42 rmccabe
2006-10-02 21:09 rmccabe
2006-10-02 20:53 rmccabe
2006-09-28 22:04 rmccabe
2006-09-28 20:10 rmccabe
2006-09-27 18:46 rmccabe
2006-09-27 16:18 jparsons
2006-09-27 15:51 jparsons
2006-09-27 15:35 jparsons
2006-09-25 22:59 rmccabe
2006-09-22 18:24 rmccabe
2006-08-30 22:59 rmccabe
2006-08-22 17:46 jparsons
2006-08-22 17:41 jparsons
2006-08-16 23:40 jparsons
2006-08-16 21:56 jparsons
2006-08-16 21:54 jparsons
2006-08-16 21:51 jparsons
2006-08-16 19:14 rmccabe
2006-08-16 16:10 jparsons
2006-08-14 15:12 jparsons
2006-08-13 19:38 jparsons
2006-08-13 19:37 jparsons
2006-08-13 18:36 jparsons
2006-08-13 16:32 jparsons
2006-08-13 16:15 jparsons
2006-08-13 15:02 jparsons
2006-08-13 14:57 jparsons
2006-08-13 13:48 jparsons
2006-08-12 21:13 jparsons
2006-08-12 20:31 jparsons
2006-08-12 18:22 jparsons
2006-08-12 17:53 jparsons
2006-08-11  0:29 jparsons
2006-08-10 23:06 shuennek
2006-08-10 16:50 jparsons
2006-08-10 14:16 jparsons
2006-08-09 22:05 jparsons
2006-08-09 21:48 jparsons
2006-08-03 13:37 jparsons
2006-08-02 18:59 rmccabe
2006-08-02 17:25 rmccabe
2006-08-01 15:29 jparsons
2006-08-01 15:25 jparsons
2006-08-01 15:20 jparsons
2006-08-01 15:13 jparsons
2006-08-01 15:04 jparsons
2006-07-31 18:21 rmccabe
2006-07-28 19:03 jparsons
2006-07-28 18:57 jparsons
2006-07-28 18:40 jparsons
2006-07-28 14:16 jparsons
2006-07-28 14:02 jparsons
2006-07-27 16:34 jparsons
2006-07-27 15:53 rmccabe
2006-07-25 20:16 jparsons
2006-07-25 20:01 jparsons
2006-07-25  0:56 jparsons
2006-07-24 21:51 jparsons
2006-07-24 21:13 jparsons
2006-07-24 19:50 jparsons
2006-07-19 22:28 rmccabe
2006-07-19 21:38 rmccabe
2006-07-19 20:57 rmccabe
2006-07-19 20:19 rmccabe

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=20060728114635.21869.qmail@sourceware.org \
    --to=jparsons@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).