X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fplanetlab%2Fplshell.py;h=3806249279fa846ab462293e99d0a8b026076ea2;hb=2b8fb7af76b173ad4ad6583dbedbdf11a49f9549;hp=8877f410e7c034f24884a65b97feefd623220130;hpb=04a3f20dc71bf8b3f96b1e3172623aa346a638a7;p=sfa.git diff --git a/sfa/planetlab/plshell.py b/sfa/planetlab/plshell.py index 8877f410..38062492 100644 --- a/sfa/planetlab/plshell.py +++ b/sfa/planetlab/plshell.py @@ -1,10 +1,10 @@ import sys -import xmlrpclib +import xmlrpc.client import socket -from urlparse import urlparse +from urllib.parse import urlparse from sfa.util.sfalogging import logger - +from sfa.util.ssl import simple_ssl_context class PlShell: """ @@ -13,32 +13,34 @@ class PlShell: For safety this is limited to a set of hard-coded calls """ - direct_calls = ['AddNode', 'AddPerson', 'AddPersonKey', 'AddPersonToSite', - 'AddPersonToSlice', 'AddRoleToPerson', 'AddSite', 'AddSiteTag', 'AddSlice', - 'AddSliceTag', 'AddSliceToNodes', 'BindObjectToPeer', 'DeleteKey', - 'DeleteNode', 'DeletePerson', 'DeletePersonFromSlice', 'DeleteSite', - 'DeleteSlice', 'DeleteSliceFromNodes', 'DeleteSliceTag', 'GetInitScripts', - 'GetInterfaces', 'GetKeys', 'GetNodeTags', 'GetPeers', - 'GetPersons', 'GetSlices', 'GetSliceTags', 'GetTagTypes', - 'UnBindObjectFromPeer', 'UpdateNode', 'UpdatePerson', 'UpdateSite', - 'UpdateSlice', 'UpdateSliceTag', - # also used as-is in importer - 'GetSites', 'GetNodes', - # Lease management methods - 'GetLeases', 'GetLeaseGranularity', 'DeleteLeases', 'UpdateLeases', - 'AddLeases', - # HRN management methods - 'SetPersonHrn', 'GetPersonHrn', 'SetSliceHrn', 'GetSliceHrn', - 'SetNodeHrn', 'GetNodeHrn', 'GetSiteHrn', 'SetSiteHrn', - # Tag slice/person/site created by SFA - 'SetPersonSfaCreated', 'GetPersonSfaCreated', 'SetSliceSfaCreated', - 'GetSliceSfaCreated', 'SetNodeSfaCreated', 'GetNodeSfaCreated', - 'GetSiteSfaCreated', 'SetSiteSfaCreated', - ] + direct_calls = [ + 'AddNode', 'AddPerson', 'AddPersonKey', 'AddPersonToSite', + 'AddPersonToSlice', 'AddRoleToPerson', 'AddSite', 'AddSiteTag', 'AddSlice', + 'AddSliceTag', 'AddSliceToNodes', 'BindObjectToPeer', 'DeleteKey', + 'DeleteNode', 'DeletePerson', 'DeletePersonFromSlice', 'DeleteSite', + 'DeleteSlice', 'DeleteSliceFromNodes', 'DeleteSliceTag', 'GetInitScripts', + 'GetInterfaces', 'GetKeys', 'GetNodeTags', 'GetPeers', + 'GetPersons', 'GetSlices', 'GetSliceTags', 'GetTagTypes', + 'UnBindObjectFromPeer', 'UpdateNode', 'UpdatePerson', 'UpdateSite', + 'UpdateSlice', 'UpdateSliceTag', + # also used as-is in importer + 'GetSites', 'GetNodes', 'GetSiteTags', + # Lease management methods + 'GetLeases', 'GetLeaseGranularity', 'DeleteLeases', 'UpdateLeases', + 'AddLeases', + # HRN management methods + 'SetPersonHrn', 'GetPersonHrn', 'SetSliceHrn', 'GetSliceHrn', + 'SetNodeHrn', 'GetNodeHrn', 'GetSiteHrn', 'SetSiteHrn', + # Tag slice/person/site created by SFA + 'SetPersonSfaCreated', 'GetPersonSfaCreated', 'SetSliceSfaCreated', + 'GetSliceSfaCreated', 'SetNodeSfaCreated', 'GetNodeSfaCreated', + 'GetSiteSfaCreated', 'SetSiteSfaCreated', + ] # support for other names - this is experimental - alias_calls = {'get_authorities': 'GetSites', - 'get_nodes': 'GetNodes', - } + alias_calls = { + 'get_authorities': 'GetSites', + 'get_nodes': 'GetNodes', + } # use the 'capability' auth mechanism for higher performance when the PLC # db is local @@ -72,20 +74,24 @@ class PlShell: except: plc_direct_access = False if is_local and plc_direct_access: - logger.info('plshell access - capability') - self.plauth = {'AuthMethod': 'capability', - 'Username': str(config.SFA_PLC_USER), - 'AuthString': str(config.SFA_PLC_PASSWORD), - } + logger.debug('plshell access - capability') + self.plauth = { + 'AuthMethod': 'capability', + 'Username': str(config.SFA_PLC_USER), + 'AuthString': str(config.SFA_PLC_PASSWORD), + } self.proxy = PLC.Shell.Shell() else: - logger.info('plshell access - xmlrpc') - self.plauth = {'AuthMethod': 'password', - 'Username': str(config.SFA_PLC_USER), - 'AuthString': str(config.SFA_PLC_PASSWORD), - } - self.proxy = xmlrpclib.Server(url, verbose=False, allow_none=True) + logger.debug('plshell access - xmlrpc') + self.plauth = { + 'AuthMethod': 'password', + 'Username': str(config.SFA_PLC_USER), + 'AuthString': str(config.SFA_PLC_PASSWORD), + } + self.proxy = xmlrpc.client.ServerProxy( + url, verbose=False, allow_none=True, + context=simple_ssl_context()) def __getattr__(self, name): def func(*args, **kwds):