<!--
  ~ Copyright 2017-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="yang-live-compile" description="Live YANG compilation">
    <group name="YANG-Live-Compile">
        <step name="Activate-YANG-Runtime" exec="onos ${OC1} app activate org.onosproject.yang"/>
        <step name="Pre-Cleanup-YANG-Model" exec="onos ${OC1} app uninstall l3vpn" env="~"/>
        <step name="Check-YANG-Runtime" exec="onos-check-apps ${OC1} drivers,yang includes"
              requires="Activate-YANG-Runtime"/>
        <step name="Compile-YANG-Model" exec="onos-compile-yang ${OC1} ${ONOS_ROOT}/tools/test/configs/yang"
              requires="Check-YANG-Runtime,Pre-Cleanup-YANG-Model"/>
        <step name="Verify-YANG-Models" exec="onos ${OC1} models | grep l3vpn"
              requires="Compile-YANG-Model"/>
        <step name="Verify-YANG-Apps" exec="onos-check-apps ${OC1} drivers,yang,l3vpn includes"
              requires="Compile-YANG-Model"/>
        <step name="Cleanup-YANG-Model" exec="onos ${OC1} app uninstall l3vpn"
              requires="Verify-YANG-Apps"/>
    </group>
</scenario>
