import os
import xmlrpclib
from sfa.util.faults import *
+from sfa.util.namespace import *
from sfa.util.sfaticket import SfaTicket
-def start_slice(api, slicename):
+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.get_credential(force=True)
+ sfa_component_setup.get_trusted_certs()
+
+def start_slice(api, xrn):
+ hrn, type = urn_to_hrn(xrn)
+ slicename = hrn_to_pl_slicename(hrn)
api.nodemanger.Start(slicename)
-def stop_slice(api, slicename):
+def stop_slice(api, xrn):
+ hrn, type = urn_to_hrn(xrn)
+ slicename = hrn_to_pl_slicename(hrn)
api.nodemanager.Stop(slicename)
-def delete_slice(api, slicename):
+def delete_slice(api, xrn):
+ hrn, type = urn_to_hrn(xrn)
+ slicename = hrn_to_pl_slicename(hrn)
api.nodemanager.Destroy(slicename)
-def reset_slice(api, slicename):
+def reset_slice(api, xrn):
+ hrn, type = urn_to_hrn(xrn)
+ slicename = hrn_to_pl_slicename(hrn)
if not api.sliver_exists(slicename):
raise SliverDoesNotExist(slicename)
api.nodemanager.ReCreate(slicename)
def get_slices(api):
- slicenames = api.nodemanager.GetXiDs().keys()
- return slicenames
+ # this returns a tuple, the data we want is at index 1
+ xids = api.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")
# convert ticket to format nm is used to
nm_ticket = xmlrpclib.dumps((ticket.attributes,), methodresponse=True)
- self.api.nodemanager.AdminTicket(nm_ticket)
+ api.nodemanager.AdminTicket(nm_ticket)