STC scenario to start/stop all apps in a minimal environment

Change-Id: I7364e0c348dcea9964124843f2cff2de9dcaafb3
diff --git a/tools/test/bin/onos-activate-all-scenario-default-app-list b/tools/test/bin/onos-activate-all-scenario-default-app-list
new file mode 100644
index 0000000..217f780
--- /dev/null
+++ b/tools/test/bin/onos-activate-all-scenario-default-app-list
@@ -0,0 +1,181 @@
+cpr
+mappingmanagement
+yang
+yang-gui
+config
+restconf
+protocols.restconfserver
+faultmanagement
+netconf
+netconfsb
+models.common
+models.l3vpn
+tunnel
+bgpcep
+l3vpn
+models.huawei
+drivers.huawei
+models.microsemi
+drivers.netconf
+netcfglinksprovider
+openflow-message
+cpman
+protocols.grpc
+protocols.p4runtime
+hostprovider
+ovsdb-base
+drivers.ovsdb
+openstacknode
+openstacknetworking
+models.ietf
+kafka-integration
+inbandtelemetry
+configsync
+models.tapi
+models.openconfig
+models.openconfig-infinera
+models.openconfig-odtn
+odtn-api
+restsb
+optical-model
+drivers.optical
+drivers.odtn-driver
+configsync-netconf
+# crashes in Atomix
+#odtn-service
+vtn
+loadtest
+protocols.gnmi
+generaldeviceprovider
+p4runtime
+drivers.p4runtime
+pipelines.basic
+pipelines.fabric
+events
+intentsynchronizer
+route-service
+fpm
+dhcprelay
+metrics
+fwd
+proxyarp
+models.polatis
+drivers.polatis.netconf
+lldpprovider
+openflow-base
+openflow
+drivers.corsa
+network-troubleshoot
+drivers.mellanox
+drivermatrix
+messaging-perf
+hostprobingprovider
+pcep-api
+distributedprimitives
+openstackvtap
+virtual
+models.openroadm
+openroadm
+tetopology
+tetunnel
+ovsdbhostprovider
+ovsdb
+drivers.barefoot
+influxdbmetrics
+evpn-route-service
+gluon
+evpnopenflow
+drivers.juniper
+pathpainter
+simplefabric
+flowanalyzer
+null
+# throws rejected execution exception
+#transaction-perf
+drivers.server
+drivers.gnmi
+drivers.stratum
+workflow
+fibinstaller
+vrouter
+sdnip
+artemis
+flow-perf
+# app crashes on startup
+#lisp
+#drivers.lisp
+rabbitmq
+snmp
+newoptical
+linkdiscovery
+drivers.arista
+pim
+routescale
+mcast
+segmentrouting
+# crashes during shutdown
+#bgprouter
+protocols.xmpp
+openstacktelemetry
+# crashes during shutdown
+#castor
+drivers.ciena.c5162
+netcfg-monitor
+xmpp.device
+flowspec-api
+routeradvertisement
+packet-stats
+mlb
+drivers.flowspec
+pcep
+ofagent
+demo
+t3
+virtualbng
+gangliametrics
+drivers.ciena.c5170
+drivers.oplink
+# missing dependency on startup
+# isis
+drivers.hp
+drivers.cisco.rest
+roadm
+drivers.bmv2
+vpls
+p4tutorial.pipeconf
+p4tutorial.mytunnel
+openstacktroubleshoot
+models.ciena.waveserverai
+drivers.ciena.waveserverai
+drivers.fujitsu
+drivers.polatis.openflow
+layout
+# missing a dependency
+#graphitemetrics
+powermanagement
+optical-rest
+tl1
+drivers.lumentum
+acl
+cord-support
+intentperf
+mfwd
+drivers.ciena.waveserver
+imr
+dhcp
+drivers.cisco.netconf
+openstacknetworkingui
+cfm
+scalablegateway
+cluster-ha
+drivers.microsemi.ea1000
+reactive-routing
+nodemetrics
+mobility
+bgp
+linkprops
+cip
+election
+primitiveperf
+protocols.xmpp.pubsub
+netcfghostprovider
\ No newline at end of file
diff --git a/tools/test/bin/onos-generate-activate-all-scenario b/tools/test/bin/onos-generate-activate-all-scenario
new file mode 100755
index 0000000..c12400b
--- /dev/null
+++ b/tools/test/bin/onos-generate-activate-all-scenario
@@ -0,0 +1,92 @@
+#!/usr/bin/env python
+
+import sys, os
+
+SCENARIO_HEADER = '''
+<!--
+  ~ Copyright 2019-present Open Networking Foundation
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+  
+  <!--
+     This scenario is auto generated by onos-generate-activate-all-scenario. DO NOT EDIT
+  -->
+  <scenario name="app-activate-all" description="Tests that all apps can be activated by themselves">
+    <group name="App-Activate-All">
+       <step name="App-Activate-All.Minimal-Apps"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+'''
+
+SCENARIO_FOOTER = '''
+    </group>
+  </scenario>
+'''
+
+ACTIVATE_GROUP_TEMPLATE = '''
+        <group name="App-Activate-All.%(app_id)s" %(requires)s>
+           <step name="App-Activate-All.Activate-%(app_id)s"
+                 exec="onos ${OCI} app activate org.onosproject.%(app_id)s" %(requires)s/>
+           <group name="App-Activate-All.App-Check-%(app_id)s" requires="App-Activate-All.Activate-%(app_id)s">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-%(app_id)s"
+                       exec="onos-check-apps ${OC#} %(app_id)s includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-%(app_id)s" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-%(app_id)s"
+                 exec="onos ${OCI} app deactivate org.onosproject.%(app_id)s" requires="App-Activate-All.App-Check-%(app_id)s"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-%(app_id)s"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-%(app_id)s"/>      
+           <group name="App-Activate-All.App-Check-After-%(app_id)s" requires="App-Activate-All.Wait-For-Deactivate-%(app_id)s">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-%(app_id)s" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-%(app_id)s" requires="App-Activate-All.App-Deactivate-%(app_id)s"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+'''
+
+app_list = []
+app_list_file = ""
+
+if len(sys.argv) > 1:
+    app_list_file = sys.argv[1]
+else:
+    print "Usage: onos-generate-activate-all-scenario file-name-of-app-list"
+    sys.exit()
+
+with open(app_list_file) as apps:
+    for app in apps:
+        if not "#" in app:
+            normalized_app = app.strip(" \n")
+            if not normalized_app == "":
+                app_list.append(normalized_app)
+
+scenario = SCENARIO_HEADER + "\n"
+
+app_group_requires = 'requires="App-Activate-All.Minimal-Apps"'
+for app_id in app_list:
+    parameters = {
+        'requires': app_group_requires,
+        'app_id': app_id,
+    }
+    scenario = scenario + (ACTIVATE_GROUP_TEMPLATE % parameters)
+    app_group_requires = 'requires="App-Activate-All.' + app_id + '"'
+
+scenario = scenario + SCENARIO_FOOTER
+
+print scenario
+
diff --git a/tools/test/bin/onos-set-up-minimal-apps b/tools/test/bin/onos-set-up-minimal-apps
new file mode 100755
index 0000000..666c96c
--- /dev/null
+++ b/tools/test/bin/onos-set-up-minimal-apps
@@ -0,0 +1,44 @@
+#!/usr/bin/env python
+
+import subprocess, sys, json, os
+
+REQUIRED_APPS = ["org.onosproject.drivers"]
+
+
+def _main():
+    # Get the ONOS node address
+    onos_node = ""
+
+    if len(sys.argv) > 1:
+        onos_node = sys.argv[1]
+    else:
+        onos_node = os.environ["OCI"]
+
+    # Get a JSON representation of the apps that are currently running
+    current_apps_json = subprocess.check_output(["onos", onos_node, "onos:apps", "-a", "-s", "-j"])
+
+    # Determine which apps need to be deactivated
+    apps_to_deactivate = []
+    config = json.loads(current_apps_json)
+
+    for app_description in config:
+        apps_to_deactivate.append(app_description["name"])
+
+    # Deactivate all apps
+    if len(apps_to_deactivate) > 0:
+        deactivate_command = ["onos", onos_node, "onos:app", "deactivate"]
+        for app_to_deactivate in apps_to_deactivate:
+            deactivate_command.append(app_to_deactivate)
+        subprocess.check_output(deactivate_command)
+
+    # Activate apps that are part of the base set
+    if len(REQUIRED_APPS) > 0:
+        activate_command = ["onos", onos_node, "onos:app", "activate"]
+        for app_to_activate in REQUIRED_APPS:
+            activate_command.append(app_to_activate)
+        subprocess.check_output(activate_command)
+
+
+
+if __name__ == "__main__":
+    _main()
diff --git a/tools/test/scenarios/app-activate-all.xml b/tools/test/scenarios/app-activate-all.xml
new file mode 100644
index 0000000..191673c
--- /dev/null
+++ b/tools/test/scenarios/app-activate-all.xml
@@ -0,0 +1,4013 @@
+
+<!--
+  ~ Copyright 2019-present Open Networking Foundation
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+  
+  <!--
+     This scenario is auto generated by onos-generate-activate-all-scenario. DO NOT EDIT
+  -->
+  <scenario name="app-activate-all" description="Tests that all apps can be activated by themselves">
+    <group name="App-Activate-All">
+       <step name="App-Activate-All.Minimal-Apps"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+
+
+        <group name="App-Activate-All.cpr" requires="App-Activate-All.Minimal-Apps">
+           <step name="App-Activate-All.Activate-cpr"
+                 exec="onos ${OCI} app activate org.onosproject.cpr" requires="App-Activate-All.Minimal-Apps"/>
+           <group name="App-Activate-All.App-Check-cpr" requires="App-Activate-All.Activate-cpr">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-cpr"
+                       exec="onos-check-apps ${OC#} cpr includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-cpr" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-cpr"
+                 exec="onos ${OCI} app deactivate org.onosproject.cpr" requires="App-Activate-All.App-Check-cpr"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-cpr"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-cpr"/>      
+           <group name="App-Activate-All.App-Check-After-cpr" requires="App-Activate-All.Wait-For-Deactivate-cpr">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-cpr" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-cpr" requires="App-Activate-All.App-Deactivate-cpr"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.mappingmanagement" requires="App-Activate-All.cpr">
+           <step name="App-Activate-All.Activate-mappingmanagement"
+                 exec="onos ${OCI} app activate org.onosproject.mappingmanagement" requires="App-Activate-All.cpr"/>
+           <group name="App-Activate-All.App-Check-mappingmanagement" requires="App-Activate-All.Activate-mappingmanagement">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-mappingmanagement"
+                       exec="onos-check-apps ${OC#} mappingmanagement includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-mappingmanagement" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-mappingmanagement"
+                 exec="onos ${OCI} app deactivate org.onosproject.mappingmanagement" requires="App-Activate-All.App-Check-mappingmanagement"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-mappingmanagement"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-mappingmanagement"/>      
+           <group name="App-Activate-All.App-Check-After-mappingmanagement" requires="App-Activate-All.Wait-For-Deactivate-mappingmanagement">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-mappingmanagement" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-mappingmanagement" requires="App-Activate-All.App-Deactivate-mappingmanagement"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.yang" requires="App-Activate-All.mappingmanagement">
+           <step name="App-Activate-All.Activate-yang"
+                 exec="onos ${OCI} app activate org.onosproject.yang" requires="App-Activate-All.mappingmanagement"/>
+           <group name="App-Activate-All.App-Check-yang" requires="App-Activate-All.Activate-yang">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-yang"
+                       exec="onos-check-apps ${OC#} yang includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-yang" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-yang"
+                 exec="onos ${OCI} app deactivate org.onosproject.yang" requires="App-Activate-All.App-Check-yang"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-yang"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-yang"/>      
+           <group name="App-Activate-All.App-Check-After-yang" requires="App-Activate-All.Wait-For-Deactivate-yang">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-yang" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-yang" requires="App-Activate-All.App-Deactivate-yang"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.yang-gui" requires="App-Activate-All.yang">
+           <step name="App-Activate-All.Activate-yang-gui"
+                 exec="onos ${OCI} app activate org.onosproject.yang-gui" requires="App-Activate-All.yang"/>
+           <group name="App-Activate-All.App-Check-yang-gui" requires="App-Activate-All.Activate-yang-gui">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-yang-gui"
+                       exec="onos-check-apps ${OC#} yang-gui includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-yang-gui" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-yang-gui"
+                 exec="onos ${OCI} app deactivate org.onosproject.yang-gui" requires="App-Activate-All.App-Check-yang-gui"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-yang-gui"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-yang-gui"/>      
+           <group name="App-Activate-All.App-Check-After-yang-gui" requires="App-Activate-All.Wait-For-Deactivate-yang-gui">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-yang-gui" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-yang-gui" requires="App-Activate-All.App-Deactivate-yang-gui"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.config" requires="App-Activate-All.yang-gui">
+           <step name="App-Activate-All.Activate-config"
+                 exec="onos ${OCI} app activate org.onosproject.config" requires="App-Activate-All.yang-gui"/>
+           <group name="App-Activate-All.App-Check-config" requires="App-Activate-All.Activate-config">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-config"
+                       exec="onos-check-apps ${OC#} config includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-config" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-config"
+                 exec="onos ${OCI} app deactivate org.onosproject.config" requires="App-Activate-All.App-Check-config"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-config"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-config"/>      
+           <group name="App-Activate-All.App-Check-After-config" requires="App-Activate-All.Wait-For-Deactivate-config">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-config" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-config" requires="App-Activate-All.App-Deactivate-config"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.restconf" requires="App-Activate-All.config">
+           <step name="App-Activate-All.Activate-restconf"
+                 exec="onos ${OCI} app activate org.onosproject.restconf" requires="App-Activate-All.config"/>
+           <group name="App-Activate-All.App-Check-restconf" requires="App-Activate-All.Activate-restconf">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-restconf"
+                       exec="onos-check-apps ${OC#} restconf includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-restconf" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-restconf"
+                 exec="onos ${OCI} app deactivate org.onosproject.restconf" requires="App-Activate-All.App-Check-restconf"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-restconf"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-restconf"/>      
+           <group name="App-Activate-All.App-Check-After-restconf" requires="App-Activate-All.Wait-For-Deactivate-restconf">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-restconf" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-restconf" requires="App-Activate-All.App-Deactivate-restconf"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.protocols.restconfserver" requires="App-Activate-All.restconf">
+           <step name="App-Activate-All.Activate-protocols.restconfserver"
+                 exec="onos ${OCI} app activate org.onosproject.protocols.restconfserver" requires="App-Activate-All.restconf"/>
+           <group name="App-Activate-All.App-Check-protocols.restconfserver" requires="App-Activate-All.Activate-protocols.restconfserver">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-protocols.restconfserver"
+                       exec="onos-check-apps ${OC#} protocols.restconfserver includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-protocols.restconfserver" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-protocols.restconfserver"
+                 exec="onos ${OCI} app deactivate org.onosproject.protocols.restconfserver" requires="App-Activate-All.App-Check-protocols.restconfserver"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-protocols.restconfserver"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-protocols.restconfserver"/>      
+           <group name="App-Activate-All.App-Check-After-protocols.restconfserver" requires="App-Activate-All.Wait-For-Deactivate-protocols.restconfserver">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-protocols.restconfserver" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-protocols.restconfserver" requires="App-Activate-All.App-Deactivate-protocols.restconfserver"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.faultmanagement" requires="App-Activate-All.protocols.restconfserver">
+           <step name="App-Activate-All.Activate-faultmanagement"
+                 exec="onos ${OCI} app activate org.onosproject.faultmanagement" requires="App-Activate-All.protocols.restconfserver"/>
+           <group name="App-Activate-All.App-Check-faultmanagement" requires="App-Activate-All.Activate-faultmanagement">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-faultmanagement"
+                       exec="onos-check-apps ${OC#} faultmanagement includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-faultmanagement" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-faultmanagement"
+                 exec="onos ${OCI} app deactivate org.onosproject.faultmanagement" requires="App-Activate-All.App-Check-faultmanagement"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-faultmanagement"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-faultmanagement"/>      
+           <group name="App-Activate-All.App-Check-After-faultmanagement" requires="App-Activate-All.Wait-For-Deactivate-faultmanagement">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-faultmanagement" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-faultmanagement" requires="App-Activate-All.App-Deactivate-faultmanagement"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.netconf" requires="App-Activate-All.faultmanagement">
+           <step name="App-Activate-All.Activate-netconf"
+                 exec="onos ${OCI} app activate org.onosproject.netconf" requires="App-Activate-All.faultmanagement"/>
+           <group name="App-Activate-All.App-Check-netconf" requires="App-Activate-All.Activate-netconf">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-netconf"
+                       exec="onos-check-apps ${OC#} netconf includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-netconf" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-netconf"
+                 exec="onos ${OCI} app deactivate org.onosproject.netconf" requires="App-Activate-All.App-Check-netconf"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-netconf"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-netconf"/>      
+           <group name="App-Activate-All.App-Check-After-netconf" requires="App-Activate-All.Wait-For-Deactivate-netconf">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-netconf" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-netconf" requires="App-Activate-All.App-Deactivate-netconf"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.netconfsb" requires="App-Activate-All.netconf">
+           <step name="App-Activate-All.Activate-netconfsb"
+                 exec="onos ${OCI} app activate org.onosproject.netconfsb" requires="App-Activate-All.netconf"/>
+           <group name="App-Activate-All.App-Check-netconfsb" requires="App-Activate-All.Activate-netconfsb">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-netconfsb"
+                       exec="onos-check-apps ${OC#} netconfsb includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-netconfsb" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-netconfsb"
+                 exec="onos ${OCI} app deactivate org.onosproject.netconfsb" requires="App-Activate-All.App-Check-netconfsb"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-netconfsb"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-netconfsb"/>      
+           <group name="App-Activate-All.App-Check-After-netconfsb" requires="App-Activate-All.Wait-For-Deactivate-netconfsb">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-netconfsb" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-netconfsb" requires="App-Activate-All.App-Deactivate-netconfsb"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.models.common" requires="App-Activate-All.netconfsb">
+           <step name="App-Activate-All.Activate-models.common"
+                 exec="onos ${OCI} app activate org.onosproject.models.common" requires="App-Activate-All.netconfsb"/>
+           <group name="App-Activate-All.App-Check-models.common" requires="App-Activate-All.Activate-models.common">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-models.common"
+                       exec="onos-check-apps ${OC#} models.common includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-models.common" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-models.common"
+                 exec="onos ${OCI} app deactivate org.onosproject.models.common" requires="App-Activate-All.App-Check-models.common"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-models.common"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-models.common"/>      
+           <group name="App-Activate-All.App-Check-After-models.common" requires="App-Activate-All.Wait-For-Deactivate-models.common">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-models.common" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-models.common" requires="App-Activate-All.App-Deactivate-models.common"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.models.l3vpn" requires="App-Activate-All.models.common">
+           <step name="App-Activate-All.Activate-models.l3vpn"
+                 exec="onos ${OCI} app activate org.onosproject.models.l3vpn" requires="App-Activate-All.models.common"/>
+           <group name="App-Activate-All.App-Check-models.l3vpn" requires="App-Activate-All.Activate-models.l3vpn">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-models.l3vpn"
+                       exec="onos-check-apps ${OC#} models.l3vpn includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-models.l3vpn" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-models.l3vpn"
+                 exec="onos ${OCI} app deactivate org.onosproject.models.l3vpn" requires="App-Activate-All.App-Check-models.l3vpn"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-models.l3vpn"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-models.l3vpn"/>      
+           <group name="App-Activate-All.App-Check-After-models.l3vpn" requires="App-Activate-All.Wait-For-Deactivate-models.l3vpn">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-models.l3vpn" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-models.l3vpn" requires="App-Activate-All.App-Deactivate-models.l3vpn"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.tunnel" requires="App-Activate-All.models.l3vpn">
+           <step name="App-Activate-All.Activate-tunnel"
+                 exec="onos ${OCI} app activate org.onosproject.tunnel" requires="App-Activate-All.models.l3vpn"/>
+           <group name="App-Activate-All.App-Check-tunnel" requires="App-Activate-All.Activate-tunnel">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-tunnel"
+                       exec="onos-check-apps ${OC#} tunnel includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-tunnel" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-tunnel"
+                 exec="onos ${OCI} app deactivate org.onosproject.tunnel" requires="App-Activate-All.App-Check-tunnel"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-tunnel"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-tunnel"/>      
+           <group name="App-Activate-All.App-Check-After-tunnel" requires="App-Activate-All.Wait-For-Deactivate-tunnel">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-tunnel" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-tunnel" requires="App-Activate-All.App-Deactivate-tunnel"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.bgpcep" requires="App-Activate-All.tunnel">
+           <step name="App-Activate-All.Activate-bgpcep"
+                 exec="onos ${OCI} app activate org.onosproject.bgpcep" requires="App-Activate-All.tunnel"/>
+           <group name="App-Activate-All.App-Check-bgpcep" requires="App-Activate-All.Activate-bgpcep">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-bgpcep"
+                       exec="onos-check-apps ${OC#} bgpcep includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-bgpcep" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-bgpcep"
+                 exec="onos ${OCI} app deactivate org.onosproject.bgpcep" requires="App-Activate-All.App-Check-bgpcep"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-bgpcep"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-bgpcep"/>      
+           <group name="App-Activate-All.App-Check-After-bgpcep" requires="App-Activate-All.Wait-For-Deactivate-bgpcep">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-bgpcep" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-bgpcep" requires="App-Activate-All.App-Deactivate-bgpcep"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.l3vpn" requires="App-Activate-All.bgpcep">
+           <step name="App-Activate-All.Activate-l3vpn"
+                 exec="onos ${OCI} app activate org.onosproject.l3vpn" requires="App-Activate-All.bgpcep"/>
+           <group name="App-Activate-All.App-Check-l3vpn" requires="App-Activate-All.Activate-l3vpn">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-l3vpn"
+                       exec="onos-check-apps ${OC#} l3vpn includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-l3vpn" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-l3vpn"
+                 exec="onos ${OCI} app deactivate org.onosproject.l3vpn" requires="App-Activate-All.App-Check-l3vpn"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-l3vpn"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-l3vpn"/>      
+           <group name="App-Activate-All.App-Check-After-l3vpn" requires="App-Activate-All.Wait-For-Deactivate-l3vpn">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-l3vpn" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-l3vpn" requires="App-Activate-All.App-Deactivate-l3vpn"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.models.huawei" requires="App-Activate-All.l3vpn">
+           <step name="App-Activate-All.Activate-models.huawei"
+                 exec="onos ${OCI} app activate org.onosproject.models.huawei" requires="App-Activate-All.l3vpn"/>
+           <group name="App-Activate-All.App-Check-models.huawei" requires="App-Activate-All.Activate-models.huawei">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-models.huawei"
+                       exec="onos-check-apps ${OC#} models.huawei includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-models.huawei" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-models.huawei"
+                 exec="onos ${OCI} app deactivate org.onosproject.models.huawei" requires="App-Activate-All.App-Check-models.huawei"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-models.huawei"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-models.huawei"/>      
+           <group name="App-Activate-All.App-Check-After-models.huawei" requires="App-Activate-All.Wait-For-Deactivate-models.huawei">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-models.huawei" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-models.huawei" requires="App-Activate-All.App-Deactivate-models.huawei"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.huawei" requires="App-Activate-All.models.huawei">
+           <step name="App-Activate-All.Activate-drivers.huawei"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.huawei" requires="App-Activate-All.models.huawei"/>
+           <group name="App-Activate-All.App-Check-drivers.huawei" requires="App-Activate-All.Activate-drivers.huawei">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.huawei"
+                       exec="onos-check-apps ${OC#} drivers.huawei includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.huawei" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.huawei"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.huawei" requires="App-Activate-All.App-Check-drivers.huawei"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.huawei"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.huawei"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.huawei" requires="App-Activate-All.Wait-For-Deactivate-drivers.huawei">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.huawei" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.huawei" requires="App-Activate-All.App-Deactivate-drivers.huawei"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.models.microsemi" requires="App-Activate-All.drivers.huawei">
+           <step name="App-Activate-All.Activate-models.microsemi"
+                 exec="onos ${OCI} app activate org.onosproject.models.microsemi" requires="App-Activate-All.drivers.huawei"/>
+           <group name="App-Activate-All.App-Check-models.microsemi" requires="App-Activate-All.Activate-models.microsemi">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-models.microsemi"
+                       exec="onos-check-apps ${OC#} models.microsemi includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-models.microsemi" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-models.microsemi"
+                 exec="onos ${OCI} app deactivate org.onosproject.models.microsemi" requires="App-Activate-All.App-Check-models.microsemi"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-models.microsemi"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-models.microsemi"/>      
+           <group name="App-Activate-All.App-Check-After-models.microsemi" requires="App-Activate-All.Wait-For-Deactivate-models.microsemi">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-models.microsemi" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-models.microsemi" requires="App-Activate-All.App-Deactivate-models.microsemi"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.netconf" requires="App-Activate-All.models.microsemi">
+           <step name="App-Activate-All.Activate-drivers.netconf"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.netconf" requires="App-Activate-All.models.microsemi"/>
+           <group name="App-Activate-All.App-Check-drivers.netconf" requires="App-Activate-All.Activate-drivers.netconf">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.netconf"
+                       exec="onos-check-apps ${OC#} drivers.netconf includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.netconf" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.netconf"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.netconf" requires="App-Activate-All.App-Check-drivers.netconf"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.netconf"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.netconf"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.netconf" requires="App-Activate-All.Wait-For-Deactivate-drivers.netconf">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.netconf" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.netconf" requires="App-Activate-All.App-Deactivate-drivers.netconf"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.netcfglinksprovider" requires="App-Activate-All.drivers.netconf">
+           <step name="App-Activate-All.Activate-netcfglinksprovider"
+                 exec="onos ${OCI} app activate org.onosproject.netcfglinksprovider" requires="App-Activate-All.drivers.netconf"/>
+           <group name="App-Activate-All.App-Check-netcfglinksprovider" requires="App-Activate-All.Activate-netcfglinksprovider">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-netcfglinksprovider"
+                       exec="onos-check-apps ${OC#} netcfglinksprovider includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-netcfglinksprovider" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-netcfglinksprovider"
+                 exec="onos ${OCI} app deactivate org.onosproject.netcfglinksprovider" requires="App-Activate-All.App-Check-netcfglinksprovider"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-netcfglinksprovider"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-netcfglinksprovider"/>      
+           <group name="App-Activate-All.App-Check-After-netcfglinksprovider" requires="App-Activate-All.Wait-For-Deactivate-netcfglinksprovider">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-netcfglinksprovider" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-netcfglinksprovider" requires="App-Activate-All.App-Deactivate-netcfglinksprovider"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.openflow-message" requires="App-Activate-All.netcfglinksprovider">
+           <step name="App-Activate-All.Activate-openflow-message"
+                 exec="onos ${OCI} app activate org.onosproject.openflow-message" requires="App-Activate-All.netcfglinksprovider"/>
+           <group name="App-Activate-All.App-Check-openflow-message" requires="App-Activate-All.Activate-openflow-message">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-openflow-message"
+                       exec="onos-check-apps ${OC#} openflow-message includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-openflow-message" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-openflow-message"
+                 exec="onos ${OCI} app deactivate org.onosproject.openflow-message" requires="App-Activate-All.App-Check-openflow-message"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-openflow-message"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-openflow-message"/>      
+           <group name="App-Activate-All.App-Check-After-openflow-message" requires="App-Activate-All.Wait-For-Deactivate-openflow-message">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-openflow-message" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-openflow-message" requires="App-Activate-All.App-Deactivate-openflow-message"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.cpman" requires="App-Activate-All.openflow-message">
+           <step name="App-Activate-All.Activate-cpman"
+                 exec="onos ${OCI} app activate org.onosproject.cpman" requires="App-Activate-All.openflow-message"/>
+           <group name="App-Activate-All.App-Check-cpman" requires="App-Activate-All.Activate-cpman">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-cpman"
+                       exec="onos-check-apps ${OC#} cpman includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-cpman" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-cpman"
+                 exec="onos ${OCI} app deactivate org.onosproject.cpman" requires="App-Activate-All.App-Check-cpman"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-cpman"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-cpman"/>      
+           <group name="App-Activate-All.App-Check-After-cpman" requires="App-Activate-All.Wait-For-Deactivate-cpman">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-cpman" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-cpman" requires="App-Activate-All.App-Deactivate-cpman"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.protocols.grpc" requires="App-Activate-All.cpman">
+           <step name="App-Activate-All.Activate-protocols.grpc"
+                 exec="onos ${OCI} app activate org.onosproject.protocols.grpc" requires="App-Activate-All.cpman"/>
+           <group name="App-Activate-All.App-Check-protocols.grpc" requires="App-Activate-All.Activate-protocols.grpc">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-protocols.grpc"
+                       exec="onos-check-apps ${OC#} protocols.grpc includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-protocols.grpc" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-protocols.grpc"
+                 exec="onos ${OCI} app deactivate org.onosproject.protocols.grpc" requires="App-Activate-All.App-Check-protocols.grpc"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-protocols.grpc"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-protocols.grpc"/>      
+           <group name="App-Activate-All.App-Check-After-protocols.grpc" requires="App-Activate-All.Wait-For-Deactivate-protocols.grpc">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-protocols.grpc" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-protocols.grpc" requires="App-Activate-All.App-Deactivate-protocols.grpc"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.protocols.p4runtime" requires="App-Activate-All.protocols.grpc">
+           <step name="App-Activate-All.Activate-protocols.p4runtime"
+                 exec="onos ${OCI} app activate org.onosproject.protocols.p4runtime" requires="App-Activate-All.protocols.grpc"/>
+           <group name="App-Activate-All.App-Check-protocols.p4runtime" requires="App-Activate-All.Activate-protocols.p4runtime">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-protocols.p4runtime"
+                       exec="onos-check-apps ${OC#} protocols.p4runtime includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-protocols.p4runtime" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-protocols.p4runtime"
+                 exec="onos ${OCI} app deactivate org.onosproject.protocols.p4runtime" requires="App-Activate-All.App-Check-protocols.p4runtime"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-protocols.p4runtime"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-protocols.p4runtime"/>      
+           <group name="App-Activate-All.App-Check-After-protocols.p4runtime" requires="App-Activate-All.Wait-For-Deactivate-protocols.p4runtime">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-protocols.p4runtime" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-protocols.p4runtime" requires="App-Activate-All.App-Deactivate-protocols.p4runtime"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.hostprovider" requires="App-Activate-All.protocols.p4runtime">
+           <step name="App-Activate-All.Activate-hostprovider"
+                 exec="onos ${OCI} app activate org.onosproject.hostprovider" requires="App-Activate-All.protocols.p4runtime"/>
+           <group name="App-Activate-All.App-Check-hostprovider" requires="App-Activate-All.Activate-hostprovider">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-hostprovider"
+                       exec="onos-check-apps ${OC#} hostprovider includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-hostprovider" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-hostprovider"
+                 exec="onos ${OCI} app deactivate org.onosproject.hostprovider" requires="App-Activate-All.App-Check-hostprovider"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-hostprovider"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-hostprovider"/>      
+           <group name="App-Activate-All.App-Check-After-hostprovider" requires="App-Activate-All.Wait-For-Deactivate-hostprovider">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-hostprovider" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-hostprovider" requires="App-Activate-All.App-Deactivate-hostprovider"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.ovsdb-base" requires="App-Activate-All.hostprovider">
+           <step name="App-Activate-All.Activate-ovsdb-base"
+                 exec="onos ${OCI} app activate org.onosproject.ovsdb-base" requires="App-Activate-All.hostprovider"/>
+           <group name="App-Activate-All.App-Check-ovsdb-base" requires="App-Activate-All.Activate-ovsdb-base">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-ovsdb-base"
+                       exec="onos-check-apps ${OC#} ovsdb-base includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-ovsdb-base" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-ovsdb-base"
+                 exec="onos ${OCI} app deactivate org.onosproject.ovsdb-base" requires="App-Activate-All.App-Check-ovsdb-base"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-ovsdb-base"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-ovsdb-base"/>      
+           <group name="App-Activate-All.App-Check-After-ovsdb-base" requires="App-Activate-All.Wait-For-Deactivate-ovsdb-base">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-ovsdb-base" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-ovsdb-base" requires="App-Activate-All.App-Deactivate-ovsdb-base"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.ovsdb" requires="App-Activate-All.ovsdb-base">
+           <step name="App-Activate-All.Activate-drivers.ovsdb"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.ovsdb" requires="App-Activate-All.ovsdb-base"/>
+           <group name="App-Activate-All.App-Check-drivers.ovsdb" requires="App-Activate-All.Activate-drivers.ovsdb">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.ovsdb"
+                       exec="onos-check-apps ${OC#} drivers.ovsdb includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.ovsdb" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.ovsdb"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.ovsdb" requires="App-Activate-All.App-Check-drivers.ovsdb"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.ovsdb"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.ovsdb"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.ovsdb" requires="App-Activate-All.Wait-For-Deactivate-drivers.ovsdb">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.ovsdb" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.ovsdb" requires="App-Activate-All.App-Deactivate-drivers.ovsdb"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.openstacknode" requires="App-Activate-All.drivers.ovsdb">
+           <step name="App-Activate-All.Activate-openstacknode"
+                 exec="onos ${OCI} app activate org.onosproject.openstacknode" requires="App-Activate-All.drivers.ovsdb"/>
+           <group name="App-Activate-All.App-Check-openstacknode" requires="App-Activate-All.Activate-openstacknode">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-openstacknode"
+                       exec="onos-check-apps ${OC#} openstacknode includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-openstacknode" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-openstacknode"
+                 exec="onos ${OCI} app deactivate org.onosproject.openstacknode" requires="App-Activate-All.App-Check-openstacknode"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-openstacknode"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-openstacknode"/>      
+           <group name="App-Activate-All.App-Check-After-openstacknode" requires="App-Activate-All.Wait-For-Deactivate-openstacknode">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-openstacknode" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-openstacknode" requires="App-Activate-All.App-Deactivate-openstacknode"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.openstacknetworking" requires="App-Activate-All.openstacknode">
+           <step name="App-Activate-All.Activate-openstacknetworking"
+                 exec="onos ${OCI} app activate org.onosproject.openstacknetworking" requires="App-Activate-All.openstacknode"/>
+           <group name="App-Activate-All.App-Check-openstacknetworking" requires="App-Activate-All.Activate-openstacknetworking">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-openstacknetworking"
+                       exec="onos-check-apps ${OC#} openstacknetworking includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-openstacknetworking" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-openstacknetworking"
+                 exec="onos ${OCI} app deactivate org.onosproject.openstacknetworking" requires="App-Activate-All.App-Check-openstacknetworking"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-openstacknetworking"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-openstacknetworking"/>      
+           <group name="App-Activate-All.App-Check-After-openstacknetworking" requires="App-Activate-All.Wait-For-Deactivate-openstacknetworking">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-openstacknetworking" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-openstacknetworking" requires="App-Activate-All.App-Deactivate-openstacknetworking"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.models.ietf" requires="App-Activate-All.openstacknetworking">
+           <step name="App-Activate-All.Activate-models.ietf"
+                 exec="onos ${OCI} app activate org.onosproject.models.ietf" requires="App-Activate-All.openstacknetworking"/>
+           <group name="App-Activate-All.App-Check-models.ietf" requires="App-Activate-All.Activate-models.ietf">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-models.ietf"
+                       exec="onos-check-apps ${OC#} models.ietf includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-models.ietf" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-models.ietf"
+                 exec="onos ${OCI} app deactivate org.onosproject.models.ietf" requires="App-Activate-All.App-Check-models.ietf"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-models.ietf"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-models.ietf"/>      
+           <group name="App-Activate-All.App-Check-After-models.ietf" requires="App-Activate-All.Wait-For-Deactivate-models.ietf">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-models.ietf" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-models.ietf" requires="App-Activate-All.App-Deactivate-models.ietf"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.kafka-integration" requires="App-Activate-All.models.ietf">
+           <step name="App-Activate-All.Activate-kafka-integration"
+                 exec="onos ${OCI} app activate org.onosproject.kafka-integration" requires="App-Activate-All.models.ietf"/>
+           <group name="App-Activate-All.App-Check-kafka-integration" requires="App-Activate-All.Activate-kafka-integration">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-kafka-integration"
+                       exec="onos-check-apps ${OC#} kafka-integration includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-kafka-integration" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-kafka-integration"
+                 exec="onos ${OCI} app deactivate org.onosproject.kafka-integration" requires="App-Activate-All.App-Check-kafka-integration"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-kafka-integration"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-kafka-integration"/>      
+           <group name="App-Activate-All.App-Check-After-kafka-integration" requires="App-Activate-All.Wait-For-Deactivate-kafka-integration">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-kafka-integration" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-kafka-integration" requires="App-Activate-All.App-Deactivate-kafka-integration"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.inbandtelemetry" requires="App-Activate-All.kafka-integration">
+           <step name="App-Activate-All.Activate-inbandtelemetry"
+                 exec="onos ${OCI} app activate org.onosproject.inbandtelemetry" requires="App-Activate-All.kafka-integration"/>
+           <group name="App-Activate-All.App-Check-inbandtelemetry" requires="App-Activate-All.Activate-inbandtelemetry">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-inbandtelemetry"
+                       exec="onos-check-apps ${OC#} inbandtelemetry includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-inbandtelemetry" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-inbandtelemetry"
+                 exec="onos ${OCI} app deactivate org.onosproject.inbandtelemetry" requires="App-Activate-All.App-Check-inbandtelemetry"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-inbandtelemetry"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-inbandtelemetry"/>      
+           <group name="App-Activate-All.App-Check-After-inbandtelemetry" requires="App-Activate-All.Wait-For-Deactivate-inbandtelemetry">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-inbandtelemetry" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-inbandtelemetry" requires="App-Activate-All.App-Deactivate-inbandtelemetry"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.configsync" requires="App-Activate-All.inbandtelemetry">
+           <step name="App-Activate-All.Activate-configsync"
+                 exec="onos ${OCI} app activate org.onosproject.configsync" requires="App-Activate-All.inbandtelemetry"/>
+           <group name="App-Activate-All.App-Check-configsync" requires="App-Activate-All.Activate-configsync">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-configsync"
+                       exec="onos-check-apps ${OC#} configsync includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-configsync" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-configsync"
+                 exec="onos ${OCI} app deactivate org.onosproject.configsync" requires="App-Activate-All.App-Check-configsync"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-configsync"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-configsync"/>      
+           <group name="App-Activate-All.App-Check-After-configsync" requires="App-Activate-All.Wait-For-Deactivate-configsync">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-configsync" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-configsync" requires="App-Activate-All.App-Deactivate-configsync"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.models.tapi" requires="App-Activate-All.configsync">
+           <step name="App-Activate-All.Activate-models.tapi"
+                 exec="onos ${OCI} app activate org.onosproject.models.tapi" requires="App-Activate-All.configsync"/>
+           <group name="App-Activate-All.App-Check-models.tapi" requires="App-Activate-All.Activate-models.tapi">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-models.tapi"
+                       exec="onos-check-apps ${OC#} models.tapi includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-models.tapi" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-models.tapi"
+                 exec="onos ${OCI} app deactivate org.onosproject.models.tapi" requires="App-Activate-All.App-Check-models.tapi"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-models.tapi"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-models.tapi"/>      
+           <group name="App-Activate-All.App-Check-After-models.tapi" requires="App-Activate-All.Wait-For-Deactivate-models.tapi">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-models.tapi" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-models.tapi" requires="App-Activate-All.App-Deactivate-models.tapi"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.models.openconfig" requires="App-Activate-All.models.tapi">
+           <step name="App-Activate-All.Activate-models.openconfig"
+                 exec="onos ${OCI} app activate org.onosproject.models.openconfig" requires="App-Activate-All.models.tapi"/>
+           <group name="App-Activate-All.App-Check-models.openconfig" requires="App-Activate-All.Activate-models.openconfig">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-models.openconfig"
+                       exec="onos-check-apps ${OC#} models.openconfig includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-models.openconfig" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-models.openconfig"
+                 exec="onos ${OCI} app deactivate org.onosproject.models.openconfig" requires="App-Activate-All.App-Check-models.openconfig"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-models.openconfig"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-models.openconfig"/>      
+           <group name="App-Activate-All.App-Check-After-models.openconfig" requires="App-Activate-All.Wait-For-Deactivate-models.openconfig">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-models.openconfig" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-models.openconfig" requires="App-Activate-All.App-Deactivate-models.openconfig"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.models.openconfig-infinera" requires="App-Activate-All.models.openconfig">
+           <step name="App-Activate-All.Activate-models.openconfig-infinera"
+                 exec="onos ${OCI} app activate org.onosproject.models.openconfig-infinera" requires="App-Activate-All.models.openconfig"/>
+           <group name="App-Activate-All.App-Check-models.openconfig-infinera" requires="App-Activate-All.Activate-models.openconfig-infinera">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-models.openconfig-infinera"
+                       exec="onos-check-apps ${OC#} models.openconfig-infinera includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-models.openconfig-infinera" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-models.openconfig-infinera"
+                 exec="onos ${OCI} app deactivate org.onosproject.models.openconfig-infinera" requires="App-Activate-All.App-Check-models.openconfig-infinera"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-models.openconfig-infinera"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-models.openconfig-infinera"/>      
+           <group name="App-Activate-All.App-Check-After-models.openconfig-infinera" requires="App-Activate-All.Wait-For-Deactivate-models.openconfig-infinera">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-models.openconfig-infinera" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-models.openconfig-infinera" requires="App-Activate-All.App-Deactivate-models.openconfig-infinera"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.models.openconfig-odtn" requires="App-Activate-All.models.openconfig-infinera">
+           <step name="App-Activate-All.Activate-models.openconfig-odtn"
+                 exec="onos ${OCI} app activate org.onosproject.models.openconfig-odtn" requires="App-Activate-All.models.openconfig-infinera"/>
+           <group name="App-Activate-All.App-Check-models.openconfig-odtn" requires="App-Activate-All.Activate-models.openconfig-odtn">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-models.openconfig-odtn"
+                       exec="onos-check-apps ${OC#} models.openconfig-odtn includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-models.openconfig-odtn" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-models.openconfig-odtn"
+                 exec="onos ${OCI} app deactivate org.onosproject.models.openconfig-odtn" requires="App-Activate-All.App-Check-models.openconfig-odtn"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-models.openconfig-odtn"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-models.openconfig-odtn"/>      
+           <group name="App-Activate-All.App-Check-After-models.openconfig-odtn" requires="App-Activate-All.Wait-For-Deactivate-models.openconfig-odtn">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-models.openconfig-odtn" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-models.openconfig-odtn" requires="App-Activate-All.App-Deactivate-models.openconfig-odtn"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.odtn-api" requires="App-Activate-All.models.openconfig-odtn">
+           <step name="App-Activate-All.Activate-odtn-api"
+                 exec="onos ${OCI} app activate org.onosproject.odtn-api" requires="App-Activate-All.models.openconfig-odtn"/>
+           <group name="App-Activate-All.App-Check-odtn-api" requires="App-Activate-All.Activate-odtn-api">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-odtn-api"
+                       exec="onos-check-apps ${OC#} odtn-api includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-odtn-api" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-odtn-api"
+                 exec="onos ${OCI} app deactivate org.onosproject.odtn-api" requires="App-Activate-All.App-Check-odtn-api"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-odtn-api"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-odtn-api"/>      
+           <group name="App-Activate-All.App-Check-After-odtn-api" requires="App-Activate-All.Wait-For-Deactivate-odtn-api">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-odtn-api" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-odtn-api" requires="App-Activate-All.App-Deactivate-odtn-api"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.restsb" requires="App-Activate-All.odtn-api">
+           <step name="App-Activate-All.Activate-restsb"
+                 exec="onos ${OCI} app activate org.onosproject.restsb" requires="App-Activate-All.odtn-api"/>
+           <group name="App-Activate-All.App-Check-restsb" requires="App-Activate-All.Activate-restsb">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-restsb"
+                       exec="onos-check-apps ${OC#} restsb includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-restsb" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-restsb"
+                 exec="onos ${OCI} app deactivate org.onosproject.restsb" requires="App-Activate-All.App-Check-restsb"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-restsb"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-restsb"/>      
+           <group name="App-Activate-All.App-Check-After-restsb" requires="App-Activate-All.Wait-For-Deactivate-restsb">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-restsb" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-restsb" requires="App-Activate-All.App-Deactivate-restsb"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.optical-model" requires="App-Activate-All.restsb">
+           <step name="App-Activate-All.Activate-optical-model"
+                 exec="onos ${OCI} app activate org.onosproject.optical-model" requires="App-Activate-All.restsb"/>
+           <group name="App-Activate-All.App-Check-optical-model" requires="App-Activate-All.Activate-optical-model">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-optical-model"
+                       exec="onos-check-apps ${OC#} optical-model includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-optical-model" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-optical-model"
+                 exec="onos ${OCI} app deactivate org.onosproject.optical-model" requires="App-Activate-All.App-Check-optical-model"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-optical-model"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-optical-model"/>      
+           <group name="App-Activate-All.App-Check-After-optical-model" requires="App-Activate-All.Wait-For-Deactivate-optical-model">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-optical-model" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-optical-model" requires="App-Activate-All.App-Deactivate-optical-model"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.optical" requires="App-Activate-All.optical-model">
+           <step name="App-Activate-All.Activate-drivers.optical"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.optical" requires="App-Activate-All.optical-model"/>
+           <group name="App-Activate-All.App-Check-drivers.optical" requires="App-Activate-All.Activate-drivers.optical">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.optical"
+                       exec="onos-check-apps ${OC#} drivers.optical includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.optical" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.optical"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.optical" requires="App-Activate-All.App-Check-drivers.optical"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.optical"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.optical"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.optical" requires="App-Activate-All.Wait-For-Deactivate-drivers.optical">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.optical" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.optical" requires="App-Activate-All.App-Deactivate-drivers.optical"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.odtn-driver" requires="App-Activate-All.drivers.optical">
+           <step name="App-Activate-All.Activate-drivers.odtn-driver"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.odtn-driver" requires="App-Activate-All.drivers.optical"/>
+           <group name="App-Activate-All.App-Check-drivers.odtn-driver" requires="App-Activate-All.Activate-drivers.odtn-driver">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.odtn-driver"
+                       exec="onos-check-apps ${OC#} drivers.odtn-driver includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.odtn-driver" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.odtn-driver"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.odtn-driver" requires="App-Activate-All.App-Check-drivers.odtn-driver"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.odtn-driver"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.odtn-driver"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.odtn-driver" requires="App-Activate-All.Wait-For-Deactivate-drivers.odtn-driver">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.odtn-driver" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.odtn-driver" requires="App-Activate-All.App-Deactivate-drivers.odtn-driver"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.configsync-netconf" requires="App-Activate-All.drivers.odtn-driver">
+           <step name="App-Activate-All.Activate-configsync-netconf"
+                 exec="onos ${OCI} app activate org.onosproject.configsync-netconf" requires="App-Activate-All.drivers.odtn-driver"/>
+           <group name="App-Activate-All.App-Check-configsync-netconf" requires="App-Activate-All.Activate-configsync-netconf">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-configsync-netconf"
+                       exec="onos-check-apps ${OC#} configsync-netconf includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-configsync-netconf" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-configsync-netconf"
+                 exec="onos ${OCI} app deactivate org.onosproject.configsync-netconf" requires="App-Activate-All.App-Check-configsync-netconf"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-configsync-netconf"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-configsync-netconf"/>      
+           <group name="App-Activate-All.App-Check-After-configsync-netconf" requires="App-Activate-All.Wait-For-Deactivate-configsync-netconf">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-configsync-netconf" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-configsync-netconf" requires="App-Activate-All.App-Deactivate-configsync-netconf"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.vtn" requires="App-Activate-All.configsync-netconf">
+           <step name="App-Activate-All.Activate-vtn"
+                 exec="onos ${OCI} app activate org.onosproject.vtn" requires="App-Activate-All.configsync-netconf"/>
+           <group name="App-Activate-All.App-Check-vtn" requires="App-Activate-All.Activate-vtn">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-vtn"
+                       exec="onos-check-apps ${OC#} vtn includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-vtn" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-vtn"
+                 exec="onos ${OCI} app deactivate org.onosproject.vtn" requires="App-Activate-All.App-Check-vtn"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-vtn"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-vtn"/>      
+           <group name="App-Activate-All.App-Check-After-vtn" requires="App-Activate-All.Wait-For-Deactivate-vtn">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-vtn" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-vtn" requires="App-Activate-All.App-Deactivate-vtn"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.loadtest" requires="App-Activate-All.vtn">
+           <step name="App-Activate-All.Activate-loadtest"
+                 exec="onos ${OCI} app activate org.onosproject.loadtest" requires="App-Activate-All.vtn"/>
+           <group name="App-Activate-All.App-Check-loadtest" requires="App-Activate-All.Activate-loadtest">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-loadtest"
+                       exec="onos-check-apps ${OC#} loadtest includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-loadtest" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-loadtest"
+                 exec="onos ${OCI} app deactivate org.onosproject.loadtest" requires="App-Activate-All.App-Check-loadtest"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-loadtest"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-loadtest"/>      
+           <group name="App-Activate-All.App-Check-After-loadtest" requires="App-Activate-All.Wait-For-Deactivate-loadtest">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-loadtest" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-loadtest" requires="App-Activate-All.App-Deactivate-loadtest"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.protocols.gnmi" requires="App-Activate-All.loadtest">
+           <step name="App-Activate-All.Activate-protocols.gnmi"
+                 exec="onos ${OCI} app activate org.onosproject.protocols.gnmi" requires="App-Activate-All.loadtest"/>
+           <group name="App-Activate-All.App-Check-protocols.gnmi" requires="App-Activate-All.Activate-protocols.gnmi">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-protocols.gnmi"
+                       exec="onos-check-apps ${OC#} protocols.gnmi includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-protocols.gnmi" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-protocols.gnmi"
+                 exec="onos ${OCI} app deactivate org.onosproject.protocols.gnmi" requires="App-Activate-All.App-Check-protocols.gnmi"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-protocols.gnmi"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-protocols.gnmi"/>      
+           <group name="App-Activate-All.App-Check-After-protocols.gnmi" requires="App-Activate-All.Wait-For-Deactivate-protocols.gnmi">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-protocols.gnmi" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-protocols.gnmi" requires="App-Activate-All.App-Deactivate-protocols.gnmi"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.generaldeviceprovider" requires="App-Activate-All.protocols.gnmi">
+           <step name="App-Activate-All.Activate-generaldeviceprovider"
+                 exec="onos ${OCI} app activate org.onosproject.generaldeviceprovider" requires="App-Activate-All.protocols.gnmi"/>
+           <group name="App-Activate-All.App-Check-generaldeviceprovider" requires="App-Activate-All.Activate-generaldeviceprovider">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-generaldeviceprovider"
+                       exec="onos-check-apps ${OC#} generaldeviceprovider includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-generaldeviceprovider" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-generaldeviceprovider"
+                 exec="onos ${OCI} app deactivate org.onosproject.generaldeviceprovider" requires="App-Activate-All.App-Check-generaldeviceprovider"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-generaldeviceprovider"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-generaldeviceprovider"/>      
+           <group name="App-Activate-All.App-Check-After-generaldeviceprovider" requires="App-Activate-All.Wait-For-Deactivate-generaldeviceprovider">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-generaldeviceprovider" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-generaldeviceprovider" requires="App-Activate-All.App-Deactivate-generaldeviceprovider"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.p4runtime" requires="App-Activate-All.generaldeviceprovider">
+           <step name="App-Activate-All.Activate-p4runtime"
+                 exec="onos ${OCI} app activate org.onosproject.p4runtime" requires="App-Activate-All.generaldeviceprovider"/>
+           <group name="App-Activate-All.App-Check-p4runtime" requires="App-Activate-All.Activate-p4runtime">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-p4runtime"
+                       exec="onos-check-apps ${OC#} p4runtime includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-p4runtime" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-p4runtime"
+                 exec="onos ${OCI} app deactivate org.onosproject.p4runtime" requires="App-Activate-All.App-Check-p4runtime"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-p4runtime"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-p4runtime"/>      
+           <group name="App-Activate-All.App-Check-After-p4runtime" requires="App-Activate-All.Wait-For-Deactivate-p4runtime">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-p4runtime" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-p4runtime" requires="App-Activate-All.App-Deactivate-p4runtime"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.p4runtime" requires="App-Activate-All.p4runtime">
+           <step name="App-Activate-All.Activate-drivers.p4runtime"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.p4runtime" requires="App-Activate-All.p4runtime"/>
+           <group name="App-Activate-All.App-Check-drivers.p4runtime" requires="App-Activate-All.Activate-drivers.p4runtime">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.p4runtime"
+                       exec="onos-check-apps ${OC#} drivers.p4runtime includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.p4runtime" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.p4runtime"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.p4runtime" requires="App-Activate-All.App-Check-drivers.p4runtime"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.p4runtime"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.p4runtime"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.p4runtime" requires="App-Activate-All.Wait-For-Deactivate-drivers.p4runtime">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.p4runtime" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.p4runtime" requires="App-Activate-All.App-Deactivate-drivers.p4runtime"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.pipelines.basic" requires="App-Activate-All.drivers.p4runtime">
+           <step name="App-Activate-All.Activate-pipelines.basic"
+                 exec="onos ${OCI} app activate org.onosproject.pipelines.basic" requires="App-Activate-All.drivers.p4runtime"/>
+           <group name="App-Activate-All.App-Check-pipelines.basic" requires="App-Activate-All.Activate-pipelines.basic">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-pipelines.basic"
+                       exec="onos-check-apps ${OC#} pipelines.basic includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-pipelines.basic" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-pipelines.basic"
+                 exec="onos ${OCI} app deactivate org.onosproject.pipelines.basic" requires="App-Activate-All.App-Check-pipelines.basic"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-pipelines.basic"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-pipelines.basic"/>      
+           <group name="App-Activate-All.App-Check-After-pipelines.basic" requires="App-Activate-All.Wait-For-Deactivate-pipelines.basic">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-pipelines.basic" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-pipelines.basic" requires="App-Activate-All.App-Deactivate-pipelines.basic"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.pipelines.fabric" requires="App-Activate-All.pipelines.basic">
+           <step name="App-Activate-All.Activate-pipelines.fabric"
+                 exec="onos ${OCI} app activate org.onosproject.pipelines.fabric" requires="App-Activate-All.pipelines.basic"/>
+           <group name="App-Activate-All.App-Check-pipelines.fabric" requires="App-Activate-All.Activate-pipelines.fabric">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-pipelines.fabric"
+                       exec="onos-check-apps ${OC#} pipelines.fabric includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-pipelines.fabric" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-pipelines.fabric"
+                 exec="onos ${OCI} app deactivate org.onosproject.pipelines.fabric" requires="App-Activate-All.App-Check-pipelines.fabric"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-pipelines.fabric"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-pipelines.fabric"/>      
+           <group name="App-Activate-All.App-Check-After-pipelines.fabric" requires="App-Activate-All.Wait-For-Deactivate-pipelines.fabric">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-pipelines.fabric" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-pipelines.fabric" requires="App-Activate-All.App-Deactivate-pipelines.fabric"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.events" requires="App-Activate-All.pipelines.fabric">
+           <step name="App-Activate-All.Activate-events"
+                 exec="onos ${OCI} app activate org.onosproject.events" requires="App-Activate-All.pipelines.fabric"/>
+           <group name="App-Activate-All.App-Check-events" requires="App-Activate-All.Activate-events">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-events"
+                       exec="onos-check-apps ${OC#} events includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-events" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-events"
+                 exec="onos ${OCI} app deactivate org.onosproject.events" requires="App-Activate-All.App-Check-events"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-events"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-events"/>      
+           <group name="App-Activate-All.App-Check-After-events" requires="App-Activate-All.Wait-For-Deactivate-events">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-events" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-events" requires="App-Activate-All.App-Deactivate-events"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.intentsynchronizer" requires="App-Activate-All.events">
+           <step name="App-Activate-All.Activate-intentsynchronizer"
+                 exec="onos ${OCI} app activate org.onosproject.intentsynchronizer" requires="App-Activate-All.events"/>
+           <group name="App-Activate-All.App-Check-intentsynchronizer" requires="App-Activate-All.Activate-intentsynchronizer">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-intentsynchronizer"
+                       exec="onos-check-apps ${OC#} intentsynchronizer includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-intentsynchronizer" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-intentsynchronizer"
+                 exec="onos ${OCI} app deactivate org.onosproject.intentsynchronizer" requires="App-Activate-All.App-Check-intentsynchronizer"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-intentsynchronizer"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-intentsynchronizer"/>      
+           <group name="App-Activate-All.App-Check-After-intentsynchronizer" requires="App-Activate-All.Wait-For-Deactivate-intentsynchronizer">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-intentsynchronizer" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-intentsynchronizer" requires="App-Activate-All.App-Deactivate-intentsynchronizer"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.route-service" requires="App-Activate-All.intentsynchronizer">
+           <step name="App-Activate-All.Activate-route-service"
+                 exec="onos ${OCI} app activate org.onosproject.route-service" requires="App-Activate-All.intentsynchronizer"/>
+           <group name="App-Activate-All.App-Check-route-service" requires="App-Activate-All.Activate-route-service">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-route-service"
+                       exec="onos-check-apps ${OC#} route-service includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-route-service" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-route-service"
+                 exec="onos ${OCI} app deactivate org.onosproject.route-service" requires="App-Activate-All.App-Check-route-service"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-route-service"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-route-service"/>      
+           <group name="App-Activate-All.App-Check-After-route-service" requires="App-Activate-All.Wait-For-Deactivate-route-service">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-route-service" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-route-service" requires="App-Activate-All.App-Deactivate-route-service"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.fpm" requires="App-Activate-All.route-service">
+           <step name="App-Activate-All.Activate-fpm"
+                 exec="onos ${OCI} app activate org.onosproject.fpm" requires="App-Activate-All.route-service"/>
+           <group name="App-Activate-All.App-Check-fpm" requires="App-Activate-All.Activate-fpm">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-fpm"
+                       exec="onos-check-apps ${OC#} fpm includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-fpm" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-fpm"
+                 exec="onos ${OCI} app deactivate org.onosproject.fpm" requires="App-Activate-All.App-Check-fpm"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-fpm"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-fpm"/>      
+           <group name="App-Activate-All.App-Check-After-fpm" requires="App-Activate-All.Wait-For-Deactivate-fpm">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-fpm" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-fpm" requires="App-Activate-All.App-Deactivate-fpm"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.dhcprelay" requires="App-Activate-All.fpm">
+           <step name="App-Activate-All.Activate-dhcprelay"
+                 exec="onos ${OCI} app activate org.onosproject.dhcprelay" requires="App-Activate-All.fpm"/>
+           <group name="App-Activate-All.App-Check-dhcprelay" requires="App-Activate-All.Activate-dhcprelay">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-dhcprelay"
+                       exec="onos-check-apps ${OC#} dhcprelay includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-dhcprelay" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-dhcprelay"
+                 exec="onos ${OCI} app deactivate org.onosproject.dhcprelay" requires="App-Activate-All.App-Check-dhcprelay"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-dhcprelay"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-dhcprelay"/>      
+           <group name="App-Activate-All.App-Check-After-dhcprelay" requires="App-Activate-All.Wait-For-Deactivate-dhcprelay">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-dhcprelay" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-dhcprelay" requires="App-Activate-All.App-Deactivate-dhcprelay"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.metrics" requires="App-Activate-All.dhcprelay">
+           <step name="App-Activate-All.Activate-metrics"
+                 exec="onos ${OCI} app activate org.onosproject.metrics" requires="App-Activate-All.dhcprelay"/>
+           <group name="App-Activate-All.App-Check-metrics" requires="App-Activate-All.Activate-metrics">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-metrics"
+                       exec="onos-check-apps ${OC#} metrics includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-metrics" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-metrics"
+                 exec="onos ${OCI} app deactivate org.onosproject.metrics" requires="App-Activate-All.App-Check-metrics"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-metrics"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-metrics"/>      
+           <group name="App-Activate-All.App-Check-After-metrics" requires="App-Activate-All.Wait-For-Deactivate-metrics">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-metrics" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-metrics" requires="App-Activate-All.App-Deactivate-metrics"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.fwd" requires="App-Activate-All.metrics">
+           <step name="App-Activate-All.Activate-fwd"
+                 exec="onos ${OCI} app activate org.onosproject.fwd" requires="App-Activate-All.metrics"/>
+           <group name="App-Activate-All.App-Check-fwd" requires="App-Activate-All.Activate-fwd">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-fwd"
+                       exec="onos-check-apps ${OC#} fwd includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-fwd" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-fwd"
+                 exec="onos ${OCI} app deactivate org.onosproject.fwd" requires="App-Activate-All.App-Check-fwd"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-fwd"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-fwd"/>      
+           <group name="App-Activate-All.App-Check-After-fwd" requires="App-Activate-All.Wait-For-Deactivate-fwd">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-fwd" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-fwd" requires="App-Activate-All.App-Deactivate-fwd"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.proxyarp" requires="App-Activate-All.fwd">
+           <step name="App-Activate-All.Activate-proxyarp"
+                 exec="onos ${OCI} app activate org.onosproject.proxyarp" requires="App-Activate-All.fwd"/>
+           <group name="App-Activate-All.App-Check-proxyarp" requires="App-Activate-All.Activate-proxyarp">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-proxyarp"
+                       exec="onos-check-apps ${OC#} proxyarp includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-proxyarp" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-proxyarp"
+                 exec="onos ${OCI} app deactivate org.onosproject.proxyarp" requires="App-Activate-All.App-Check-proxyarp"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-proxyarp"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-proxyarp"/>      
+           <group name="App-Activate-All.App-Check-After-proxyarp" requires="App-Activate-All.Wait-For-Deactivate-proxyarp">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-proxyarp" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-proxyarp" requires="App-Activate-All.App-Deactivate-proxyarp"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.models.polatis" requires="App-Activate-All.proxyarp">
+           <step name="App-Activate-All.Activate-models.polatis"
+                 exec="onos ${OCI} app activate org.onosproject.models.polatis" requires="App-Activate-All.proxyarp"/>
+           <group name="App-Activate-All.App-Check-models.polatis" requires="App-Activate-All.Activate-models.polatis">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-models.polatis"
+                       exec="onos-check-apps ${OC#} models.polatis includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-models.polatis" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-models.polatis"
+                 exec="onos ${OCI} app deactivate org.onosproject.models.polatis" requires="App-Activate-All.App-Check-models.polatis"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-models.polatis"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-models.polatis"/>      
+           <group name="App-Activate-All.App-Check-After-models.polatis" requires="App-Activate-All.Wait-For-Deactivate-models.polatis">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-models.polatis" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-models.polatis" requires="App-Activate-All.App-Deactivate-models.polatis"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.polatis.netconf" requires="App-Activate-All.models.polatis">
+           <step name="App-Activate-All.Activate-drivers.polatis.netconf"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.polatis.netconf" requires="App-Activate-All.models.polatis"/>
+           <group name="App-Activate-All.App-Check-drivers.polatis.netconf" requires="App-Activate-All.Activate-drivers.polatis.netconf">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.polatis.netconf"
+                       exec="onos-check-apps ${OC#} drivers.polatis.netconf includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.polatis.netconf" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.polatis.netconf"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.polatis.netconf" requires="App-Activate-All.App-Check-drivers.polatis.netconf"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.polatis.netconf"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.polatis.netconf"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.polatis.netconf" requires="App-Activate-All.Wait-For-Deactivate-drivers.polatis.netconf">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.polatis.netconf" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.polatis.netconf" requires="App-Activate-All.App-Deactivate-drivers.polatis.netconf"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.lldpprovider" requires="App-Activate-All.drivers.polatis.netconf">
+           <step name="App-Activate-All.Activate-lldpprovider"
+                 exec="onos ${OCI} app activate org.onosproject.lldpprovider" requires="App-Activate-All.drivers.polatis.netconf"/>
+           <group name="App-Activate-All.App-Check-lldpprovider" requires="App-Activate-All.Activate-lldpprovider">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-lldpprovider"
+                       exec="onos-check-apps ${OC#} lldpprovider includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-lldpprovider" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-lldpprovider"
+                 exec="onos ${OCI} app deactivate org.onosproject.lldpprovider" requires="App-Activate-All.App-Check-lldpprovider"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-lldpprovider"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-lldpprovider"/>      
+           <group name="App-Activate-All.App-Check-After-lldpprovider" requires="App-Activate-All.Wait-For-Deactivate-lldpprovider">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-lldpprovider" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-lldpprovider" requires="App-Activate-All.App-Deactivate-lldpprovider"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.openflow-base" requires="App-Activate-All.lldpprovider">
+           <step name="App-Activate-All.Activate-openflow-base"
+                 exec="onos ${OCI} app activate org.onosproject.openflow-base" requires="App-Activate-All.lldpprovider"/>
+           <group name="App-Activate-All.App-Check-openflow-base" requires="App-Activate-All.Activate-openflow-base">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-openflow-base"
+                       exec="onos-check-apps ${OC#} openflow-base includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-openflow-base" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-openflow-base"
+                 exec="onos ${OCI} app deactivate org.onosproject.openflow-base" requires="App-Activate-All.App-Check-openflow-base"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-openflow-base"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-openflow-base"/>      
+           <group name="App-Activate-All.App-Check-After-openflow-base" requires="App-Activate-All.Wait-For-Deactivate-openflow-base">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-openflow-base" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-openflow-base" requires="App-Activate-All.App-Deactivate-openflow-base"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.openflow" requires="App-Activate-All.openflow-base">
+           <step name="App-Activate-All.Activate-openflow"
+                 exec="onos ${OCI} app activate org.onosproject.openflow" requires="App-Activate-All.openflow-base"/>
+           <group name="App-Activate-All.App-Check-openflow" requires="App-Activate-All.Activate-openflow">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-openflow"
+                       exec="onos-check-apps ${OC#} openflow includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-openflow" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-openflow"
+                 exec="onos ${OCI} app deactivate org.onosproject.openflow" requires="App-Activate-All.App-Check-openflow"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-openflow"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-openflow"/>      
+           <group name="App-Activate-All.App-Check-After-openflow" requires="App-Activate-All.Wait-For-Deactivate-openflow">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-openflow" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-openflow" requires="App-Activate-All.App-Deactivate-openflow"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.corsa" requires="App-Activate-All.openflow">
+           <step name="App-Activate-All.Activate-drivers.corsa"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.corsa" requires="App-Activate-All.openflow"/>
+           <group name="App-Activate-All.App-Check-drivers.corsa" requires="App-Activate-All.Activate-drivers.corsa">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.corsa"
+                       exec="onos-check-apps ${OC#} drivers.corsa includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.corsa" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.corsa"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.corsa" requires="App-Activate-All.App-Check-drivers.corsa"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.corsa"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.corsa"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.corsa" requires="App-Activate-All.Wait-For-Deactivate-drivers.corsa">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.corsa" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.corsa" requires="App-Activate-All.App-Deactivate-drivers.corsa"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.network-troubleshoot" requires="App-Activate-All.drivers.corsa">
+           <step name="App-Activate-All.Activate-network-troubleshoot"
+                 exec="onos ${OCI} app activate org.onosproject.network-troubleshoot" requires="App-Activate-All.drivers.corsa"/>
+           <group name="App-Activate-All.App-Check-network-troubleshoot" requires="App-Activate-All.Activate-network-troubleshoot">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-network-troubleshoot"
+                       exec="onos-check-apps ${OC#} network-troubleshoot includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-network-troubleshoot" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-network-troubleshoot"
+                 exec="onos ${OCI} app deactivate org.onosproject.network-troubleshoot" requires="App-Activate-All.App-Check-network-troubleshoot"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-network-troubleshoot"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-network-troubleshoot"/>      
+           <group name="App-Activate-All.App-Check-After-network-troubleshoot" requires="App-Activate-All.Wait-For-Deactivate-network-troubleshoot">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-network-troubleshoot" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-network-troubleshoot" requires="App-Activate-All.App-Deactivate-network-troubleshoot"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.mellanox" requires="App-Activate-All.network-troubleshoot">
+           <step name="App-Activate-All.Activate-drivers.mellanox"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.mellanox" requires="App-Activate-All.network-troubleshoot"/>
+           <group name="App-Activate-All.App-Check-drivers.mellanox" requires="App-Activate-All.Activate-drivers.mellanox">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.mellanox"
+                       exec="onos-check-apps ${OC#} drivers.mellanox includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.mellanox" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.mellanox"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.mellanox" requires="App-Activate-All.App-Check-drivers.mellanox"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.mellanox"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.mellanox"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.mellanox" requires="App-Activate-All.Wait-For-Deactivate-drivers.mellanox">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.mellanox" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.mellanox" requires="App-Activate-All.App-Deactivate-drivers.mellanox"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivermatrix" requires="App-Activate-All.drivers.mellanox">
+           <step name="App-Activate-All.Activate-drivermatrix"
+                 exec="onos ${OCI} app activate org.onosproject.drivermatrix" requires="App-Activate-All.drivers.mellanox"/>
+           <group name="App-Activate-All.App-Check-drivermatrix" requires="App-Activate-All.Activate-drivermatrix">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivermatrix"
+                       exec="onos-check-apps ${OC#} drivermatrix includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivermatrix" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivermatrix"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivermatrix" requires="App-Activate-All.App-Check-drivermatrix"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivermatrix"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivermatrix"/>      
+           <group name="App-Activate-All.App-Check-After-drivermatrix" requires="App-Activate-All.Wait-For-Deactivate-drivermatrix">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivermatrix" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivermatrix" requires="App-Activate-All.App-Deactivate-drivermatrix"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.messaging-perf" requires="App-Activate-All.drivermatrix">
+           <step name="App-Activate-All.Activate-messaging-perf"
+                 exec="onos ${OCI} app activate org.onosproject.messaging-perf" requires="App-Activate-All.drivermatrix"/>
+           <group name="App-Activate-All.App-Check-messaging-perf" requires="App-Activate-All.Activate-messaging-perf">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-messaging-perf"
+                       exec="onos-check-apps ${OC#} messaging-perf includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-messaging-perf" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-messaging-perf"
+                 exec="onos ${OCI} app deactivate org.onosproject.messaging-perf" requires="App-Activate-All.App-Check-messaging-perf"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-messaging-perf"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-messaging-perf"/>      
+           <group name="App-Activate-All.App-Check-After-messaging-perf" requires="App-Activate-All.Wait-For-Deactivate-messaging-perf">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-messaging-perf" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-messaging-perf" requires="App-Activate-All.App-Deactivate-messaging-perf"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.hostprobingprovider" requires="App-Activate-All.messaging-perf">
+           <step name="App-Activate-All.Activate-hostprobingprovider"
+                 exec="onos ${OCI} app activate org.onosproject.hostprobingprovider" requires="App-Activate-All.messaging-perf"/>
+           <group name="App-Activate-All.App-Check-hostprobingprovider" requires="App-Activate-All.Activate-hostprobingprovider">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-hostprobingprovider"
+                       exec="onos-check-apps ${OC#} hostprobingprovider includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-hostprobingprovider" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-hostprobingprovider"
+                 exec="onos ${OCI} app deactivate org.onosproject.hostprobingprovider" requires="App-Activate-All.App-Check-hostprobingprovider"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-hostprobingprovider"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-hostprobingprovider"/>      
+           <group name="App-Activate-All.App-Check-After-hostprobingprovider" requires="App-Activate-All.Wait-For-Deactivate-hostprobingprovider">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-hostprobingprovider" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-hostprobingprovider" requires="App-Activate-All.App-Deactivate-hostprobingprovider"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.pcep-api" requires="App-Activate-All.hostprobingprovider">
+           <step name="App-Activate-All.Activate-pcep-api"
+                 exec="onos ${OCI} app activate org.onosproject.pcep-api" requires="App-Activate-All.hostprobingprovider"/>
+           <group name="App-Activate-All.App-Check-pcep-api" requires="App-Activate-All.Activate-pcep-api">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-pcep-api"
+                       exec="onos-check-apps ${OC#} pcep-api includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-pcep-api" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-pcep-api"
+                 exec="onos ${OCI} app deactivate org.onosproject.pcep-api" requires="App-Activate-All.App-Check-pcep-api"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-pcep-api"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-pcep-api"/>      
+           <group name="App-Activate-All.App-Check-After-pcep-api" requires="App-Activate-All.Wait-For-Deactivate-pcep-api">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-pcep-api" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-pcep-api" requires="App-Activate-All.App-Deactivate-pcep-api"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.distributedprimitives" requires="App-Activate-All.pcep-api">
+           <step name="App-Activate-All.Activate-distributedprimitives"
+                 exec="onos ${OCI} app activate org.onosproject.distributedprimitives" requires="App-Activate-All.pcep-api"/>
+           <group name="App-Activate-All.App-Check-distributedprimitives" requires="App-Activate-All.Activate-distributedprimitives">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-distributedprimitives"
+                       exec="onos-check-apps ${OC#} distributedprimitives includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-distributedprimitives" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-distributedprimitives"
+                 exec="onos ${OCI} app deactivate org.onosproject.distributedprimitives" requires="App-Activate-All.App-Check-distributedprimitives"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-distributedprimitives"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-distributedprimitives"/>      
+           <group name="App-Activate-All.App-Check-After-distributedprimitives" requires="App-Activate-All.Wait-For-Deactivate-distributedprimitives">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-distributedprimitives" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-distributedprimitives" requires="App-Activate-All.App-Deactivate-distributedprimitives"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.openstackvtap" requires="App-Activate-All.distributedprimitives">
+           <step name="App-Activate-All.Activate-openstackvtap"
+                 exec="onos ${OCI} app activate org.onosproject.openstackvtap" requires="App-Activate-All.distributedprimitives"/>
+           <group name="App-Activate-All.App-Check-openstackvtap" requires="App-Activate-All.Activate-openstackvtap">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-openstackvtap"
+                       exec="onos-check-apps ${OC#} openstackvtap includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-openstackvtap" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-openstackvtap"
+                 exec="onos ${OCI} app deactivate org.onosproject.openstackvtap" requires="App-Activate-All.App-Check-openstackvtap"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-openstackvtap"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-openstackvtap"/>      
+           <group name="App-Activate-All.App-Check-After-openstackvtap" requires="App-Activate-All.Wait-For-Deactivate-openstackvtap">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-openstackvtap" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-openstackvtap" requires="App-Activate-All.App-Deactivate-openstackvtap"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.virtual" requires="App-Activate-All.openstackvtap">
+           <step name="App-Activate-All.Activate-virtual"
+                 exec="onos ${OCI} app activate org.onosproject.virtual" requires="App-Activate-All.openstackvtap"/>
+           <group name="App-Activate-All.App-Check-virtual" requires="App-Activate-All.Activate-virtual">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-virtual"
+                       exec="onos-check-apps ${OC#} virtual includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-virtual" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-virtual"
+                 exec="onos ${OCI} app deactivate org.onosproject.virtual" requires="App-Activate-All.App-Check-virtual"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-virtual"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-virtual"/>      
+           <group name="App-Activate-All.App-Check-After-virtual" requires="App-Activate-All.Wait-For-Deactivate-virtual">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-virtual" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-virtual" requires="App-Activate-All.App-Deactivate-virtual"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.models.openroadm" requires="App-Activate-All.virtual">
+           <step name="App-Activate-All.Activate-models.openroadm"
+                 exec="onos ${OCI} app activate org.onosproject.models.openroadm" requires="App-Activate-All.virtual"/>
+           <group name="App-Activate-All.App-Check-models.openroadm" requires="App-Activate-All.Activate-models.openroadm">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-models.openroadm"
+                       exec="onos-check-apps ${OC#} models.openroadm includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-models.openroadm" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-models.openroadm"
+                 exec="onos ${OCI} app deactivate org.onosproject.models.openroadm" requires="App-Activate-All.App-Check-models.openroadm"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-models.openroadm"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-models.openroadm"/>      
+           <group name="App-Activate-All.App-Check-After-models.openroadm" requires="App-Activate-All.Wait-For-Deactivate-models.openroadm">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-models.openroadm" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-models.openroadm" requires="App-Activate-All.App-Deactivate-models.openroadm"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.openroadm" requires="App-Activate-All.models.openroadm">
+           <step name="App-Activate-All.Activate-openroadm"
+                 exec="onos ${OCI} app activate org.onosproject.openroadm" requires="App-Activate-All.models.openroadm"/>
+           <group name="App-Activate-All.App-Check-openroadm" requires="App-Activate-All.Activate-openroadm">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-openroadm"
+                       exec="onos-check-apps ${OC#} openroadm includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-openroadm" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-openroadm"
+                 exec="onos ${OCI} app deactivate org.onosproject.openroadm" requires="App-Activate-All.App-Check-openroadm"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-openroadm"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-openroadm"/>      
+           <group name="App-Activate-All.App-Check-After-openroadm" requires="App-Activate-All.Wait-For-Deactivate-openroadm">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-openroadm" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-openroadm" requires="App-Activate-All.App-Deactivate-openroadm"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.tetopology" requires="App-Activate-All.openroadm">
+           <step name="App-Activate-All.Activate-tetopology"
+                 exec="onos ${OCI} app activate org.onosproject.tetopology" requires="App-Activate-All.openroadm"/>
+           <group name="App-Activate-All.App-Check-tetopology" requires="App-Activate-All.Activate-tetopology">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-tetopology"
+                       exec="onos-check-apps ${OC#} tetopology includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-tetopology" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-tetopology"
+                 exec="onos ${OCI} app deactivate org.onosproject.tetopology" requires="App-Activate-All.App-Check-tetopology"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-tetopology"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-tetopology"/>      
+           <group name="App-Activate-All.App-Check-After-tetopology" requires="App-Activate-All.Wait-For-Deactivate-tetopology">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-tetopology" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-tetopology" requires="App-Activate-All.App-Deactivate-tetopology"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.tetunnel" requires="App-Activate-All.tetopology">
+           <step name="App-Activate-All.Activate-tetunnel"
+                 exec="onos ${OCI} app activate org.onosproject.tetunnel" requires="App-Activate-All.tetopology"/>
+           <group name="App-Activate-All.App-Check-tetunnel" requires="App-Activate-All.Activate-tetunnel">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-tetunnel"
+                       exec="onos-check-apps ${OC#} tetunnel includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-tetunnel" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-tetunnel"
+                 exec="onos ${OCI} app deactivate org.onosproject.tetunnel" requires="App-Activate-All.App-Check-tetunnel"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-tetunnel"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-tetunnel"/>      
+           <group name="App-Activate-All.App-Check-After-tetunnel" requires="App-Activate-All.Wait-For-Deactivate-tetunnel">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-tetunnel" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-tetunnel" requires="App-Activate-All.App-Deactivate-tetunnel"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.ovsdbhostprovider" requires="App-Activate-All.tetunnel">
+           <step name="App-Activate-All.Activate-ovsdbhostprovider"
+                 exec="onos ${OCI} app activate org.onosproject.ovsdbhostprovider" requires="App-Activate-All.tetunnel"/>
+           <group name="App-Activate-All.App-Check-ovsdbhostprovider" requires="App-Activate-All.Activate-ovsdbhostprovider">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-ovsdbhostprovider"
+                       exec="onos-check-apps ${OC#} ovsdbhostprovider includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-ovsdbhostprovider" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-ovsdbhostprovider"
+                 exec="onos ${OCI} app deactivate org.onosproject.ovsdbhostprovider" requires="App-Activate-All.App-Check-ovsdbhostprovider"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-ovsdbhostprovider"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-ovsdbhostprovider"/>      
+           <group name="App-Activate-All.App-Check-After-ovsdbhostprovider" requires="App-Activate-All.Wait-For-Deactivate-ovsdbhostprovider">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-ovsdbhostprovider" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-ovsdbhostprovider" requires="App-Activate-All.App-Deactivate-ovsdbhostprovider"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.ovsdb" requires="App-Activate-All.ovsdbhostprovider">
+           <step name="App-Activate-All.Activate-ovsdb"
+                 exec="onos ${OCI} app activate org.onosproject.ovsdb" requires="App-Activate-All.ovsdbhostprovider"/>
+           <group name="App-Activate-All.App-Check-ovsdb" requires="App-Activate-All.Activate-ovsdb">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-ovsdb"
+                       exec="onos-check-apps ${OC#} ovsdb includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-ovsdb" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-ovsdb"
+                 exec="onos ${OCI} app deactivate org.onosproject.ovsdb" requires="App-Activate-All.App-Check-ovsdb"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-ovsdb"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-ovsdb"/>      
+           <group name="App-Activate-All.App-Check-After-ovsdb" requires="App-Activate-All.Wait-For-Deactivate-ovsdb">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-ovsdb" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-ovsdb" requires="App-Activate-All.App-Deactivate-ovsdb"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.barefoot" requires="App-Activate-All.ovsdb">
+           <step name="App-Activate-All.Activate-drivers.barefoot"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.barefoot" requires="App-Activate-All.ovsdb"/>
+           <group name="App-Activate-All.App-Check-drivers.barefoot" requires="App-Activate-All.Activate-drivers.barefoot">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.barefoot"
+                       exec="onos-check-apps ${OC#} drivers.barefoot includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.barefoot" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.barefoot"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.barefoot" requires="App-Activate-All.App-Check-drivers.barefoot"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.barefoot"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.barefoot"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.barefoot" requires="App-Activate-All.Wait-For-Deactivate-drivers.barefoot">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.barefoot" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.barefoot" requires="App-Activate-All.App-Deactivate-drivers.barefoot"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.influxdbmetrics" requires="App-Activate-All.drivers.barefoot">
+           <step name="App-Activate-All.Activate-influxdbmetrics"
+                 exec="onos ${OCI} app activate org.onosproject.influxdbmetrics" requires="App-Activate-All.drivers.barefoot"/>
+           <group name="App-Activate-All.App-Check-influxdbmetrics" requires="App-Activate-All.Activate-influxdbmetrics">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-influxdbmetrics"
+                       exec="onos-check-apps ${OC#} influxdbmetrics includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-influxdbmetrics" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-influxdbmetrics"
+                 exec="onos ${OCI} app deactivate org.onosproject.influxdbmetrics" requires="App-Activate-All.App-Check-influxdbmetrics"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-influxdbmetrics"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-influxdbmetrics"/>      
+           <group name="App-Activate-All.App-Check-After-influxdbmetrics" requires="App-Activate-All.Wait-For-Deactivate-influxdbmetrics">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-influxdbmetrics" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-influxdbmetrics" requires="App-Activate-All.App-Deactivate-influxdbmetrics"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.evpn-route-service" requires="App-Activate-All.influxdbmetrics">
+           <step name="App-Activate-All.Activate-evpn-route-service"
+                 exec="onos ${OCI} app activate org.onosproject.evpn-route-service" requires="App-Activate-All.influxdbmetrics"/>
+           <group name="App-Activate-All.App-Check-evpn-route-service" requires="App-Activate-All.Activate-evpn-route-service">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-evpn-route-service"
+                       exec="onos-check-apps ${OC#} evpn-route-service includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-evpn-route-service" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-evpn-route-service"
+                 exec="onos ${OCI} app deactivate org.onosproject.evpn-route-service" requires="App-Activate-All.App-Check-evpn-route-service"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-evpn-route-service"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-evpn-route-service"/>      
+           <group name="App-Activate-All.App-Check-After-evpn-route-service" requires="App-Activate-All.Wait-For-Deactivate-evpn-route-service">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-evpn-route-service" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-evpn-route-service" requires="App-Activate-All.App-Deactivate-evpn-route-service"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.gluon" requires="App-Activate-All.evpn-route-service">
+           <step name="App-Activate-All.Activate-gluon"
+                 exec="onos ${OCI} app activate org.onosproject.gluon" requires="App-Activate-All.evpn-route-service"/>
+           <group name="App-Activate-All.App-Check-gluon" requires="App-Activate-All.Activate-gluon">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-gluon"
+                       exec="onos-check-apps ${OC#} gluon includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-gluon" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-gluon"
+                 exec="onos ${OCI} app deactivate org.onosproject.gluon" requires="App-Activate-All.App-Check-gluon"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-gluon"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-gluon"/>      
+           <group name="App-Activate-All.App-Check-After-gluon" requires="App-Activate-All.Wait-For-Deactivate-gluon">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-gluon" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-gluon" requires="App-Activate-All.App-Deactivate-gluon"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.evpnopenflow" requires="App-Activate-All.gluon">
+           <step name="App-Activate-All.Activate-evpnopenflow"
+                 exec="onos ${OCI} app activate org.onosproject.evpnopenflow" requires="App-Activate-All.gluon"/>
+           <group name="App-Activate-All.App-Check-evpnopenflow" requires="App-Activate-All.Activate-evpnopenflow">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-evpnopenflow"
+                       exec="onos-check-apps ${OC#} evpnopenflow includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-evpnopenflow" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-evpnopenflow"
+                 exec="onos ${OCI} app deactivate org.onosproject.evpnopenflow" requires="App-Activate-All.App-Check-evpnopenflow"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-evpnopenflow"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-evpnopenflow"/>      
+           <group name="App-Activate-All.App-Check-After-evpnopenflow" requires="App-Activate-All.Wait-For-Deactivate-evpnopenflow">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-evpnopenflow" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-evpnopenflow" requires="App-Activate-All.App-Deactivate-evpnopenflow"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.juniper" requires="App-Activate-All.evpnopenflow">
+           <step name="App-Activate-All.Activate-drivers.juniper"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.juniper" requires="App-Activate-All.evpnopenflow"/>
+           <group name="App-Activate-All.App-Check-drivers.juniper" requires="App-Activate-All.Activate-drivers.juniper">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.juniper"
+                       exec="onos-check-apps ${OC#} drivers.juniper includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.juniper" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.juniper"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.juniper" requires="App-Activate-All.App-Check-drivers.juniper"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.juniper"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.juniper"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.juniper" requires="App-Activate-All.Wait-For-Deactivate-drivers.juniper">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.juniper" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.juniper" requires="App-Activate-All.App-Deactivate-drivers.juniper"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.pathpainter" requires="App-Activate-All.drivers.juniper">
+           <step name="App-Activate-All.Activate-pathpainter"
+                 exec="onos ${OCI} app activate org.onosproject.pathpainter" requires="App-Activate-All.drivers.juniper"/>
+           <group name="App-Activate-All.App-Check-pathpainter" requires="App-Activate-All.Activate-pathpainter">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-pathpainter"
+                       exec="onos-check-apps ${OC#} pathpainter includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-pathpainter" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-pathpainter"
+                 exec="onos ${OCI} app deactivate org.onosproject.pathpainter" requires="App-Activate-All.App-Check-pathpainter"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-pathpainter"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-pathpainter"/>      
+           <group name="App-Activate-All.App-Check-After-pathpainter" requires="App-Activate-All.Wait-For-Deactivate-pathpainter">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-pathpainter" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-pathpainter" requires="App-Activate-All.App-Deactivate-pathpainter"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.simplefabric" requires="App-Activate-All.pathpainter">
+           <step name="App-Activate-All.Activate-simplefabric"
+                 exec="onos ${OCI} app activate org.onosproject.simplefabric" requires="App-Activate-All.pathpainter"/>
+           <group name="App-Activate-All.App-Check-simplefabric" requires="App-Activate-All.Activate-simplefabric">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-simplefabric"
+                       exec="onos-check-apps ${OC#} simplefabric includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-simplefabric" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-simplefabric"
+                 exec="onos ${OCI} app deactivate org.onosproject.simplefabric" requires="App-Activate-All.App-Check-simplefabric"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-simplefabric"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-simplefabric"/>      
+           <group name="App-Activate-All.App-Check-After-simplefabric" requires="App-Activate-All.Wait-For-Deactivate-simplefabric">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-simplefabric" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-simplefabric" requires="App-Activate-All.App-Deactivate-simplefabric"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.flowanalyzer" requires="App-Activate-All.simplefabric">
+           <step name="App-Activate-All.Activate-flowanalyzer"
+                 exec="onos ${OCI} app activate org.onosproject.flowanalyzer" requires="App-Activate-All.simplefabric"/>
+           <group name="App-Activate-All.App-Check-flowanalyzer" requires="App-Activate-All.Activate-flowanalyzer">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-flowanalyzer"
+                       exec="onos-check-apps ${OC#} flowanalyzer includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-flowanalyzer" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-flowanalyzer"
+                 exec="onos ${OCI} app deactivate org.onosproject.flowanalyzer" requires="App-Activate-All.App-Check-flowanalyzer"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-flowanalyzer"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-flowanalyzer"/>      
+           <group name="App-Activate-All.App-Check-After-flowanalyzer" requires="App-Activate-All.Wait-For-Deactivate-flowanalyzer">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-flowanalyzer" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-flowanalyzer" requires="App-Activate-All.App-Deactivate-flowanalyzer"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.null" requires="App-Activate-All.flowanalyzer">
+           <step name="App-Activate-All.Activate-null"
+                 exec="onos ${OCI} app activate org.onosproject.null" requires="App-Activate-All.flowanalyzer"/>
+           <group name="App-Activate-All.App-Check-null" requires="App-Activate-All.Activate-null">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-null"
+                       exec="onos-check-apps ${OC#} null includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-null" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-null"
+                 exec="onos ${OCI} app deactivate org.onosproject.null" requires="App-Activate-All.App-Check-null"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-null"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-null"/>      
+           <group name="App-Activate-All.App-Check-After-null" requires="App-Activate-All.Wait-For-Deactivate-null">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-null" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-null" requires="App-Activate-All.App-Deactivate-null"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.server" requires="App-Activate-All.null">
+           <step name="App-Activate-All.Activate-drivers.server"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.server" requires="App-Activate-All.null"/>
+           <group name="App-Activate-All.App-Check-drivers.server" requires="App-Activate-All.Activate-drivers.server">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.server"
+                       exec="onos-check-apps ${OC#} drivers.server includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.server" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.server"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.server" requires="App-Activate-All.App-Check-drivers.server"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.server"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.server"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.server" requires="App-Activate-All.Wait-For-Deactivate-drivers.server">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.server" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.server" requires="App-Activate-All.App-Deactivate-drivers.server"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.gnmi" requires="App-Activate-All.drivers.server">
+           <step name="App-Activate-All.Activate-drivers.gnmi"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.gnmi" requires="App-Activate-All.drivers.server"/>
+           <group name="App-Activate-All.App-Check-drivers.gnmi" requires="App-Activate-All.Activate-drivers.gnmi">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.gnmi"
+                       exec="onos-check-apps ${OC#} drivers.gnmi includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.gnmi" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.gnmi"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.gnmi" requires="App-Activate-All.App-Check-drivers.gnmi"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.gnmi"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.gnmi"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.gnmi" requires="App-Activate-All.Wait-For-Deactivate-drivers.gnmi">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.gnmi" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.gnmi" requires="App-Activate-All.App-Deactivate-drivers.gnmi"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.stratum" requires="App-Activate-All.drivers.gnmi">
+           <step name="App-Activate-All.Activate-drivers.stratum"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.stratum" requires="App-Activate-All.drivers.gnmi"/>
+           <group name="App-Activate-All.App-Check-drivers.stratum" requires="App-Activate-All.Activate-drivers.stratum">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.stratum"
+                       exec="onos-check-apps ${OC#} drivers.stratum includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.stratum" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.stratum"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.stratum" requires="App-Activate-All.App-Check-drivers.stratum"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.stratum"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.stratum"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.stratum" requires="App-Activate-All.Wait-For-Deactivate-drivers.stratum">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.stratum" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.stratum" requires="App-Activate-All.App-Deactivate-drivers.stratum"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.workflow" requires="App-Activate-All.drivers.stratum">
+           <step name="App-Activate-All.Activate-workflow"
+                 exec="onos ${OCI} app activate org.onosproject.workflow" requires="App-Activate-All.drivers.stratum"/>
+           <group name="App-Activate-All.App-Check-workflow" requires="App-Activate-All.Activate-workflow">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-workflow"
+                       exec="onos-check-apps ${OC#} workflow includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-workflow" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-workflow"
+                 exec="onos ${OCI} app deactivate org.onosproject.workflow" requires="App-Activate-All.App-Check-workflow"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-workflow"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-workflow"/>      
+           <group name="App-Activate-All.App-Check-After-workflow" requires="App-Activate-All.Wait-For-Deactivate-workflow">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-workflow" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-workflow" requires="App-Activate-All.App-Deactivate-workflow"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.fibinstaller" requires="App-Activate-All.workflow">
+           <step name="App-Activate-All.Activate-fibinstaller"
+                 exec="onos ${OCI} app activate org.onosproject.fibinstaller" requires="App-Activate-All.workflow"/>
+           <group name="App-Activate-All.App-Check-fibinstaller" requires="App-Activate-All.Activate-fibinstaller">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-fibinstaller"
+                       exec="onos-check-apps ${OC#} fibinstaller includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-fibinstaller" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-fibinstaller"
+                 exec="onos ${OCI} app deactivate org.onosproject.fibinstaller" requires="App-Activate-All.App-Check-fibinstaller"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-fibinstaller"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-fibinstaller"/>      
+           <group name="App-Activate-All.App-Check-After-fibinstaller" requires="App-Activate-All.Wait-For-Deactivate-fibinstaller">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-fibinstaller" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-fibinstaller" requires="App-Activate-All.App-Deactivate-fibinstaller"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.vrouter" requires="App-Activate-All.fibinstaller">
+           <step name="App-Activate-All.Activate-vrouter"
+                 exec="onos ${OCI} app activate org.onosproject.vrouter" requires="App-Activate-All.fibinstaller"/>
+           <group name="App-Activate-All.App-Check-vrouter" requires="App-Activate-All.Activate-vrouter">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-vrouter"
+                       exec="onos-check-apps ${OC#} vrouter includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-vrouter" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-vrouter"
+                 exec="onos ${OCI} app deactivate org.onosproject.vrouter" requires="App-Activate-All.App-Check-vrouter"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-vrouter"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-vrouter"/>      
+           <group name="App-Activate-All.App-Check-After-vrouter" requires="App-Activate-All.Wait-For-Deactivate-vrouter">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-vrouter" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-vrouter" requires="App-Activate-All.App-Deactivate-vrouter"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.sdnip" requires="App-Activate-All.vrouter">
+           <step name="App-Activate-All.Activate-sdnip"
+                 exec="onos ${OCI} app activate org.onosproject.sdnip" requires="App-Activate-All.vrouter"/>
+           <group name="App-Activate-All.App-Check-sdnip" requires="App-Activate-All.Activate-sdnip">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-sdnip"
+                       exec="onos-check-apps ${OC#} sdnip includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-sdnip" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-sdnip"
+                 exec="onos ${OCI} app deactivate org.onosproject.sdnip" requires="App-Activate-All.App-Check-sdnip"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-sdnip"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-sdnip"/>      
+           <group name="App-Activate-All.App-Check-After-sdnip" requires="App-Activate-All.Wait-For-Deactivate-sdnip">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-sdnip" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-sdnip" requires="App-Activate-All.App-Deactivate-sdnip"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.artemis" requires="App-Activate-All.sdnip">
+           <step name="App-Activate-All.Activate-artemis"
+                 exec="onos ${OCI} app activate org.onosproject.artemis" requires="App-Activate-All.sdnip"/>
+           <group name="App-Activate-All.App-Check-artemis" requires="App-Activate-All.Activate-artemis">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-artemis"
+                       exec="onos-check-apps ${OC#} artemis includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-artemis" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-artemis"
+                 exec="onos ${OCI} app deactivate org.onosproject.artemis" requires="App-Activate-All.App-Check-artemis"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-artemis"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-artemis"/>      
+           <group name="App-Activate-All.App-Check-After-artemis" requires="App-Activate-All.Wait-For-Deactivate-artemis">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-artemis" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-artemis" requires="App-Activate-All.App-Deactivate-artemis"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.flow-perf" requires="App-Activate-All.artemis">
+           <step name="App-Activate-All.Activate-flow-perf"
+                 exec="onos ${OCI} app activate org.onosproject.flow-perf" requires="App-Activate-All.artemis"/>
+           <group name="App-Activate-All.App-Check-flow-perf" requires="App-Activate-All.Activate-flow-perf">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-flow-perf"
+                       exec="onos-check-apps ${OC#} flow-perf includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-flow-perf" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-flow-perf"
+                 exec="onos ${OCI} app deactivate org.onosproject.flow-perf" requires="App-Activate-All.App-Check-flow-perf"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-flow-perf"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-flow-perf"/>      
+           <group name="App-Activate-All.App-Check-After-flow-perf" requires="App-Activate-All.Wait-For-Deactivate-flow-perf">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-flow-perf" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-flow-perf" requires="App-Activate-All.App-Deactivate-flow-perf"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.rabbitmq" requires="App-Activate-All.flow-perf">
+           <step name="App-Activate-All.Activate-rabbitmq"
+                 exec="onos ${OCI} app activate org.onosproject.rabbitmq" requires="App-Activate-All.flow-perf"/>
+           <group name="App-Activate-All.App-Check-rabbitmq" requires="App-Activate-All.Activate-rabbitmq">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-rabbitmq"
+                       exec="onos-check-apps ${OC#} rabbitmq includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-rabbitmq" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-rabbitmq"
+                 exec="onos ${OCI} app deactivate org.onosproject.rabbitmq" requires="App-Activate-All.App-Check-rabbitmq"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-rabbitmq"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-rabbitmq"/>      
+           <group name="App-Activate-All.App-Check-After-rabbitmq" requires="App-Activate-All.Wait-For-Deactivate-rabbitmq">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-rabbitmq" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-rabbitmq" requires="App-Activate-All.App-Deactivate-rabbitmq"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.snmp" requires="App-Activate-All.rabbitmq">
+           <step name="App-Activate-All.Activate-snmp"
+                 exec="onos ${OCI} app activate org.onosproject.snmp" requires="App-Activate-All.rabbitmq"/>
+           <group name="App-Activate-All.App-Check-snmp" requires="App-Activate-All.Activate-snmp">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-snmp"
+                       exec="onos-check-apps ${OC#} snmp includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-snmp" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-snmp"
+                 exec="onos ${OCI} app deactivate org.onosproject.snmp" requires="App-Activate-All.App-Check-snmp"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-snmp"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-snmp"/>      
+           <group name="App-Activate-All.App-Check-After-snmp" requires="App-Activate-All.Wait-For-Deactivate-snmp">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-snmp" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-snmp" requires="App-Activate-All.App-Deactivate-snmp"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.newoptical" requires="App-Activate-All.snmp">
+           <step name="App-Activate-All.Activate-newoptical"
+                 exec="onos ${OCI} app activate org.onosproject.newoptical" requires="App-Activate-All.snmp"/>
+           <group name="App-Activate-All.App-Check-newoptical" requires="App-Activate-All.Activate-newoptical">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-newoptical"
+                       exec="onos-check-apps ${OC#} newoptical includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-newoptical" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-newoptical"
+                 exec="onos ${OCI} app deactivate org.onosproject.newoptical" requires="App-Activate-All.App-Check-newoptical"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-newoptical"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-newoptical"/>      
+           <group name="App-Activate-All.App-Check-After-newoptical" requires="App-Activate-All.Wait-For-Deactivate-newoptical">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-newoptical" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-newoptical" requires="App-Activate-All.App-Deactivate-newoptical"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.linkdiscovery" requires="App-Activate-All.newoptical">
+           <step name="App-Activate-All.Activate-linkdiscovery"
+                 exec="onos ${OCI} app activate org.onosproject.linkdiscovery" requires="App-Activate-All.newoptical"/>
+           <group name="App-Activate-All.App-Check-linkdiscovery" requires="App-Activate-All.Activate-linkdiscovery">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-linkdiscovery"
+                       exec="onos-check-apps ${OC#} linkdiscovery includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-linkdiscovery" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-linkdiscovery"
+                 exec="onos ${OCI} app deactivate org.onosproject.linkdiscovery" requires="App-Activate-All.App-Check-linkdiscovery"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-linkdiscovery"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-linkdiscovery"/>      
+           <group name="App-Activate-All.App-Check-After-linkdiscovery" requires="App-Activate-All.Wait-For-Deactivate-linkdiscovery">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-linkdiscovery" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-linkdiscovery" requires="App-Activate-All.App-Deactivate-linkdiscovery"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.arista" requires="App-Activate-All.linkdiscovery">
+           <step name="App-Activate-All.Activate-drivers.arista"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.arista" requires="App-Activate-All.linkdiscovery"/>
+           <group name="App-Activate-All.App-Check-drivers.arista" requires="App-Activate-All.Activate-drivers.arista">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.arista"
+                       exec="onos-check-apps ${OC#} drivers.arista includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.arista" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.arista"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.arista" requires="App-Activate-All.App-Check-drivers.arista"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.arista"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.arista"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.arista" requires="App-Activate-All.Wait-For-Deactivate-drivers.arista">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.arista" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.arista" requires="App-Activate-All.App-Deactivate-drivers.arista"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.pim" requires="App-Activate-All.drivers.arista">
+           <step name="App-Activate-All.Activate-pim"
+                 exec="onos ${OCI} app activate org.onosproject.pim" requires="App-Activate-All.drivers.arista"/>
+           <group name="App-Activate-All.App-Check-pim" requires="App-Activate-All.Activate-pim">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-pim"
+                       exec="onos-check-apps ${OC#} pim includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-pim" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-pim"
+                 exec="onos ${OCI} app deactivate org.onosproject.pim" requires="App-Activate-All.App-Check-pim"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-pim"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-pim"/>      
+           <group name="App-Activate-All.App-Check-After-pim" requires="App-Activate-All.Wait-For-Deactivate-pim">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-pim" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-pim" requires="App-Activate-All.App-Deactivate-pim"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.routescale" requires="App-Activate-All.pim">
+           <step name="App-Activate-All.Activate-routescale"
+                 exec="onos ${OCI} app activate org.onosproject.routescale" requires="App-Activate-All.pim"/>
+           <group name="App-Activate-All.App-Check-routescale" requires="App-Activate-All.Activate-routescale">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-routescale"
+                       exec="onos-check-apps ${OC#} routescale includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-routescale" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-routescale"
+                 exec="onos ${OCI} app deactivate org.onosproject.routescale" requires="App-Activate-All.App-Check-routescale"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-routescale"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-routescale"/>      
+           <group name="App-Activate-All.App-Check-After-routescale" requires="App-Activate-All.Wait-For-Deactivate-routescale">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-routescale" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-routescale" requires="App-Activate-All.App-Deactivate-routescale"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.mcast" requires="App-Activate-All.routescale">
+           <step name="App-Activate-All.Activate-mcast"
+                 exec="onos ${OCI} app activate org.onosproject.mcast" requires="App-Activate-All.routescale"/>
+           <group name="App-Activate-All.App-Check-mcast" requires="App-Activate-All.Activate-mcast">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-mcast"
+                       exec="onos-check-apps ${OC#} mcast includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-mcast" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-mcast"
+                 exec="onos ${OCI} app deactivate org.onosproject.mcast" requires="App-Activate-All.App-Check-mcast"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-mcast"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-mcast"/>      
+           <group name="App-Activate-All.App-Check-After-mcast" requires="App-Activate-All.Wait-For-Deactivate-mcast">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-mcast" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-mcast" requires="App-Activate-All.App-Deactivate-mcast"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.segmentrouting" requires="App-Activate-All.mcast">
+           <step name="App-Activate-All.Activate-segmentrouting"
+                 exec="onos ${OCI} app activate org.onosproject.segmentrouting" requires="App-Activate-All.mcast"/>
+           <group name="App-Activate-All.App-Check-segmentrouting" requires="App-Activate-All.Activate-segmentrouting">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-segmentrouting"
+                       exec="onos-check-apps ${OC#} segmentrouting includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-segmentrouting" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-segmentrouting"
+                 exec="onos ${OCI} app deactivate org.onosproject.segmentrouting" requires="App-Activate-All.App-Check-segmentrouting"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-segmentrouting"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-segmentrouting"/>      
+           <group name="App-Activate-All.App-Check-After-segmentrouting" requires="App-Activate-All.Wait-For-Deactivate-segmentrouting">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-segmentrouting" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-segmentrouting" requires="App-Activate-All.App-Deactivate-segmentrouting"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.protocols.xmpp" requires="App-Activate-All.segmentrouting">
+           <step name="App-Activate-All.Activate-protocols.xmpp"
+                 exec="onos ${OCI} app activate org.onosproject.protocols.xmpp" requires="App-Activate-All.segmentrouting"/>
+           <group name="App-Activate-All.App-Check-protocols.xmpp" requires="App-Activate-All.Activate-protocols.xmpp">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-protocols.xmpp"
+                       exec="onos-check-apps ${OC#} protocols.xmpp includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-protocols.xmpp" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-protocols.xmpp"
+                 exec="onos ${OCI} app deactivate org.onosproject.protocols.xmpp" requires="App-Activate-All.App-Check-protocols.xmpp"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-protocols.xmpp"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-protocols.xmpp"/>      
+           <group name="App-Activate-All.App-Check-After-protocols.xmpp" requires="App-Activate-All.Wait-For-Deactivate-protocols.xmpp">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-protocols.xmpp" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-protocols.xmpp" requires="App-Activate-All.App-Deactivate-protocols.xmpp"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.openstacktelemetry" requires="App-Activate-All.protocols.xmpp">
+           <step name="App-Activate-All.Activate-openstacktelemetry"
+                 exec="onos ${OCI} app activate org.onosproject.openstacktelemetry" requires="App-Activate-All.protocols.xmpp"/>
+           <group name="App-Activate-All.App-Check-openstacktelemetry" requires="App-Activate-All.Activate-openstacktelemetry">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-openstacktelemetry"
+                       exec="onos-check-apps ${OC#} openstacktelemetry includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-openstacktelemetry" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-openstacktelemetry"
+                 exec="onos ${OCI} app deactivate org.onosproject.openstacktelemetry" requires="App-Activate-All.App-Check-openstacktelemetry"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-openstacktelemetry"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-openstacktelemetry"/>      
+           <group name="App-Activate-All.App-Check-After-openstacktelemetry" requires="App-Activate-All.Wait-For-Deactivate-openstacktelemetry">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-openstacktelemetry" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-openstacktelemetry" requires="App-Activate-All.App-Deactivate-openstacktelemetry"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.ciena.c5162" requires="App-Activate-All.openstacktelemetry">
+           <step name="App-Activate-All.Activate-drivers.ciena.c5162"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.ciena.c5162" requires="App-Activate-All.openstacktelemetry"/>
+           <group name="App-Activate-All.App-Check-drivers.ciena.c5162" requires="App-Activate-All.Activate-drivers.ciena.c5162">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.ciena.c5162"
+                       exec="onos-check-apps ${OC#} drivers.ciena.c5162 includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.ciena.c5162" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.ciena.c5162"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.ciena.c5162" requires="App-Activate-All.App-Check-drivers.ciena.c5162"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.ciena.c5162"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.ciena.c5162"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.ciena.c5162" requires="App-Activate-All.Wait-For-Deactivate-drivers.ciena.c5162">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.ciena.c5162" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.ciena.c5162" requires="App-Activate-All.App-Deactivate-drivers.ciena.c5162"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.netcfg-monitor" requires="App-Activate-All.drivers.ciena.c5162">
+           <step name="App-Activate-All.Activate-netcfg-monitor"
+                 exec="onos ${OCI} app activate org.onosproject.netcfg-monitor" requires="App-Activate-All.drivers.ciena.c5162"/>
+           <group name="App-Activate-All.App-Check-netcfg-monitor" requires="App-Activate-All.Activate-netcfg-monitor">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-netcfg-monitor"
+                       exec="onos-check-apps ${OC#} netcfg-monitor includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-netcfg-monitor" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-netcfg-monitor"
+                 exec="onos ${OCI} app deactivate org.onosproject.netcfg-monitor" requires="App-Activate-All.App-Check-netcfg-monitor"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-netcfg-monitor"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-netcfg-monitor"/>      
+           <group name="App-Activate-All.App-Check-After-netcfg-monitor" requires="App-Activate-All.Wait-For-Deactivate-netcfg-monitor">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-netcfg-monitor" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-netcfg-monitor" requires="App-Activate-All.App-Deactivate-netcfg-monitor"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.xmpp.device" requires="App-Activate-All.netcfg-monitor">
+           <step name="App-Activate-All.Activate-xmpp.device"
+                 exec="onos ${OCI} app activate org.onosproject.xmpp.device" requires="App-Activate-All.netcfg-monitor"/>
+           <group name="App-Activate-All.App-Check-xmpp.device" requires="App-Activate-All.Activate-xmpp.device">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-xmpp.device"
+                       exec="onos-check-apps ${OC#} xmpp.device includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-xmpp.device" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-xmpp.device"
+                 exec="onos ${OCI} app deactivate org.onosproject.xmpp.device" requires="App-Activate-All.App-Check-xmpp.device"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-xmpp.device"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-xmpp.device"/>      
+           <group name="App-Activate-All.App-Check-After-xmpp.device" requires="App-Activate-All.Wait-For-Deactivate-xmpp.device">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-xmpp.device" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-xmpp.device" requires="App-Activate-All.App-Deactivate-xmpp.device"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.flowspec-api" requires="App-Activate-All.xmpp.device">
+           <step name="App-Activate-All.Activate-flowspec-api"
+                 exec="onos ${OCI} app activate org.onosproject.flowspec-api" requires="App-Activate-All.xmpp.device"/>
+           <group name="App-Activate-All.App-Check-flowspec-api" requires="App-Activate-All.Activate-flowspec-api">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-flowspec-api"
+                       exec="onos-check-apps ${OC#} flowspec-api includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-flowspec-api" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-flowspec-api"
+                 exec="onos ${OCI} app deactivate org.onosproject.flowspec-api" requires="App-Activate-All.App-Check-flowspec-api"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-flowspec-api"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-flowspec-api"/>      
+           <group name="App-Activate-All.App-Check-After-flowspec-api" requires="App-Activate-All.Wait-For-Deactivate-flowspec-api">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-flowspec-api" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-flowspec-api" requires="App-Activate-All.App-Deactivate-flowspec-api"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.routeradvertisement" requires="App-Activate-All.flowspec-api">
+           <step name="App-Activate-All.Activate-routeradvertisement"
+                 exec="onos ${OCI} app activate org.onosproject.routeradvertisement" requires="App-Activate-All.flowspec-api"/>
+           <group name="App-Activate-All.App-Check-routeradvertisement" requires="App-Activate-All.Activate-routeradvertisement">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-routeradvertisement"
+                       exec="onos-check-apps ${OC#} routeradvertisement includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-routeradvertisement" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-routeradvertisement"
+                 exec="onos ${OCI} app deactivate org.onosproject.routeradvertisement" requires="App-Activate-All.App-Check-routeradvertisement"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-routeradvertisement"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-routeradvertisement"/>      
+           <group name="App-Activate-All.App-Check-After-routeradvertisement" requires="App-Activate-All.Wait-For-Deactivate-routeradvertisement">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-routeradvertisement" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-routeradvertisement" requires="App-Activate-All.App-Deactivate-routeradvertisement"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.packet-stats" requires="App-Activate-All.routeradvertisement">
+           <step name="App-Activate-All.Activate-packet-stats"
+                 exec="onos ${OCI} app activate org.onosproject.packet-stats" requires="App-Activate-All.routeradvertisement"/>
+           <group name="App-Activate-All.App-Check-packet-stats" requires="App-Activate-All.Activate-packet-stats">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-packet-stats"
+                       exec="onos-check-apps ${OC#} packet-stats includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-packet-stats" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-packet-stats"
+                 exec="onos ${OCI} app deactivate org.onosproject.packet-stats" requires="App-Activate-All.App-Check-packet-stats"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-packet-stats"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-packet-stats"/>      
+           <group name="App-Activate-All.App-Check-After-packet-stats" requires="App-Activate-All.Wait-For-Deactivate-packet-stats">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-packet-stats" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-packet-stats" requires="App-Activate-All.App-Deactivate-packet-stats"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.mlb" requires="App-Activate-All.packet-stats">
+           <step name="App-Activate-All.Activate-mlb"
+                 exec="onos ${OCI} app activate org.onosproject.mlb" requires="App-Activate-All.packet-stats"/>
+           <group name="App-Activate-All.App-Check-mlb" requires="App-Activate-All.Activate-mlb">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-mlb"
+                       exec="onos-check-apps ${OC#} mlb includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-mlb" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-mlb"
+                 exec="onos ${OCI} app deactivate org.onosproject.mlb" requires="App-Activate-All.App-Check-mlb"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-mlb"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-mlb"/>      
+           <group name="App-Activate-All.App-Check-After-mlb" requires="App-Activate-All.Wait-For-Deactivate-mlb">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-mlb" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-mlb" requires="App-Activate-All.App-Deactivate-mlb"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.flowspec" requires="App-Activate-All.mlb">
+           <step name="App-Activate-All.Activate-drivers.flowspec"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.flowspec" requires="App-Activate-All.mlb"/>
+           <group name="App-Activate-All.App-Check-drivers.flowspec" requires="App-Activate-All.Activate-drivers.flowspec">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.flowspec"
+                       exec="onos-check-apps ${OC#} drivers.flowspec includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.flowspec" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.flowspec"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.flowspec" requires="App-Activate-All.App-Check-drivers.flowspec"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.flowspec"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.flowspec"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.flowspec" requires="App-Activate-All.Wait-For-Deactivate-drivers.flowspec">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.flowspec" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.flowspec" requires="App-Activate-All.App-Deactivate-drivers.flowspec"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.pcep" requires="App-Activate-All.drivers.flowspec">
+           <step name="App-Activate-All.Activate-pcep"
+                 exec="onos ${OCI} app activate org.onosproject.pcep" requires="App-Activate-All.drivers.flowspec"/>
+           <group name="App-Activate-All.App-Check-pcep" requires="App-Activate-All.Activate-pcep">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-pcep"
+                       exec="onos-check-apps ${OC#} pcep includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-pcep" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-pcep"
+                 exec="onos ${OCI} app deactivate org.onosproject.pcep" requires="App-Activate-All.App-Check-pcep"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-pcep"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-pcep"/>      
+           <group name="App-Activate-All.App-Check-After-pcep" requires="App-Activate-All.Wait-For-Deactivate-pcep">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-pcep" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-pcep" requires="App-Activate-All.App-Deactivate-pcep"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.ofagent" requires="App-Activate-All.pcep">
+           <step name="App-Activate-All.Activate-ofagent"
+                 exec="onos ${OCI} app activate org.onosproject.ofagent" requires="App-Activate-All.pcep"/>
+           <group name="App-Activate-All.App-Check-ofagent" requires="App-Activate-All.Activate-ofagent">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-ofagent"
+                       exec="onos-check-apps ${OC#} ofagent includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-ofagent" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-ofagent"
+                 exec="onos ${OCI} app deactivate org.onosproject.ofagent" requires="App-Activate-All.App-Check-ofagent"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-ofagent"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-ofagent"/>      
+           <group name="App-Activate-All.App-Check-After-ofagent" requires="App-Activate-All.Wait-For-Deactivate-ofagent">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-ofagent" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-ofagent" requires="App-Activate-All.App-Deactivate-ofagent"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.demo" requires="App-Activate-All.ofagent">
+           <step name="App-Activate-All.Activate-demo"
+                 exec="onos ${OCI} app activate org.onosproject.demo" requires="App-Activate-All.ofagent"/>
+           <group name="App-Activate-All.App-Check-demo" requires="App-Activate-All.Activate-demo">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-demo"
+                       exec="onos-check-apps ${OC#} demo includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-demo" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-demo"
+                 exec="onos ${OCI} app deactivate org.onosproject.demo" requires="App-Activate-All.App-Check-demo"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-demo"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-demo"/>      
+           <group name="App-Activate-All.App-Check-After-demo" requires="App-Activate-All.Wait-For-Deactivate-demo">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-demo" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-demo" requires="App-Activate-All.App-Deactivate-demo"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.t3" requires="App-Activate-All.demo">
+           <step name="App-Activate-All.Activate-t3"
+                 exec="onos ${OCI} app activate org.onosproject.t3" requires="App-Activate-All.demo"/>
+           <group name="App-Activate-All.App-Check-t3" requires="App-Activate-All.Activate-t3">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-t3"
+                       exec="onos-check-apps ${OC#} t3 includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-t3" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-t3"
+                 exec="onos ${OCI} app deactivate org.onosproject.t3" requires="App-Activate-All.App-Check-t3"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-t3"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-t3"/>      
+           <group name="App-Activate-All.App-Check-After-t3" requires="App-Activate-All.Wait-For-Deactivate-t3">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-t3" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-t3" requires="App-Activate-All.App-Deactivate-t3"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.virtualbng" requires="App-Activate-All.t3">
+           <step name="App-Activate-All.Activate-virtualbng"
+                 exec="onos ${OCI} app activate org.onosproject.virtualbng" requires="App-Activate-All.t3"/>
+           <group name="App-Activate-All.App-Check-virtualbng" requires="App-Activate-All.Activate-virtualbng">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-virtualbng"
+                       exec="onos-check-apps ${OC#} virtualbng includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-virtualbng" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-virtualbng"
+                 exec="onos ${OCI} app deactivate org.onosproject.virtualbng" requires="App-Activate-All.App-Check-virtualbng"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-virtualbng"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-virtualbng"/>      
+           <group name="App-Activate-All.App-Check-After-virtualbng" requires="App-Activate-All.Wait-For-Deactivate-virtualbng">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-virtualbng" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-virtualbng" requires="App-Activate-All.App-Deactivate-virtualbng"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.gangliametrics" requires="App-Activate-All.virtualbng">
+           <step name="App-Activate-All.Activate-gangliametrics"
+                 exec="onos ${OCI} app activate org.onosproject.gangliametrics" requires="App-Activate-All.virtualbng"/>
+           <group name="App-Activate-All.App-Check-gangliametrics" requires="App-Activate-All.Activate-gangliametrics">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-gangliametrics"
+                       exec="onos-check-apps ${OC#} gangliametrics includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-gangliametrics" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-gangliametrics"
+                 exec="onos ${OCI} app deactivate org.onosproject.gangliametrics" requires="App-Activate-All.App-Check-gangliametrics"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-gangliametrics"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-gangliametrics"/>      
+           <group name="App-Activate-All.App-Check-After-gangliametrics" requires="App-Activate-All.Wait-For-Deactivate-gangliametrics">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-gangliametrics" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-gangliametrics" requires="App-Activate-All.App-Deactivate-gangliametrics"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.ciena.c5170" requires="App-Activate-All.gangliametrics">
+           <step name="App-Activate-All.Activate-drivers.ciena.c5170"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.ciena.c5170" requires="App-Activate-All.gangliametrics"/>
+           <group name="App-Activate-All.App-Check-drivers.ciena.c5170" requires="App-Activate-All.Activate-drivers.ciena.c5170">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.ciena.c5170"
+                       exec="onos-check-apps ${OC#} drivers.ciena.c5170 includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.ciena.c5170" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.ciena.c5170"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.ciena.c5170" requires="App-Activate-All.App-Check-drivers.ciena.c5170"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.ciena.c5170"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.ciena.c5170"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.ciena.c5170" requires="App-Activate-All.Wait-For-Deactivate-drivers.ciena.c5170">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.ciena.c5170" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.ciena.c5170" requires="App-Activate-All.App-Deactivate-drivers.ciena.c5170"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.oplink" requires="App-Activate-All.drivers.ciena.c5170">
+           <step name="App-Activate-All.Activate-drivers.oplink"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.oplink" requires="App-Activate-All.drivers.ciena.c5170"/>
+           <group name="App-Activate-All.App-Check-drivers.oplink" requires="App-Activate-All.Activate-drivers.oplink">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.oplink"
+                       exec="onos-check-apps ${OC#} drivers.oplink includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.oplink" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.oplink"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.oplink" requires="App-Activate-All.App-Check-drivers.oplink"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.oplink"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.oplink"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.oplink" requires="App-Activate-All.Wait-For-Deactivate-drivers.oplink">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.oplink" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.oplink" requires="App-Activate-All.App-Deactivate-drivers.oplink"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.hp" requires="App-Activate-All.drivers.oplink">
+           <step name="App-Activate-All.Activate-drivers.hp"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.hp" requires="App-Activate-All.drivers.oplink"/>
+           <group name="App-Activate-All.App-Check-drivers.hp" requires="App-Activate-All.Activate-drivers.hp">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.hp"
+                       exec="onos-check-apps ${OC#} drivers.hp includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.hp" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.hp"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.hp" requires="App-Activate-All.App-Check-drivers.hp"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.hp"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.hp"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.hp" requires="App-Activate-All.Wait-For-Deactivate-drivers.hp">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.hp" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.hp" requires="App-Activate-All.App-Deactivate-drivers.hp"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.cisco.rest" requires="App-Activate-All.drivers.hp">
+           <step name="App-Activate-All.Activate-drivers.cisco.rest"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.cisco.rest" requires="App-Activate-All.drivers.hp"/>
+           <group name="App-Activate-All.App-Check-drivers.cisco.rest" requires="App-Activate-All.Activate-drivers.cisco.rest">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.cisco.rest"
+                       exec="onos-check-apps ${OC#} drivers.cisco.rest includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.cisco.rest" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.cisco.rest"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.cisco.rest" requires="App-Activate-All.App-Check-drivers.cisco.rest"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.cisco.rest"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.cisco.rest"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.cisco.rest" requires="App-Activate-All.Wait-For-Deactivate-drivers.cisco.rest">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.cisco.rest" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.cisco.rest" requires="App-Activate-All.App-Deactivate-drivers.cisco.rest"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.roadm" requires="App-Activate-All.drivers.cisco.rest">
+           <step name="App-Activate-All.Activate-roadm"
+                 exec="onos ${OCI} app activate org.onosproject.roadm" requires="App-Activate-All.drivers.cisco.rest"/>
+           <group name="App-Activate-All.App-Check-roadm" requires="App-Activate-All.Activate-roadm">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-roadm"
+                       exec="onos-check-apps ${OC#} roadm includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-roadm" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-roadm"
+                 exec="onos ${OCI} app deactivate org.onosproject.roadm" requires="App-Activate-All.App-Check-roadm"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-roadm"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-roadm"/>      
+           <group name="App-Activate-All.App-Check-After-roadm" requires="App-Activate-All.Wait-For-Deactivate-roadm">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-roadm" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-roadm" requires="App-Activate-All.App-Deactivate-roadm"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.bmv2" requires="App-Activate-All.roadm">
+           <step name="App-Activate-All.Activate-drivers.bmv2"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.bmv2" requires="App-Activate-All.roadm"/>
+           <group name="App-Activate-All.App-Check-drivers.bmv2" requires="App-Activate-All.Activate-drivers.bmv2">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.bmv2"
+                       exec="onos-check-apps ${OC#} drivers.bmv2 includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.bmv2" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.bmv2"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.bmv2" requires="App-Activate-All.App-Check-drivers.bmv2"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.bmv2"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.bmv2"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.bmv2" requires="App-Activate-All.Wait-For-Deactivate-drivers.bmv2">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.bmv2" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.bmv2" requires="App-Activate-All.App-Deactivate-drivers.bmv2"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.vpls" requires="App-Activate-All.drivers.bmv2">
+           <step name="App-Activate-All.Activate-vpls"
+                 exec="onos ${OCI} app activate org.onosproject.vpls" requires="App-Activate-All.drivers.bmv2"/>
+           <group name="App-Activate-All.App-Check-vpls" requires="App-Activate-All.Activate-vpls">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-vpls"
+                       exec="onos-check-apps ${OC#} vpls includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-vpls" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-vpls"
+                 exec="onos ${OCI} app deactivate org.onosproject.vpls" requires="App-Activate-All.App-Check-vpls"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-vpls"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-vpls"/>      
+           <group name="App-Activate-All.App-Check-After-vpls" requires="App-Activate-All.Wait-For-Deactivate-vpls">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-vpls" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-vpls" requires="App-Activate-All.App-Deactivate-vpls"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.p4tutorial.pipeconf" requires="App-Activate-All.vpls">
+           <step name="App-Activate-All.Activate-p4tutorial.pipeconf"
+                 exec="onos ${OCI} app activate org.onosproject.p4tutorial.pipeconf" requires="App-Activate-All.vpls"/>
+           <group name="App-Activate-All.App-Check-p4tutorial.pipeconf" requires="App-Activate-All.Activate-p4tutorial.pipeconf">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-p4tutorial.pipeconf"
+                       exec="onos-check-apps ${OC#} p4tutorial.pipeconf includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-p4tutorial.pipeconf" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-p4tutorial.pipeconf"
+                 exec="onos ${OCI} app deactivate org.onosproject.p4tutorial.pipeconf" requires="App-Activate-All.App-Check-p4tutorial.pipeconf"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-p4tutorial.pipeconf"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-p4tutorial.pipeconf"/>      
+           <group name="App-Activate-All.App-Check-After-p4tutorial.pipeconf" requires="App-Activate-All.Wait-For-Deactivate-p4tutorial.pipeconf">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-p4tutorial.pipeconf" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-p4tutorial.pipeconf" requires="App-Activate-All.App-Deactivate-p4tutorial.pipeconf"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.p4tutorial.mytunnel" requires="App-Activate-All.p4tutorial.pipeconf">
+           <step name="App-Activate-All.Activate-p4tutorial.mytunnel"
+                 exec="onos ${OCI} app activate org.onosproject.p4tutorial.mytunnel" requires="App-Activate-All.p4tutorial.pipeconf"/>
+           <group name="App-Activate-All.App-Check-p4tutorial.mytunnel" requires="App-Activate-All.Activate-p4tutorial.mytunnel">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-p4tutorial.mytunnel"
+                       exec="onos-check-apps ${OC#} p4tutorial.mytunnel includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-p4tutorial.mytunnel" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-p4tutorial.mytunnel"
+                 exec="onos ${OCI} app deactivate org.onosproject.p4tutorial.mytunnel" requires="App-Activate-All.App-Check-p4tutorial.mytunnel"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-p4tutorial.mytunnel"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-p4tutorial.mytunnel"/>      
+           <group name="App-Activate-All.App-Check-After-p4tutorial.mytunnel" requires="App-Activate-All.Wait-For-Deactivate-p4tutorial.mytunnel">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-p4tutorial.mytunnel" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-p4tutorial.mytunnel" requires="App-Activate-All.App-Deactivate-p4tutorial.mytunnel"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.openstacktroubleshoot" requires="App-Activate-All.p4tutorial.mytunnel">
+           <step name="App-Activate-All.Activate-openstacktroubleshoot"
+                 exec="onos ${OCI} app activate org.onosproject.openstacktroubleshoot" requires="App-Activate-All.p4tutorial.mytunnel"/>
+           <group name="App-Activate-All.App-Check-openstacktroubleshoot" requires="App-Activate-All.Activate-openstacktroubleshoot">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-openstacktroubleshoot"
+                       exec="onos-check-apps ${OC#} openstacktroubleshoot includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-openstacktroubleshoot" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-openstacktroubleshoot"
+                 exec="onos ${OCI} app deactivate org.onosproject.openstacktroubleshoot" requires="App-Activate-All.App-Check-openstacktroubleshoot"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-openstacktroubleshoot"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-openstacktroubleshoot"/>      
+           <group name="App-Activate-All.App-Check-After-openstacktroubleshoot" requires="App-Activate-All.Wait-For-Deactivate-openstacktroubleshoot">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-openstacktroubleshoot" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-openstacktroubleshoot" requires="App-Activate-All.App-Deactivate-openstacktroubleshoot"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.models.ciena.waveserverai" requires="App-Activate-All.openstacktroubleshoot">
+           <step name="App-Activate-All.Activate-models.ciena.waveserverai"
+                 exec="onos ${OCI} app activate org.onosproject.models.ciena.waveserverai" requires="App-Activate-All.openstacktroubleshoot"/>
+           <group name="App-Activate-All.App-Check-models.ciena.waveserverai" requires="App-Activate-All.Activate-models.ciena.waveserverai">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-models.ciena.waveserverai"
+                       exec="onos-check-apps ${OC#} models.ciena.waveserverai includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-models.ciena.waveserverai" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-models.ciena.waveserverai"
+                 exec="onos ${OCI} app deactivate org.onosproject.models.ciena.waveserverai" requires="App-Activate-All.App-Check-models.ciena.waveserverai"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-models.ciena.waveserverai"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-models.ciena.waveserverai"/>      
+           <group name="App-Activate-All.App-Check-After-models.ciena.waveserverai" requires="App-Activate-All.Wait-For-Deactivate-models.ciena.waveserverai">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-models.ciena.waveserverai" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-models.ciena.waveserverai" requires="App-Activate-All.App-Deactivate-models.ciena.waveserverai"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.ciena.waveserverai" requires="App-Activate-All.models.ciena.waveserverai">
+           <step name="App-Activate-All.Activate-drivers.ciena.waveserverai"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.ciena.waveserverai" requires="App-Activate-All.models.ciena.waveserverai"/>
+           <group name="App-Activate-All.App-Check-drivers.ciena.waveserverai" requires="App-Activate-All.Activate-drivers.ciena.waveserverai">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.ciena.waveserverai"
+                       exec="onos-check-apps ${OC#} drivers.ciena.waveserverai includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.ciena.waveserverai" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.ciena.waveserverai"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.ciena.waveserverai" requires="App-Activate-All.App-Check-drivers.ciena.waveserverai"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.ciena.waveserverai"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.ciena.waveserverai"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.ciena.waveserverai" requires="App-Activate-All.Wait-For-Deactivate-drivers.ciena.waveserverai">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.ciena.waveserverai" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.ciena.waveserverai" requires="App-Activate-All.App-Deactivate-drivers.ciena.waveserverai"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.fujitsu" requires="App-Activate-All.drivers.ciena.waveserverai">
+           <step name="App-Activate-All.Activate-drivers.fujitsu"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.fujitsu" requires="App-Activate-All.drivers.ciena.waveserverai"/>
+           <group name="App-Activate-All.App-Check-drivers.fujitsu" requires="App-Activate-All.Activate-drivers.fujitsu">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.fujitsu"
+                       exec="onos-check-apps ${OC#} drivers.fujitsu includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.fujitsu" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.fujitsu"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.fujitsu" requires="App-Activate-All.App-Check-drivers.fujitsu"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.fujitsu"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.fujitsu"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.fujitsu" requires="App-Activate-All.Wait-For-Deactivate-drivers.fujitsu">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.fujitsu" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.fujitsu" requires="App-Activate-All.App-Deactivate-drivers.fujitsu"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.polatis.openflow" requires="App-Activate-All.drivers.fujitsu">
+           <step name="App-Activate-All.Activate-drivers.polatis.openflow"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.polatis.openflow" requires="App-Activate-All.drivers.fujitsu"/>
+           <group name="App-Activate-All.App-Check-drivers.polatis.openflow" requires="App-Activate-All.Activate-drivers.polatis.openflow">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.polatis.openflow"
+                       exec="onos-check-apps ${OC#} drivers.polatis.openflow includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.polatis.openflow" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.polatis.openflow"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.polatis.openflow" requires="App-Activate-All.App-Check-drivers.polatis.openflow"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.polatis.openflow"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.polatis.openflow"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.polatis.openflow" requires="App-Activate-All.Wait-For-Deactivate-drivers.polatis.openflow">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.polatis.openflow" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.polatis.openflow" requires="App-Activate-All.App-Deactivate-drivers.polatis.openflow"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.layout" requires="App-Activate-All.drivers.polatis.openflow">
+           <step name="App-Activate-All.Activate-layout"
+                 exec="onos ${OCI} app activate org.onosproject.layout" requires="App-Activate-All.drivers.polatis.openflow"/>
+           <group name="App-Activate-All.App-Check-layout" requires="App-Activate-All.Activate-layout">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-layout"
+                       exec="onos-check-apps ${OC#} layout includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-layout" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-layout"
+                 exec="onos ${OCI} app deactivate org.onosproject.layout" requires="App-Activate-All.App-Check-layout"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-layout"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-layout"/>      
+           <group name="App-Activate-All.App-Check-After-layout" requires="App-Activate-All.Wait-For-Deactivate-layout">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-layout" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-layout" requires="App-Activate-All.App-Deactivate-layout"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.powermanagement" requires="App-Activate-All.layout">
+           <step name="App-Activate-All.Activate-powermanagement"
+                 exec="onos ${OCI} app activate org.onosproject.powermanagement" requires="App-Activate-All.layout"/>
+           <group name="App-Activate-All.App-Check-powermanagement" requires="App-Activate-All.Activate-powermanagement">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-powermanagement"
+                       exec="onos-check-apps ${OC#} powermanagement includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-powermanagement" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-powermanagement"
+                 exec="onos ${OCI} app deactivate org.onosproject.powermanagement" requires="App-Activate-All.App-Check-powermanagement"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-powermanagement"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-powermanagement"/>      
+           <group name="App-Activate-All.App-Check-After-powermanagement" requires="App-Activate-All.Wait-For-Deactivate-powermanagement">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-powermanagement" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-powermanagement" requires="App-Activate-All.App-Deactivate-powermanagement"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.optical-rest" requires="App-Activate-All.powermanagement">
+           <step name="App-Activate-All.Activate-optical-rest"
+                 exec="onos ${OCI} app activate org.onosproject.optical-rest" requires="App-Activate-All.powermanagement"/>
+           <group name="App-Activate-All.App-Check-optical-rest" requires="App-Activate-All.Activate-optical-rest">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-optical-rest"
+                       exec="onos-check-apps ${OC#} optical-rest includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-optical-rest" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-optical-rest"
+                 exec="onos ${OCI} app deactivate org.onosproject.optical-rest" requires="App-Activate-All.App-Check-optical-rest"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-optical-rest"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-optical-rest"/>      
+           <group name="App-Activate-All.App-Check-After-optical-rest" requires="App-Activate-All.Wait-For-Deactivate-optical-rest">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-optical-rest" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-optical-rest" requires="App-Activate-All.App-Deactivate-optical-rest"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.tl1" requires="App-Activate-All.optical-rest">
+           <step name="App-Activate-All.Activate-tl1"
+                 exec="onos ${OCI} app activate org.onosproject.tl1" requires="App-Activate-All.optical-rest"/>
+           <group name="App-Activate-All.App-Check-tl1" requires="App-Activate-All.Activate-tl1">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-tl1"
+                       exec="onos-check-apps ${OC#} tl1 includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-tl1" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-tl1"
+                 exec="onos ${OCI} app deactivate org.onosproject.tl1" requires="App-Activate-All.App-Check-tl1"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-tl1"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-tl1"/>      
+           <group name="App-Activate-All.App-Check-After-tl1" requires="App-Activate-All.Wait-For-Deactivate-tl1">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-tl1" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-tl1" requires="App-Activate-All.App-Deactivate-tl1"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.lumentum" requires="App-Activate-All.tl1">
+           <step name="App-Activate-All.Activate-drivers.lumentum"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.lumentum" requires="App-Activate-All.tl1"/>
+           <group name="App-Activate-All.App-Check-drivers.lumentum" requires="App-Activate-All.Activate-drivers.lumentum">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.lumentum"
+                       exec="onos-check-apps ${OC#} drivers.lumentum includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.lumentum" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.lumentum"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.lumentum" requires="App-Activate-All.App-Check-drivers.lumentum"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.lumentum"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.lumentum"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.lumentum" requires="App-Activate-All.Wait-For-Deactivate-drivers.lumentum">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.lumentum" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.lumentum" requires="App-Activate-All.App-Deactivate-drivers.lumentum"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.acl" requires="App-Activate-All.drivers.lumentum">
+           <step name="App-Activate-All.Activate-acl"
+                 exec="onos ${OCI} app activate org.onosproject.acl" requires="App-Activate-All.drivers.lumentum"/>
+           <group name="App-Activate-All.App-Check-acl" requires="App-Activate-All.Activate-acl">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-acl"
+                       exec="onos-check-apps ${OC#} acl includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-acl" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-acl"
+                 exec="onos ${OCI} app deactivate org.onosproject.acl" requires="App-Activate-All.App-Check-acl"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-acl"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-acl"/>      
+           <group name="App-Activate-All.App-Check-After-acl" requires="App-Activate-All.Wait-For-Deactivate-acl">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-acl" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-acl" requires="App-Activate-All.App-Deactivate-acl"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.cord-support" requires="App-Activate-All.acl">
+           <step name="App-Activate-All.Activate-cord-support"
+                 exec="onos ${OCI} app activate org.onosproject.cord-support" requires="App-Activate-All.acl"/>
+           <group name="App-Activate-All.App-Check-cord-support" requires="App-Activate-All.Activate-cord-support">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-cord-support"
+                       exec="onos-check-apps ${OC#} cord-support includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-cord-support" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-cord-support"
+                 exec="onos ${OCI} app deactivate org.onosproject.cord-support" requires="App-Activate-All.App-Check-cord-support"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-cord-support"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-cord-support"/>      
+           <group name="App-Activate-All.App-Check-After-cord-support" requires="App-Activate-All.Wait-For-Deactivate-cord-support">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-cord-support" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-cord-support" requires="App-Activate-All.App-Deactivate-cord-support"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.intentperf" requires="App-Activate-All.cord-support">
+           <step name="App-Activate-All.Activate-intentperf"
+                 exec="onos ${OCI} app activate org.onosproject.intentperf" requires="App-Activate-All.cord-support"/>
+           <group name="App-Activate-All.App-Check-intentperf" requires="App-Activate-All.Activate-intentperf">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-intentperf"
+                       exec="onos-check-apps ${OC#} intentperf includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-intentperf" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-intentperf"
+                 exec="onos ${OCI} app deactivate org.onosproject.intentperf" requires="App-Activate-All.App-Check-intentperf"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-intentperf"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-intentperf"/>      
+           <group name="App-Activate-All.App-Check-After-intentperf" requires="App-Activate-All.Wait-For-Deactivate-intentperf">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-intentperf" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-intentperf" requires="App-Activate-All.App-Deactivate-intentperf"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.mfwd" requires="App-Activate-All.intentperf">
+           <step name="App-Activate-All.Activate-mfwd"
+                 exec="onos ${OCI} app activate org.onosproject.mfwd" requires="App-Activate-All.intentperf"/>
+           <group name="App-Activate-All.App-Check-mfwd" requires="App-Activate-All.Activate-mfwd">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-mfwd"
+                       exec="onos-check-apps ${OC#} mfwd includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-mfwd" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-mfwd"
+                 exec="onos ${OCI} app deactivate org.onosproject.mfwd" requires="App-Activate-All.App-Check-mfwd"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-mfwd"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-mfwd"/>      
+           <group name="App-Activate-All.App-Check-After-mfwd" requires="App-Activate-All.Wait-For-Deactivate-mfwd">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-mfwd" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-mfwd" requires="App-Activate-All.App-Deactivate-mfwd"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.ciena.waveserver" requires="App-Activate-All.mfwd">
+           <step name="App-Activate-All.Activate-drivers.ciena.waveserver"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.ciena.waveserver" requires="App-Activate-All.mfwd"/>
+           <group name="App-Activate-All.App-Check-drivers.ciena.waveserver" requires="App-Activate-All.Activate-drivers.ciena.waveserver">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.ciena.waveserver"
+                       exec="onos-check-apps ${OC#} drivers.ciena.waveserver includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.ciena.waveserver" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.ciena.waveserver"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.ciena.waveserver" requires="App-Activate-All.App-Check-drivers.ciena.waveserver"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.ciena.waveserver"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.ciena.waveserver"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.ciena.waveserver" requires="App-Activate-All.Wait-For-Deactivate-drivers.ciena.waveserver">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.ciena.waveserver" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.ciena.waveserver" requires="App-Activate-All.App-Deactivate-drivers.ciena.waveserver"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.imr" requires="App-Activate-All.drivers.ciena.waveserver">
+           <step name="App-Activate-All.Activate-imr"
+                 exec="onos ${OCI} app activate org.onosproject.imr" requires="App-Activate-All.drivers.ciena.waveserver"/>
+           <group name="App-Activate-All.App-Check-imr" requires="App-Activate-All.Activate-imr">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-imr"
+                       exec="onos-check-apps ${OC#} imr includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-imr" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-imr"
+                 exec="onos ${OCI} app deactivate org.onosproject.imr" requires="App-Activate-All.App-Check-imr"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-imr"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-imr"/>      
+           <group name="App-Activate-All.App-Check-After-imr" requires="App-Activate-All.Wait-For-Deactivate-imr">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-imr" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-imr" requires="App-Activate-All.App-Deactivate-imr"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.dhcp" requires="App-Activate-All.imr">
+           <step name="App-Activate-All.Activate-dhcp"
+                 exec="onos ${OCI} app activate org.onosproject.dhcp" requires="App-Activate-All.imr"/>
+           <group name="App-Activate-All.App-Check-dhcp" requires="App-Activate-All.Activate-dhcp">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-dhcp"
+                       exec="onos-check-apps ${OC#} dhcp includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-dhcp" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-dhcp"
+                 exec="onos ${OCI} app deactivate org.onosproject.dhcp" requires="App-Activate-All.App-Check-dhcp"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-dhcp"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-dhcp"/>      
+           <group name="App-Activate-All.App-Check-After-dhcp" requires="App-Activate-All.Wait-For-Deactivate-dhcp">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-dhcp" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-dhcp" requires="App-Activate-All.App-Deactivate-dhcp"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.cisco.netconf" requires="App-Activate-All.dhcp">
+           <step name="App-Activate-All.Activate-drivers.cisco.netconf"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.cisco.netconf" requires="App-Activate-All.dhcp"/>
+           <group name="App-Activate-All.App-Check-drivers.cisco.netconf" requires="App-Activate-All.Activate-drivers.cisco.netconf">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.cisco.netconf"
+                       exec="onos-check-apps ${OC#} drivers.cisco.netconf includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.cisco.netconf" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.cisco.netconf"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.cisco.netconf" requires="App-Activate-All.App-Check-drivers.cisco.netconf"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.cisco.netconf"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.cisco.netconf"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.cisco.netconf" requires="App-Activate-All.Wait-For-Deactivate-drivers.cisco.netconf">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.cisco.netconf" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.cisco.netconf" requires="App-Activate-All.App-Deactivate-drivers.cisco.netconf"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.openstacknetworkingui" requires="App-Activate-All.drivers.cisco.netconf">
+           <step name="App-Activate-All.Activate-openstacknetworkingui"
+                 exec="onos ${OCI} app activate org.onosproject.openstacknetworkingui" requires="App-Activate-All.drivers.cisco.netconf"/>
+           <group name="App-Activate-All.App-Check-openstacknetworkingui" requires="App-Activate-All.Activate-openstacknetworkingui">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-openstacknetworkingui"
+                       exec="onos-check-apps ${OC#} openstacknetworkingui includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-openstacknetworkingui" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-openstacknetworkingui"
+                 exec="onos ${OCI} app deactivate org.onosproject.openstacknetworkingui" requires="App-Activate-All.App-Check-openstacknetworkingui"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-openstacknetworkingui"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-openstacknetworkingui"/>      
+           <group name="App-Activate-All.App-Check-After-openstacknetworkingui" requires="App-Activate-All.Wait-For-Deactivate-openstacknetworkingui">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-openstacknetworkingui" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-openstacknetworkingui" requires="App-Activate-All.App-Deactivate-openstacknetworkingui"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.cfm" requires="App-Activate-All.openstacknetworkingui">
+           <step name="App-Activate-All.Activate-cfm"
+                 exec="onos ${OCI} app activate org.onosproject.cfm" requires="App-Activate-All.openstacknetworkingui"/>
+           <group name="App-Activate-All.App-Check-cfm" requires="App-Activate-All.Activate-cfm">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-cfm"
+                       exec="onos-check-apps ${OC#} cfm includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-cfm" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-cfm"
+                 exec="onos ${OCI} app deactivate org.onosproject.cfm" requires="App-Activate-All.App-Check-cfm"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-cfm"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-cfm"/>      
+           <group name="App-Activate-All.App-Check-After-cfm" requires="App-Activate-All.Wait-For-Deactivate-cfm">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-cfm" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-cfm" requires="App-Activate-All.App-Deactivate-cfm"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.scalablegateway" requires="App-Activate-All.cfm">
+           <step name="App-Activate-All.Activate-scalablegateway"
+                 exec="onos ${OCI} app activate org.onosproject.scalablegateway" requires="App-Activate-All.cfm"/>
+           <group name="App-Activate-All.App-Check-scalablegateway" requires="App-Activate-All.Activate-scalablegateway">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-scalablegateway"
+                       exec="onos-check-apps ${OC#} scalablegateway includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-scalablegateway" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-scalablegateway"
+                 exec="onos ${OCI} app deactivate org.onosproject.scalablegateway" requires="App-Activate-All.App-Check-scalablegateway"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-scalablegateway"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-scalablegateway"/>      
+           <group name="App-Activate-All.App-Check-After-scalablegateway" requires="App-Activate-All.Wait-For-Deactivate-scalablegateway">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-scalablegateway" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-scalablegateway" requires="App-Activate-All.App-Deactivate-scalablegateway"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.cluster-ha" requires="App-Activate-All.scalablegateway">
+           <step name="App-Activate-All.Activate-cluster-ha"
+                 exec="onos ${OCI} app activate org.onosproject.cluster-ha" requires="App-Activate-All.scalablegateway"/>
+           <group name="App-Activate-All.App-Check-cluster-ha" requires="App-Activate-All.Activate-cluster-ha">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-cluster-ha"
+                       exec="onos-check-apps ${OC#} cluster-ha includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-cluster-ha" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-cluster-ha"
+                 exec="onos ${OCI} app deactivate org.onosproject.cluster-ha" requires="App-Activate-All.App-Check-cluster-ha"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-cluster-ha"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-cluster-ha"/>      
+           <group name="App-Activate-All.App-Check-After-cluster-ha" requires="App-Activate-All.Wait-For-Deactivate-cluster-ha">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-cluster-ha" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-cluster-ha" requires="App-Activate-All.App-Deactivate-cluster-ha"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.drivers.microsemi.ea1000" requires="App-Activate-All.cluster-ha">
+           <step name="App-Activate-All.Activate-drivers.microsemi.ea1000"
+                 exec="onos ${OCI} app activate org.onosproject.drivers.microsemi.ea1000" requires="App-Activate-All.cluster-ha"/>
+           <group name="App-Activate-All.App-Check-drivers.microsemi.ea1000" requires="App-Activate-All.Activate-drivers.microsemi.ea1000">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-drivers.microsemi.ea1000"
+                       exec="onos-check-apps ${OC#} drivers.microsemi.ea1000 includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-drivers.microsemi.ea1000" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-drivers.microsemi.ea1000"
+                 exec="onos ${OCI} app deactivate org.onosproject.drivers.microsemi.ea1000" requires="App-Activate-All.App-Check-drivers.microsemi.ea1000"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-drivers.microsemi.ea1000"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-drivers.microsemi.ea1000"/>      
+           <group name="App-Activate-All.App-Check-After-drivers.microsemi.ea1000" requires="App-Activate-All.Wait-For-Deactivate-drivers.microsemi.ea1000">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-drivers.microsemi.ea1000" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-drivers.microsemi.ea1000" requires="App-Activate-All.App-Deactivate-drivers.microsemi.ea1000"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.reactive-routing" requires="App-Activate-All.drivers.microsemi.ea1000">
+           <step name="App-Activate-All.Activate-reactive-routing"
+                 exec="onos ${OCI} app activate org.onosproject.reactive-routing" requires="App-Activate-All.drivers.microsemi.ea1000"/>
+           <group name="App-Activate-All.App-Check-reactive-routing" requires="App-Activate-All.Activate-reactive-routing">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-reactive-routing"
+                       exec="onos-check-apps ${OC#} reactive-routing includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-reactive-routing" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-reactive-routing"
+                 exec="onos ${OCI} app deactivate org.onosproject.reactive-routing" requires="App-Activate-All.App-Check-reactive-routing"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-reactive-routing"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-reactive-routing"/>      
+           <group name="App-Activate-All.App-Check-After-reactive-routing" requires="App-Activate-All.Wait-For-Deactivate-reactive-routing">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-reactive-routing" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-reactive-routing" requires="App-Activate-All.App-Deactivate-reactive-routing"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.nodemetrics" requires="App-Activate-All.reactive-routing">
+           <step name="App-Activate-All.Activate-nodemetrics"
+                 exec="onos ${OCI} app activate org.onosproject.nodemetrics" requires="App-Activate-All.reactive-routing"/>
+           <group name="App-Activate-All.App-Check-nodemetrics" requires="App-Activate-All.Activate-nodemetrics">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-nodemetrics"
+                       exec="onos-check-apps ${OC#} nodemetrics includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-nodemetrics" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-nodemetrics"
+                 exec="onos ${OCI} app deactivate org.onosproject.nodemetrics" requires="App-Activate-All.App-Check-nodemetrics"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-nodemetrics"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-nodemetrics"/>      
+           <group name="App-Activate-All.App-Check-After-nodemetrics" requires="App-Activate-All.Wait-For-Deactivate-nodemetrics">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-nodemetrics" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-nodemetrics" requires="App-Activate-All.App-Deactivate-nodemetrics"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.mobility" requires="App-Activate-All.nodemetrics">
+           <step name="App-Activate-All.Activate-mobility"
+                 exec="onos ${OCI} app activate org.onosproject.mobility" requires="App-Activate-All.nodemetrics"/>
+           <group name="App-Activate-All.App-Check-mobility" requires="App-Activate-All.Activate-mobility">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-mobility"
+                       exec="onos-check-apps ${OC#} mobility includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-mobility" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-mobility"
+                 exec="onos ${OCI} app deactivate org.onosproject.mobility" requires="App-Activate-All.App-Check-mobility"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-mobility"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-mobility"/>      
+           <group name="App-Activate-All.App-Check-After-mobility" requires="App-Activate-All.Wait-For-Deactivate-mobility">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-mobility" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-mobility" requires="App-Activate-All.App-Deactivate-mobility"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.bgp" requires="App-Activate-All.mobility">
+           <step name="App-Activate-All.Activate-bgp"
+                 exec="onos ${OCI} app activate org.onosproject.bgp" requires="App-Activate-All.mobility"/>
+           <group name="App-Activate-All.App-Check-bgp" requires="App-Activate-All.Activate-bgp">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-bgp"
+                       exec="onos-check-apps ${OC#} bgp includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-bgp" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-bgp"
+                 exec="onos ${OCI} app deactivate org.onosproject.bgp" requires="App-Activate-All.App-Check-bgp"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-bgp"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-bgp"/>      
+           <group name="App-Activate-All.App-Check-After-bgp" requires="App-Activate-All.Wait-For-Deactivate-bgp">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-bgp" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-bgp" requires="App-Activate-All.App-Deactivate-bgp"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.linkprops" requires="App-Activate-All.bgp">
+           <step name="App-Activate-All.Activate-linkprops"
+                 exec="onos ${OCI} app activate org.onosproject.linkprops" requires="App-Activate-All.bgp"/>
+           <group name="App-Activate-All.App-Check-linkprops" requires="App-Activate-All.Activate-linkprops">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-linkprops"
+                       exec="onos-check-apps ${OC#} linkprops includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-linkprops" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-linkprops"
+                 exec="onos ${OCI} app deactivate org.onosproject.linkprops" requires="App-Activate-All.App-Check-linkprops"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-linkprops"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-linkprops"/>      
+           <group name="App-Activate-All.App-Check-After-linkprops" requires="App-Activate-All.Wait-For-Deactivate-linkprops">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-linkprops" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-linkprops" requires="App-Activate-All.App-Deactivate-linkprops"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.cip" requires="App-Activate-All.linkprops">
+           <step name="App-Activate-All.Activate-cip"
+                 exec="onos ${OCI} app activate org.onosproject.cip" requires="App-Activate-All.linkprops"/>
+           <group name="App-Activate-All.App-Check-cip" requires="App-Activate-All.Activate-cip">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-cip"
+                       exec="onos-check-apps ${OC#} cip includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-cip" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-cip"
+                 exec="onos ${OCI} app deactivate org.onosproject.cip" requires="App-Activate-All.App-Check-cip"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-cip"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-cip"/>      
+           <group name="App-Activate-All.App-Check-After-cip" requires="App-Activate-All.Wait-For-Deactivate-cip">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-cip" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-cip" requires="App-Activate-All.App-Deactivate-cip"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.election" requires="App-Activate-All.cip">
+           <step name="App-Activate-All.Activate-election"
+                 exec="onos ${OCI} app activate org.onosproject.election" requires="App-Activate-All.cip"/>
+           <group name="App-Activate-All.App-Check-election" requires="App-Activate-All.Activate-election">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-election"
+                       exec="onos-check-apps ${OC#} election includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-election" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-election"
+                 exec="onos ${OCI} app deactivate org.onosproject.election" requires="App-Activate-All.App-Check-election"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-election"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-election"/>      
+           <group name="App-Activate-All.App-Check-After-election" requires="App-Activate-All.Wait-For-Deactivate-election">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-election" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-election" requires="App-Activate-All.App-Deactivate-election"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.primitiveperf" requires="App-Activate-All.election">
+           <step name="App-Activate-All.Activate-primitiveperf"
+                 exec="onos ${OCI} app activate org.onosproject.primitiveperf" requires="App-Activate-All.election"/>
+           <group name="App-Activate-All.App-Check-primitiveperf" requires="App-Activate-All.Activate-primitiveperf">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-primitiveperf"
+                       exec="onos-check-apps ${OC#} primitiveperf includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-primitiveperf" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-primitiveperf"
+                 exec="onos ${OCI} app deactivate org.onosproject.primitiveperf" requires="App-Activate-All.App-Check-primitiveperf"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-primitiveperf"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-primitiveperf"/>      
+           <group name="App-Activate-All.App-Check-After-primitiveperf" requires="App-Activate-All.Wait-For-Deactivate-primitiveperf">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-primitiveperf" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-primitiveperf" requires="App-Activate-All.App-Deactivate-primitiveperf"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.protocols.xmpp.pubsub" requires="App-Activate-All.primitiveperf">
+           <step name="App-Activate-All.Activate-protocols.xmpp.pubsub"
+                 exec="onos ${OCI} app activate org.onosproject.protocols.xmpp.pubsub" requires="App-Activate-All.primitiveperf"/>
+           <group name="App-Activate-All.App-Check-protocols.xmpp.pubsub" requires="App-Activate-All.Activate-protocols.xmpp.pubsub">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-protocols.xmpp.pubsub"
+                       exec="onos-check-apps ${OC#} protocols.xmpp.pubsub includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-protocols.xmpp.pubsub" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-protocols.xmpp.pubsub"
+                 exec="onos ${OCI} app deactivate org.onosproject.protocols.xmpp.pubsub" requires="App-Activate-All.App-Check-protocols.xmpp.pubsub"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-protocols.xmpp.pubsub"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-protocols.xmpp.pubsub"/>      
+           <group name="App-Activate-All.App-Check-After-protocols.xmpp.pubsub" requires="App-Activate-All.Wait-For-Deactivate-protocols.xmpp.pubsub">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-protocols.xmpp.pubsub" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-protocols.xmpp.pubsub" requires="App-Activate-All.App-Deactivate-protocols.xmpp.pubsub"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+        <group name="App-Activate-All.netcfghostprovider" requires="App-Activate-All.protocols.xmpp.pubsub">
+           <step name="App-Activate-All.Activate-netcfghostprovider"
+                 exec="onos ${OCI} app activate org.onosproject.netcfghostprovider" requires="App-Activate-All.protocols.xmpp.pubsub"/>
+           <group name="App-Activate-All.App-Check-netcfghostprovider" requires="App-Activate-All.Activate-netcfghostprovider">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-netcfghostprovider"
+                       exec="onos-check-apps ${OC#} netcfghostprovider includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-netcfghostprovider" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-netcfghostprovider"
+                 exec="onos ${OCI} app deactivate org.onosproject.netcfghostprovider" requires="App-Activate-All.App-Check-netcfghostprovider"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-netcfghostprovider"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-netcfghostprovider"/>      
+           <group name="App-Activate-All.App-Check-After-netcfghostprovider" requires="App-Activate-All.Wait-For-Deactivate-netcfghostprovider">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-netcfghostprovider" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-netcfghostprovider" requires="App-Activate-All.App-Deactivate-netcfghostprovider"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+
+    </group>
+  </scenario>
+