- logger.warn("OpenstackImporter: person %s does not have a PL public key"%hrn)
- pkey = Keypair(create=True)
- person_gid = sfaImporter.AuthHierarchy.create_gid(urn, create_uuid(), pkey)
- person_record = RegUser ()
- person_record.type='user'
- person_record.hrn=hrn
- person_record.gid=person_gid
- person_record.authority=get_authority(hrn)
- dbsession.add(person_record)
- dbsession.commit()
- logger.info("OpenstackImporter: imported person %s" % person_record)
-
- # Get all projects
- projects = shell.project_get_all()
- projects_dict = {}
- for project in projects:
- hrn = config.SFA_INTERFACE_HRN + '.' + project.id
- projects_dict[hrn] = project
- if hrn not in existing_hrns or \
- (hrn, 'slice') not in existing_records:
+ self.logger.warning(
+ "OpenstackImporter: person %s does not have a PL public key" % hrn)
+ pkey = Keypair(create=True)
+ user_gid = self.auth_hierarchy.create_gid(
+ urn, create_uuid(), pkey, email=user.email)
+ user_record = RegUser()
+ user_record.type = 'user'
+ user_record.hrn = hrn
+ user_record.gid = user_gid
+ user_record.authority = get_authority(hrn)
+ global_dbsession.add(user_record)
+ global_dbsession.commit()
+ self.logger.info(
+ "OpenstackImporter: imported person %s" % user_record)
+
+ return users_dict, user_keys
+
+ def import_tenants(self, existing_hrns, existing_records):
+ # Get all tenants
+ # A tenant can represent an organizational group (site) or a
+ # slice. If a tenant's authorty/parent matches the root authority it is
+ # considered a group/site. All other tenants are considered slices.
+ tenants = self.shell.auth_manager.tenants.list()
+ tenants_dict = {}
+ for tenant in tenants:
+ hrn = self.config.SFA_INTERFACE_HRN + '.' + tenant.name
+ tenants_dict[hrn] = tenant
+ authority_hrn = OSXrn(
+ xrn=hrn, type='authority').get_authority_hrn()
+
+ if hrn in existing_hrns:
+ continue
+
+ if authority_hrn == self.config.SFA_INTERFACE_HRN:
+ # import group/site
+ record = RegAuthority()
+ urn = OSXrn(xrn=hrn, type='authority').get_urn()
+ if not self.auth_hierarchy.auth_exists(urn):
+ self.auth_hierarchy.create_auth(urn)
+ auth_info = self.auth_hierarchy.get_auth_info(urn)
+ gid = auth_info.get_gid_object()
+ record.type = 'authority'
+ record.hrn = hrn
+ record.gid = gid
+ record.authority = get_authority(hrn)
+ global_dbsession.add(record)
+ global_dbsession.commit()
+ self.logger.info(
+ "OpenstackImporter: imported authority: %s" % record)
+
+ else:
+ record = RegSlice()
+ urn = OSXrn(xrn=hrn, type='slice').get_urn()