<!--
  ~ 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,gui,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>
