<!--
  ~ 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="setup" description="ONOS cluster setup">
    <group name="Setup">
        <step name="Push-Bits" exec="onos-push-bits-through-proxy" if="${OCT}"/>
        <step name="Enable-Flow-Objective-Intents" if="${ONOS_USE_FOI}"
              exec="onos ${OC1} cfg set org.onosproject.net.intent.impl.compiler.IntentConfigurableRegistrator useFlowObjectives true"/>

        <group name="Cleanup">
            <parallel var="${OC#}">
                <step name="Push-Bits-${#}" exec="onos-push-bits ${OC#}"
                      unless="${OCT}"/>
                <step name="Uninstall-${#}" exec="onos-uninstall ${OC#}"/>
                <step name="Kill-${#}" env="~" exec="onos-kill ${OC#}"
                      requires="Uninstall-${#}"/>
            </parallel>
            <parallel var="${OCC#}">
                <step name="Atomix-Kill-${#}"
                      env="~"
                      exec="atomix-kill ${OCC#}"/>
                <step name="Atomix-Uninstall-${#}"
                      exec="atomix-uninstall ${OCC#}"
                      requires="Atomix-Kill-${#}"/>
            </parallel>
        </group>

        <group name="Install-Atomix">
            <step name="Generate-Cluster-Key" exec="onos-gen-cluster-key -f" />

            <group name="Parallel-Install-Atomix">
                <parallel var="${OCC#}">
                    <step name="Parallel-Install-Atomix-${#}" exec="atomix-install ${OCC#}"
                          requires="Generate-Cluster-Key,Push-Bits-${#},Push-Bits,Cleanup"/>
                </parallel>
            </group>
        </group>

        <group name="Install-ONOS">
            <group name="Sequential-Install-ONOS" if="${ONOS_STC_SEQ_START}">
                <sequential var="${OC#}"
                            starts="Sequential-Install-${#}"
                            ends="Sequential-Install-${#-1}">
                    <step name="Sequential-Install-${#}" exec="onos-install ${OC#}"
                          requires="Generate-Cluster-Key,Push-Bits-${#},Push-Bits,Cleanup,Install-Atomix"/>
                </sequential>
            </group>

            <group name="Parallel-Install-ONOS" unless="${ONOS_STC_SEQ_START}">
                <parallel var="${OC#}">
                    <step name="Parallel-Install-${#}" exec="onos-install ${OC#}"
                          requires="Generate-Cluster-Key,Push-Bits-${#},Push-Bits,Cleanup,Install-Atomix"/>
                </parallel>
            </group>
        </group>

        <group name="Verify" requires="Install-ONOS">
            <parallel var="${OC#}">
                <step name="Secure-SSH-${#}"
                      exec="onos-secure-ssh -u ${ONOS_WEB_USER} -p ${ONOS_WEB_PASS} ${OC#}"
                      requires="Install-ONOS"/>

                <step name="Wait-for-Start-${#}" exec="onos-wait-for-start ${OC#}"
                      requires="~Secure-SSH-${#}"/>

                <step name="Check-Nodes-${#}" exec="onos-check-nodes ${OC#}" delay="3"
                      requires="~Wait-for-Start-${#}"/>
                <step name="Check-Components-${#}" delay="5"
                      exec="onos-check-components ${OC#}"
                      requires="~Wait-for-Start-${#}"/>

                <step name="Check-Logs-${#}" exec="onos-check-logs ${OC#}"
                      requires="~Check-Components-${#}"/>
                <step name="Check-Apps-${#}" exec="onos-check-apps ${OC#} ${ONOS_APPS} includes"
                      requires="~Check-Components-${#}"/>

                <dependency name="Enable-Flow-Objective-Intents" requires="Check-Apps-${#}"/>
            </parallel>
        </group>

    </group>
</scenario>
