Merge "Split pacemaker common check_service function out of _restart.sh"
This commit is contained in:
39
extraconfig/tasks/pacemaker_common_functions.sh
Executable file
39
extraconfig/tasks/pacemaker_common_functions.sh
Executable file
@@ -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
|
||||||
|
}
|
@@ -3,39 +3,6 @@
|
|||||||
set -eux
|
set -eux
|
||||||
|
|
||||||
pacemaker_status=$(systemctl is-active pacemaker)
|
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,
|
# Run if pacemaker is running, we're the bootstrap node,
|
||||||
# and we're updating the deployment (not creating).
|
# and we're updating the deployment (not creating).
|
||||||
|
@@ -33,7 +33,11 @@ resources:
|
|||||||
type: OS::Heat::SoftwareConfig
|
type: OS::Heat::SoftwareConfig
|
||||||
properties:
|
properties:
|
||||||
group: script
|
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:
|
ControllerPostPuppetRestartDeployment:
|
||||||
type: OS::Heat::SoftwareDeployments
|
type: OS::Heat::SoftwareDeployments
|
||||||
|
Reference in New Issue
Block a user