Example #1
0
 def status (self, urns, options=None):
     if options is None: options={}
     aggregate = PlAggregate(self)
     desc =  aggregate.describe(urns, version='GENI 3')
     status = {'geni_urn': desc['geni_urn'],
               'geni_slivers': desc['geni_slivers']}
     return status
Example #2
0
 def status(self, urns, options={}):
     aggregate = PlAggregate(self)
     desc = aggregate.describe(urns, version='GENI 3')
     status = {
         'geni_urn': desc['geni_urn'],
         'geni_slivers': desc['geni_slivers']
     }
     return status
Example #3
0
    def allocate(self, urn, rspec_string, expiration, options={}):
        xrn = Xrn(urn)
        aggregate = PlAggregate(self)
        slices = PlSlices(self)
        sfa_peer = slices.get_sfa_peer(xrn.get_hrn())
        slice_record = None
        users = options.get('geni_users', [])

        if users:
            slice_record = users[0].get('slice_record', {})

        # parse rspec
        rspec = RSpec(rspec_string)
        requested_attributes = rspec.version.get_slice_attributes()

        # ensure site record exists
        site = slices.verify_site(xrn.hrn,
                                  slice_record,
                                  sfa_peer,
                                  options=options)
        # ensure slice record exists
        slice = slices.verify_slice(xrn.hrn,
                                    slice_record,
                                    sfa_peer,
                                    expiration=expiration,
                                    options=options)
        # ensure person records exists
        persons = slices.verify_persons(xrn.hrn,
                                        slice,
                                        users,
                                        sfa_peer,
                                        options=options)
        # ensure slice attributes exists
        slices.verify_slice_attributes(slice,
                                       requested_attributes,
                                       options=options)

        # add/remove slice from nodes
        request_nodes = rspec.version.get_nodes_with_slivers()
        nodes = slices.verify_slice_nodes(urn, slice, request_nodes)

        # add/remove links links
        slices.verify_slice_links(slice, rspec.version.get_link_requests(),
                                  nodes)

        # add/remove leases
        rspec_requested_leases = rspec.version.get_leases()
        leases = slices.verify_slice_leases(slice, rspec_requested_leases)

        return aggregate.describe([xrn.get_urn()], version=rspec.version)
Example #4
0
    def allocate (self, urn, rspec_string, expiration, options=None):
        if options is None: options={}
        xrn = Xrn(urn)
        aggregate = PlAggregate(self)
        slices = PlSlices(self)
        sfa_peer = slices.get_sfa_peer(xrn.get_hrn())
        slice_record=None    
        users = options.get('geni_users', [])

        if users:
            slice_record = users[0].get('slice_record', {})
    
        # parse rspec
        rspec = RSpec(rspec_string)
        requested_attributes = rspec.version.get_slice_attributes()
        
        # ensure site record exists
        site = slices.verify_site(xrn.hrn, slice_record, sfa_peer, options=options)
        # ensure slice record exists
        slice = slices.verify_slice(xrn.hrn, slice_record, sfa_peer, expiration=expiration, options=options)
        # ensure person records exists
        persons = slices.verify_persons(xrn.hrn, slice, users, sfa_peer, options=options)
        # ensure slice attributes exists
        slices.verify_slice_attributes(slice, requested_attributes, options=options)
       
        # add/remove slice from nodes
        request_nodes = rspec.version.get_nodes_with_slivers()
        nodes = slices.verify_slice_nodes(urn, slice, request_nodes)
         
        # add/remove links links 
        slices.verify_slice_links(slice, rspec.version.get_link_requests(), nodes)

        # add/remove leases
        rspec_requested_leases = rspec.version.get_leases()
        leases = slices.verify_slice_leases(slice, rspec_requested_leases)

        return aggregate.describe([xrn.get_urn()], version=rspec.version)
Example #5
0
 def describe(self, urns, version, options=None):
     if options is None: options={}
     aggregate = PlAggregate(self)
     return aggregate.describe(urns, version=version, options=options)
Example #6
0
 def describe(self, urns, version, options={}):
     aggregate = PlAggregate(self)
     return aggregate.describe(urns, version=version, options=options)
Example #7
0
 def describe(self, urns, version, options={}):
     aggregate = PlAggregate(self)
     return aggregate.describe(urns, version=version, options=options)