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