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