<!--
  ~  Copyright 2016-present Open Networking Laboratory
  ~
  ~  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-teardown-vnets" description="Network (vnets) teardown steps">
    <group name="Net-Teardown-Vnets">

        <step name="Check-NetworkId-Variable-Exists" 
              exec="test '${networkId}' != ''"/>

        <step name="Check-Vnet-Link" requires="^"
              exec="onos ${OCI} vnet-links ${networkId}"/>

        <step name="Remove-Link-1" requires="^"
              exec="onos ${OCI} vnet-remove-link ${networkId} device1 1 device2 2"/>

        <step name="Remove-Link-2" requires="^"
              exec="onos ${OCI} vnet-remove-link ${networkId} device2 2 device1 1"/>

        <step name="Ping-hosts-2" requires="^"
              exec="onos-mininet sendAndExpect h4 ping -c1 h9 --expect \ 100% packet loss"/>

        <step name="Remove-Port-2" requires="^"
              exec="onos ${OCI} vnet-remove-port ${networkId} device2 2"/>

        <step name="Remove-Port-1" requires="^"
              exec="onos ${OCI} vnet-remove-port ${networkId} device1 1"/>

        <step name="Remove-Device-2" requires="^"
              exec="onos ${OCI} vnet-remove-device ${networkId} device2"/>

        <step name="Remove-Device-1" requires="^"
              exec="onos ${OCI} vnet-remove-device ${networkId} device1"/>

        <step name="Remove-Vnet" requires="^"
              exec="onos ${OCI} vnet-remove ${networkId}"/>

        <step name="Check-TenantId-Variable-Exists" requires="^" 
              exec="test '${tenantId}' != ''"/>

        <step name="Remove-Tenant" requires="Check-TenantId-Variable-Exists"
              exec="onos ${OCI} vnet-remove-tenant ${tenantId}"/>

        <step name="Enable-FwdApp" requires="^" if="echo $ONOS_APPS | grep -w fwd"
              exec="onos ${OCI} onos:app activate org.onosproject.fwd"/>

    </group>
</scenario>
