4 from urlparse import urlparse
6 from sfa.util.sfalogging import logger
10 A simple xmlrpc shell to the dummy testbed API instance
14 direct_calls = ['AddNode', 'AddSlice', 'AddUser', 'AddUserKey', 'AddUserToSlice', 'AddSliceToNodes',
15 'GetTestbedInfo', 'GetNodes', 'GetSlices', 'GetUsers',
16 'DeleteNode', 'DeleteSlice', 'DeleteUser', 'DeleteKey', 'DeleteUserFromSlice',
17 'DeleteSliceFromNodes',
18 'UpdateNode', 'UpdateSlice', 'UpdateUser',
22 def __init__ ( self, config ) :
23 url = config.SFA_DUMMY_URL
24 self.proxy = xmlrpclib.Server(url, verbose = False, allow_none = True)
26 def __getattr__(self, name):
27 def func(*args, **kwds):
28 if not name in DummyShell.direct_calls:
29 raise Exception, "Illegal method call %s for DUMMY driver"%(name)
30 result=getattr(self.proxy, name)(*args, **kwds)
31 logger.debug('DummyShell %s returned ... '%(name))