Create testing for ODTN, including line-side/client-side connectivity creation and deletion. Testing succeeds on single ONOS instance.
Change-Id: I7d0eb4ff0e9160ef2fdd5fba9567399a4f1777eb
diff --git a/tools/test/scenarios/net-setup-odtn.xml b/tools/test/scenarios/net-setup-odtn.xml
index 78987a2..1f69aed 100644
--- a/tools/test/scenarios/net-setup-odtn.xml
+++ b/tools/test/scenarios/net-setup-odtn.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0"?>
<!--
~ Copyright 2015-present Open Networking Foundation
~
@@ -13,81 +14,58 @@
~ 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 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"/>
+ <step name="ODTN-Net-Setup.Activate-Apps" exec="onos ${OC1} app activate odtn-service" requires="ODTN-Net-Setup.Initial-Summary-Check" delay="30" />
+ <group name="ODTN-Net-Setup.Verify-Apps" requires="ODTN-Net-Setup.Activate-Apps" delay="30">
+ <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.Tapi-context" requires="ODTN-Net-Setup.Verify-Apps">
+ <parallel var="${OC#}">
+ <step name="ODTN-Net-Setup.Tapi-context-${#}" exec="${ONOS_SCENARIOS}/odtn/checkUntilSucc.sh ${ONOS_SCENARIOS}/bin/execute-tapi-context-get-call.py+${OC#}+empty"/>
+ </parallel>
+ </group>
+ <!-- Verify empty connectivity service -->
+ <step name="ODTN-Net-Setup.Tapi-connectivity" requires="ODTN-Net-Setup.Tapi-context" exec="${ONOS_SCENARIOS}/odtn/checkUntilSucc.sh ${ONOS_SCENARIOS}/bin/execute-tapi-post-call.py+${OC1}+tapi-connectivity:get-connectivity-service-list+empty"/>
+ <group name="ODTN-Net-Setup.Verify-Logs-1" requires="ODTN-Net-Setup.Tapi-connectivity">
+ <parallel var="${OC#}">
+ <step name="Check-Logs-Odtn-Setup-1-${#}" exec="onos-check-logs ${OC#}"/>
+ </parallel>
+ </group>
+ <!-- include 2 or more docker emulators to setup the network for phase 1.0-->
+ <group name="ODTN-Net-Setup.Init-network" requires="ODTN-Net-Setup.Verify-Logs-1">
+ <step name="ODTN-Net-Setup.Start-emulators" exec="docker-compose -f ${HOME}/emulator/docker-compose.yaml up -d"/>
+ <step name="ODTN-Net-Setup.Generate-cfg-files" requires="ODTN-Net-Setup.Start-emulators" exec="${ONOS_SCENARIOS}/odtn/createNetCfg.sh"/>
+ <step name="ODTN-Net-Setup.Put-nodes" requires="ODTN-Net-Setup.Generate-cfg-files" exec="onos-netcfg ${OC1} /tmp/odtn/openconfig-devices.json"/>
+ <group name="ODTN-Net-Setup.Wait-nodes" requires="ODTN-Net-Setup.Put-nodes">
+ <parallel var="${OC#}">
+ <step name="ODTN-Net-Setup.Wait-node-${#}" exec="${ONOS_SCENARIOS}/odtn/checkNetInit.sh device ${OC#}"/>
+ <step name="ODTN-Net-Setup.Wait-port-${#}" exec="${ONOS_SCENARIOS}/odtn/checkNetInit.sh port ${OC#}" requires="ODTN-Net-Setup.Wait-node-${#}"/>
+ </parallel>
+ </group>
+ <group name="ODTN-Net-Setup.Verify-Logs-2" requires="ODTN-Net-Setup.Wait-nodes">
+ <parallel var="${OC#}">
+ <step name="Check-Logs-Odtn-Setup-2-${#}" exec="onos-check-logs ${OC#}"/>
+ </parallel>
+ </group>
+ <step name="ODTN-Net-Setup.Put-links" requires="ODTN-Net-Setup.Verify-Logs-2" exec="onos-netcfg ${OC1} /tmp/odtn/openconfig-device-link.json"/>
+ <group name="ODTN-Net-Setup.Wait-links" requires="ODTN-Net-Setup.Put-links" delay="30">
+ <parallel var="${OC#}">
+ <step name="ODTN-Net-Setup.Wait-link-${#}" exec="${ONOS_SCENARIOS}/odtn/checkNetInit.sh link ${OC#}"/>
+ </parallel>
+ </group>
+ </group>
+ <!-- check logs to verify -->
+ <group name="ODTN-Net-Setup.Verify-Logs-3" requires="ODTN-Net-Setup.Wait-links">
+ <parallel var="${OC#}">
+ <step name="Check-Logs-Odtn-Setup-3-${#}" exec="onos-check-logs ${OC#}"/>
+ </parallel>
+ </group>
+ </group>
</scenario>