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

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

            <group name="Sequential-Install" 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"/>
                </sequential>
            </group>

            <group name="Parallel-Install" 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"/>
                </parallel>
            </group>
        </group>

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

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

                <step name="Check-Nodes-${#}"
                      exec="onos-check-nodes ${OC#}"
                      unless="${ONOS_STC_FORM_START}"
                      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 name="Form" if="${ONOS_STC_FORM_START}" requires="Verify">
            <step name="Form-Cluster" exec="onos-form-cluster cell"/>
            <parallel var="${OC#}">
                <step name="Form-Cluster-Wait-for-Start-${#}" exec="onos-wait-for-start ${OC#}"
                      requires="Form-Cluster"/>

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

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