From 610ce4634e454a2295dbb957cf10b9d7e4a1d928 Mon Sep 17 00:00:00 2001
From: Cédric Ollivier <cedric.ollivier@orange.com>
Date: Wed, 23 Oct 2019 23:20:02 +0200
Subject: Publish functest-cntt-smoke
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It tunes neutron-tempest-plugin-api to avoid skipping any test
(conformance as expected by CNTT). Until CNTT clearly defines the
optional and mandatory neutron extensions, it selects the
OpenStack and Functest gate values as default.

The next Neutron extensions are considered as optional (still verified
by functest-smoke):
- logging
- network-segment-range
- port-resource-request
- qos
- trunk
- metering
- uplink-status-propagation
- dns-domain-ports
- dns-integration
- router-interface-fip
- rbac-security-groups
- floatingip-pools

The next tests (tempest_full, tempest_slow, tempest_scenario, etc.)
will be updated in next changes.

Change-Id: I003d1e509cd6dc7bd58261f27676fb53cb79e68c
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
(cherry picked from commit 1456f68e90103afab958ae8a305c840e6fa29cf7)
---
 .travis.yml                      |  23 ++++
 build.sh                         |   3 +-
 docker/smoke-cntt/Dockerfile     |   4 +
 docker/smoke-cntt/testcases.yaml | 281 +++++++++++++++++++++++++++++++++++++++
 4 files changed, 310 insertions(+), 1 deletion(-)
 create mode 100644 docker/smoke-cntt/Dockerfile
 create mode 100644 docker/smoke-cntt/testcases.yaml

diff --git a/.travis.yml b/.travis.yml
index b627e97d1..9677b34ef 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -166,6 +166,24 @@ jobs:
         - amd64_dirs=""
         - arm64_dirs=""
         - arm_dirs="docker/vnf"
+    - script: sudo -E bash build.sh
+      env:
+        - REPO="${DOCKER_USERNAME}"
+        - amd64_dirs="docker/smoke-cntt"
+        - arm64_dirs=""
+        - arm_dirs=""
+    - script: sudo -E bash build.sh
+      env:
+        - REPO="${DOCKER_USERNAME}"
+        - amd64_dirs=""
+        - arm64_dirs="docker/smoke-cntt"
+        - arm_dirs=""
+    - script: sudo -E bash build.sh
+      env:
+        - REPO="${DOCKER_USERNAME}"
+        - amd64_dirs=""
+        - arm64_dirs=""
+        - arm_dirs="docker/smoke-cntt"
     - stage: publish all manifests
       script: >
         sudo manifest-tool push from-args \
@@ -192,3 +210,8 @@ jobs:
           --platforms linux/amd64,linux/arm,linux/arm64 \
           --template ${DOCKER_USERNAME}/functest-vnf:ARCH-hunter \
           --target ${DOCKER_USERNAME}/functest-vnf:hunter
+    - script: >
+        sudo manifest-tool push from-args \
+          --platforms linux/amd64,linux/arm,linux/arm64 \
+          --template ${DOCKER_USERNAME}/functest-smoke-cntt:ARCH-hunter \
+          --target ${DOCKER_USERNAME}/functest-smoke-cntt:hunter
diff --git a/build.sh b/build.sh
index ce6f9deea..2cd00fa3f 100644
--- a/build.sh
+++ b/build.sh
@@ -17,7 +17,8 @@ docker/tempest \
 docker/healthcheck \
 docker/smoke \
 docker/benchmarking \
-docker/features"}
+docker/features \
+docker/smoke-cntt"}
 arm64_dirs=${arm64_dirs-${amd64_dirs}}
 build_opts=("--pull=true" --no-cache "--force-rm=true")
 
diff --git a/docker/smoke-cntt/Dockerfile b/docker/smoke-cntt/Dockerfile
new file mode 100644
index 000000000..1fa944030
--- /dev/null
+++ b/docker/smoke-cntt/Dockerfile
@@ -0,0 +1,4 @@
+FROM opnfv/functest-smoke
+
+COPY testcases.yaml /usr/lib/python3.7/site-packages/xtesting/ci/testcases.yaml
+CMD ["run_tests", "-t", "all"]
diff --git a/docker/smoke-cntt/testcases.yaml b/docker/smoke-cntt/testcases.yaml
new file mode 100644
index 000000000..f68de163c
--- /dev/null
+++ b/docker/smoke-cntt/testcases.yaml
@@ -0,0 +1,281 @@
+---
+tiers:
+    -
+        name: smoke
+        order: 1
+        description: >-
+            Set of basic Functional tests to validate the OPNFV scenarios.
+        testcases:
+            -
+                case_name: neutron-tempest-plugin-api
+                project_name: functest
+                criteria: 100
+                blocking: false
+                deny_skipping: true
+                tests_count: 372
+                description: >-
+                    This test case runs the Tempest suite proposed by the
+                    Neutron project. The list of test cases is generated by
+                    Tempest automatically and depends on the parameters of
+                    the OpenStack deployment.
+                run:
+                    name: tempest_common
+                    args:
+                        mode: "(?!.*test_logging)(?!.*test_logging_negative)\
+                            (?!.*test_network_segment_range)\
+                            (?!.*test_ports.PortTestCasesResourceRequest)\
+                            (?!.*test_tag.TagFilterQosPolicyTestJSON)\
+                            (?!.*test_tag.TagFilterTrunkTestJSON)\
+                            (?!.*test_tag.TagQosPolicyTestJSON)\
+                            (?!.*test_tag.TagTrunkTestJSON)\
+                            (?!.*test_floating_ips.FloatingIPPoolTestJSON)\
+                            (?!.*test_metering_extensions)\
+                            (?!.*test_metering_negative)\
+                            (?!.*test_networks.NetworksTestJSON.test_create_update_network_dns_domain)\
+                            (?!.*test_ports.PortsTestJSON.test_create_port_with_propagate_uplink_status)\
+                            (?!.*test_ports.PortsTestJSON.test_create_port_without_propagate_uplink_status)\
+                            (?!.*test_ports.PortsTestJSON.test_create_update_port_with_dns_domain)\
+                            (?!.*test_ports.PortsTestJSON.test_create_update_port_with_dns_name)\
+                            (?!.*test_ports.PortsTestJSON.test_create_update_port_with_no_dns_name)\
+                            (?!.*test_qos)(?!.*test_qos_negative)\
+                            (?!.*test_revisions.TestRevisions.test_update_dns_domain_bumps_revision)\
+                            (?!.*test_revisions.TestRevisions.test_update_qos_network_policy_binding_bumps_revision)\
+                            (?!.*test_revisions.TestRevisions.test_update_qos_port_policy_binding_bumps_revision)\
+                            (?!.*test_router_interface_fip)\
+                            (?!.*test_security_groups.RbacSharedSecurityGroupTest)\
+                            (?!.*test_timestamp.TestTimeStamp.test_segment_with_timestamp)\
+                            (?!.*test_trunk)(?!.*test_trunk_negative)\
+                            (^neutron_tempest_plugin.api)"
+                        option:
+                            - '--concurrency=4'
+
+            -
+                case_name: rally_sanity
+                project_name: functest
+                criteria: 100
+                blocking: false
+                description: >-
+                    This test case runs a sub group of tests of the OpenStack
+                    Rally suite in smoke mode.
+                run:
+                    name: rally_sanity
+                    args:
+                        optional:
+                            - 'gnocchi'
+                            - 'barbican'
+
+            -
+                case_name: refstack_compute
+                project_name: functest
+                criteria: 100
+                blocking: false
+                deny_skipping: true
+                tests_count: 222
+                description: >-
+                    This test case runs a sub group of tests of the OpenStack
+                    Compute testcases.
+                run:
+                    name: refstack
+                    args:
+                        target: compute
+                        option:
+                            - '--concurrency=4'
+
+            -
+                case_name: refstack_object
+                project_name: functest
+                criteria: 100
+                blocking: false
+                deny_skipping: true
+                tests_count: 58
+                description: >-
+                    This test case runs a sub group of tests of the OpenStack
+                    Object testcases.
+                run:
+                    name: refstack
+                    args:
+                        target: object
+                        option:
+                            - '--concurrency=4'
+
+            -
+                case_name: refstack_platform
+                project_name: functest
+                criteria: 100
+                blocking: false
+                deny_skipping: true
+                tests_count: 278
+                description: >-
+                    This test case runs a sub group of tests of the OpenStack
+                    Platform testcases.
+                run:
+                    name: refstack
+                    args:
+                        target: platform
+                        option:
+                            - '--concurrency=4'
+
+            -
+                case_name: tempest_full
+                project_name: functest
+                criteria: 100
+                blocking: false
+                description: >-
+                    The list of test cases is generated by
+                    Tempest automatically and depends on the parameters of
+                    the OpenStack deployment.
+                    https://github.com/openstack/tempest/blob/18.0.0/tox.ini#L83
+                run:
+                    name: tempest_common
+                    args:
+                        mode: '(?!.*\[.*\bslow\b.*\])(^tempest\.api)'
+                        option:
+                            - '--concurrency=4'
+
+            -
+                case_name: tempest_scenario
+                project_name: functest
+                criteria: 100
+                blocking: false
+                description: >-
+                    The list of test cases is generated by
+                    Tempest automatically and depends on the parameters of
+                    the OpenStack deployment.
+                    https://github.com/openstack/tempest/blob/18.0.0/tox.ini#L84
+                run:
+                    name: tempest_scenario
+                    args:
+                        mode: '(?!.*\[.*\bslow\b.*\])(^tempest\.scenario)'
+                        option:
+                            - '--concurrency=1'
+
+            -
+                case_name: tempest_slow
+                project_name: functest
+                criteria: 100
+                blocking: false
+                description: >-
+                    The list of test cases is generated by
+                    Tempest automatically and depends on the parameters of
+                    the OpenStack deployment.
+                    https://github.com/openstack/tempest/blob/18.0.0/tox.ini#L84
+                run:
+                    name: tempest_common
+                    args:
+                        mode: '(?=.*\[.*\bslow\b.*\])(^tempest\.)'
+                        option:
+                            - '--concurrency=2'
+
+            -
+                case_name: patrole
+                project_name: functest
+                criteria: 100
+                blocking: false
+                description: >-
+                    Test suite from Patrole project.
+                run:
+                    name: patrole
+                    args:
+                        role: 'admin'
+                        includes:
+                            - 'image'
+                            - 'network'
+                        excludes:
+                            - 'network.test_flavors_rbac'
+                            - 'network.test_network_ip_availability_rbac'
+                            - 'test_networks_multiprovider_rbac'
+                            - 'test_auto_allocated_topology_rbac'
+                            - 'test_create_network_provider_segmentation_id'
+                            - 'test_update_network_provider_physical_network'
+                            - 'test_update_network_provider_segmentation_id'
+                            - 'network.test_agents_rbac'
+                            - 'test_list_metadef_namespaces'
+
+            -
+                case_name: neutron_trunk
+                project_name: functest
+                criteria: 100
+                blocking: false
+                description: >-
+                    This test case runs the neutron trunk subtest of the
+                    OpenStack Tempest suite. The list of test cases is
+                    generated by Tempest having as input the relevant
+                    testcase list file.
+                run:
+                    name: tempest_common
+                    args:
+                        mode: 'neutron_tempest_plugin.(api|scenario).test_trunk'
+                        neutron_extensions:
+                            - trunk
+                            - trunk-details
+
+            -
+                case_name: networking-bgpvpn
+                project_name: functest
+                criteria: 100
+                blocking: false
+                description: >-
+                    This test case runs OpenStack networking-bgpvpn Tempest
+                    suite. The list of test cases is generated by Tempest
+                    having as input the relevant regex.
+                run:
+                    name: tempest_common
+                    args:
+                        mode: '^neutron_tempest_plugin.bgpvpn.api\.'
+                        neutron_extensions:
+                            - bgpvpn
+                        option:
+                            - '--concurrency=4'
+
+            -
+                case_name: networking-sfc
+                project_name: functest
+                criteria: 100
+                blocking: false
+                description: >-
+                    This test case runs OpenStack networking-sfc Tempest
+                    suite. The list of test cases is generated by Tempest
+                    having as input the relevant regex.
+                run:
+                    name: tempest_common
+                    args:
+                        mode:
+                            '^(?:neutron_tempest_plugin\.sfc\.tests\.api).*$'
+                        neutron_extensions:
+                            - sfc
+                        option:
+                            - '--concurrency=0'
+
+            -
+                case_name: barbican
+                project_name: functest
+                criteria: 100
+                blocking: false
+                description: >-
+                    It leverages on the tempest plugin containing tests used to
+                    verify the functionality of a barbican installation.
+                run:
+                    name: barbican
+                    args:
+                        mode:
+                            '^barbican_tempest_plugin.((?!test_signed_image_upload_boot_failure).)*$'
+                        services:
+                            - barbican
+
+            -
+                case_name: octavia
+                project_name: functest
+                criteria: 100
+                blocking: false
+                description: >-
+                    It leverages on the tempest plugin containing tests used to
+                    verify the functionality of an octavia installation.
+                run:
+                    name: tempest_common
+                    args:
+                        mode:
+                            '^octavia_tempest_plugin.tests.api.v2'
+                        services:
+                            - octavia
+                        option:
+                            - '--concurrency=2'
-- 
cgit 1.2.3-korg