X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fplc%2Fplaggregate.py;h=d5812107e58544f0071ab1ec31f72271d8dfcf25;hb=0d88de5aaee6820835f2d9770aab6c7392f14e21;hp=4cc2c55e7e688b29ce6c80afc1f377d4c7096e17;hpb=bbc9bba9db868983039901fc247677d6476d8ed4;p=sfa.git diff --git a/sfa/plc/plaggregate.py b/sfa/plc/plaggregate.py index 4cc2c55e..d5812107 100644 --- a/sfa/plc/plaggregate.py +++ b/sfa/plc/plaggregate.py @@ -1,6 +1,6 @@ #!/usr/bin/python from sfa.util.xrn import Xrn, hrn_to_urn, urn_to_hrn, urn_to_sliver_id -from sfa.util.sfatime import epochparse +from sfa.util.sfatime import utcparse, datetime_to_string from sfa.util.sfalogging import logger from sfa.rspecs.rspec import RSpec @@ -27,13 +27,13 @@ class PlAggregate: def get_sites(self, filter={}): sites = {} - for site in self.driver.GetSites(filter): + for site in self.driver.shell.GetSites(filter): sites[site['site_id']] = site return sites def get_interfaces(self, filter={}): interfaces = {} - for interface in self.driver.GetInterfaces(filter): + for interface in self.driver.shell.GetInterfaces(filter): iface = Interface() if interface['bwlimit']: interface['bwlimit'] = str(int(interface['bwlimit'])/1000) @@ -85,14 +85,14 @@ class PlAggregate: def get_node_tags(self, filter={}): node_tags = {} - for node_tag in self.driver.GetNodeTags(filter): + for node_tag in self.driver.shell.GetNodeTags(filter): node_tags[node_tag['node_tag_id']] = node_tag return node_tags def get_pl_initscripts(self, filter={}): pl_initscripts = {} filter.update({'enabled': True}) - for initscript in self.driver.GetInitScripts(filter): + for initscript in self.driver.shell.GetInitScripts(filter): pl_initscripts[initscript['initscript_id']] = initscript return pl_initscripts @@ -108,7 +108,7 @@ class PlAggregate: slice_urn = hrn_to_urn(slice_xrn, 'slice') slice_hrn, _ = urn_to_hrn(slice_xrn) slice_name = hrn_to_pl_slicename(slice_hrn) - slices = self.driver.GetSlices(slice_name) + slices = self.driver.shell.GetSlices(slice_name) if not slices: return (slice, slivers) slice = slices[0] @@ -122,7 +122,7 @@ class PlAggregate: slivers[node_id]= sliver # sort sliver attributes by node id - tags = self.driver.GetSliceTags({'slice_tag_id': slice['slice_tag_ids']}) + tags = self.driver.shell.GetSliceTags({'slice_tag_id': slice['slice_tag_ids']}) for tag in tags: # most likely a default/global sliver attribute (node_id == None) if tag['node_id'] not in slivers: @@ -146,7 +146,7 @@ class PlAggregate: filter['boot_state'] = 'boot' filter.update({'peer_id': None}) - nodes = self.driver.GetNodes(filter) + nodes = self.driver.shell.GetNodes(filter) site_ids = [] interface_ids = [] @@ -183,10 +183,12 @@ class PlAggregate: rspec_node['component_name'] = node['hostname'] rspec_node['component_manager_id'] = Xrn(self.driver.hrn, 'authority+cm').get_urn() rspec_node['authority_id'] = hrn_to_urn(PlXrn.site_hrn(self.driver.hrn, site['login_base']), 'authority+sa') - rspec_node['boot_state'] = node['boot_state'] - rspec_node['exclusive'] = 'False' - rspec_node['hardware_types']= [HardwareType({'name': 'plab-pc'}), - HardwareType({'name': 'pc'})] + # do not include boot state ( element) in the manifest rspec + if not slice: + rspec_node['boot_state'] = node['boot_state'] + rspec_node['exclusive'] = 'false' + rspec_node['hardware_types'] = [HardwareType({'name': 'plab-pc'}), + HardwareType({'name': 'pc'})] # only doing this because protogeni rspec needs # to advertise available initscripts rspec_node['pl_initscripts'] = pl_initscripts.values() @@ -194,7 +196,7 @@ class PlAggregate: # assumes that sites, interfaces and tags have already been prepared. site = sites_dict[node['site_id']] if site['longitude'] and site['latitude']: - location = Location({'longitude': site['longitude'], 'latitude': site['latitude']}) + location = Location({'longitude': site['longitude'], 'latitude': site['latitude'], 'country': 'unknown'}) rspec_node['location'] = location rspec_node['interfaces'] = [] if_count=0 @@ -238,7 +240,7 @@ class PlAggregate: slice, slivers = self.get_slice_and_slivers(slice_xrn) rspec = RSpec(version=rspec_version, user_options=options) if slice and 'expires' in slice: - rspec.xml.set('expires', epochparse(slice['expires'])) + rspec.xml.set('expires', datetime_to_string(utcparse(slice['expires']))) nodes, links = self.get_nodes_and_links(slice, slivers) rspec.version.add_nodes(nodes)