This patch fixes a compatibility issue with python 2.4 and a mistake in my sql patch.

Index: tashi/rpycservices/rpycservices.py
===================================================================
--- tashi/rpycservices/rpycservices.py  (revision 796873)
+++ tashi/rpycservices/rpycservices.py  (working copy)
@@ -24,7 +24,7 @@
               return user
       return args

-class client():
+class client:
       def __init__(self, host, port, username=None, password=None):
"""Client for ManagerService. If username and password are provided, rpyc.tls_connect will be used to connect,
else rpyc.connect will be used."""
               self.host = host
Index: tashi/clustermanager/data/sql.py
===================================================================
--- tashi/clustermanager/data/sql.py    (revision 796878)
+++ tashi/clustermanager/data/sql.py    (working copy)
@@ -94,10 +94,8 @@
       def makeListInstance(self, l):
               i = Instance()
               for e in range(0, len(self.instanceOrder)):
-                       if self.instanceOrder[e] == 'state':
- i.__dict__[self.instanceOrder[e]] = int(l[e])
-                       else:
-                               i.__dict__[self.instanceOrder[e]] = l[e]
+                       i.__dict__[self.instanceOrder[e]] = l[e]
+               i.state = int(i.state)
               i.decayed = boolean(i.decayed)
i.disks = map(lambda x: DiskConfiguration(d=x), eval(i.disks)) i.nics = map(lambda x: NetworkConfiguration(d=x), eval(i.nics))
@@ -113,16 +111,14 @@
       def makeListHost(self, l):
               h = Host()
               for e in range(0, len(self.hostOrder)):
-                       if self.hostOrder[e] == 'state':
-                               h.__dict__[self.hostOrder[e]] = int(l[e])
-                       else:
-                               h.__dict__[self.hostOrder[e]] = l[e]
+                       h.__dict__[self.hostOrder[e]] = l[e]
+               h.state = int(h.state)
               return h

       def registerInstance(self, instance):
               self.instanceLock.acquire()
               try:
- if (instance.id is not None and instance.id not in self.instances): + if (instance.id is not None and instance.id not in self.getInstances()):
                               self.instanceIdLock.acquire()
                               if (instance.id >= self.maxInstanceId):
                                       self.maxInstanceId = instance.id + 1
@@ -143,6 +139,8 @@
               try:
cur = self.executeStatement("SELECT * from instances WHERE id = %d" % (instanceId))
                       l = cur.fetchone()
+                       if (not l):
+ raise TashiException(d={'errno':Errors.NoSuchInstanceId,'msg':"No such instanceId - %d" % (instanceId)})
                       instance = self.makeListInstance(l)
self.instanceLocks[instance.id] = self.instanceLocks.get(instance.id, threading.Lock())
                       instance._lock = self.instanceLocks[instance.id]

Reply via email to