99b87cbe02d7ce0bdbbd80b25376b2271dcdf270
[sfa.git] / sfa / managers / geni_am_pl.py
1 from sfa.util.namespace import *
2 from sfa.util.rspec import *
3 from sfa.util.specdict import *
4 from sfa.util.faults import *
5
6 from sfa.util.record import *
7
8 from sfa.plc.slices import *
9 from sfa.util.sfalogging import *
10 import zlib
11
12 def GetVersion():
13     version = {}
14     version['geni_api'] = 1
15     version['geni_stitching'] = False
16     return version
17
18
19 def ListResources(api, creds, options):
20     manager_base = 'sfa.managers'
21     mgr_type = 'pl'
22     manager_module = manager_base + ".aggregate_manager_%s" % mgr_type
23     manager = __import__(manager_module, fromlist=[manager_base])
24
25     xrn = None
26     if options.has_key('geni_slice_urn'):
27         xrn = options['geni_slice_urn']
28         api.logger.info(xrn)
29
30
31     rspec = manager.get_rspec(api, xrn, None)
32     #outgoing_rules = SFATablesRules('OUTGOING')
33     
34     if options.has_key('geni_compressed') and options['geni_compressed'] == True:
35         rspec = zlib.compress(rspec).encode('base64')
36         
37     return rspec
38
39
40 def CreateSliver(api, slice_xrn, creds, rspec):
41     manager_base = 'sfa.managers'
42     mgr_type = 'pl'
43     manager_module = manager_base + ".aggregate_manager_%s" % mgr_type
44     manager = __import__(manager_module, fromlist=[manager_base])
45
46     allocated = manager.create_slice(api, slice_xrn, rspec)
47     return allocated
48
49 def DeleteSliver(api, slice_xrn, creds):
50     manager_base = 'sfa.managers'
51     mgr_type = 'pl'
52     manager_module = manager_base + ".aggregate_manager_%s" % mgr_type
53     manager = __import__(manager_module, fromlist=[manager_base])
54
55     allocated = manager.delete_slice(api, slice_xrn)
56     return allocated
57