reviewed openstack importer
authorThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Tue, 24 Jan 2012 13:38:51 +0000 (14:38 +0100)
committerThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Tue, 24 Jan 2012 13:38:51 +0000 (14:38 +0100)
sfa/importer/sfa-import-openstack.py
sfa/importer/sfa-import-plc.py

index ae3d897..cb4873e 100755 (executable)
@@ -23,17 +23,16 @@ from sfa.util.xrn import Xrn, get_leaf, get_authority, hrn_to_urn
 from sfa.util.plxrn import hostname_to_hrn, slicename_to_hrn, email_to_hrn, hrn_to_pl_slicename
 from sfa.util.sfalogging import logger
 
+from sfa.trust.gid import create_uuid    
 from sfa.trust.certificate import convert_public_key, Keypair
-from sfa.trust.gid import create_uuid
 
 from sfa.openstack.openstack_shell import OpenstackShell    
 
 from sfa.storage.alchemy import dbsession
-from sfa.storage.persistentobjs import RegRecord
+from sfa.storage.persistentobjs import RegRecord, RegAuthority, RegUser, RegSlice, RegNode
 
 from sfa.importer.sfaImport import sfaImport, _cleanup_string
 
-
 def process_options():
 
    (options, args) = getopt.getopt(sys.argv[1:], '', [])
@@ -85,7 +84,7 @@ def main():
     persons = shell.user_get_all()
     persons_dict = {}
     keys_filename = config.config_path + os.sep + 'person_keys.py' 
-    old_person_keys = load_keys(keys_filename)    
+    old_person_keys = load_keys(keys_filename)
     person_keys = {} 
     for person in persons:
         hrn = config.SFA_INTERFACE_HRN + "." + person.id
@@ -110,11 +109,14 @@ def main():
                 logger.warn("Import: 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 = RegRecord("user", hrn=hrn, gid=person_gid, 
-                                      authority=get_authority(hrn))
-            logger.info("Import: importing %s " % person_record)
+            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("Import: imported person %s" % person_record)
 
     # Get all projects
     projects = shell.project_get_all()
@@ -127,12 +129,14 @@ def main():
             pkey = Keypair(create=True)
             urn = hrn_to_urn(hrn, 'slice')
             project_gid = sfaImporter.AuthHierarchy.create_gid(urn, create_uuid(), pkey)
-            project_record = RegRecord("slice", hrn=hrn, gid=project_gid,
-                                       authority=get_authority(hrn))
-            projects_dict[project_record.hrn] = project_record
-            logger.info("Import: importing %s " % project_record)
+            project_record = RegSlice ()
+            project_record.type='slice'
+            project_record.hrn=hrn
+            project_record.gid=project_gid
+            project_record.authority=get_authority(hrn)
             dbsession.add(project_record)
             dbsession.commit()
+            logger.info("Import: imported slice: %s" % project_record)  
     
     # remove stale records    
     system_records = [interface_hrn, root_auth, interface_hrn + '.slicemanager']
@@ -154,7 +158,7 @@ def main():
             continue 
         
         record_object = existing_records[ (record_hrn, type) ]
-        logger.info("Import: removing %s " % record.summary_string())
+        logger.info("Import: removing %s " % record)
         dbsession.delete(record_object)
         dbsession.commit()
                                    
index e10e572..8a9e13d 100755 (executable)
@@ -72,22 +72,20 @@ def main():
 
     process_options()
     config = Config()
+    sfaImporter = sfaImport()
+    logger=sfaImporter.logger
+    logger.setLevelFromOptVerbose(config.SFA_API_LOGLEVEL)
     if not config.SFA_REGISTRY_ENABLED:
         sys.exit(0)
     root_auth = config.SFA_REGISTRY_ROOT_AUTH
     interface_hrn = config.SFA_INTERFACE_HRN
-    keys_filename = config.config_path + os.sep + 'person_keys.py' 
-    sfaImporter = sfaImport()
-    sfaImporter.create_top_level_records()
-    logger=sfaImporter.logger
-    logger.setLevelFromOptVerbose(config.SFA_API_LOGLEVEL)
     shell = PlShell (config)
+    sfaImporter.create_top_level_records()
     
     # create dict of all existing sfa records
     existing_records = {}
     existing_hrns = []
     key_ids = []
-    person_keys = {} 
     for record in dbsession.query(RegRecord):
         existing_records[ (record.hrn, record.type,) ] = record
         existing_hrns.append(record.hrn) 
@@ -113,7 +111,9 @@ def main():
         keys_dict[key['key_id']] = key['key']
 
     # create a dict of person keys keyed on key_id 
+    keys_filename = config.config_path + os.sep + 'person_keys.py' 
     old_person_keys = load_keys(keys_filename)
+    person_keys = {} 
     for person in persons:
         pubkeys = []
         for key_id in person['key_ids']: