bins = [
'config/sfa-config-tty',
'config/gen-sfa-cm-config.py',
- 'sfa/plc/sfa-import-plc.py',
- 'sfa/plc/sfa-nuke-plc.py',
+ 'sfa/importer/sfa-import-plc.py',
+ 'sfa/importer/sfa-nuke-plc.py',
'sfa/server/sfa-ca.py',
'sfa/server/sfa-start.py',
'sfa/server/sfa-clean-peer-records.py',
'sfa/generic',
'sfa/managers',
'sfa/managers/vini',
+ 'sfa/importer',
'sfa/plc',
'sfa/rspecs',
'sfa/rspecs/elements',
'config/registries.xml',
'config/default_config.xml',
'config/sfi_config',
+ 'config/topology',
'sfa/managers/pl/pl.rng',
'sfa/trust/credential.xsd',
'sfa/trust/top.xsd',
from sfa.util.parameter import Parameter, Mixed
from sfa.util.sfatablesRuntime import run_sfatables
from sfa.trust.credential import Credential
+ from sfa.rspecs.rspec import RSpec
class CreateSliver(Method):
"""
msg = "'users' musst be specified and cannot be null. You may need to update your client."
raise SfaInvalidArgument(name='users', extra=msg)
- manager = self.api.get_interface_manager()
-
# flter rspec through sfatables
if self.api.interface in ['aggregate']:
chain_name = 'INCOMING'
chain_name = 'FORWARD-INCOMING'
self.api.logger.debug("CreateSliver: sfatables on chain %s"%chain_name)
rspec = run_sfatables(chain_name, hrn, origin_hrn, rspec)
-
- return self.api.manager.CreateSliver(self.api, slice_xrn, creds, rspec, users, call_id)
+ slivers = RSpec(rspec).version.get_nodes_with_slivers()
+ if slivers:
- result = manager.CreateSliver(self.api, slice_xrn, creds, rspec, users, call_id)
++ result = self.api.manager.CreateSliver(self.api, slice_xrn, creds, rspec, users, call_id)
+ else:
+ result = rspec
+ return result
from sfa.rspecs.elements.link import Link
from sfa.rspecs.elements.interface import Interface
- from sfa.managers.vini.topology import PhysicalLinks
+ from sfa.util.topology import Topology
from sfa.rspecs.version_manager import VersionManager
from sfa.plc.vlink import get_tc_rate
def prepare_sites(self, filter={}, force=False):
if not self.sites or force:
- for site in self.api.plshell.GetSites(self.api.plauth, filter):
+ for site in self.api.driver.GetSites(filter):
self.sites[site['site_id']] = site
def prepare_nodes(self, filter={}, force=False):
if not self.nodes or force:
filter.update({'peer_id': None})
- nodes = self.api.plshell.GetNodes(self.api.plauth, filter)
+ nodes = self.api.driver.GetNodes(filter)
site_ids = []
interface_ids = []
tag_ids = []
def prepare_interfaces(self, filter={}, force=False):
if not self.interfaces or force:
- for interface in self.api.plshell.GetInterfaces(self.api.plauth, filter):
+ for interface in self.api.driver.GetInterfaces(filter):
self.interfaces[interface['interface_id']] = interface
def prepare_links(self, filter={}, force=False):
+ # we're aobut to deprecate sfa_aggregate_type, need to get this right
+ # with the generic framework
if not self.links or force:
if not self.api.config.SFA_AGGREGATE_TYPE.lower() == 'vini':
return
- for (site_id1, site_id2) in PhysicalLinks:
+ topology = Topology()
+ for (site_id1, site_id2) in topology:
link = Link()
if not site_id1 in self.sites or site_id2 not in self.sites:
continue
def prepare_node_tags(self, filter={}, force=False):
if not self.node_tags or force:
- for node_tag in self.api.plshell.GetNodeTags(self.api.plauth, filter):
+ 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.plshell.GetInitScripts(self.api.plauth, filter):
+ for initscript in self.api.driver.GetInitScripts(filter):
self.pl_initscripts[initscript['initscript_id']] = initscript
def prepare(self, slice = None, force=False):
if slice_xrn:
slice_hrn, _ = urn_to_hrn(slice_xrn)
slice_name = hrn_to_pl_slicename(slice_hrn)
- slices = self.api.plshell.GetSlices(self.api.plauth, slice_name)
+ slices = self.api.driver.GetSlices(slice_name)
if slices:
slice = slices[0]
self.prepare(slice=slice)
# add slivers
if slice_xrn and slice:
slivers = []
- tags = self.api.plshell.GetSliceTags(self.api.plauth, slice['slice_tag_ids'])
+ tags = self.api.driver.GetSliceTags(slice['slice_tag_ids'])
# add default tags
for tag in tags: