add support for migrations with sqlalchemy-migrate
[sfa.git] / sfa / importer / sfa-import-openstack.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()