from sfa.util.xrn import Xrn
from sfa.plc.api import *
from sfa.trust.gid import create_uuid
-from sfa.plc.sfaImport import sfaImport
+from sfa.plc.sfaImport import sfaImport, _cleanup_string
def process_options():
f.write("keys = %s" % str(keys))
f.close()
+def _get_site_hrn(interface_hrn, site):
+ # Hardcode 'internet2' into the hrn for sites hosting
+ # internet2 nodes. This is a special operation for some vini
+ # sites only
+ hrn = ".".join([interface_hrn, site['login_base']])
+ if ".vini" in interface_hrn and interface_hrn.endswith('vini'):
+ if site['login_base'].startswith("i2") or site['login_base'].startswith("nlr"):
+ hrn = ".".join([interface_hrn, "internet2", site['login_base']])
+ return hrn
+
def main():
process_options()
slices_dict[slice['slice_id']] = slice
# start importing
for site in sites:
- site_hrn = interface_hrn + "." + site['login_base']
+ site_hrn = _get_site_hrn(interface_hrn, site)
sfaImporter.logger.info("Importing site: %s" % site_hrn)
# import if hrn is not in list of existing hrns or if the hrn exists
# but its not a site record
if site_hrn not in existing_hrns or \
(site_hrn, 'authority') not in existing_records:
- site_hrn = sfaImporter.import_site(interface_hrn, site)
+ sfaImporter.import_site(site_hrn, site)
# import node records
for node_id in site['node_ids']:
if node_id not in nodes_dict:
continue
node = nodes_dict[node_id]
- hrn = hostname_to_hrn(interface_hrn, site['login_base'], node['hostname'])
+ root_auth = get_authority(site_hrn)
+ site_name = get_leaf(site_hrn)
+ hrn = hostname_to_hrn(root_auth, site_name, node['hostname'])
if hrn not in existing_hrns or \
(hrn, 'node') not in existing_records:
sfaImporter.import_node(hrn, node)
table.update(node_record)
- def import_site(self, parent_hrn, site):
+ def import_site(self, hrn, site):
shell = self.shell
plc_auth = self.plc_auth
- sitename = site['login_base']
- sitename = _cleanup_string(sitename)
- hrn = parent_hrn + "." + sitename
- # Hardcode 'internet2' into the hrn for sites hosting
- # internet2 nodes. This is a special operation for some vini
- # sites only
- if ".vini" in parent_hrn and parent_hrn.endswith('vini'):
- if sitename.startswith("i2"):
- #sitename = sitename.replace("ii", "")
- hrn = ".".join([parent_hrn, "internet2", sitename])
- elif sitename.startswith("nlr"):
- #sitename = sitename.replace("nlr", "")
- hrn = ".".join([parent_hrn, "internet2", sitename])
-
urn = hrn_to_urn(hrn, 'authority')
self.logger.info("Import: site %s"%hrn)