Fixup systemctl_swift stop/start during the controller upgrade
authormarios <marios@redhat.com>
Wed, 9 Mar 2016 13:43:40 +0000 (15:43 +0200)
committermarios <marios@redhat.com>
Wed, 9 Mar 2016 13:43:40 +0000 (15:43 +0200)
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

extraconfig/tasks/pacemaker_common_functions.sh

index ee3216e..0808763 100755 (executable)
@@ -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
 }