Merge "Add keystone networks for the different endpoints"
[apex-tripleo-heat-templates.git] / extraconfig / tasks / pacemaker_common_functions.sh
index ee3216e..7d794c9 100755 (executable)
@@ -19,8 +19,9 @@ function check_resource {
       match_for_incomplete='Stopped'
   fi
 
+  nodes_local=$(pcs status  | grep ^Online | sed 's/.*\[ \(.*\) \]/\1/g' | sed 's/ /\|/g')
   if timeout -k 10 $timeout crm_resource --wait; then
-      node_states=$(pcs status --full | grep "$service" | grep -v Clone)
+      node_states=$(pcs status --full | grep "$service" | grep -v Clone | { egrep "$nodes_local" || true; } )
       if echo "$node_states" | grep -q "$match_for_incomplete"; then
           echo_error "ERROR: cluster finished transition but $service was not in $state state, exiting."
           exit 1
@@ -39,10 +40,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
 }