]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commitdiff
Add nova migrate_version check to cinder import
authorJohn Griffith <john.griffith@solidfire.com>
Tue, 18 Sep 2012 19:29:20 +0000 (13:29 -0600)
committerJohn Griffith <john.griffith@solidfire.com>
Wed, 19 Sep 2012 22:00:39 +0000 (16:00 -0600)
Cinder-manage migrate import only works from Nova/Folsom--->Cinder/Folsom
this change adds an explicit check of the nova migrate_version (133)
to make sure we have all of the volume id/uuid changes that are needed
to be compatable, and presents an error message if that's not the case.

Addresses bug #1052598

Change-Id: I7f32cf35e33320f4348b7bc44a8e92b5716b71d8
(cherry picked from commit 321d32379cd6044378f2f9c32c068de18f514df5)

bin/cinder-manage

index 8f4a4c3dcf7d606cb69ecb09470d22843c3ba9a6..9d13217425e6dc885b3080f463482ea4f7bfeee5 100755 (executable)
@@ -251,9 +251,11 @@ class ImportCommands(object):
         return Mapper
 
     def _open_session(self, con_info):
+        # Note(jdg): The echo option below sets whether to dispaly db command
+        # debug info.
         engine = create_engine(con_info,
                                convert_unicode=True,
-                               echo=True)
+                               echo=False)
         session = sessionmaker(bind=engine)
         return (session(), engine)
 
@@ -295,6 +297,14 @@ class ImportCommands(object):
         src_meta = MetaData(bind=src_engine)
         (dest, dest_engine) = self._open_session(dest_db)
 
+        # First make sure nova is at Folsom
+        table = Table('migrate_version', src_meta, autoload=True)
+        if src.query(table).first().version < 132:
+            print (_('ERROR: Specified Nova DB is not at a compatible '
+                     'migration version!\nNova must be at Folsom or newer '
+                     'to import into Cinder database.'))
+            sys.exit(2)
+
         for table_name in table_list:
             print (_('Importing table %s...') % table_name)
             table = Table(table_name, src_meta, autoload=True)