Merge "Add common wrapper for CC-templates and reclass-system"
diff --git a/openstack-control-upgrade.groovy b/openstack-control-upgrade.groovy
index 2f4b2a6..f2dd78c 100644
--- a/openstack-control-upgrade.groovy
+++ b/openstack-control-upgrade.groovy
@@ -49,6 +49,21 @@
  * Stop OpenStack python services''',
     'State result': 'OpenStack python services are stopped',
   ])
+upgradeStageMap.put('Upgrade OS',
+  [
+    'Description': 'Optional step. OS packages will be upgraded during this phase, depending on the job parameters dist-upgrade might be called. And reboot of node executed.',
+    'Status': 'NOT_LAUNCHED',
+    'Expected behaviors': '''
+ * OpenStack services might flap
+ * No workload downtime
+ * The nodes might be rebooted''',
+    'Launched actions': '''
+ * Install new version of system packages
+ * If doing dist-upgrade new kernel might be installed and node rebooted
+ * System packages are updated
+ * Node might be rebooted
+'''
+  ])
 upgradeStageMap.put('Upgrade OpenStack',
    [
     'Description': 'OpenStack python code will be upgraded during this stage. No workload downtime is expected.',
@@ -70,27 +85,6 @@
  * Verified that agents/services on data plane nodes are connected to new control plane
 '''
   ])
-upgradeStageMap.put('Upgrade OS',
-  [
-    'Description': 'Optional step. OS packages will be upgraded during this phase, depending on the job parameters dist-upgrade might be called. And reboot of node executed.',
-    'Status': 'NOT_LAUNCHED',
-    'Expected behaviors': '''
- * OpenStack services might flap
- * No workload downtime
- * The nodes might be rebooted''',
-    'Launched actions': '''
- * Install new version of system packages
- * If doing dist-upgrade new kernel might be installed and node rebooted
- * Verify agents are alive/connected
- * Run basic API validation''',
-    'State result': '''
- * System packages are updated
- * Services are running
- * Basic checks around services API are passed
- * Verified that agents/services on data plane nodes are connected
- * Node might be rebooted
-'''
-  ])
 
 def stopOpenStackServices(env, target) {
     def salt = new com.mirantis.mk.Salt()
@@ -170,12 +164,6 @@
     }
 
     for (target in upgradeTargets) {
-      common.stageWrapper(upgradeStageMap, "Upgrade OpenStack", target, interactive) {
-        openstack.runOpenStackUpgradePhase(env, target, 'upgrade')
-        openstack.applyOpenstackAppsStates(env, target)
-        openstack.runOpenStackUpgradePhase(env, target, 'verify')
-      }
-
       common.stageWrapper(upgradeStageMap, "Upgrade OS", target, interactive) {
         if (OS_DIST_UPGRADE.toBoolean() == true){
           upgrade_mode = 'dist-upgrade'
@@ -184,10 +172,14 @@
         }
         if (OS_DIST_UPGRADE.toBoolean() == true || OS_UPGRADE.toBoolean() == true) {
           debian.osUpgradeNode(env, target, upgrade_mode, false)
-          openstack.applyOpenstackAppsStates(env, target)
-          openstack.runOpenStackUpgradePhase(env, target, 'verify')
         }
       }
+
+      common.stageWrapper(upgradeStageMap, "Upgrade OpenStack", target, interactive) {
+        openstack.runOpenStackUpgradePhase(env, target, 'upgrade')
+        openstack.applyOpenstackAppsStates(env, target)
+        openstack.runOpenStackUpgradePhase(env, target, 'verify')
+      }
     }
   }
 }
diff --git a/openstack-data-upgrade.groovy b/openstack-data-upgrade.groovy
index 88bbf57..7458a27 100644
--- a/openstack-data-upgrade.groovy
+++ b/openstack-data-upgrade.groovy
@@ -50,6 +50,21 @@
  * Hosts are being removed from scheduling to host new resources.
  * If instance migration was performed no instances should be present.'''
   ])
+upgradeStageMap.put('Upgrade OS',
+  [
+    'Description': 'Optional step. OS packages will be upgraded during this phase, depending on the job parameters dist-upgrade might be called. And reboot of node executed.',
+    'Status': 'NOT_LAUNCHED',
+    'Expected behaviors': '''
+ * OpenStack services might flap
+ * No workload downtime
+ * The nodes might be rebooted''',
+    'Launched actions': '''
+ * Install new version of system packages
+ * If doing dist-upgrade new kernel might be installed and node rebooted
+ * System packages are updated
+ * Node might be rebooted
+'''
+  ])
 upgradeStageMap.put('Upgrade OpenStack',
    [
     'Description': 'OpenStack python code will be upgraded during this stage. No workload downtime is expected.',
@@ -71,27 +86,6 @@
  * Verified that agents/services on data plane nodes are connected to new control plane
 '''
   ])
-upgradeStageMap.put('Upgrade OS',
-  [
-    'Description': 'Optional step. OS packages will be upgraded during this phase, depending on the job parameters dist-upgrade might be called. And reboot of node executed.',
-    'Status': 'NOT_LAUNCHED',
-    'Expected behaviors': '''
- * OpenStack services might flap
- * No workload downtime
- * The nodes might be rebooted''',
-    'Launched actions': '''
- * Install new version of system packages
- * If doing dist-upgrade new kernel might be installed and node rebooted
- * Verify agents are alive/connected
- * Run basic API validation''',
-    'State result': '''
- * System packages are updated
- * Services are running
- * Basic checks around services API are passed
- * Verified that agents/services on data plane nodes are connected
- * Node might be rebooted
-'''
-  ])
 upgradeStageMap.put('Upgrade post: enable resources',
   [
     'Description': 'Verify that agents/services on node are up, add them back to scheduling.',
@@ -155,15 +149,6 @@
         }
       }
 
-      common.stageWrapper(upgradeStageMap, "Upgrade OpenStack", target, interactive) {
-        // Stop services on node. //Do actual step by step orch here.
-        openstack.runOpenStackUpgradePhase(env, target, 'service_stopped')
-        openstack.runOpenStackUpgradePhase(env, target, 'pkgs_latest')
-        openstack.runOpenStackUpgradePhase(env, target, 'render_config')
-        openstack.runOpenStackUpgradePhase(env, target, 'service_running')
-        openstack.applyOpenstackAppsStates(env, target)
-        openstack.runOpenStackUpgradePhase(env, target, 'verify')
-      }
       common.stageWrapper(upgradeStageMap, "Upgrade OS", target, interactive) {
         if (OS_DIST_UPGRADE.toBoolean() == true){
           upgrade_mode = 'dist-upgrade'
@@ -173,6 +158,14 @@
         if (OS_DIST_UPGRADE.toBoolean() == true || OS_UPGRADE.toBoolean() == true) {
           debian.osUpgradeNode(env, target, upgrade_mode, false)
         }
+      }
+
+      common.stageWrapper(upgradeStageMap, "Upgrade OpenStack", target, interactive) {
+        // Stop services on node. //Do actual step by step orch here.
+        openstack.runOpenStackUpgradePhase(env, target, 'service_stopped')
+        openstack.runOpenStackUpgradePhase(env, target, 'pkgs_latest')
+        openstack.runOpenStackUpgradePhase(env, target, 'render_config')
+        openstack.runOpenStackUpgradePhase(env, target, 'service_running')
         openstack.applyOpenstackAppsStates(env, target)
         openstack.runOpenStackUpgradePhase(env, target, 'verify')
       }