<!--
  ~ 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="Set-Jdk-11" exec="stc-set-openjdk11" />
        <step name="Push-Atomix-Bits" exec="atomix-push-bits-through-proxy" if="${OCT}"/>
        <step name="Push-ONOS-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">
            <group name="Cleanup-ONOS">
                <parallel var="${OC#}">
                    <step name="Push-ONOS-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>
            </group>
            <group name="Cleanup-Atomix-OC" unless="${OCC1}">
                <parallel var="${OC#}">
                    <step name="Push-Atomix-Bits-${#}" exec="atomix-push-bits ${OC#}"
                          unless="${OCT}"/>
                    <step name="Atomix-Kill-${#}"
                          env="~"
                          exec="atomix-kill ${OC#}"/>
                    <step name="Atomix-Uninstall-${#}"
                          exec="atomix-uninstall ${OC#}"
                          requires="Atomix-Kill-${#}"/>
                </parallel>
            </group>
            <group name="Cleanup-Atomix-OCC" if="${OCC1}">
                <parallel var="${OCC#}">
                    <step name="Push-Atomix-Bits-${#}" exec="atomix-push-bits ${OC#}"
                          unless="${OCT}"/>
                    <step name="Atomix-Kill-${#}"
                          env="~"
                          exec="atomix-kill ${OCC#}"/>
                    <step name="Atomix-Uninstall-${#}"
                          exec="atomix-uninstall ${OCC#}"
                          requires="Atomix-Kill-${#}"/>
                </parallel>
            </group>
        </group>

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

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

            <group name="Install-Atomix-OCC" if="${OCC1}">
                <group name="Parallel-Install-Atomix">
                    <parallel var="${OCC#}">
                        <step name="Parallel-Install-Atomix-${#}" exec="atomix-install ${OCC#}"
                              requires="Generate-Cluster-Key,Push-Atomix-Bits-${#},Push-Atomix-Bits,Cleanup,Set-Jdk-11"/>
                    </parallel>
                </group>
            </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-ONOS-Bits-${#},Push-ONOS-Bits,Cleanup,Install-Atomix,Set-Jdk-11"/>
                </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-ONOS-Bits-${#},Push-ONOS-Bits,Cleanup,Install-Atomix,Set-Jdk-11"/>
                </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-Storage-Nodes-${#}" exec="onos-check-storage-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>
