X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fmanagers%2Fcomponent_manager_pl.py;h=219d573fe5db0d4ff08435ece289d860e34436af;hb=3e6097e2d50ff322b45f53fcb22d07fc16adbdb6;hp=71cc6287185d179f56a0f6853bec3e5e924da9cb;hpb=1bb8449528adf307f07e772661a70cf34256234c;p=sfa.git diff --git a/sfa/managers/component_manager_pl.py b/sfa/managers/component_manager_pl.py index 71cc6287..219d573f 100644 --- a/sfa/managers/component_manager_pl.py +++ b/sfa/managers/component_manager_pl.py @@ -1,39 +1,79 @@ -import os -import xmlrpclib -from sfa.util.faults import * -from sfa.util.sfaticket import SfaTicket +from sfa.util.faults import SliverDoesNotExist +from sfa.util.version import version_core +from sfa.util.py23 import xmlrpc_client -def start_slice(api, slicename): - api.nodemanger.Start(slicename) +from sfa.trust.sfaticket import SfaTicket -def stop_slice(api, slicename): - api.nodemanager.Stop(slicename) +from sfa.planetlab.plxrn import PlXrn -def delete_slice(api, slicename): - api.nodemanager.Destroy(slicename) -def reset_slice(api, slicename): +def GetVersion(api, options): + return version_core({'interface': 'component', + 'testbed': 'myplc'}) + + +def init_server(): + from sfa.server import sfa_component_setup + # get current trusted gids + try: + sfa_component_setup.get_trusted_certs() + except: + # our keypair may be old, try refreshing + sfa_component_setup.get_node_key() + sfa_component_setup.GetCredential(force=True) + sfa_component_setup.get_trusted_certs() + + +def SliverStatus(api, slice_xrn, creds): + result = {} + result['geni_urn'] = slice_xrn + result['geni_status'] = 'unknown' + result['geni_resources'] = {} + return result + + +def start_slice(api, xrn, creds): + slicename = PlXrn(xrn, type='slice').pl_slicename() + api.driver.nodemanager.Start(slicename) + + +def stop_slice(api, xrn, creds): + slicename = PlXrn(xrn, type='slice').pl_slicename() + api.driver.nodemanager.Stop(slicename) + + +def DeleteSliver(api, xrn, creds, call_id): + slicename = PlXrn(xrn, type='slice').pl_slicename() + api.driver.nodemanager.Destroy(slicename) + + +def reset_slice(api, xrn): + slicename = PlXrn(xrn, type='slice').pl_slicename() if not api.sliver_exists(slicename): raise SliverDoesNotExist(slicename) - api.nodemanager.ReCreate(slicename) - -def get_slices(api): - slicenames = api.nodemanager.GetXiDs().keys() - return slicenames + api.driver.nodemanager.ReCreate(slicename) + +# xxx outdated - this should accept a credential & call_id + + +def ListSlices(api): + # this returns a tuple, the data we want is at index 1 + xids = api.driver.nodemanager.GetXIDs() + # unfortunately the data we want is given to us as + # a string but we really want it as a dict + # lets eval it + slices = eval(xids[1]) + return slices.keys() -def roboot(): - os.system("/sbin/reboot") def redeem_ticket(api, ticket_string): ticket = SfaTicket(string=ticket_string) ticket.decode() hrn = ticket.attributes['slivers'][0]['hrn'] - slicename = hrn_to_pl_slicename(hrn) + slicename = PlXrn(hrn).pl_slicename() if not api.sliver_exists(slicename): raise SliverDoesNotExist(slicename) # convert ticket to format nm is used to - nm_ticket = xmlrpclib.dumps((ticket.attributes,), methodresponse=True) - self.api.nodemanager.AdminTicket(nm_ticket) - - + nm_ticket = xmlrpc_client.dumps((ticket.attributes,), methodresponse=True) + api.driver.nodemanager.AdminTicket(nm_ticket)