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