if Callids().already_handled(call_id): return ""
# get slice's hrn from options
xrn = options.get('geni_slice_urn', None)
+ cached = options.get('cached', True)
(hrn, _) = urn_to_hrn(xrn)
version_manager = VersionManager()
version_string = version_string + "_"+options.get('info', 'default')
# look in cache first
- if self.caching and api.cache and not xrn:
+ if self.caching and api.cache and not xrn and cached:
rspec = api.cache.get(version_string)
if rspec:
api.logger.info("aggregate.ListResources: returning cached value for hrn %s"%hrn)
#panos: passing user-defined options
#print "manager options = ",options
- aggregate = Aggregate(api, options)
- rspec = aggregate.get_rspec(slice_xrn=xrn, version=rspec_version)
+ aggregate = Aggregate(api)
+ rspec = aggregate.get_rspec(slice_xrn=xrn, version=rspec_version, options=options)
# cache the result
if self.caching and api.cache and not xrn:
#panos new user options variable
user_options = {}
- def __init__(self, api, user_options={}):
+ def __init__(self, api):
self.api = api
- self.user_options = user_options
-
+
def get_sites(self, filter={}):
sites = {}
for site in self.api.driver.GetSites(filter):
return (slice, slivers)
- def get_nodes_and_links(self, slice=None,slivers=[]):
+ def get_nodes_and_links(self, slice=None,slivers=[], options={}):
filter = {}
tags_filter = {}
if slice and 'node_ids' in slice and slice['node_ids']:
filter['node_id'] = slice['node_ids']
tags_filter=filter.copy()
+
+ geni_available = options.get('geni_available')
+ if geni_available:
+ filter['boot_state'] = 'boot'
filter.update({'peer_id': None})
nodes = self.api.driver.GetNodes(filter)
return (rspec_nodes, links)
- def get_rspec(self, slice_xrn=None, version = None):
+ def get_rspec(self, slice_xrn=None, version = None, options={}):
version_manager = VersionManager()
version = version_manager.get_version(version)
rspec_version = version_manager._get_version(version.type, version.version, 'manifest')
slice, slivers = self.get_slice_and_slivers(slice_xrn)
- rspec = RSpec(version=rspec_version, user_options=self.user_options)
+ rspec = RSpec(version=rspec_version, user_options=options)
if slice and 'expires' in slice:
rspec.xml.set('expires', epochparse(slice['expires']))