<!--
  ~ Copyright 2015 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-topo"
          description="Network topology test">
    <!-- TODO: parametrize this via recipes -->
    <group name="Net-Topo">

        <!-- Verify the overall topology using the REST API -->
        <step name="Net-Topo.Query-Topo"
              exec="query-topo.py ${OC1} topo"/>
        <step name="Net-Topo.Verify-Topo-Devices" requires="Net-Topo.Query-Topo"
              exec="test ${topoDevices} == 25"/>
        <step name="Net-Topo.Verify-Topo-Links" requires="Net-Topo.Query-Topo"
              exec="test ${topoLinks} == 140"/>
        <step name="Net-Topo.Verify-Topo-Clusters" requires="Net-Topo.Query-Topo"
              exec="test ${topoClusters} == 1"/>

        <!-- Verify the cluster topology using the REST API -->
        <step name="Net-Topo.Query-Cluster0"
              exec="query-cluster.py ${OC1} clusterTopo0 0"/>
        <step name="Net-Topo.Verify-Cluster0-Id" requires="Net-Topo.Query-Cluster0"
              exec="test ${clusterTopo0Id} == 0"/>
        <step name="Net-Topo.Verify-Cluster0-DeviceCount" requires="Net-Topo.Query-Cluster0"
              exec="test ${clusterTopo0DeviceCount} == 25"/>
        <step name="Net-Topo.Verify-Cluster0-LinkCount" requires="Net-Topo.Query-Cluster0"
              exec="test ${clusterTopo0LinkCount} == 140"/>
        <step name="Net-Topo.Verify-Cluster0-Root" requires="Net-Topo.Query-Cluster0"
              exec="test '${clusterTopo0Root}' == 'of:000000000000000a' -o '${clusterTopo0Root}' == 'of:000000000000000c'"/>

        <!-- Verify the list of devices for the cluster -->
        <step name="Net-Topo.Verify-Cluster0-Devices"
              exec="verify-topo-devices.py ${OC1} 0 0 24"/>

        <!-- Spot check some known links in the topology -->
        <step name="Net-Topo.Verify-Cluster0-Link1"
              exec="find-link-in-cluster.py ${OC1} link1 0 140 of:000000000000000f 8 of:0000000000000015 3"/>
        <step name="Net-Topo.Verify-Cluster0-Link2"
              exec="find-link-in-cluster.py ${OC1} link2 0 140 of:0000000000000008 3 of:0000000000000005 4"/>
        <step name="Net-Topo.Verify-Cluster0-Link3"
              exec="find-link-in-cluster.py ${OC1} link3 0 140 of:0000000000000011 2 of:0000000000000002 9"/>
        <step name="Net-Topo.Verify-Cluster0-Link4"
              exec="find-link-in-cluster.py ${OC1} link4 0 140 of:000000000000000f 3 of:000000000000000d 10"/>
        <step name="Net-Topo.Verify-Cluster0-Link5"
              exec="find-link-in-cluster.py ${OC1} link5 0 140 of:000000000000000d 13 of:0000000000000010 6"/>

        <!--  Verify the topology infrastructure query -->
        <step name="Net-Topo.Query-Cluster0-Infra1"
              exec="find-topo-infrastructure.py ${OC1} infra1 of:000000000000000f:8"/>
        <step name="Net-Topo.Verify-Cluster0-Infra1" requires="Net-Topo.Query-Cluster0-Infra1"
              exec="test '${infra1Infrastructure}' == 'True'"/>

        <step name="Net-Topo.Query-Cluster0-Infra2"
              exec="find-topo-infrastructure.py ${OC1} infra2 of:000000000000000d:8"/>
        <step name="Net-Topo.Verify-Cluster0-Infra2" requires="Net-Topo.Query-Cluster0-Infra2"
              exec="test '${infra2Infrastructure}' == 'True'"/>

        <step name="Net-Topo.Query-Cluster0-Infra3"
              exec="find-topo-infrastructure.py ${OC1} infra3 of:0000000000000012:8"/>
        <step name="Net-Topo.Verify-Cluster0-Infra3" requires="Net-Topo.Query-Cluster0-Infra3"
              exec="test '${infra3Infrastructure}' == 'False'"/>

    </group>
</scenario>
