tiers:
    -
        name: healthcheck
        order: 0
        ci_loop: '(daily)|(weekly)'
        description : >-
            First tier to be executed to verify the basic
            operations in the VIM.
        testcases:
            -
                case_name: connection_check
                project_name: functest
                criteria: 100
                blocking: true
                clean_flag: 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'

            -
                case_name: api_check
                project_name: functest
                criteria: 100
                blocking: true
                clean_flag: 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'
            -
                case_name: snaps_health_check
                project_name: functest
                criteria: 100
                blocking: true
                clean_flag: false
                description: >-
                    This test case creates executes the SimpleHealthCheck
                    Python test class which creates an, image, flavor, network,
                    and Cirros VM instance and observes the console output to
                    validate the single port obtains the correct IP address.
                dependencies:
                    installer: ''
                    scenario: '^((?!lxd).)*$'
                run:
                    module: 'functest.opnfv_tests.openstack.snaps.health_check'
                    class: 'HealthCheck'
    -
        name: smoke
        order: 1
        ci_loop: '(daily)|(weekly)'
        description : >-
            Set of basic Functional tests to validate the OPNFV scenarios.
        testcases:
            -
                case_name: vping_ssh
                project_name: functest
                criteria: 100
                blocking: true
                clean_flag: 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: '^((?!odl_l3|odl-bgpvpn|gluon).)*$'
                run:
                    module: 'functest.opnfv_tests.openstack.vping.vping_ssh'
                    class: 'VPingSSH'

            -
                case_name: vping_userdata
                project_name: functest
                criteria: 100
                blocking: true
                clean_flag: 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'

            -
                case_name: tempest_smoke_serial
                project_name: functest
                criteria: 100
                blocking: false
                clean_flag: true
                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'

            -
                case_name: rally_sanity
                project_name: functest
                criteria: 100
                blocking: false
                clean_flag: false
                description: >-
                    This test case runs a sub group of tests of the OpenStack
                    Rally suite in smoke mode.
                dependencies:
                    installer: ''
                    scenario: ''
                run:
                    module: 'functest.opnfv_tests.openstack.rally.rally'
                    class: 'RallySanity'

            -
                case_name: refstack_defcore
                project_name: functest
                criteria: 100
                blocking: false
                clean_flag: true
                description: >-
                    This test case runs a sub group of tests of the OpenStack
                    Defcore testcases by using refstack client.
                dependencies:
                    installer: ''
                    scenario: ''
                run:
                    module: 'functest.opnfv_tests.openstack.refstack_client.refstack_client'
                    class: 'RefstackClient'

            -
                case_name: odl
                project_name: functest
                criteria: 100
                blocking: true
                clean_flag: false
                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'
                    args:
                        suites:
                            -  /home/opnfv/repos/odl_test/csit/suites/integration/basic
                            -  /home/opnfv/repos/odl_test/csit/suites/openstack/neutron

            -
                case_name: odl_netvirt
                project_name: functest
                criteria: 100
                blocking: false
                clean_flag: false
                description: >-
                    Test Suite for the OpenDaylight SDN Controller when
                    the NetVirt features are installed. It integrates
                    some test suites from upstream using Robot as the
                    test framework.
                dependencies:
                    installer: 'apex'
                    scenario: 'os-odl_l3-nofeature'
                run:
                    module: 'functest.opnfv_tests.sdn.odl.odl'
                    class: 'ODLTests'
                    args:
                        suites:
                            -  /home/opnfv/repos/odl_test/csit/suites/integration/basic
                            -  /home/opnfv/repos/odl_test/csit/suites/openstack/neutron
                            -  /home/opnfv/repos/odl_test/csit/suites/openstack/connectivity

            -
                case_name: fds
                project_name: functest
                criteria: 100
                blocking: false
                clean_flag: false
                description: >-
                    Test Suite for the OpenDaylight SDN Controller when GBP features are
                    installed. It integrates some test suites from upstream using
                    Robot as the test framework.
                dependencies:
                    installer: 'apex'
                    scenario: 'odl_l2-fdio'
                run:
                    module: 'functest.opnfv_tests.sdn.odl.odl'
                    class: 'ODLTests'
                    args:
                        suites:
                            -  /home/opnfv/repos/fds/testing/robot

            -
                case_name: onos
                project_name: functest
                criteria: 100
                blocking: true
                clean_flag: 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'
                run:
                    module: 'functest.opnfv_tests.sdn.onos.onos'
                    class: 'Onos'

            -
                case_name: snaps_smoke
                project_name: functest
                criteria: 100
                blocking: false
                clean_flag: 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: '^((?!lxd).)*$'
                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:
            -
                case_name: promise
                project_name: promise
                criteria: 100
                blocking: false
                clean_flag: true
                description: >-
                    Test suite from Promise project.
                dependencies:
                    installer: '(fuel)|(joid)'
                    scenario: ''
                run:
                    module: 'functest.core.feature'
                    class: 'BashFeature'
                    args:
                        cmd: 'cd /home/opnfv/repos/promise/promise/test/functest && python ./run_tests.py'

            -
                case_name: doctor-notification
                project_name: doctor
                criteria: 100
                blocking: false
                clean_flag: true
                description: >-
                    Test suite from Doctor project.
                dependencies:
                    installer: '(apex)|(fuel)'
                    scenario: '^((?!fdio).)*$'
                run:
                    module: 'functest.core.feature'
                    class: 'BashFeature'
                    args:
                        cmd: 'cd /home/opnfv/repos/doctor/tests && ./run.sh'

            -
                case_name: bgpvpn
                project_name: sdnvpn
                criteria: 100
                blocking: false
                clean_flag: true
                description: >-
                    Test suite from SDNVPN project.
                dependencies:
                    installer: '(fuel)|(apex)|(netvirt)'
                    scenario: 'bgpvpn'
                run:
                    module: 'functest.core.feature'
                    class: 'BashFeature'
                    args:
                        cmd: 'cd /home/opnfv/repos/sdnvpn/sdnvpn/test/functest && python ./run_tests.py'

            -
                case_name: security_scan
                project_name: securityscanning
                criteria: 100
                blocking: false
                clean_flag: true
                description: >-
                    Simple Security Scan
                dependencies:
                    installer: 'apex'
                    scenario: '^((?!fdio).)*$'
                run:
                    module: 'functest.core.feature'
                    class: 'BashFeature'
                    args:
                        cmd: '. /home/opnfv/functest/conf/stackrc && cd /home/opnfv/repos/securityscanning && python security_scan.py --config config.ini && cd -'

            -
                case_name: copper
                project_name: copper
                criteria: 100
                blocking: false
                clean_flag: true
                description: >-
                    Test suite for policy management based on OpenStack Congress
                dependencies:
                    installer: 'apex'
                    scenario: '^((?!fdio).)*$'
                run:
                    module: 'functest.core.feature'
                    class: 'BashFeature'
                    args:
                        cmd: 'cd /home/opnfv/repos/copper/tests && bash run.sh && cd -'

            -
                case_name: multisite
                project_name: multisite
                criteria: 100
                blocking: false
                clean_flag: false
                description: >-
                    Test suite from kingbird
                dependencies:
                    installer: '(fuel)|(compass)'
                    scenario: 'multisite'
                run:
                    module: 'functest.opnfv_tests.openstack.tempest.tempest'
                    class: 'TempestMultisite'
            -
                case_name: functest-odl-sfc
                project_name: sfc
                criteria: 100
                blocking: false
                clean_flag: true
                description: >-
                    Test suite for odl-sfc to test two chains and two SFs
                dependencies:
                    installer: '(apex)|(fuel)'
                    scenario: 'odl_l2-sfc'
                run:
                    module: 'functest.core.feature'
                    class: 'BashFeature'
                    args:
                        cmd: 'cd /home/opnfv/repos/sfc/sfc/tests/functest && python ./run_tests.py'
            -
                case_name: onos_sfc
                project_name: functest
                criteria: 100
                blocking: true
                clean_flag: true
                description: >-
                    Test Suite for onos-sfc to test sfc function.
                dependencies:
                    installer: ''
                    scenario: 'onos-sfc'
                run:
                    module: 'functest.opnfv_tests.sdn.onos.onos'
                    class: 'OnosSfc'
            -
                case_name: parser-basics
                project_name: parser
                criteria: 100
                blocking: false
                clean_flag: true
                description: >-
                    Test suite from Parser project.
                dependencies:
                    installer: 'fuel'
                    scenario: '^((?!bgpvpn|noha).)*$'
                run:
                    module: 'functest.core.feature'
                    class: 'BashFeature'
                    args:
                        cmd: 'cd /home/opnfv/repos/parser/tests && ./functest_run.sh'
            -
                case_name: domino-multinode
                project_name: domino
                criteria: 100
                blocking: false
                clean_flag: true
                description: >-
                    Test suite from Domino project.
                dependencies:
                    installer: ''
                    scenario: ''
                run:
                    module: 'functest.core.feature'
                    class: 'BashFeature'
                    args:
                        cmd: 'cd /home/opnfv/repos/domino && ./tests/run_multinode.sh'
            -
                case_name: gluon_vping
                project_name: netready
                criteria: 100
                blocking: false
                clean_flag: true
                description: >-
                    Test suite from Netready project.
                dependencies:
                    installer: 'apex'
                    scenario: 'gluon'
                run:
                    module: 'functest.core.feature'
                    class: 'BashFeature'
                    args:
                        cmd: 'cd /home/opnfv/repos/netready/test/functest && python ./gluon-test-suite.py'
            -
                case_name: barometercollectd
                project_name: barometer
                criteria: 100
                blocking: false
                clean_flag: true
                description: >-
                    Test suite for the Barometer project. Separate tests verify the
                    proper configuration and functionality of the following
                    collectd plugins Ceilometer, Hugepages, Memory RAS (mcelog),
                    and OVS Events
                dependencies:
                    installer: 'fuel'
                    scenario: 'kvm_ovs_dpdk_bar'
                run:
                     module: 'functest.opnfv_tests.features.barometer'
                     class: 'BarometerCollectd'
    -
        name: components
        order: 3
        ci_loop: 'weekly'
        description : >-
            Extensive testing of OpenStack API.
        testcases:
            -
                case_name: tempest_full_parallel
                project_name: functest
                criteria: 80
                blocking: false
                clean_flag: true
                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'
            -
                case_name: tempest_custom
                project_name: functest
                criteria: 100
                blocking: false
                clean_flag: true
                description: >-
                    The test case allows running a customized list of tempest
                    test cases defined in a file under
                    <dir_functest_repo>/functest/opnfv_tests/openstack/
                      /tempest/custom_tests/test_list.txt
                    The file is empty and can be customized with the desired tests.
                dependencies:
                    installer: 'unknown'
                    scenario: 'unknown'
                run:
                    module: 'functest.opnfv_tests.openstack.tempest.tempest'
                    class: 'TempestCustom'
            -
                case_name: rally_full
                project_name: functest
                criteria: 90
                blocking: false
                clean_flag: 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: ''
                run:
                    module: 'functest.opnfv_tests.openstack.rally.rally'
                    class: 'RallyFull'

    -
        name: vnf
        order: 4
        ci_loop: 'weekly'
        description : >-
            Collection of VNF test cases.
        testcases:
            -
                case_name: cloudify_ims
                project_name: functest
                criteria: 100
                blocking: false
                clean_flag: true
                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).)*$'
                run:
                    module: 'functest.opnfv_tests.vnf.ims.cloudify_ims'
                    class: 'CloudifyIms'
#          -
#               case_name: aaa
#               project_name: functest
#               criteria: 100
#               blocking: false
#               clean_flag: true
#               description: >-
#                   Test suite from Parser project.
#               dependencies:
#                   installer: ''
#                   scenario: ''
#               run:
#                   module: 'functest.opnfv_tests.vnf.aaa.aaa'
#                   class: 'AaaVnf'
            -
                case_name: orchestra_ims
                project_name: functest
                criteria: 100
                blocking: false
                clean_flag: true
                description: >-
                    VNF deployment with OpenBaton (Orchestra)
                dependencies:
                    installer: ''
                    scenario: ''
                run:
                    module: 'functest.opnfv_tests.vnf.ims.orchestra_ims'
                    class: 'ImsVnf'

            -
                case_name: opera_vims
                project_name: opera
                criteria: 100
                blocking: false
                clean_flag: true
                description: >-
                    VNF deployment with OPEN-O
                dependencies:
                    installer: 'compass'
                    scenario: 'os-nosdn-openo-ha'
                run:
                    module: 'functest.opnfv_tests.vnf.ims.opera_ims'
                    class: 'OperaIms'

            -
                case_name: vyos_vrouter
                project_name: functest
                criteria: 100
                blocking: false
                clean_flag: true
                description: >-
                    This test case is vRouter testing.
                dependencies:
                    installer: 'fuel'
                    scenario: 'nosdn-nofeature'
                run:
                    module: 'functest.opnfv_tests.vnf.router.vyos_vrouter'
                    class: 'VrouterVnf'