+ if1 = Interface({'component_id': if1_xrn.urn, 'ipv4': if1_ipv4} )
+ if2 = Interface({'component_id': if2_xrn.urn, 'ipv4': if2_ipv4} )
+
+ # set link
+ link = Link({'capacity': '1000000', 'latency': '0', 'packet_loss': '0', 'type': 'ipv4'})
+ link['interface1'] = if1
+ link['interface2'] = if2
+ link['component_name'] = "%s:%s" % (site1['login_base'], site2['login_base'])
+ link['component_id'] = PlXrn(auth=self.api.hrn, interface=link['component_name']).get_urn()
+ link['component_manager_id'] = hrn_to_urn(self.api.hrn, 'authority+am')
+ self.links[link['component_name']] = link
+
+
+ def prepare_node_tags(self, filter={}, force=False):
+ if not self.node_tags or force:
+ for node_tag in self.api.driver.GetNodeTags(filter):
+ self.node_tags[node_tag['node_tag_id']] = node_tag
+
+ def prepare_pl_initscripts(self, filter={}, force=False):
+ if not self.pl_initscripts or force:
+ filter.update({'enabled': True})
+ for initscript in self.api.driver.GetInitScripts(filter):
+ self.pl_initscripts[initscript['initscript_id']] = initscript
+
+ def prepare(self, slice = None, force=False):
+ if not self.prepared or force or slice:
+ if not slice:
+ self.prepare_sites(force=force)
+ self.prepare_interfaces(force=force)
+ self.prepare_node_tags(force=force)
+ self.prepare_nodes(force=force)
+ self.prepare_links(force=force)
+ self.prepare_pl_initscripts(force=force)
+ else:
+ self.prepare_sites({'site_id': slice['site_id']})
+ self.prepare_interfaces({'node_id': slice['node_ids']})
+ self.prepare_node_tags({'node_id': slice['node_ids']})
+ self.prepare_nodes({'node_id': slice['node_ids']})
+ self.prepare_links({'slice_id': slice['slice_id']})
+ self.prepare_pl_initscripts()
+ self.prepared = True
+
+ def get_rspec(self, slice_xrn=None, version = None):
+ version_manager = VersionManager()
+ version = version_manager.get_version(version)
+ if not slice_xrn:
+ rspec_version = version_manager._get_version(version.type, version.version, 'ad')
+ else:
+ rspec_version = version_manager._get_version(version.type, version.version, 'manifest')
+
+ rspec = RSpec(version=rspec_version, user_options=self.user_options)
+ # get slice details if specified
+ slice = None