Skip to content

Commit b81b42b

Browse files
authored
Merge pull request #716 from jsuchome/delete-pacemaker-resources
Script for deleting pacemaker resources
2 parents 8c55ebe + 862bb98 commit b81b42b

File tree

3 files changed

+86
-3
lines changed

3 files changed

+86
-3
lines changed

chef/cookbooks/crowbar/recipes/prepare-upgrade-scripts.rb

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757

5858
template "/usr/sbin/crowbar-upgrade-os.sh" do
5959
source "crowbar-upgrade-os.erb"
60-
mode "0770"
60+
mode "0755"
6161
owner "root"
6262
group "root"
6363
action :create
@@ -80,7 +80,7 @@
8080

8181
template "/usr/sbin/crowbar-shutdown-services-before-upgrade.sh" do
8282
source "crowbar-shutdown-services-before-upgrade.sh.erb"
83-
mode "0770"
83+
mode "0755"
8484
owner "root"
8585
group "root"
8686
action :create
@@ -106,7 +106,7 @@
106106

107107
template "/usr/sbin/crowbar-pre-upgrade.sh" do
108108
source "crowbar-pre-upgrade.sh.erb"
109-
mode "0770"
109+
mode "0755"
110110
owner "root"
111111
group "root"
112112
action :create
@@ -115,3 +115,14 @@
115115
os_auth_url_v2: os_auth_url_v2
116116
)
117117
end
118+
119+
template "/usr/sbin/crowbar-delete-pacemaker-resources.sh" do
120+
source "crowbar-delete-pacemaker-resources.sh.erb"
121+
mode "0755"
122+
owner "root"
123+
group "root"
124+
action :create
125+
variables(
126+
use_ha: use_ha
127+
)
128+
end
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
#!/bin/bash
2+
#
3+
# Old pacemaker resources must be deleted in the old setup before they get created from upgraded node
4+
5+
LOGFILE=/var/log/crowbar/node-upgrade.log
6+
UPGRADEDIR=/var/lib/crowbar/upgrade
7+
mkdir -p "`dirname "$LOGFILE"`"
8+
exec >>"$LOGFILE" 2>&1
9+
10+
echo "Executing $BASH_SOURCE"
11+
12+
set -x
13+
14+
mkdir -p $UPGRADEDIR
15+
16+
if [[ -f $UPGRADEDIR/crowbar-delete-pacemaker-resources-ok ]] ; then
17+
echo "Pacemaker resources already successfully deleted"
18+
exit 0
19+
fi
20+
21+
rm -f $UPGRADEDIR/crowbar-delete-pacemaker-resources-failed
22+
23+
<% if @use_ha %>
24+
25+
echo "Stopping pacemaker resources..."
26+
27+
# Services need to be stopped before deletion.
28+
# Otherwise we could have services starting up in unwanted locations while deleting constraints.
29+
30+
for type in clone group ms primitive; do
31+
for resource in $(crm configure show | awk "\$1 == \"$type\" && ! (\$2 ~ /drbd|stonith|vip-/) {print \$2}"); do
32+
crm --wait resource stop $resource
33+
done
34+
done
35+
36+
ret=$?
37+
if [ $ret != 0 ] ; then
38+
echo "Error occured during stopping resources."
39+
echo $ret > $UPGRADEDIR/crowbar-delete-pacemaker-resources-failed
40+
exit $ret
41+
fi
42+
43+
echo "Deleting pacemaker resources..."
44+
45+
crm_cmd=""
46+
for type in location clone group ms primitive; do
47+
for resource in $(crm configure show | awk "\$1 == \"$type\" && ! (\$2 ~ /drbd|stonith|vip-/) {print \$2}"); do
48+
printf -v crm_cmd "${crm_cmd}delete $resource\n"
49+
done
50+
done
51+
52+
# Delete the resources in single transaction - let pacemaker decide the ordering
53+
crm configure <<EOF
54+
$crm_cmd
55+
EOF
56+
57+
ret=$?
58+
if [ $ret != 0 ] ; then
59+
echo "Error occured during deleting resources"
60+
echo $ret > $UPGRADEDIR/crowbar-delete-pacemaker-resources-failed
61+
exit $ret
62+
fi
63+
64+
<% else %>
65+
66+
echo "No HA setup found..."
67+
68+
<% end %>
69+
70+
touch $UPGRADEDIR/crowbar-delete-pacemaker-resources-ok

chef/cookbooks/crowbar/templates/default/crowbar-pre-upgrade.sh.erb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ fi
2121
echo "Evacuating l3 agents out of this node..."
2222

2323
if [[ -f /usr/bin/neutron-ha-tool ]] ; then
24+
set +x
2425
source /root/.openrc
26+
set -x
2527
OS_AUTH_URL="<%= @os_auth_url_v2 %>" neutron-ha-tool --l3-agent-evacuate $(hostname)
2628
fi
2729

0 commit comments

Comments
 (0)