From bf9620651a8b232ae319645ccbcfafbc88cf3c6c Mon Sep 17 00:00:00 2001 From: Emilien Macchi Date: Tue, 25 Apr 2017 17:30:29 -0400 Subject: [PATCH] undercloud/upgrade: change ownership for ironic-dbsync.log A change was done in puppet-ironic: https://review.openstack.org/#/c/457478/ It broke TripleO upgrades because ironic-dbsync.log used to be owned by root:root and now it's managed by ironic user in puppet-ironic, which is good. Because we want to support existing deployments, we need a way to handle the new owership change, so let's do it in a upgrade task in undercloud.py. Puppet will be able to run ironic-dbsync and we'll remove this workaround after Pike release. Change-Id: I325c30f49b765ef6413743491902e97735877321 (cherry picked from commit 4077ec823c76e76c85f4f8fdcd59290db5956aac) --- instack_undercloud/undercloud.py | 16 ++++++++++++---- .../notes/ironic-dbsync-da5d047e92841f78.yaml | 9 +++++++++ 2 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 releasenotes/notes/ironic-dbsync-da5d047e92841f78.yaml diff --git a/instack_undercloud/undercloud.py b/instack_undercloud/undercloud.py index cbc4b87f4..f162542ed 100644 --- a/instack_undercloud/undercloud.py +++ b/instack_undercloud/undercloud.py @@ -1432,13 +1432,21 @@ def install(instack_root, upgrade=False): _validate_configuration() instack_env = _generate_environment(instack_root) _generate_init_data(instack_env) - # We didn't complete the M->N upgrades correctly with a - # `nova-manage db online_data_migrations` command before. This could - # cause the post-upgrade db sync to fail. Better be safe than sorry and - # run it before package upgrade. if upgrade: + # We didn't complete the M->N upgrades correctly with a + # `nova-manage db online_data_migrations` command before. This + # could cause the post-upgrade db sync to fail. Better be safe + # than sorry and run it before package upgrade. _run_command(['sudo', '/usr/bin/nova-manage', 'db', 'online_data_migrations']) + # Even if we backport https://review.openstack.org/#/c/457478/ + # into stable branches of puppet-ironic, we still need a way + # to handle existing deployments. + # This task will fix ironic-dbsync.log ownership on existing + # deployments during an upgrade. It can be removed after we + # release Pike. + _run_command(['sudo', '/usr/bin/chown', 'ironic:ironic', + '/var/log/ironic/ironic-dbsync.log']) if CONF.undercloud_update_packages: _run_yum_clean_all(instack_env) _run_yum_update(instack_env) diff --git a/releasenotes/notes/ironic-dbsync-da5d047e92841f78.yaml b/releasenotes/notes/ironic-dbsync-da5d047e92841f78.yaml new file mode 100644 index 000000000..5cee8904b --- /dev/null +++ b/releasenotes/notes/ironic-dbsync-da5d047e92841f78.yaml @@ -0,0 +1,9 @@ +--- +upgrade: + - | + Undercloud upgrade will handle the change of ownership for ironic-dbsync.log + to become ironic:ironic instead of root:root. + Indeed, https://review.openstack.org/#/c/457478/ broke TripleO upgrades but + it's to fix a valid issue in the puppet-ironic module. We still want to handle + upgrades for existing deployments, that's why we manage the ownership change + in instack-undercloud.