<!--
  ~ 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="shutdown" description="ONOS cluster shutdown">
    <group name="Shutdown-ONOS">
        <parallel var="${OC#}">
            <step name="Stop-Service-${#}" exec="onos-service ${OC#} stop"/>
            <step name="Wait-for-Stop-${#}" exec="onos-wait-for-stop ${OC#}"
                  requires="~Stop-Service-${#}"/>
            <step name="Check-Logs-${#}" exec="onos-check-logs ${OC#}"
                  requires="~Wait-for-Stop-${#}"/>
        </parallel>
    </group>
    <group name="Shutdown-Atomix">
        <group name="Shutdown-Atomix-OC" unless="${OCC1}">
            <parallel var="${OC#}">
                <step name="Atomix-Kill-${#}" env="~" exec="atomix-kill ${OC#}" requires="Shutdown-ONOS"/>
            </parallel>
        </group>
        <group name="Shutdown-Atomix-OCC" if="${OCC1}">
            <parallel var="${OCC#}">
                <step name="Atomix-Kill-${#}" env="~" exec="atomix-kill ${OCC#}" requires="~Shutdown-ONOS"/>
            </parallel>
        </group>
    </group>
</scenario>
