<!--
  ~ 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="prerequisites" description="ONOS test pre-requisites">
    <group name="Prerequisites">
        <step name="Check-Environment" exec="test -n ${ONOS_ROOT} -a -n ${OC1}"/>
        <step name="Check-ONOS-Bits" exec="onos-check-bits"/>
        <step name="Set-OpenJDK-11-As-Default" if="${stcOpenJDK}" exec="stc-set-openjdk11"/>
        <parallel var="${OC#}">
            <step name="Check-Passwordless-Login-${#}"
                  exec="ssh -n -o ConnectTimeout=3 -o PasswordAuthentication=no ${ONOS_USER}@${OC#} date"/>
            <step name="Check-Execute-sudo-NOPASSWD-${#}"
                  exec="ssh -n -o ConnectTimeout=3 -o PasswordAuthentication=no ${ONOS_USER}@${OC#} sudo -n true"/>
            <step name="Check-Java-Environment-${#}"
                  exec="ssh -n -o ConnectTimeout=3 -o PasswordAuthentication=no ${ONOS_USER}@${OC#} java -version"/>
        </parallel>
        <step name="Check-Passwordless-Login-Proxy" if="${OCT}"
              exec="ssh -n -o ConnectTimeout=3 -o PasswordAuthentication=no ${ONOS_USER}@${OCT} date"/>
    </group>
</scenario>
