new steps to change a node's fcdistro in a bonding environment
[tests.git] / system / TestApiserver.py
index e453739..010b86c 100644 (file)
@@ -3,12 +3,13 @@
 #
 # wrapper to xmlrpc server, that support dry-run commands
 # we dont want to have to depend on PLCAPI, so:
-import xmlrpclib
+import xmlrpc.client
 
 # the default value is for the dry run mode
 server_methods = [ ('GetNodes' ,  []),
                    ('AddNode' , True),
                    ('SetNodePlainBootstrapfs', True),
+                   ('SetNodeFcdistro', True),
                    ('DeleteNode' , True),
                    ('UpdateNode' , True),
                    ('AddInterface' , True),
@@ -18,7 +19,7 @@ server_methods = [ ('GetNodes' ,  []),
                    ('GetTagTypes' , []),
                    ('AddTagType' , True),
                    ('AddInterfaceTag' , True),
-                   ('GetBootMedium' , True),
+                   ('GetBootMedium' , "some non-empty-string"),
                    ('GetNodeGroups' , True),
                    ('AddNodeGroup' , True),
                    ('DeleteNodeGroup', True),
@@ -49,39 +50,43 @@ server_methods = [ ('GetNodes' ,  []),
                    ('AddLeases', True),
                    ('GetLeases', []),
                    ('DeleteLeases',True),
+                   ('GetConfFiles',[]),
                    ('AddConfFile','True'),
+                   ('GetSliceTags',[]),
+                   ('GetNodeFlavour','dry-run-nodeflavour'),
                    ('system.listMethods',[]),
                    ]
 
 class TestApiserver:
     class Callable:
-        def __init__(self,server,dry_run,method,defaults):
-            self.server=server
-            self.dry_run=dry_run
-            self.method=method
-            self.defaults=defaults
+        def __init__(self, server, dry_run, method, defaults):
+            self.server = server
+            self.dry_run = dry_run
+            self.method = method
+            self.defaults = defaults
         def __call__ (self, *args):
             if self.dry_run:
-                print "dry_run:",self.method,
-                if len(args)>0 and type(args[0])==type({}) and args[0].has_key('AuthMethod'):
-                    print '<auth>',
-                    args=args[1:]
-                print '(',args,')'
+                print("dry_run:",self.method, end=' ')
+                if len(args) > 0 and type(args[0]) == type({}) and 'AuthMethod' in args[0]:
+                    print('<auth>', end=' ')
+                    args = args[1:]
+                print('(', args, ')')
                 return self.defaults
             else:
-                actual_method=getattr(self.server,self.method)
+                actual_method = getattr(self.server, self.method)
                 return actual_method(*args)
 
-    def __init__(self,url,dry_run=False):
-        self.apiserver = xmlrpclib.ServerProxy(url,allow_none=True)
-        self.dry_run=dry_run
-        for (method,defaults) in server_methods:
-            setattr(self,method,TestApiserver.Callable(self.apiserver,dry_run,method,defaults))
+    def __init__(self, url, dry_run=False):
+        self.apiserver = xmlrpc.client.ServerProxy(url, allow_none=True,
+                                                   use_builtin_types=True)
+        self.dry_run = dry_run
+        for method, defaults in server_methods:
+            setattr(self, method, TestApiserver.Callable(self.apiserver, dry_run, method, defaults))
     
     def set_dry_run (self, dry_run):
-        self.dry_run=dry_run
-        for (method,defaults) in server_methods:
-            getattr(self,method).dry_run = dry_run
+        self.dry_run = dry_run
+        for (method, defaults) in server_methods:
+            getattr(self, method).dry_run = dry_run
 
     def has_method (self, methodname):
         return methodname in self.apiserver.system.listMethods()