-# $Id$
+# Thierry Parmentelat <thierry.parmentelat@inria.fr>
+# Copyright (C) 2010 INRIA
+#
# wrapper to xmlrpc server, that support dry-run commands
# we dont want to have to depend on PLCAPI, so:
import xmlrpclib
+# the default value is for the dry run mode
server_methods = [ ('GetNodes' , []),
('AddNode' , True),
+ ('SetNodePlainBootstrapfs', True),
('DeleteNode' , True),
('UpdateNode' , True),
('AddInterface' , True),
+ ('AddIpAddress' , True),
+ ('AddRoute' , True),
('GetInterfaces' , True),
('GetTagTypes' , []),
('AddTagType' , True),
- ('AddInterfaceSetting' , True),
+ ('AddInterfaceTag' , True),
('GetBootMedium' , True),
('GetNodeGroups' , True),
('AddNodeGroup' , True),
('AddSlice' , True),
('AddPersonToSlice' , True),
('AddSliceToNodes' , True),
- ('AddSliceAttribute' , True),
+ ('DeleteSliceFromNodes' , True),
+ ('AddSliceTag' , True),
('AddPerson' , True),
('UpdatePerson' , True),
('AddRoleToPerson' , True),
('AddPersonKey' , True),
('GetPlcRelease', {'build': {'target-arch':'i386'}}),
('GetSites', []),
+ ('GetSlices', [{'name':'dry_run_slice','node_ids':['dry_run']}]),
+ ('GetLeaseGranularity', 180),
+ ('AddLeases', True),
+ ('GetLeases', []),
+ ('DeleteLeases',True),
+ ('GetConfFiles',[]),
+ ('AddConfFile','True'),
+ ('GetSliceTags',[]),
+ ('system.listMethods',[]),
]
class TestApiserver:
return actual_method(*args)
def __init__(self,url,dry_run=False):
- self.apiserver = xmlrpclib.Server(url,allow_none=True)
+ 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))
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()