I discussed with James and we'd like to completely drop the db
migrations from the packages in Pike.

I don't think we need to backport fixes for all packages, however since
nova is hitting this in Ocata we should backport for that package.

** Summary changed:

- nova db sync  is executed when the 'connection' is not defined
+ drop db sync commands from OpenStack packages

** Description changed:

+ The original reason this bug was opened is that nova db sync is executed
+ when the 'connection' is not defined. Let's fix that and at the same
+ time drop all db syncs from OpenStack packages in Pike.
+ 
  When the 'connection' configuration key is NOT defined in
  /etc/nova/nova.conf the nova-common.postinst script still tries to run
  'nova-manage db sync'
  
  root@juju-b24bc9-mno-18:~# grep connection /etc/nova/nova.conf
  root@juju-b24bc9-mno-18:~# dpkg-reconfigure nova-common
  Option "logdir" from group "DEFAULT" is deprecated. Use option "log-dir" from 
group "DEFAULT".
  Option "verbose" from group "DEFAULT" is deprecated for removal.  Its value 
may be silently ignored in the future.
  ERROR: could not access cell mapping database - has api db been created?
  An error has occurred:
  Traceback (most recent call last):
-   File "/usr/lib/python2.7/dist-packages/nova/cmd/manage.py", line 1602, in 
main
-     ret = fn(*fn_args, **fn_kwargs)
-   File "/usr/lib/python2.7/dist-packages/nova/cmd/manage.py", line 645, in 
sync
-     return migration.db_sync(version)
-   File "/usr/lib/python2.7/dist-packages/nova/db/migration.py", line 26, in 
db_sync
-     return IMPL.db_sync(version=version, database=database, context=context)
-   File "/usr/lib/python2.7/dist-packages/nova/db/sqlalchemy/migration.py", 
line 57, in db_sync
-     repository, version)
-   File "/usr/lib/python2.7/dist-packages/migrate/versioning/api.py", line 
186, in upgrade
-     return _migrate(url, repository, version, upgrade=True, err=err, **opts)
-   File "<decorator-gen-15>", line 2, in _migrate
-   File 
"/usr/lib/python2.7/dist-packages/migrate/versioning/util/__init__.py", line 
160, in with_engine
-     return f(*a, **kw)
-   File "/usr/lib/python2.7/dist-packages/migrate/versioning/api.py", line 
366, in _migrate
-     schema.runchange(ver, change, changeset.step)
-   File "/usr/lib/python2.7/dist-packages/migrate/versioning/schema.py", line 
93, in runchange
-     change.run(self.engine, step)
-   File "/usr/lib/python2.7/dist-packages/migrate/versioning/script/py.py", 
line 148, in run
-     script_func(engine)
-   File 
"/usr/lib/python2.7/dist-packages/nova/db/sqlalchemy/migrate_repo/versions/345_require_online_migration_completion.py",
 line 44, in upgrade
-     raise exception.ValidationError(detail=msg)
- ValidationError: Migration cannot continue until all these have been migrated 
to the api database. Please run `nova-manage db online_migrations' on Newton 
code before continuing.There are still 5 unmigrated flavors. 
+   File "/usr/lib/python2.7/dist-packages/nova/cmd/manage.py", line 1602, in 
main
+     ret = fn(*fn_args, **fn_kwargs)
+   File "/usr/lib/python2.7/dist-packages/nova/cmd/manage.py", line 645, in 
sync
+     return migration.db_sync(version)
+   File "/usr/lib/python2.7/dist-packages/nova/db/migration.py", line 26, in 
db_sync
+     return IMPL.db_sync(version=version, database=database, context=context)
+   File "/usr/lib/python2.7/dist-packages/nova/db/sqlalchemy/migration.py", 
line 57, in db_sync
+     repository, version)
+   File "/usr/lib/python2.7/dist-packages/migrate/versioning/api.py", line 
186, in upgrade
+     return _migrate(url, repository, version, upgrade=True, err=err, **opts)
+   File "<decorator-gen-15>", line 2, in _migrate
+   File 
"/usr/lib/python2.7/dist-packages/migrate/versioning/util/__init__.py", line 
160, in with_engine
+     return f(*a, **kw)
+   File "/usr/lib/python2.7/dist-packages/migrate/versioning/api.py", line 
366, in _migrate
+     schema.runchange(ver, change, changeset.step)
+   File "/usr/lib/python2.7/dist-packages/migrate/versioning/schema.py", line 
93, in runchange
+     change.run(self.engine, step)
+   File "/usr/lib/python2.7/dist-packages/migrate/versioning/script/py.py", 
line 148, in run
+     script_func(engine)
+   File 
"/usr/lib/python2.7/dist-packages/nova/db/sqlalchemy/migrate_repo/versions/345_require_online_migration_completion.py",
 line 44, in upgrade
+     raise exception.ValidationError(detail=msg)
+ ValidationError: Migration cannot continue until all these have been migrated 
to the api database. Please run `nova-manage db online_migrations' on Newton 
code before continuing.There are still 5 unmigrated flavors.
  
  Running the postinst script manually with -x
  
  root@juju-b24bc9-mno-18:~# bash -ex /var/lib/dpkg/info/nova-common.postinst 
configure
  + '[' configure = configure ']'
  + getent group nova
  + getent passwd nova
  + '[' -z '' ']'
  + chown -R nova:nova /var/lib/nova/
  + chown -R nova:nova /etc/nova
  + chown -R nova:adm /var/log/nova
  + '[' -z '' ']'
  + chown -R nova:nova /var/lib/nova/
  + chmod 0640 /etc/nova/nova.conf
  + chmod 0640 /etc/nova/api-paste.ini
  + chmod 0750 /etc/nova
  + chmod 0750 /var/log/nova
  + chown root:root /etc/nova/rootwrap.conf
  + chown root:root /etc/nova/rootwrap.d
  + chmod 0755 /etc/nova/rootwrap.d
  + grep -qE '^(sql_)?connection( )?=.*' /etc/nova/nova.conf
  + su -s /bin/sh -c 'nova-manage db sync' nova
  Option "logdir" from group "DEFAULT" is deprecated. Use option "log-dir" from 
group "DEFAULT".
  Option "verbose" from group "DEFAULT" is deprecated for removal.  Its value 
may be silently ignored in the future.
  ERROR: could not access cell mapping database - has api db been created?
  An error has occurred:
  Traceback (most recent call last):
  ...
- ValidationError: Migration cannot continue until all these have been migrated 
to the api database. Please run `nova-manage db online_migrations' on Newton 
code before continuing.There are still 5 unmigrated flavors. 
+ ValidationError: Migration cannot continue until all these have been migrated 
to the api database. Please run `nova-manage db online_migrations' on Newton 
code before continuing.There are still 5 unmigrated flavors.
  
+ The condition to run the sync operation should be that the connection
+ config key is defined in nova.conf
  
- The condition to run the sync operation should be that the connection config 
key is defined in nova.conf
- 
- # diff -u /var/lib/dpkg/info/nova-common.postinst ./nova-common.postinst 
+ # diff -u /var/lib/dpkg/info/nova-common.postinst ./nova-common.postinst
  --- /var/lib/dpkg/info/nova-common.postinst     2017-06-19 08:12:49.000000000 
+0000
  +++ ./nova-common.postinst      2017-08-25 13:08:48.852744427 +0000
  @@ -47,8 +47,8 @@
-      chown root:root /etc/nova/rootwrap.d
-      chmod 0755 /etc/nova/rootwrap.d
-  
+      chown root:root /etc/nova/rootwrap.d
+      chmod 0755 /etc/nova/rootwrap.d
+ 
  -    if ! grep -qE "^(sql_)?connection( )?=.*" /etc/nova/nova.conf || \
  -         grep -qE "^(sql_)?connection.*sqlite.*" /etc/nova/nova.conf
  +    if grep -qE "^(sql_)?connection( )?=.*" /etc/nova/nova.conf || \
  +       grep -qE "^(sql_)?connection.*sqlite.*" /etc/nova/nova.conf
-      then
-        su -s /bin/sh -c 'nova-manage db sync' nova
-      fi
+      then
+        su -s /bin/sh -c 'nova-manage db sync' nova
+      fi

** Description changed:

  The original reason this bug was opened is that nova db sync is executed
  when the 'connection' is not defined. Let's fix that and at the same
  time drop all db syncs from OpenStack packages in Pike.
+ 
+ More on the nova issue:
  
  When the 'connection' configuration key is NOT defined in
  /etc/nova/nova.conf the nova-common.postinst script still tries to run
  'nova-manage db sync'
  
  root@juju-b24bc9-mno-18:~# grep connection /etc/nova/nova.conf
  root@juju-b24bc9-mno-18:~# dpkg-reconfigure nova-common
  Option "logdir" from group "DEFAULT" is deprecated. Use option "log-dir" from 
group "DEFAULT".
  Option "verbose" from group "DEFAULT" is deprecated for removal.  Its value 
may be silently ignored in the future.
  ERROR: could not access cell mapping database - has api db been created?
  An error has occurred:
  Traceback (most recent call last):
    File "/usr/lib/python2.7/dist-packages/nova/cmd/manage.py", line 1602, in 
main
      ret = fn(*fn_args, **fn_kwargs)
    File "/usr/lib/python2.7/dist-packages/nova/cmd/manage.py", line 645, in 
sync
      return migration.db_sync(version)
    File "/usr/lib/python2.7/dist-packages/nova/db/migration.py", line 26, in 
db_sync
      return IMPL.db_sync(version=version, database=database, context=context)
    File "/usr/lib/python2.7/dist-packages/nova/db/sqlalchemy/migration.py", 
line 57, in db_sync
      repository, version)
    File "/usr/lib/python2.7/dist-packages/migrate/versioning/api.py", line 
186, in upgrade
      return _migrate(url, repository, version, upgrade=True, err=err, **opts)
    File "<decorator-gen-15>", line 2, in _migrate
    File 
"/usr/lib/python2.7/dist-packages/migrate/versioning/util/__init__.py", line 
160, in with_engine
      return f(*a, **kw)
    File "/usr/lib/python2.7/dist-packages/migrate/versioning/api.py", line 
366, in _migrate
      schema.runchange(ver, change, changeset.step)
    File "/usr/lib/python2.7/dist-packages/migrate/versioning/schema.py", line 
93, in runchange
      change.run(self.engine, step)
    File "/usr/lib/python2.7/dist-packages/migrate/versioning/script/py.py", 
line 148, in run
      script_func(engine)
    File 
"/usr/lib/python2.7/dist-packages/nova/db/sqlalchemy/migrate_repo/versions/345_require_online_migration_completion.py",
 line 44, in upgrade
      raise exception.ValidationError(detail=msg)
  ValidationError: Migration cannot continue until all these have been migrated 
to the api database. Please run `nova-manage db online_migrations' on Newton 
code before continuing.There are still 5 unmigrated flavors.
  
  Running the postinst script manually with -x
  
  root@juju-b24bc9-mno-18:~# bash -ex /var/lib/dpkg/info/nova-common.postinst 
configure
  + '[' configure = configure ']'
  + getent group nova
  + getent passwd nova
  + '[' -z '' ']'
  + chown -R nova:nova /var/lib/nova/
  + chown -R nova:nova /etc/nova
  + chown -R nova:adm /var/log/nova
  + '[' -z '' ']'
  + chown -R nova:nova /var/lib/nova/
  + chmod 0640 /etc/nova/nova.conf
  + chmod 0640 /etc/nova/api-paste.ini
  + chmod 0750 /etc/nova
  + chmod 0750 /var/log/nova
  + chown root:root /etc/nova/rootwrap.conf
  + chown root:root /etc/nova/rootwrap.d
  + chmod 0755 /etc/nova/rootwrap.d
  + grep -qE '^(sql_)?connection( )?=.*' /etc/nova/nova.conf
  + su -s /bin/sh -c 'nova-manage db sync' nova
  Option "logdir" from group "DEFAULT" is deprecated. Use option "log-dir" from 
group "DEFAULT".
  Option "verbose" from group "DEFAULT" is deprecated for removal.  Its value 
may be silently ignored in the future.
  ERROR: could not access cell mapping database - has api db been created?
  An error has occurred:
  Traceback (most recent call last):
  ...
  ValidationError: Migration cannot continue until all these have been migrated 
to the api database. Please run `nova-manage db online_migrations' on Newton 
code before continuing.There are still 5 unmigrated flavors.
  
  The condition to run the sync operation should be that the connection
  config key is defined in nova.conf
  
  # diff -u /var/lib/dpkg/info/nova-common.postinst ./nova-common.postinst
  --- /var/lib/dpkg/info/nova-common.postinst     2017-06-19 08:12:49.000000000 
+0000
  +++ ./nova-common.postinst      2017-08-25 13:08:48.852744427 +0000
  @@ -47,8 +47,8 @@
       chown root:root /etc/nova/rootwrap.d
       chmod 0755 /etc/nova/rootwrap.d
  
  -    if ! grep -qE "^(sql_)?connection( )?=.*" /etc/nova/nova.conf || \
  -         grep -qE "^(sql_)?connection.*sqlite.*" /etc/nova/nova.conf
  +    if grep -qE "^(sql_)?connection( )?=.*" /etc/nova/nova.conf || \
  +       grep -qE "^(sql_)?connection.*sqlite.*" /etc/nova/nova.conf
       then
         su -s /bin/sh -c 'nova-manage db sync' nova
       fi

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1713059

Title:
  drop db sync commands from OpenStack packages

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ironic/+bug/1713059/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to