grenade: Only 'enable_plugin ironic' if not already in conf

To support multi-node grenade jobs we need to move enabling of the
ironic devstack plugin out of the ironic grenade settings file
devstack/upgrade/settings. But if we add enabling of the ironic devstack
plugin to project-config it will cause the gate to break as the plugin
will be enabled twice.

This checks to see if the ironic devstack plugin has already been
enabled:
  * If it has already been enabled it will not enable it again.
  * If it has not yet been enabled it will enable it.

This will allow us to update project-config to enable the ironic
devstack plugin and not break the gate.

After all the changes have landed we will propose a follow-up patch to
remove all this additonal logic and the enabling of the ironic devstack
plugin.

Change-Id: I09ed78ef918eb0359045350e89d42c6df9f3e490
This commit is contained in:
John L. Villalovos 2017-03-10 06:45:59 -08:00
parent ad99084fbc
commit 0be91665b4

View File

@ -10,11 +10,27 @@
register_project_for_upgrade ironic
register_db_to_save ironic
devstack_localrc base enable_plugin ironic https://git.openstack.org/openstack/ironic
devstack_localrc base enable_service ir-api ir-cond ironic
devstack_localrc target enable_plugin ironic https://git.openstack.org/openstack/ironic
devstack_localrc target enable_service ir-api ir-cond ironic
# NOTE(jlvillal): This file is sourced by the 'load_settings' function in
# grenade/inc/plugin. So usage of local will work.
local ir_gren_conf
local ir_gren_stage
for ir_gren_stage in base target; do
# TODO(jlvillal): Remove this logic for checking if the ironic devstack
# plugin is enabled, once the enabling of the ironic devstack plugin is
# being done in project-config.
ir_gren_conf=$(localrc_path ${ir_gren_stage})
# Only 'enable_plugin ironic' if it isn't in the file already.
if ! grep -q '^enable_plugin ironic ' ${ir_gren_conf} ; then
echo "Enabling ironic devstack plugin via grenade for ${ir_gren_stage}"
devstack_localrc ${ir_gren_stage} enable_plugin ironic https://git.openstack.org/openstack/ironic
else
echo "ironic devstack plugin already enabled for ${ir_gren_stage}"
fi
devstack_localrc ${ir_gren_stage} enable_service ir-api ir-cond ironic
done
# Duplicate some setup bits from target DevStack. Use old devstack as we install base environment from it.
BASE_TOP_DIR=$TOP_DIR/../../old/devstack/