Add force restart of designate-central before verify step

Because of current version of designate package doesn't support
LoopingCall from Oslo.Service for designate-central service, we can
met the issue https://bugs.launchpad.net/designate/+bug/1915756

This change adds workaround for it by force restarting designate-central
before it verifying

Related-PROD: PROD-33592
Change-Id: I57ad66820ce3001d0fe9dfd8dfb512683d4e6c1e
diff --git a/openstack-control-upgrade.groovy b/openstack-control-upgrade.groovy
index 14f4c06..4987d79 100644
--- a/openstack-control-upgrade.groovy
+++ b/openstack-control-upgrade.groovy
@@ -187,6 +187,21 @@
       common.stageWrapper(upgradeStageMap, "Upgrade OpenStack", target, interactive) {
         openstack.runOpenStackUpgradePhase(env, target, 'upgrade')
         openstack.applyOpenstackAppsStates(env, target)
+
+        // Workaround for PROD-33592, restart designate-central services if enabled
+        designate_enabled = salt.getPillar(env, 'I@designate:server', "designate:server:enabled").get("return")[0].values()[0]
+        if (designate_enabled == '' || designate_enabled == 'false' || designate_enabled == null) {
+          common.infoMsg('Designate is disabled, nothing to do')
+        } else {
+          try {
+            salt.runSaltProcessStep(env, "I@designate:server", "service.restart", "designate-central", null, true)
+          }
+          catch (Exception ex) {
+            common.infoMsg(ex)
+            error('Designate service is broken, please check logs')
+          }
+        }
+
         openstack.runOpenStackUpgradePhase(env, target, 'verify')
       }
     }