3 from sfa.util.faults import *
4 from sfa.util.namespace import *
5 from sfa.util.sfaticket import SfaTicket
8 from sfa.server import sfa_component_setup
9 # get current trusted gids
11 sfa_component_setup.get_trusted_certs()
13 # our keypair may be old, try refreshing
14 sfa_component_setup.get_node_key()
15 sfa_component_setup.get_credential(force=True)
16 sfa_component_sertup.get_trusted_certs()
20 def start_slice(api, xrn):
21 hrn, type = urn_to_hrn(xrn)
22 slicename = hrn_to_pl_slicename(hrn)
23 api.nodemanger.Start(slicename)
25 def stop_slice(api, xrn):
26 hrn, type = urn_to_hrn(xrn)
27 slicename = hrn_to_pl_slicename(hrn)
28 api.nodemanager.Stop(slicename)
30 def delete_slice(api, xrn):
31 hrn, type = urn_to_hrn(xrn)
32 slicename = hrn_to_pl_slicename(hrn)
33 api.nodemanager.Destroy(slicename)
35 def reset_slice(api, xrn):
36 hrn, type = urn_to_hrn(xrn)
37 slicename = hrn_to_pl_slicename(hrn)
38 if not api.sliver_exists(slicename):
39 raise SliverDoesNotExist(slicename)
40 api.nodemanager.ReCreate(slicename)
43 slicenames = api.nodemanager.GetXIDs().keys()
47 os.system("/sbin/reboot")
49 def redeem_ticket(api, ticket_string):
50 ticket = SfaTicket(string=ticket_string)
52 hrn = ticket.attributes['slivers'][0]['hrn']
53 slicename = hrn_to_pl_slicename(hrn)
54 if not api.sliver_exists(slicename):
55 raise SliverDoesNotExist(slicename)
57 # convert ticket to format nm is used to
58 nm_ticket = xmlrpclib.dumps((ticket.attributes,), methodresponse=True)
59 self.api.nodemanager.AdminTicket(nm_ticket)