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