Merge "Document IPv6 syntax for GlanceFilePcmkDevice"
[apex-tripleo-heat-templates.git] / extraconfig / tasks / major_upgrade_pacemaker_migrations.sh
index 7fd2694..b63198d 100644 (file)
 # The migration functions should be idempotent. If the migration has
 # been already applied, it should be possible to call the function
 # again without damaging the deployment or failing the upgrade.
+
+function add_missing_openstack_core_constraints {
+    # The CIBs are saved under /root as they might contain sensitive data
+    CIB="/root/migration.cib"
+    CIB_BACKUP="/root/backup.cib"
+    CIB_PUSH_NEEDED=n
+
+    rm -f "$CIB" "$CIB_BACKUP" || /bin/true
+    pcs cluster cib "$CIB"
+    cp "$CIB" "$CIB_BACKUP"
+
+    if ! pcs -f "$CIB" constraint --full | grep 'start openstack-sahara-api-clone then start openstack-sahara-engine-clone'; then
+        pcs -f "$CIB" constraint order start openstack-sahara-api-clone then start openstack-sahara-engine-clone
+        CIB_PUSH_NEEDED=y
+    fi
+
+    if ! pcs -f "$CIB" constraint --full | grep 'start openstack-core-clone then start openstack-ceilometer-notification-clone'; then
+        pcs -f "$CIB" constraint order start openstack-core-clone then start openstack-ceilometer-notification-clone
+        CIB_PUSH_NEEDED=y
+    fi
+
+    if ! pcs -f "$CIB" constraint --full | grep 'start openstack-aodh-evaluator-clone then start openstack-aodh-listener-clone'; then
+        pcs -f "$CIB" constraint order start openstack-aodh-evaluator-clone then start openstack-aodh-listener-clone
+        CIB_PUSH_NEEDED=y
+    fi
+
+    if pcs -f "$CIB" constraint --full | grep 'start openstack-core-clone then start openstack-heat-api-clone'; then
+        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')
+        pcs -f "$CIB" constraint remove $CID
+        CIB_PUSH_NEEDED=y
+    fi
+
+    if [ "$CIB_PUSH_NEEDED" = 'y' ]; then
+        pcs cluster cib-push "$CIB"
+    fi
+}
+
+function remove_ceilometer_alarm {
+    if pcs status | grep openstack-ceilometer-alarm; then
+        # Disable pacemaker resources for ceilometer-alarms
+        pcs resource disable openstack-ceilometer-alarm-evaluator
+        check_resource openstack-ceilometer-alarm-evaluator stopped 600
+        pcs resource delete openstack-ceilometer-alarm-evaluator
+        pcs resource disable openstack-ceilometer-alarm-notifier
+        check_resource openstack-ceilometer-alarm-notifier stopped 600
+        pcs resource delete openstack-ceilometer-alarm-notifier
+
+        # remove constraints
+        pcs constraint remove ceilometer-delay-then-ceilometer-alarm-evaluator-constraint
+        pcs constraint remove ceilometer-alarm-evaluator-with-ceilometer-delay-colocation
+        pcs constraint remove ceilometer-alarm-evaluator-then-ceilometer-alarm-notifier-constraint
+        pcs constraint remove ceilometer-alarm-notifier-with-ceilometer-alarm-evaluator-colocation
+        pcs constraint remove ceilometer-alarm-notifier-then-ceilometer-notification-constraint
+        pcs constraint remove ceilometer-notification-with-ceilometer-alarm-notifier-colocation
+
+    fi
+
+    # uninstall openstack-ceilometer-alarm package
+    yum -y remove openstack-ceilometer-alarm
+
+}