convert slice hrn to pl slicename
[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 start_slice(api, slicename):
8     record = {'name': hrn_to_pl_slicename(slicename)}
9     api.nodemanger.Start(record)
10
11 def stop_slice(api, slicename):
12     record = {'name': hrn_to_pl_slicename(slicename)}
13     api.nodemanager.Stop(record)
14
15 def delete_slice(api, slicename):
16     record = {'name': hrn_to_pl_slicename(slicename)}
17     api.nodemanager.Destroy(record)
18
19 def reset_slice(api, slicename):
20     record = {'name': hrn_to_pl_slicename(slicename)}
21     if not api.sliver_exists(slicename):
22         raise SliverDoesNotExist(slicename)
23     api.nodemanager.ReCreate(record)
24  
25 def get_slices(api):
26     slicenames = api.nodemanager.GetXiDs().keys()
27     return slicenames
28
29 def roboot():
30     os.system("/sbin/reboot")        
31
32 def redeem_ticket(api, ticket_string):
33     ticket = SfaTicket(string=ticket_string)
34     ticket.decode()
35     hrn = ticket.attributes['slivers'][0]['hrn']
36     slicename = hrn_to_pl_slicename(hrn)
37     if not api.sliver_exists(slicename):
38         raise SliverDoesNotExist(slicename)
39
40     # convert ticket to format nm is used to
41     nm_ticket = xmlrpclib.dumps((ticket.attributes,), methodresponse=True)
42     self.api.nodemanager.AdminTicket(nm_ticket)
43     
44