added init_server() method
[sfa.git] / sfa / managers / component_manager_pl.py
1 import os
2 import xmlrpclib
3 from sfa.util.faults import *
4 from sfa.util.misc import *
5 from sfa.util.sfaticket import SfaTicket
6
7 def init_server():
8     from server import sfa_component_setup
9     # get current trusted gids
10     try:
11         sfa_component_setup.get_trusted_certs()
12     except:
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()
17            
18     
19
20 def start_slice(api, slicename):
21     record = api.nmdb.get(hrn_to_pl_slicename(slicename))
22     api.nodemanger.Start(record)
23
24 def stop_slice(api, slicename):
25     record = api.nmdb.get(hrn_to_pl_slicename(slicename))
26     api.nodemanager.Stop(record)
27
28 def delete_slice(api, slicename):
29     record = api.nmdb.get(hrn_to_pl_slicename(slicename))
30     api.nodemanager.Destroy(record)
31
32 def reset_slice(api, slicename):
33     record = api.nmdb.get(hrn_to_pl_slicename(slicename))
34     if not api.sliver_exists(slicename):
35         raise SliverDoesNotExist(slicename)
36     api.nodemanager.ReCreate(record)
37  
38 def get_slices(api):
39     slicenames = api.nodemanager.GetXIDs().keys()
40     return slicenames
41
42 def roboot():
43     os.system("/sbin/reboot")        
44
45 def redeem_ticket(api, ticket_string):
46     ticket = SfaTicket(string=ticket_string)
47     ticket.decode()
48     hrn = ticket.attributes['slivers'][0]['hrn']
49     slicename = hrn_to_pl_slicename(hrn)
50     if not api.sliver_exists(slicename):
51         raise SliverDoesNotExist(slicename)
52
53     # convert ticket to format nm is used to
54     nm_ticket = xmlrpclib.dumps((ticket.attributes,), methodresponse=True)
55     self.api.nodemanager.AdminTicket(nm_ticket)
56     
57