[ONOS-7876] Initial STC implementation for ODTN

Change-Id: I51a22348cc73c576c5d10551e84ca8ac2f2a2040
diff --git a/tools/test/scenarios/net-setup-odtn.xml b/tools/test/scenarios/net-setup-odtn.xml
new file mode 100644
index 0000000..78987a2
--- /dev/null
+++ b/tools/test/scenarios/net-setup-odtn.xml
@@ -0,0 +1,93 @@
+<!--
+  ~ Copyright 2015-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.
+  -->
+
+<scenario name="net-setup-odtn" description="ODTN network setup steps">
+
+    <group name="ODTN-Net-Setup">
+
+        <!-- Clean -->
+        <step name="ODTN-Net-Setup.Wipe-Out-Data-Before" exec="onos-wipe-out"/>
+
+        <!-- Make sure that there is no data in the system -->
+        <step name="ODTN-Net-Setup.Initial-Summary-Check" requires="~ODTN-Net-Setup.Wipe-Out-Data-Before"
+              exec="onos-check-summary ${OC1} [0-9]* 0 0 0"/>
+
+        <!-- Deactivate unneeded apps -->
+        <group name="ODTN-Net-Setup.Deactivate-Apps" requires="ODTN-Net-Setup.Initial-Summary-Check">
+            <step name="App-Deactivate-fwd"
+                  exec="onos ${OCI} app deactivate org.onosproject.fwd"
+                  requires="ODTN-Net-Setup.Initial-Summary-Check"/>
+            <step name="App-Deactivate-Openflow"
+                  exec="onos ${OCI} app deactivate org.onosproject.openflow"
+                  requires="ODTN-Net-Setup.Initial-Summary-Check"/>
+            <step name="App-Deactivate-Drivers"
+                  exec="onos ${OCI} app deactivate org.onosproject.drivers"
+                  requires="ODTN-Net-Setup.Initial-Summary-Check"/>
+            <step name="App-Deactivate-Mobility"
+                  exec="onos ${OCI} app deactivate org.onosproject.mobility"
+                  requires="ODTN-Net-Setup.Initial-Summary-Check"/>
+            <step name="App-Deactivate-ProxyArp"
+                  exec="onos ${OCI} app deactivate org.onosproject.proxyarp"
+                  requires="ODTN-Net-Setup.Initial-Summary-Check"/>
+            <step name="App-Deactivate-RouteService"
+                  exec="onos ${OCI} app deactivate org.onosproject.route-service"
+                  requires="ODTN-Net-Setup.Initial-Summary-Check"/>
+        </group>
+
+        <!-- Active required apps and yang models-->
+        <group name="ODTN-Net-Setup.Activate-Apps" requires="ODTN-Net-Setup.Deactivate-Apps">
+            <step name="App-Activate-Odtn-Service"
+                  exec="onos ${OCI} app activate org.onosproject.odtn-service"
+                  requires="ODTN-Net-Setup.Deactivate-Apps"/>
+        </group>
+
+        <group name="ODTN-Net-Setup.Verify-Apps" requires="ODTN-Net-Setup.Activate-Apps" delay="40">
+            <parallel var="${OC#}">
+                <step name="Check-Apps-${#}" exec="onos-check-apps ${OC#} optical-model,yang,config,configsync,faultmanagement,
+                netconf,configsync-netconf,drivers,drivers.netconf,drivers.optical,restconf,protocols.restconfserver,
+                odtn-api,drivers.odtn-driver,odtn-service,models.tapi,models.ietf,models.openconfig,models.openconfig-infinera,
+                models.openconfig-odtn includes"
+                      requires="ODTN-Net-Setup.Activate-Apps"/>
+            </parallel>
+        </group>
+
+        <group name="ODTN-Net-Setup.Verify-Logs" requires="ODTN-Net-Setup.Verify-Apps">
+            <parallel var="${OC#}">
+                <step name="Check-Logs-${#}" exec="onos-check-logs ${OC#}"/>
+            </parallel>
+        </group>
+
+        <step name="ODTN-Net-Setup.Tapi-context" requires="ODTN-Net-Setup.Verify-Logs"
+              exec="execute-tapi-context-get-call.py ${OC1} empty"/>
+
+        <group name="ODTN-Net-Setup.Verify-Logs-2" requires="ODTN-Net-Setup.Tapi-context">
+            <parallel var="${OC#}">
+                <step name="Check-Logs-2-${#}" exec="onos-check-logs ${OC#}"/>
+            </parallel>
+        </group>
+
+        <!-- Verify empty connectivity service -->
+
+        <step name="ODTN-Net-Setup.Tapi-connectivity" requires="ODTN-Net-Setup.Tapi-context"
+              exec="execute-tapi-post-call.py ${OC1} tapi-connectivity:get-connectivity-service-list empty"/>
+
+        <!--TODO include check for empty connectivity service-->
+        <!--TODO include 2 or more docker emulators to setup the network for phase 1.0-->
+        <!--TODO push netcfg links between emulated devices -->
+        <!--TODO push emulated links between emulated devices -->
+        <!--TODO check logs -->
+    </group>
+</scenario>