Upgrade/Rollback ECMap STCs

Change-Id: I6578b7e3fcb8b1e58537002345964e2bba411744
diff --git a/tools/test/scenarios/upgrade-rollback.xml b/tools/test/scenarios/upgrade-rollback.xml
index 4e58829..05841bb 100644
--- a/tools/test/scenarios/upgrade-rollback.xml
+++ b/tools/test/scenarios/upgrade-rollback.xml
@@ -14,11 +14,18 @@
   ~ limitations under the License.
   -->
 <scenario name="upgrade-rollback" description="ONOS cluster upgrade and rollback">
-    <group name="Upgrade-Rollback">
+    <import file="${ONOS_SCENARIOS}/dist-setup.xml"/>
+    <dependency name="Distributed-Primitives-Setup"/>
+
+    <group name="Upgrade-Rollback" requires="Distributed-Primitives-Setup">
         <step name="Push-Bits" exec="onos-push-bits-through-proxy" if="${OCT}"/>
 
+        <step name="Initialize-ECM"
+              exec="onos ${OC1} ec-map-test foo put a b"/>
+
         <step name="Initialize-Upgrade"
-              exec="onos ${OC1} issu init"/>
+              exec="onos ${OC1} issu init"
+              requires="Initialize-ECM"/>
 
         <group name="Phase-1">
             <sequential var="${OCMI#}"
@@ -52,12 +59,40 @@
                 <step name="Phase-One-Wait-for-Start-${#}"
                       exec="onos-wait-for-start ${OCMI#}"
                       requires="Phase-One-Secure-SSH-${#}"/>
+
+                <step name="Phase-One-Distributed-Primitives-Check-Apps-${#}"
+                      exec="onos-check-apps ${OCMI#} distributedprimitives includes"
+                      requires="Phase-One-Wait-for-Start-${#}"/>
+
+                <step name="Phase-One-Check-ECM-${#}"
+                      exec="onos-execute-expect ${OCMI#} ec-map-test foo get a --expect b"
+                      requires="Phase-One-Distributed-Primitives-Check-Apps-${#}"/>
             </sequential>
         </group>
 
+        <group name="Change-ECM-values" requires="Phase-1">
+            <step name="Change-Majority-ECM"
+                  exec="onos ${OCMA1} ec-map-test foo put a d"/>
+
+            <step name="Change-Minority-ECM"
+                  exec="onos ${OCMI1} ec-map-test foo put a c"/>
+        </group>
+
+        <group name="Check-ECM-values" requires="Change-ECM-values">
+            <parallel var="${OCMI#}">
+                <step name="Parallel-Check-Minority-ECM-${#}"
+                      exec="onos-execute-expect ${OCMI#} ec-map-test foo get a --expect c"/>
+            </parallel>
+
+            <parallel var="${OCMA#}">
+                <step name="Parallel-Check-Majority-ECM-${#}"
+                      exec="onos-execute-expect ${OCMA#} ec-map-test foo get a --expect d"/>
+            </parallel>
+        </group>
+
         <step name="Run-Upgrade"
               exec="onos ${OC1} issu upgrade"
-              requires="Phase-1"/>
+              requires="Check-ECM-values"/>
 
         <step name="Run-Rollback"
               exec="onos ${OC1} issu rollback"
@@ -95,6 +130,14 @@
                 <step name="Phase-Two-Wait-for-Start-${#}"
                       exec="onos-wait-for-start ${OCMI#}"
                       requires="Phase-Two-Secure-SSH-${#}"/>
+
+                <step name="Phase-Two-Distributed-Primitives-Check-Apps-${#}"
+                      exec="onos-check-apps ${OCMA#} distributedprimitives includes"
+                      requires="Phase-Two-Wait-for-Start-${#}"/>
+
+                <step name="Phase-Two-Check-ECM-${#}"
+                      exec="onos-execute-expect ${OC#} ec-map-test foo get a --expect d"
+                      requires="Phase-Two-Distributed-Primitives-Check-Apps-${#}"/>
             </sequential>
         </group>
 
@@ -107,7 +150,8 @@
                 <step name="Check-Nodes-${#}"
                       exec="onos-check-nodes ${OC#}"
                       delay="3"
-                      requires="Reset-Upgrade"/>
+                      requires="Verify-EC-Map-${#}"/>
+
                 <step name="Check-Components-${#}"
                       exec="onos-check-components ${OC#}"
                       delay="5"
@@ -116,10 +160,11 @@
                 <step name="Check-Logs-${#}"
                       exec="onos-check-logs ${OC#}"
                       requires="~Check-Components-${#}"/>
+
                 <step name="Check-Apps-${#}"
-                      exec="onos-check-apps ${OC#} ${ONOS_APPS} includes"
+                      exec="onos-check-apps ${OC#} ${ONOS_APPS},distributedprimitives includes"
                       requires="~Check-Components-${#}"/>
             </parallel>
         </group>
     </group>
-</scenario>
\ No newline at end of file
+</scenario>
diff --git a/tools/test/scenarios/upgrade.xml b/tools/test/scenarios/upgrade.xml
index e675632..16fc627 100644
--- a/tools/test/scenarios/upgrade.xml
+++ b/tools/test/scenarios/upgrade.xml
@@ -14,11 +14,18 @@
   ~ limitations under the License.
   -->
 <scenario name="upgrade" description="ONOS cluster upgrade">
-    <group name="Upgrade">
+    <import file="${ONOS_SCENARIOS}/dist-setup.xml"/>
+    <dependency name="Distributed-Primitives-Setup"/>
+
+    <group name="Upgrade" requires="Distributed-Primitives-Setup">
         <step name="Push-Bits" exec="onos-push-bits-through-proxy" if="${OCT}"/>
 
+        <step name="Initialize-ECM"
+              exec="onos ${OC1} ec-map-test foo put a b"/>
+
         <step name="Initialize-Upgrade"
-              exec="onos ${OC1} issu init"/>
+              exec="onos ${OC1} issu init"
+              requires="Initialize-ECM"/>
 
         <group name="Phase-1">
             <sequential var="${OCMI#}"
@@ -52,12 +59,40 @@
                 <step name="Phase-One-Wait-for-Start-${#}"
                       exec="onos-wait-for-start ${OCMI#}"
                       requires="Phase-One-Secure-SSH-${#}"/>
+
+                <step name="Phase-One-Distributed-Primitives-Check-Apps-${#}"
+                      exec="onos-check-apps ${OCMI#} distributedprimitives includes"
+                      requires="Phase-One-Wait-for-Start-${#}"/>
+
+                <step name="Phase-One-Check-ECM-${#}"
+                      exec="onos-execute-expect ${OCMI#} ec-map-test foo get a --expect b"
+                      requires="Phase-One-Distributed-Primitives-Check-Apps-${#}"/>
             </sequential>
         </group>
 
+        <group name="Change-ECM-values" requires="Phase-1">
+            <step name="Change-Majority-ECM"
+                  exec="onos ${OCMA1} ec-map-test foo put a d"/>
+
+            <step name="Change-Minority-ECM"
+                  exec="onos ${OCMI1} ec-map-test foo put a c"/>
+        </group>
+
+        <group name="Check-ECM-values" requires="Change-ECM-values">
+            <parallel var="${OCMI#}">
+                <step name="Parallel-Check-Minority-ECM-${#}"
+                      exec="onos-execute-expect ${OCMI#} ec-map-test foo get a --expect c"/>
+            </parallel>
+
+            <parallel var="${OCMA#}">
+                <step name="Parallel-Check-Majority-ECM-${#}"
+                      exec="onos-execute-expect ${OCMA#} ec-map-test foo get a --expect d"/>
+            </parallel>
+        </group>
+
         <step name="Run-Upgrade"
               exec="onos ${OC1} issu upgrade"
-              requires="Phase-1"/>
+              requires="Check-ECM-values"/>
 
         <group name="Phase-2" requires="Run-Upgrade">
             <sequential var="${OCMA#}"
@@ -91,6 +126,14 @@
                 <step name="Phase-Two-Wait-for-Start-${#}"
                       exec="onos-wait-for-start ${OCMA#}"
                       requires="Phase-Two-Secure-SSH-${#}"/>
+
+                <step name="Phase-Two-Distributed-Primitives-Check-Apps-${#}"
+                      exec="onos-check-apps ${OCMA#} distributedprimitives includes"
+                      requires="Phase-Two-Wait-for-Start-${#}"/>
+
+                <step name="Phase-Two-Check-ECM-${#}"
+                      exec="onos-execute-expect ${OC#} ec-map-test foo get a --expect c"
+                      requires="Phase-Two-Distributed-Primitives-Check-Apps-${#}"/>
             </sequential>
         </group>
 
@@ -102,8 +145,8 @@
             <parallel var="${OC#}">
                 <step name="Check-Nodes-${#}"
                       exec="onos-check-nodes ${OC#}"
-                      delay="3"
-                      requires="Commit-Upgrade"/>
+                      delay="3"/>
+
                 <step name="Check-Components-${#}"
                       exec="onos-check-components ${OC#}"
                       delay="5"
@@ -112,10 +155,11 @@
                 <step name="Check-Logs-${#}"
                       exec="onos-check-logs ${OC#}"
                       requires="~Check-Components-${#}"/>
+
                 <step name="Check-Apps-${#}"
-                      exec="onos-check-apps ${OC#} ${ONOS_APPS} includes"
+                      exec="onos-check-apps ${OC#} ${ONOS_APPS},distributedprimitives includes"
                       requires="~Check-Components-${#}"/>
             </parallel>
         </group>
     </group>
-</scenario>
\ No newline at end of file
+</scenario>