Split pacemaker common check_service function out of _restart.sh
authorGiulio Fidente <gfidente@redhat.com>
Tue, 22 Dec 2015 11:06:55 +0000 (12:06 +0100)
committerJiri Stransky <jistr@redhat.com>
Tue, 26 Jan 2016 14:21:24 +0000 (15:21 +0100)
Also split out echo_error function to DRY the error output code and
allow changing the way we report errors in a single place.

Change-Id: I448bf0eb49390f03155335736bb4ab4e979db128
Co-Authored-By: Jiri Stransky <jistr@redhat.com>
extraconfig/tasks/pacemaker_common_functions.sh [new file with mode: 0755]
extraconfig/tasks/pacemaker_resource_restart.sh
extraconfig/tasks/post_puppet_pacemaker.yaml

diff --git a/extraconfig/tasks/pacemaker_common_functions.sh b/extraconfig/tasks/pacemaker_common_functions.sh
new file mode 100755 (executable)
index 0000000..32d06c4
--- /dev/null
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+set -eu
+
+function check_resource {
+
+  if [ "$#" -ne 3 ]; then
+      echo_error "ERROR: check_resource function expects 3 parameters, $# given"
+      exit 1
+  fi
+
+  service=$1
+  state=$2
+  timeout=$3
+
+  if [ "$state" = "stopped" ]; then
+      match_for_incomplete='Started'
+  else # started
+      match_for_incomplete='Stopped'
+  fi
+
+  if timeout -k 10 $timeout crm_resource --wait; then
+      node_states=$(pcs status --full | grep "$service" | grep -v Clone)
+      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
+      else
+        echo "$service has $state"
+      fi
+  else
+      echo_error "ERROR: cluster remained unstable for more than $timeout seconds, exiting."
+      exit 1
+  fi
+
+}
+
+function echo_error {
+    echo "$@" | tee /dev/fd2
+}
index dfc335b..b2bdc55 100755 (executable)
@@ -3,39 +3,6 @@
 set -eux
 
 pacemaker_status=$(systemctl is-active pacemaker)
-check_interval=3
-
-function check_resource {
-
-  if [ "$#" -ne 3 ]; then
-      echo "ERROR: check_resource function expects 3 parameters, $# given" | tee /dev/fd/2
-      exit 1
-  fi
-
-  service=$1
-  state=$2
-  timeout=$3
-
-  if [ "$state" = "stopped" ]; then
-      match_for_incomplete='Started'
-  else # started
-      match_for_incomplete='Stopped'
-  fi
-
-  if timeout -k 10 $timeout crm_resource --wait; then
-      node_states=$(pcs status --full | grep "$service" | grep -v Clone)
-      if echo "$node_states" | grep -q "$match_for_incomplete"; then
-          echo "ERROR: cluster settled but $service was not in $state state, exiting." | tee /dev/fd/2
-          exit 1
-      else
-        echo "$service has $state"
-      fi
-  else
-      echo "ERROR: cluster remained unstable for more than $timeout seconds, exiting." | tee /dev/fd/2
-      exit 1
-  fi
-
-}
 
 # Run if pacemaker is running, we're the bootstrap node,
 # and we're updating the deployment (not creating).
index 7de41d9..fbed9ce 100644 (file)
@@ -33,7 +33,11 @@ resources:
     type: OS::Heat::SoftwareConfig
     properties:
       group: script
-      config: {get_file: pacemaker_resource_restart.sh}
+      config:
+        list_join:
+        - ''
+        - - get_file: pacemaker_common_functions.sh
+          - get_file: pacemaker_resource_restart.sh
 
   ControllerPostPuppetRestartDeployment:
     type: OS::Heat::SoftwareDeployments