blob: 10073e03e5bbb230ec9d5950101454798cbdb299 [file] [log] [blame]
<!--
~ 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-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>