Merge "Update .sh references from openstack-keystone to openstack-core"
[apex-tripleo-heat-templates.git] / extraconfig / tasks / major_upgrade_pacemaker_migrations.sh
1 #!/bin/bash
2
3 # Special pieces of upgrade migration logic go into this
4 # file. E.g. Pacemaker cluster transitions for existing deployments,
5 # matching changes to overcloud_controller_pacemaker.pp (Puppet
6 # handles deployment, this file handles migrations).
7 #
8 # This file shouldn't execute any action on its own, all logic should
9 # be wrapped into bash functions. Upgrade scripts will source this
10 # file and call the functions defined in this file where appropriate.
11 #
12 # The migration functions should be idempotent. If the migration has
13 # been already applied, it should be possible to call the function
14 # again without damaging the deployment or failing the upgrade.
15
16 function add_missing_openstack_core_constraints {
17     # The CIBs are saved under /root as they might contain sensitive data
18     CIB="/root/migration.cib"
19     CIB_BACKUP="/root/backup.cib"
20     CIB_PUSH_NEEDED=n
21
22     rm -f "$CIB" "$CIB_BACKUP" || /bin/true
23     pcs cluster cib "$CIB"
24     cp "$CIB" "$CIB_BACKUP"
25
26     if ! pcs -f "$CIB" constraint --full | grep 'start openstack-sahara-api-clone then start openstack-sahara-engine-clone'; then
27         pcs -f "$CIB" constraint order start openstack-sahara-api-clone then start openstack-sahara-engine-clone
28         CIB_PUSH_NEEDED=y
29     fi
30
31     if ! pcs -f "$CIB" constraint --full | grep 'start openstack-core-clone then start openstack-ceilometer-notification-clone'; then
32         pcs -f "$CIB" constraint order start openstack-core-clone then start openstack-ceilometer-notification-clone
33         CIB_PUSH_NEEDED=y
34     fi
35
36     if ! pcs -f "$CIB" constraint --full | grep 'start openstack-aodh-evaluator-clone then start openstack-aodh-listener-clone'; then
37         pcs -f "$CIB" constraint order start openstack-aodh-evaluator-clone then start openstack-aodh-listener-clone
38         CIB_PUSH_NEEDED=y
39     fi
40
41     if pcs -f "$CIB" constraint --full | grep 'start openstack-core-clone then start openstack-heat-api-clone'; then
42         CID=$(pcs -f "$CIB" constraint --full | grep 'start openstack-core-clone then start openstack-heat-api-clone' | sed -e 's/.*id\://g' -e 's/)//g')
43         pcs -f "$CIB" constraint remove $CID
44         CIB_PUSH_NEEDED=y
45     fi
46
47     if [ "$CIB_PUSH_NEEDED" = 'y' ]; then
48         pcs cluster cib-push "$CIB"
49     fi
50 }
51
52 function remove_ceilometer_alarm {
53     if pcs status | grep openstack-ceilometer-alarm; then
54         # Disable pacemaker resources for ceilometer-alarms
55         pcs resource disable openstack-ceilometer-alarm-evaluator
56         check_resource openstack-ceilometer-alarm-evaluator stopped 600
57         pcs resource delete openstack-ceilometer-alarm-evaluator
58         pcs resource disable openstack-ceilometer-alarm-notifier
59         check_resource openstack-ceilometer-alarm-notifier stopped 600
60         pcs resource delete openstack-ceilometer-alarm-notifier
61
62         # remove constraints
63         pcs constraint remove ceilometer-delay-then-ceilometer-alarm-evaluator-constraint
64         pcs constraint remove ceilometer-alarm-evaluator-with-ceilometer-delay-colocation
65         pcs constraint remove ceilometer-alarm-evaluator-then-ceilometer-alarm-notifier-constraint
66         pcs constraint remove ceilometer-alarm-notifier-with-ceilometer-alarm-evaluator-colocation
67         pcs constraint remove ceilometer-alarm-notifier-then-ceilometer-notification-constraint
68         pcs constraint remove ceilometer-notification-with-ceilometer-alarm-notifier-colocation
69
70     fi
71
72     # uninstall openstack-ceilometer-alarm package
73     yum -y remove openstack-ceilometer-alarm
74
75 }