tiers:
    -
        name: healthcheck
        order: 0
        ci_loop: '(daily)|(weekly)'
        description : >-
            First tier to be executed to verify the basic
            operations in the VIM.
        testcases:
            -
                name: healthcheck
                criteria: 'status == "PASS"'
                blocking: true
                description: >-
                    This test case verifies the basic OpenStack services like
                    Keystone, Glance, Cinder, Neutron and Nova.

                dependencies:
                    installer: ''
                    scenario: '^((?!lxd).)*$'

    -
        name: smoke
        order: 1
        ci_loop: '(daily)|(weekly)'
        description : >-
            Set of basic Functional tests to validate the OPNFV scenarios.
        testcases:
            -
                name: vping_ssh
                criteria: 'status == "PASS"'
                blocking: true
                description: >-
                    This test case verifies: 1) SSH to an instance using floating
                    IPs over the public network. 2) Connectivity between 2 instances
                    over a private network.
                dependencies:
                    installer: ''
                    scenario: '^((?!bgpvpn|odl_l3).)*$'
                run:
                    module: 'functest.opnfv_tests.openstack.vping.vping_ssh'
                    class: 'VPingSSH'

            -
                name: vping_userdata
                criteria: 'status == "PASS"'
                blocking: true
                description: >-
                    This test case verifies:  1) Boot a VM with given userdata.
                    2) Connectivity between 2 instances over a private network.
                dependencies:
                    installer: ''
                    scenario: '^((?!lxd).)*$'
                run:
                    module: 'functest.opnfv_tests.openstack.vping.vping_userdata'
                    class: 'VPingUserdata'

            -
                name: tempest_smoke_serial
                criteria: 'success_rate == 100%'
                blocking: false
                description: >-
                    This test case runs the smoke subset of the OpenStack
                    Tempest suite. The list of test cases is generated by
                    Tempest automatically and depends on the parameters of
                    the OpenStack deplopyment.
                dependencies:
                    installer: '^((?!netvirt).)*$'
                    scenario: ''
                run:
                    module: 'functest.opnfv_tests.openstack.tempest.tempest'
                    class: 'TempestSmokeSerial'
            -
                name: rally_sanity
                criteria: 'success_rate == 100%'
                blocking: false
                description: >-
                    This test case runs a sub group of tests of the OpenStack
                    Rally suite in smoke mode.
                dependencies:
                    installer: ''
                    scenario: '^((?!bgpvpn).)*$'

            -
                name: odl
                criteria: 'success_rate == 100%'
                blocking: true
                description: >-
                    Test Suite for the OpenDaylight SDN Controller. It integrates
                    some test suites from upstream using Robot as the test
                    framework.
                dependencies:
                    installer: ''
                    scenario: 'odl'
                run:
                    module: 'functest.opnfv_tests.sdn.odl.odl'
                    class: 'ODLTests'

            -
                name: onos
                criteria: 'status == "PASS"'
                blocking: true
                description: >-
                    Test Suite for the ONOS SDN Controller. It integrates
                    some test suites from upstream using TestON as the test
                    framework.
                dependencies:
                    installer: ''
                    scenario: 'onos'

            -
                name: connection_check
                criteria: 'status == "PASS"'
                blocking: false
                description: >-
                    This test case verifies the retrieval of OpenStack clients:
                    Keystone, Glance, Neutron and Nova and may perform some
                    simple queries. When the config value of
                    snaps.use_keystone is True, functest must have access to
                    the cloud's private network.

                dependencies:
                    installer: '^((?!netvirt).)*$'
                    scenario: ''
                run:
                    module: 'functest.opnfv_tests.openstack.snaps.connection_check'
                    class: 'ConnectionCheck'

            -
                name: api_check
                criteria: 'status == "PASS"'
                blocking: false
                description: >-
                    This test case verifies the retrieval of OpenStack clients:
                    Keystone, Glance, Neutron and Nova and may perform some
                    simple queries. When the config value of
                    snaps.use_keystone is True, functest must have access to
                    the cloud's private network.

                dependencies:
                    installer: '^((?!netvirt).)*$'
                    scenario: ''
                run:
                    module: 'functest.opnfv_tests.openstack.snaps.api_check'
                    class: 'ApiCheck'

            -
                name: snaps_smoke
                criteria: 'status == "PASS"'
                blocking: false
                description: >-
                    This test case contains tests that setup and destroy
                    environments with VMs with and without Floating IPs
                    with a newly created user and project. Set the config
                    value snaps.use_floating_ips (True|False) to toggle
                    this functionality. When the config value of
                    snaps.use_keystone is True, functest must have access to
                    the cloud's private network.

                dependencies:
                    installer: '^((?!netvirt).)*$'
                    scenario: ''
                run:
                    module: 'functest.opnfv_tests.openstack.snaps.smoke'
                    class: 'SnapsSmoke'

    -
        name: features
        order: 2
        ci_loop: '(daily)|(weekly)'
        description : >-
            Test suites from feature projects
            integrated in functest
        testcases:
            -
                name: promise
                criteria: 'success_rate == 100%'
                blocking: false
                description: >-
                    Test suite from Promise project.
                dependencies:
                    installer: '(fuel)|(joid)'
                    scenario: ''

            -
                name: doctor
                criteria: 'status == "PASS"'
                blocking: false
                description: >-
                    Test suite from Doctor project.
                dependencies:
                    installer: 'apex'
                    scenario: '^((?!fdio).)*$'

            -
                name: bgpvpn
                criteria: 'status == "PASS"'
                blocking: false
                description: >-
                    Test suite from SDNVPN project.
                dependencies:
                    installer: '(fuel)|(apex)|(netvirt)'
                    scenario: 'bgpvpn'
                run:
                    module: 'functest.opnfv_tests.features.sdnvpn'
                    class: 'SdnVpnTests'

            -
                name: security_scan
                criteria: 'status == "PASS"'
                blocking: false
                description: >-
                    Simple security Scan
                dependencies:
                    installer: 'apex'
                    scenario: '^((?!fdio).)*$'

            -
                name: copper
                criteria: 'status == "PASS"'
                blocking: false
                description: >-
                    Test suite for policy management based on OpenStack Congress
                dependencies:
                    installer: '(apex)|(joid)'
                    scenario: '^((?!fdio|lxd).)*$'
                run:
                    module: 'functest.opnfv_tests.features.copper'
                    class: 'Copper'

            -
                name: moon
                criteria: 'status == "PASS"'
                blocking: false
                description: >-
                    Security management system for OPNFV
                dependencies:
                    installer: 'compass'
                    scenario: '(odl)*(moon)'
            -
                name: multisite
                criteria: 'success_rate == 100%'
                blocking: false
                description: >-
                    Test suite from kingbird
                dependencies:
                    installer: '(fuel)|(compass)'
                    scenario: 'multisite'
                run:
                    module: 'functest.opnfv_tests.openstack.tempest.tempest'
                    class: 'TempestMultisite'
            -
                name: odl-sfc
                criteria: 'status == "PASS"'
                blocking: false
                description: >-
                    Test suite for odl-sfc to test two chains and two SFs
                dependencies:
                    installer: '(apex)|(fuel)'
                    scenario: 'odl_l2-sfc'
                run:
                    module: 'functest.opnfv_tests.features.odl_sfc'
                    class: 'OpenDaylightSFC'
            -
                name: onos_sfc
                criteria: 'status == "PASS"'
                blocking: true
                description: >-
                    Test Suite for onos-sfc to test sfc function.
                dependencies:
                    installer: ''
                    scenario: 'onos-sfc'
            -
                name: parser
                criteria: 'ret == 0'
                blocking: false
                description: >-
                    Test suite from Parser project.
                dependencies:
                    installer: 'fuel'
                    scenario: '^((?!bgpvpn|noha).)*$'
                run:
                    module: 'functest.opnfv_tests.vnf.rnc.parser'
                    class: 'Parser'
    -
        name: components
        order: 3
        ci_loop: 'weekly'
        description : >-
            Extensive testing of OpenStack API.
        testcases:
            -
                name: tempest_full_parallel
                criteria: 'success_rate >= 80%'
                blocking: false
                description: >-
                    The list of test cases is generated by
                    Tempest automatically and depends on the parameters of
                    the OpenStack deplopyment.
                dependencies:
                    installer: '^((?!netvirt).)*$'
                    scenario: ''
                run:
                    module: 'functest.opnfv_tests.openstack.tempest.tempest'
                    class: 'TempestFullParallel'

            -
                name: rally_full
                criteria: 'success_rate >= 90%'
                blocking: false
                description: >-
                    This test case runs the full suite of scenarios of the OpenStack
                    Rally suite using several threads and iterations.
                dependencies:
                    installer: '^((?!netvirt).)*$'
                    scenario: ''

    -
        name: vnf
        order: 4
        ci_loop: 'weekly'
        description : >-
            Collection of VNF test cases.
        testcases:
            -
                name: vims
                criteria: 'status == "PASS"'
                blocking: false
                description: >-
                    This test case deploys an OpenSource vIMS solution from Clearwater
                    using the Cloudify orchestrator. It also runs some signaling traffic.
                dependencies:
                    installer: ''
                    scenario: '(ocl)|(nosdn)|^(os-odl)((?!bgpvpn).)*$'