From 9727a27d00bbc423b565e02d2d69cc3d74f96761 Mon Sep 17 00:00:00 2001
From: marios <marios@redhat.com>
Date: Wed, 9 Mar 2016 15:43:40 +0200
Subject: [PATCH] Fixup systemctl_swift stop/start  during the controller
 upgrade

During the controller upgrade in
major_upgrade_controller_pacemaker_1.sh we use systemctl to stop
all swift services and then start them again in _pacemaker_2.sh

In the case of stand-alone swift nodes the deployer may have
used the ControllerEnableSwiftStorage: false so that only the
swift-proxy service is left on controllers (wrt swift). The
systemctl_swift function used during upgrades is changed to factor
this in.

Change-Id: Ib22005123429f250324df389855d0dccd2343feb
---
 .../tasks/pacemaker_common_functions.sh       | 21 +++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/extraconfig/tasks/pacemaker_common_functions.sh b/extraconfig/tasks/pacemaker_common_functions.sh
index ee3216e463..0808763e65 100755
--- a/extraconfig/tasks/pacemaker_common_functions.sh
+++ b/extraconfig/tasks/pacemaker_common_functions.sh
@@ -39,10 +39,23 @@ function echo_error {
 }
 
 function systemctl_swift {
+    services=( openstack-swift-account-auditor openstack-swift-account-reaper openstack-swift-account-replicator openstack-swift-account \
+               openstack-swift-container-auditor openstack-swift-container-replicator openstack-swift-container-updater openstack-swift-container \
+               openstack-swift-object-auditor openstack-swift-object-replicator openstack-swift-object-updater openstack-swift-object openstack-swift-proxy )
     action=$1
-    for S in openstack-swift-account-auditor openstack-swift-account-reaper openstack-swift-account-replicator openstack-swift-account \
-             openstack-swift-container-auditor openstack-swift-container-replicator openstack-swift-container-updater openstack-swift-container \
-             openstack-swift-object-auditor openstack-swift-object-replicator openstack-swift-object-updater openstack-swift-object openstack-swift-proxy; do
-                systemctl $action $S
+    case $action in
+        stop)
+            services=$(systemctl | grep swift | grep running | awk '{print $1}')
+            ;;
+        start)
+            enable_swift_storage=$(hiera -c /etc/puppet/hiera.yaml 'enable_swift_storage')
+            if [[ $enable_swift_storage != "true" ]]; then
+                services=( openstack-swift-proxy )
+            fi
+            ;;
+        *)  services=() ;;  # for safetly, should never happen
+    esac
+    for S in ${services[@]}; do
+        systemctl $action $S
     done
 }