summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJiri Stransky <jistr@redhat.com>2016-04-11 12:38:00 +0200
committerJiri Stransky <jistr@redhat.com>2016-04-11 14:31:42 +0200
commitaa0bd9eb1b16581f258f0fe1a4e7331df67c1c85 (patch)
treef61684d331388e74b224582025a80769a9db76fe
parent2d92911838fdecdbc522e9e1b095c1b1b09029e0 (diff)
Fix distinguishing between stack-create and stack-update
Previously we tried to use UpdateIdentifier for two different things: tell whether to perform package update, and also to tell whether the top-level stack is being created or updated (which was incorrect and resulted in bug 1567384, and an attempt to work around that bug resulted in bug 1567385). We cannot use Heat's "action" conditionals in some cases, because they refer to the direct parent stack, which can yield undesirable results when introducing new nested stacks or temporarily no-opping something and then adding it back (in both these cases, "action" would be considered "CREATE", even though the top-level stack is in "UPDATE"). So tripleoclient passes a new parameter StackAction to tell whether the top-level stack is being created or updated, and we make use of that. (It seems there's no better way of getting this info from within the nested Heat stacks.) Change-Id: Ie14ddbff15e7ed21aaa3fcdacf36e0040f912382 Depends-On: I9dc3b4cd8a6a71df34d8babf0e4c6505041f5311 Closes-Bug: #1567384 Related-Bug: #1567385
-rw-r--r--environments/major-upgrade-pacemaker-converge.yaml4
-rwxr-xr-xextraconfig/tasks/pacemaker_resource_restart.sh2
-rw-r--r--puppet/all-nodes-config.yaml7
3 files changed, 8 insertions, 5 deletions
diff --git a/environments/major-upgrade-pacemaker-converge.yaml b/environments/major-upgrade-pacemaker-converge.yaml
index dfcb9654..f023cb32 100644
--- a/environments/major-upgrade-pacemaker-converge.yaml
+++ b/environments/major-upgrade-pacemaker-converge.yaml
@@ -1,6 +1,2 @@
parameter_defaults:
- UpdateIdentifier: 'true'
UpgradeLevelNovaCompute: ''
-
-resource_registry:
- OS::TripleO::Tasks::PackageUpdate: ../extraconfig/tasks/yum_update_noop.yaml
diff --git a/extraconfig/tasks/pacemaker_resource_restart.sh b/extraconfig/tasks/pacemaker_resource_restart.sh
index d9d00554..b2e5be16 100755
--- a/extraconfig/tasks/pacemaker_resource_restart.sh
+++ b/extraconfig/tasks/pacemaker_resource_restart.sh
@@ -8,7 +8,7 @@ pacemaker_status=$(systemctl is-active pacemaker)
# and we're updating the deployment (not creating).
if [ "$pacemaker_status" = "active" -a \
"$(hiera bootstrap_nodeid)" = "$(facter hostname)" -a \
- "$(hiera update_identifier)" != "nil" ]; then
+ "$(hiera stack_action)" = "UPDATE" ]; then
#ensure neutron constraints like
#https://review.openstack.org/#/c/245093/
diff --git a/puppet/all-nodes-config.yaml b/puppet/all-nodes-config.yaml
index fed9dd31..ad10a8fc 100644
--- a/puppet/all-nodes-config.yaml
+++ b/puppet/all-nodes-config.yaml
@@ -65,6 +65,12 @@ parameters:
description: >
Setting to a previously unused value during stack-update will trigger
package update on all nodes
+ StackAction:
+ type: string
+ description: >
+ Heat action on performed top-level stack.
+ constraints:
+ - allowed_values: ['CREATE', 'UPDATE']
resources:
@@ -293,6 +299,7 @@ resources:
deploy_identifier: {get_param: DeployIdentifier}
update_identifier: {get_param: UpdateIdentifier}
+ stack_action: {get_param: StackAction}
outputs:
config_id: