diff options
Diffstat (limited to 'etc')
86 files changed, 5948 insertions, 0 deletions
diff --git a/etc/compliance/debug.yml b/etc/compliance/debug.yml new file mode 100644 index 00000000..b15c3cec --- /dev/null +++ b/etc/compliance/debug.yml @@ -0,0 +1,19 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +# only used for dovetail tool development and the integration testing +# of new test cases. New test case candidates for the next release, +# which need to be evaluated in the OPNFV CI, should be added to the +# proposed_tests test suite. +debug: + name: debug + testcases_list: + optional: + - functest.vping.userdata diff --git a/etc/compliance/healthcheck.yml b/etc/compliance/healthcheck.yml new file mode 100644 index 00000000..ad461cad --- /dev/null +++ b/etc/compliance/healthcheck.yml @@ -0,0 +1,17 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +# Pre-flight check before running more complex tests +# Will be used for running on CI +healthcheck: + name: healthcheck + testcases_list: + optional: + - functest.healthcheck.connection_check diff --git a/etc/compliance/onap.heat.2019.04.yaml b/etc/compliance/onap.heat.2019.04.yaml new file mode 100644 index 00000000..1777bda2 --- /dev/null +++ b/etc/compliance/onap.heat.2019.04.yaml @@ -0,0 +1,17 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +onap.heat.2019.04: + name: onap.heat.2019.04 + version: '2019.04' + vnf_type: heat + testcases_list: + mandatory: + - onap-vvp.validate.heat diff --git a/etc/compliance/onap.tosca.2019.04.yaml b/etc/compliance/onap.tosca.2019.04.yaml new file mode 100644 index 00000000..15072010 --- /dev/null +++ b/etc/compliance/onap.tosca.2019.04.yaml @@ -0,0 +1,17 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +onap.tosca.2019.04: + name: onap.tosca.2019.04 + version: '2019.04' + vnf_type: tosca + testcases_list: + mandatory: + - onap-vtp.validate.csar diff --git a/etc/compliance/ovp.2019.12.yaml b/etc/compliance/ovp.2019.12.yaml new file mode 100644 index 00000000..a1f7a50b --- /dev/null +++ b/etc/compliance/ovp.2019.12.yaml @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +ovp.2019.12: + name: ovp.2019.12 + version: '2019.12' + testcases_list: + mandatory: + - functest.vping.userdata + - functest.vping.ssh + - functest.tempest.osinterop + - functest.tempest.compute + - functest.tempest.identity_v3 + - functest.tempest.image + - functest.tempest.network_api + - functest.tempest.volume + - functest.tempest.neutron_trunk_ports + - functest.tempest.ipv6_api + - functest.security.patrole + - yardstick.ha.nova_api + - yardstick.ha.neutron_server + - yardstick.ha.keystone + - yardstick.ha.glance_api + - yardstick.ha.cinder_api + - yardstick.ha.cpu_load + - yardstick.ha.disk_load + - yardstick.ha.haproxy + - yardstick.ha.rabbitmq + - yardstick.ha.database + - bottlenecks.stress.ping + optional: + - functest.tempest.ipv6_scenario + - functest.tempest.multi_node_scheduling + - functest.tempest.network_security + - functest.tempest.vm_lifecycle + - functest.tempest.network_scenario + - functest.tempest.bgpvpn + - functest.security.patrole_vxlan_dependent + - yardstick.ha.neutron_l3_agent + - yardstick.ha.controller_restart + - functest.vnf.vims + - functest.vnf.vepc diff --git a/etc/compliance/proposed_tests.yml b/etc/compliance/proposed_tests.yml new file mode 100644 index 00000000..17eadff8 --- /dev/null +++ b/etc/compliance/proposed_tests.yml @@ -0,0 +1,29 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +proposed_tests: + # proposed new test cases for next release + name: proposed_tests + testcases_list: + mandatory: + optional: + - functest.k8s.conformance + - functest.k8s.smoke + - functest.rally.authenticate + - functest.rally.cinder + - functest.rally.glance + - functest.rally.gnocchi + - functest.rally.heat + - functest.rally.keystone + - functest.rally.neutron + - functest.rally.nova + - functest.rally.quotas + - functest.tempest.neutron_tempest_plugin_api + - functest.tempest.networking_sfc diff --git a/etc/conf/__init__.py b/etc/conf/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/etc/conf/__init__.py diff --git a/etc/conf/bottlenecks_config.yml b/etc/conf/bottlenecks_config.yml new file mode 100644 index 00000000..c23ad9cc --- /dev/null +++ b/etc/conf/bottlenecks_config.yml @@ -0,0 +1,62 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- + +{% set validate_testcase = validate_testcase or '' %} +{% set testcase = testcase or '' %} +{% set deploy_scenario = deploy_scenario or 'unknown' %} +{% set dovetail_home = dovetail_home or '' %} +{% set debug = debug or 'false' %} +{% set build_tag = build_tag or '' %} +{% set cacert_volume = '' %} +{% if cacert %} + {% set cacert_volume = 'source=' + cacert + ',target=' + cacert %} +{% endif %} +{% set openrc_file = '/tmp/admin_rc.sh' %} +{% set result_dir = '/home/opnfv/bottlenecks/results' %} +{% set images_dir = '/home/opnfv/images' %} +{% set config_dir = '/home/opnfv/userconfig' %} +{% set image_file = '/tmp/yardstick.img' %} + +bottlenecks: + image_name: opnfv/bottlenecks + docker_tag: 8.0.1-latest + opts: + detach: true + stdin_open: true + privileged: true + shell: '/bin/bash' + envs: + - 'DEPLOY_SCENARIO={{deploy_scenario}}' + - 'Yardstick_TAG=opnfv-8.0.0' + - 'OUTPUT_FILE={{testcase}}.out' + - 'CI_DEBUG={{debug}}' + - 'BUILD_TAG={{build_tag}}-{{testcase}}' + volumes: + - '{{dovetail_home}}/results/bottlenecks:/tmp' + - '{{dovetail_home}}/images:{{images_dir}}' + - '{{dovetail_home}}/results:{{result_dir}}' + mounts: + - 'source=/var/run/docker.sock,target=/var/run/docker.sock' + - 'source={{dovetail_home}}/pre_config/env_config.sh,target={{openrc_file}}' + - {{cacert_volume}} + pre_condition: + - 'cp {{images_dir}}/ubuntu-16.04-server-cloudimg-amd64-disk1.img {{image_file}}' + cmds: + - 'python /home/opnfv/bottlenecks/testsuites/run_testsuite.py testcase {{validate_testcase}} False' + post_condition: + - 'mkdir -p {{result_dir}}' + - 'cp /tmp/bottlenecks.log {{result_dir}}' + - 'cp /tmp/bottlenecks.stress.ping.out {{result_dir}}' + - 'rm {{image_file}}' + openrc: {{openrc_file}} + extra_container: + - 'Bottlenecks-Yardstick' + - 'Bottlenecks-ELK' diff --git a/etc/conf/cmd_config.yml b/etc/conf/cmd_config.yml new file mode 100644 index 00000000..63c87343 --- /dev/null +++ b/etc/conf/cmd_config.yml @@ -0,0 +1,95 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +cli: + arguments: + config: + # This is a simple example of arguments. + # Dovetail has no need of this kind of parameters currently. + # The arguments must be given orderly at the run-time. + # + # docker_tag: + # flags: 'docker_tag' + # path: + # - 'functest/docker_tag' + # - 'yardstick/docker_tag' + control: + + options: + config: + control: + testsuite: + flags: + - '--testsuite' + default: 'ovp.2019.12' + help: 'compliance testsuite.' + testarea: + flags: + - '--testarea' + multiple: 'True' + help: 'Compliance testarea within testsuite. Specify option multiple times to include multiple test areas.' + testcase: + flags: + - '--testcase' + multiple: 'True' + help: 'Compliance testcase. Specify option multiple times to include multiple test cases.' + debug: + flags: + - '--debug' + - '-d' + is_flag: 'True' + help: 'Flag for showing debug log on screen.' + stop: + flags: + - '--stop' + - '-s' + is_flag: 'True' + help: 'Flag for stopping on test case failure.' + report: + flags: + - '--report' + - '-r' + is_flag: 'True' + help: 'Create a tarball file to upload to OVP web portal' + offline: + flags: + - '--offline' + is_flag: 'True' + help: 'run in offline method, which means not to update the docker upstream images, functest, yardstick, etc.' + noapivalidation: + flags: + - '--no-api-validation' + is_flag: 'True' + help: 'disable strict API response validation' + noclean: + flags: + - '--no-clean' + - '-n' + is_flag: 'True' + help: 'Keep all Containers created for debuging.' + deployscenario: + flags: + - '--deploy-scenario' + help: 'Specify the DEPLOY_SCENARIO which will be used as input by each testcase respectively' + mandatory: + flags: + - '--mandatory' + is_flag: 'True' + help: 'Run all mandatory test cases.' + optional: + flags: + - '--optional' + is_flag: 'True' + help: 'Run all optional test cases.' + opnfvci: + flags: + - '--opnfv-ci' + is_flag: 'True' + help: 'Only enabled when running with OPNFV CI jobs and pushing results to TestAPI DB' diff --git a/etc/conf/dovetail_config.yml b/etc/conf/dovetail_config.yml new file mode 100644 index 00000000..10b81fbb --- /dev/null +++ b/etc/conf/dovetail_config.yml @@ -0,0 +1,42 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +version: '2019.12' +cli_file_name: 'cmd_config.yml' +result_file: 'results.json' + +# OPENSTACK Credential file +env_file: 'env_config.sh' + +# POD info file +pod_file: 'pod.yaml' + +# JUMPSERVER private key used in pod_file to login hosts +# If use password to login hosts, there's no need to provide the private key +pri_key: 'id_rsa' + +# testsuite supported, should adjust accordingly +testsuite_supported: + - proposed_tests + - debug + - healthcheck + - ovp.2019.12 + - onap.tosca.2019.04 + - onap.heat.2019.04 + +# used for testcase cmd template in jinja2 format +# we have two variables available now +# parameter path, use this path to walk through python object and get value +# and the python object is "testcase" object by hard-coded +parameters: + - name: testcase + path: '("name",)' + - name: validate_testcase + path: '("validate", "testcase")' diff --git a/etc/conf/functest-k8s_config.yml b/etc/conf/functest-k8s_config.yml new file mode 100644 index 00000000..a01f5715 --- /dev/null +++ b/etc/conf/functest-k8s_config.yml @@ -0,0 +1,46 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- + +{% set validate_testcase = validate_testcase or '' %} +{% set testcase = testcase or '' %} +{% set dovetail_home = dovetail_home or '' %} +{% set debug = debug or 'false' %} +{% set build_tag = build_tag or '' %} +{% set openrc_file = '/home/opnfv/functest/conf/env_file' %} +{% set kube_file = '/root/.kube/config' %} +{% set result_dir = '/home/opnfv/functest/results' %} + +functest-k8s: + image_name: opnfv/functest-kubernetes-healthcheck + docker_tag: hunter + opts: + detach: true + stdin_open: true + shell: '/bin/bash' + envs: + - 'INSTALLER_TYPE=unknown' + - 'DEPLOY_SCENARIO=k8-deploy' + - 'NODE_NAME=unknown' + - 'TEST_DB_URL=file:///home/opnfv/functest/results/functest_results.txt' + - 'CI_DEBUG={{debug}}' + - 'BUILD_TAG={{build_tag}}-{{testcase}}' + volumes: + - '{{dovetail_home}}/results/:{{result_dir}}' + mounts: + - 'source={{dovetail_home}}/pre_config/k8.creds,target={{openrc_file}}' + - 'source={{dovetail_home}}/pre_config/admin.conf,target={{kube_file}}' + pre_condition: + - 'echo test for precondition in functest' + cmds: + - 'run_tests -t {{validate_testcase}} -r' + post_condition: + - 'echo test for postcondition in functest' + openrc: {{openrc_file}} diff --git a/etc/conf/functest_config.yml b/etc/conf/functest_config.yml new file mode 100644 index 00000000..91fd68e2 --- /dev/null +++ b/etc/conf/functest_config.yml @@ -0,0 +1,65 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- + +{% set validate_testcase = validate_testcase or '' %} +{% set testcase = testcase or '' %} +{% set deploy_scenario = deploy_scenario or 'unknown' %} +{% set os_insecure = os_insecure or 'False' %} +{% set os_verify = '' %} +{% if os_insecure == 'True' %} + {% set os_verify = 'OS_VERIFY=' %} +{% endif %} +{% set dovetail_home = dovetail_home or '' %} +{% set debug = debug or 'false' %} +{% set build_tag = build_tag or '' %} +{% set cacert_volume = '' %} +{% if cacert %} + {% set cacert_volume = 'source=' + cacert + ',target=' + cacert %} +{% endif %} +{% set openrc_file = '/home/opnfv/functest/conf/env_file' %} +{% set result_dir = '/home/opnfv/functest/results' %} +{% set userconfig_dir = '/home/opnfv/userconfig' %} +{% set patches_dir = '/home/opnfv/patches' %} +{% set images_dir = '/home/opnfv/functest/images' %} + +functest: + image_name: opnfv/functest-smoke + docker_tag: hunter + opts: + detach: true + stdin_open: true + privileged: true + shell: '/bin/bash' + envs: + - {{os_verify}} + - 'INSTALLER_TYPE=unknown' + - 'DEPLOY_SCENARIO={{deploy_scenario}}' + - 'NODE_NAME=unknown' + - 'TEST_DB_URL=file://{{result_dir}}/functest_results.txt' + - 'CI_DEBUG={{debug}}' + - 'BUILD_TAG={{build_tag}}-{{testcase}}' + volumes: + - '{{dovetail_home}}/userconfig:{{userconfig_dir}}' + - '{{dovetail_home}}/patches:{{patches_dir}}' + - '{{dovetail_home}}/results:{{result_dir}}' + - '{{dovetail_home}}/images:{{images_dir}}' + mounts: + - 'source={{dovetail_home}}/pre_config/env_config.sh,target={{openrc_file}}' + - 'source={{dovetail_home}}/pre_config,target=/home/opnfv/pre_config' + - {{cacert_volume}} + patches_dir: {{patches_dir}} + pre_condition: + - 'echo test for precondition in functest' + cmds: + - 'run_tests -t {{validate_testcase}} -r' + post_condition: + - 'echo test for postcondition in functest' + openrc: {{openrc_file}} diff --git a/etc/conf/onap-vtp_config.yml b/etc/conf/onap-vtp_config.yml new file mode 100644 index 00000000..2cfc96fc --- /dev/null +++ b/etc/conf/onap-vtp_config.yml @@ -0,0 +1,39 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- + +{% set validate_testcase = validate_testcase or '' %} +{% set testcase = testcase or '' %} +{% set build_tag = build_tag or '' %} +{% set csar_file = csar_file or '' %} +{% set host_url = host_url or '' %} +{% set result_dir = '/tmp/onap' %} + +onap-vtp: + image_name: nexus3.onap.org:10001/onap/cli + docker_tag: 2.0.5 + opts: + detach: true + tty: true + shell: '/bin/bash' + envs: + - 'OPEN_CLI_MODE=daemon' + - 'BUILD_TAG={{build_tag}}-{{testcase}}' + - 'OPEN_CLI_PRODUCT_IN_USE=onap-vtp' + volumes: + - '{{dovetail_home}}/pre_config/{{csar_file}}:/{{csar_file}}' + - '{{dovetail_home}}/results:{{result_dir}}' + pre_condition: + - 'echo this is pre_condition' + cmds: + - "oclip vnftest-run --name {{validate_testcase}} --param csar=/{{csar_file}} + --host-url {{host_url}} --format json > {{result_dir}}/{{testcase}}.out" + post_condition: + - 'echo this is post_condition' diff --git a/etc/conf/onap-vvp_config.yml b/etc/conf/onap-vvp_config.yml new file mode 100644 index 00000000..ee09b711 --- /dev/null +++ b/etc/conf/onap-vvp_config.yml @@ -0,0 +1,32 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- + +{% set build_tag = build_tag or '' %} +{% set heat_templates_archive = heat_templates_archive or '' %} +{% set result_dir = '/vvp/reports' %} + +onap-vvp: + image_name: nexus3.onap.org:10001/onap/vvp/validation-scripts + docker_tag: latest + opts: + detach: true + tty: true + entrypoint: '' + shell: '/bin/ash' + volumes: + - '{{dovetail_home}}/pre_config/{{heat_templates_archive}}.zip:/tmp/{{heat_templates_archive}}.zip' + - '{{dovetail_home}}/results:{{result_dir}}' + pre_condition: + - 'unzip -o -d /vvp/{{heat_templates_archive}} /tmp/{{heat_templates_archive}}.zip' + cmds: + - 'pytest tests --template-directory=/vvp/{{heat_templates_archive}} --output-directory={{result_dir}} --report-format=json --continue-on-failure' + post_condition: + - 'echo this is post_condition' diff --git a/etc/conf/yardstick_config.yml b/etc/conf/yardstick_config.yml new file mode 100644 index 00000000..3c4273f8 --- /dev/null +++ b/etc/conf/yardstick_config.yml @@ -0,0 +1,64 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- + +{% set attack_host = attack_host or '' %} +{% set attack_process = attack_process or '' %} +{% set validate_testcase = validate_testcase or '' %} +{% set testcase = testcase or '' %} +{% set os_insecure = os_insecure or 'False' %} +{% set os_verify = '' %} +{% if os_insecure == 'True' %} + {% set os_verify = 'OS_VERIFY=' %} +{% endif %} +{% set dovetail_home = dovetail_home or '' %} +{% set debug = debug or 'false' %} +{% set build_tag = build_tag or '' %} +{% set cacert_volume = '' %} +{% if cacert %} + {% set cacert_volume = 'source=' + cacert + ',target=' + cacert %} +{% endif %} +{% set openrc_file = '/etc/yardstick/openstack.creds' %} +{% set pod_file = '/etc/yardstick/pod.yaml' %} +{% set result_dir = '/tmp/yardstick' %} + +yardstick: + image_name: opnfv/yardstick + docker_tag: opnfv-8.0.0 + opts: + detach: true + stdin_open: true + privileged: true + shell: '/bin/bash' + envs: + - {{os_verify}} + - 'YARDSTICK_BRANCH=fraser' + - 'CI_DEBUG={{debug}}' + - 'BUILD_TAG={{build_tag}}-{{testcase}}"' + volumes: + - '{{dovetail_home}}/images:/home/opnfv/images' + - '{{dovetail_home}}/results:{{result_dir}}' + mounts: + - 'source={{dovetail_home}}/pre_config,target={{dovetail_home}}/pre_config' + - 'source={{dovetail_home}}/pre_config/env_config.sh,target={{openrc_file}}' + - 'source={{dovetail_home}}/pre_config/pod.yaml,target={{pod_file}}' + - {{cacert_volume}} + pre_condition: + - 'echo this is pre_condition' + cmds: + - "cd /home/opnfv/repos/yardstick && source {{openrc_file}} && + yardstick task start tests/opnfv/test_cases/{{validate_testcase}}.yaml + --output-file {{result_dir}}/{{testcase}}.out + --task-args '{'file': '{{pod_file}}', + 'attack_host': {{attack_host}}, + 'attack_process': {{attack_process}}}'" + post_condition: + - 'echo this is post_condition' + openrc: {{openrc_file}} diff --git a/etc/patches/functest/disable-api-validation/0001-Allow-additional-properties-in-API-responses.patch b/etc/patches/functest/disable-api-validation/0001-Allow-additional-properties-in-API-responses.patch new file mode 100644 index 00000000..51136813 --- /dev/null +++ b/etc/patches/functest/disable-api-validation/0001-Allow-additional-properties-in-API-responses.patch @@ -0,0 +1,1962 @@ +From 56c7c31129ca7942e7d658b249e32a4b05a08c94 Mon Sep 17 00:00:00 2001 +From: Dovetail <ovp-support@lfnetworking.org> +Date: Fri, 8 Nov 2019 07:56:32 +0000 +Subject: [PATCH] Allow additional properties in API responses + +Signed-off-by: Dovetail <ovp-support@lfnetworking.org> +--- + .../response/compute/v2_1/agents.py | 10 ++-- + .../response/compute/v2_1/aggregates.py | 8 +-- + .../compute/v2_1/availability_zone.py | 8 +-- + .../response/compute/v2_1/baremetal_nodes.py | 6 +- + .../response/compute/v2_1/certificates.py | 4 +- + .../response/compute/v2_1/extensions.py | 4 +- + .../response/compute/v2_1/fixed_ips.py | 4 +- + .../response/compute/v2_1/flavors.py | 10 ++-- + .../response/compute/v2_1/flavors_access.py | 4 +- + .../compute/v2_1/flavors_extra_specs.py | 2 +- + .../response/compute/v2_1/floating_ips.py | 20 +++---- + .../api_schema/response/compute/v2_1/hosts.py | 14 ++--- + .../response/compute/v2_1/hypervisors.py | 22 +++---- + .../response/compute/v2_1/images.py | 16 ++--- + .../compute/v2_1/instance_usage_audit_logs.py | 8 +-- + .../response/compute/v2_1/interfaces.py | 8 +-- + .../response/compute/v2_1/keypairs.py | 14 ++--- + .../response/compute/v2_1/limits.py | 10 ++-- + .../response/compute/v2_1/migrations.py | 4 +- + .../response/compute/v2_1/parameter_types.py | 4 +- + .../response/compute/v2_1/quotas.py | 4 +- + .../v2_1/security_group_default_rule.py | 8 +-- + .../response/compute/v2_1/security_groups.py | 16 ++--- + .../response/compute/v2_1/server_groups.py | 6 +- + .../response/compute/v2_1/servers.py | 60 +++++++++---------- + .../response/compute/v2_1/services.py | 12 ++-- + .../response/compute/v2_1/snapshots.py | 6 +- + .../response/compute/v2_1/tenant_networks.py | 6 +- + .../response/compute/v2_1/versions.py | 10 ++-- + .../response/compute/v2_1/volumes.py | 12 ++-- + .../response/compute/v2_11/services.py | 4 +- + .../response/compute/v2_16/servers.py | 14 ++--- + .../response/compute/v2_23/migrations.py | 4 +- + .../response/compute/v2_26/servers.py | 2 +- + .../response/compute/v2_3/servers.py | 14 ++--- + .../response/compute/v2_45/images.py | 2 +- + .../response/compute/v2_47/servers.py | 2 +- + .../response/compute/v2_48/servers.py | 10 ++-- + .../response/compute/v2_53/services.py | 4 +- + .../response/compute/v2_55/flavors.py | 10 ++-- + .../response/compute/v2_6/servers.py | 4 +- + .../response/compute/v2_61/flavors.py | 6 +- + tempest/lib/api_schema/response/volume/qos.py | 16 ++--- + 43 files changed, 206 insertions(+), 206 deletions(-) + +diff --git a/tempest/lib/api_schema/response/compute/v2_1/agents.py b/tempest/lib/api_schema/response/compute/v2_1/agents.py +index 6f712b41e..09feb73df 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/agents.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/agents.py +@@ -23,7 +23,7 @@ common_agent_info = { + 'url': {'type': 'string', 'format': 'uri'}, + 'md5hash': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['agent_id', 'hypervisor', 'os', 'architecture', + 'version', 'url', 'md5hash'] + } +@@ -38,7 +38,7 @@ list_agents = { + 'items': common_agent_info + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['agents'] + } + } +@@ -50,7 +50,7 @@ create_agent = { + 'properties': { + 'agent': common_agent_info + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['agent'] + } + } +@@ -68,11 +68,11 @@ update_agent = { + 'url': {'type': 'string', 'format': 'uri'}, + 'md5hash': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['agent_id', 'version', 'url', 'md5hash'] + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['agent'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_1/aggregates.py b/tempest/lib/api_schema/response/compute/v2_1/aggregates.py +index 3289a34a7..021959b10 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/aggregates.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/aggregates.py +@@ -28,7 +28,7 @@ aggregate_for_create = { + 'name': {'type': 'string'}, + 'updated_at': parameter_types.date_time_or_null + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['availability_zone', 'created_at', 'deleted', + 'deleted_at', 'id', 'name', 'updated_at'], + } +@@ -50,7 +50,7 @@ list_aggregates = { + 'items': common_aggregate_info + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['aggregates'], + } + } +@@ -62,7 +62,7 @@ get_aggregate = { + 'properties': { + 'aggregate': common_aggregate_info + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['aggregate'], + } + } +@@ -84,7 +84,7 @@ create_aggregate = { + 'properties': { + 'aggregate': aggregate_for_create + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['aggregate'], + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_1/availability_zone.py b/tempest/lib/api_schema/response/compute/v2_1/availability_zone.py +index 0dc28c378..ded47d7c0 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/availability_zone.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/availability_zone.py +@@ -33,19 +33,19 @@ base = { + 'properties': { + 'available': {'type': 'boolean'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['available'] + }, + # NOTE: Here is the difference between detail and + # non-detail. + 'hosts': {'type': 'null'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['zoneName', 'zoneState', 'hosts'] + } + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['availabilityZoneInfo'] + } + } +@@ -65,7 +65,7 @@ detail = { + 'active': {'type': 'boolean'}, + 'updated_at': parameter_types.date_time_or_null + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['available', 'active', 'updated_at'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_1/baremetal_nodes.py b/tempest/lib/api_schema/response/compute/v2_1/baremetal_nodes.py +index d1ee87728..8ab17d3fb 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/baremetal_nodes.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/baremetal_nodes.py +@@ -25,7 +25,7 @@ node = { + 'memory_mb': {'type': ['integer', 'string']}, + 'disk_gb': {'type': ['integer', 'string']}, + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['id', 'interfaces', 'host', 'task_state', 'cpus', 'memory_mb', + 'disk_gb'] + } +@@ -40,7 +40,7 @@ list_baremetal_nodes = { + 'items': node + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['nodes'] + } + } +@@ -52,7 +52,7 @@ baremetal_node = { + 'properties': { + 'node': node + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['node'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_1/certificates.py b/tempest/lib/api_schema/response/compute/v2_1/certificates.py +index 4e7cbe4d2..99f795a3b 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/certificates.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/certificates.py +@@ -25,11 +25,11 @@ _common_schema = { + 'data': {'type': 'string'}, + 'private_key': {'type': 'string'}, + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['data', 'private_key'] + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['certificate'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_1/extensions.py b/tempest/lib/api_schema/response/compute/v2_1/extensions.py +index b5962d752..833bc9df0 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/extensions.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/extensions.py +@@ -34,13 +34,13 @@ list_extensions = { + 'alias': {'type': 'string'}, + 'description': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['updated', 'name', 'links', 'namespace', + 'alias', 'description'] + } + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['extensions'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_1/fixed_ips.py b/tempest/lib/api_schema/response/compute/v2_1/fixed_ips.py +index a653213f0..b53565aab 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/fixed_ips.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/fixed_ips.py +@@ -27,11 +27,11 @@ get_fixed_ip = { + 'host': {'type': 'string'}, + 'hostname': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['address', 'cidr', 'host', 'hostname'] + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['fixed_ip'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_1/flavors.py b/tempest/lib/api_schema/response/compute/v2_1/flavors.py +index bd5e3d636..27948a784 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/flavors.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/flavors.py +@@ -28,13 +28,13 @@ list_flavors = { + 'links': parameter_types.links, + 'id': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['name', 'links', 'id'] + } + }, + 'flavors_links': parameter_types.links + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # NOTE(gmann): flavors_links attribute is not necessary + # to be present always So it is not 'required'. + 'required': ['flavors'] +@@ -58,7 +58,7 @@ common_flavor_info = { + 'rxtx_factor': {'type': 'number'}, + 'OS-FLV-EXT-DATA:ephemeral': {'type': 'integer'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # 'OS-FLV-DISABLED', 'os-flavor-access', 'rxtx_factor' and + # 'OS-FLV-EXT-DATA' are API extensions, so they are not 'required'. + 'required': ['name', 'links', 'ram', 'vcpus', 'swap', 'disk', 'id'] +@@ -77,7 +77,7 @@ list_flavors_details = { + # to be present always so it is not 'required'. + 'flavors_links': parameter_types.links + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['flavors'] + } + } +@@ -89,7 +89,7 @@ create_update_get_flavor_details = { + 'properties': { + 'flavor': common_flavor_info + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['flavor'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_1/flavors_access.py b/tempest/lib/api_schema/response/compute/v2_1/flavors_access.py +index a4d6af0d7..958ed02b5 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/flavors_access.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/flavors_access.py +@@ -25,12 +25,12 @@ add_remove_list_flavor_access = { + 'flavor_id': {'type': 'string'}, + 'tenant_id': {'type': 'string'}, + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['flavor_id', 'tenant_id'], + } + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['flavor_access'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_1/flavors_extra_specs.py b/tempest/lib/api_schema/response/compute/v2_1/flavors_extra_specs.py +index 3aa1edac4..081d21a92 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/flavors_extra_specs.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/flavors_extra_specs.py +@@ -24,7 +24,7 @@ set_get_flavor_extra_specs = { + } + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['extra_specs'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_1/floating_ips.py b/tempest/lib/api_schema/response/compute/v2_1/floating_ips.py +index 0c665905f..39e4207ca 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/floating_ips.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/floating_ips.py +@@ -26,7 +26,7 @@ common_floating_ip_info = { + 'ip': parameter_types.ip_address, + 'fixed_ip': parameter_types.ip_address + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['id', 'pool', 'instance_id', + 'ip', 'fixed_ip'], + +@@ -41,7 +41,7 @@ list_floating_ips = { + 'items': common_floating_ip_info + }, + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['floating_ips'], + } + } +@@ -53,7 +53,7 @@ create_get_floating_ip = { + 'properties': { + 'floating_ip': common_floating_ip_info + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['floating_ip'], + } + } +@@ -70,12 +70,12 @@ list_floating_ip_pools = { + 'properties': { + 'name': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['name'], + } + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['floating_ip_pools'], + } + } +@@ -96,11 +96,11 @@ create_floating_ips_bulk = { + 'ip_range': {'type': 'string'}, + 'pool': {'type': ['string', 'null']}, + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['interface', 'ip_range', 'pool'], + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['floating_ips_bulk_create'], + } + } +@@ -112,7 +112,7 @@ delete_floating_ips_bulk = { + 'properties': { + 'floating_ips_bulk_delete': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['floating_ips_bulk_delete'], + } + } +@@ -134,7 +134,7 @@ list_floating_ips_bulk = { + 'project_id': {'type': ['string', 'null']}, + 'fixed_ip': parameter_types.ip_address + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # NOTE: fixed_ip is introduced after JUNO release, + # So it is not defined as 'required'. + 'required': ['address', 'instance_uuid', 'interface', +@@ -142,7 +142,7 @@ list_floating_ips_bulk = { + } + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['floating_ip_info'], + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_1/hosts.py b/tempest/lib/api_schema/response/compute/v2_1/hosts.py +index cae343597..76bf47ed1 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/hosts.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/hosts.py +@@ -29,12 +29,12 @@ list_hosts = { + 'service': {'type': 'string'}, + 'zone': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['host_name', 'service', 'zone'] + } + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['hosts'] + } + } +@@ -58,17 +58,17 @@ get_host_detail = { + 'memory_mb': {'type': 'integer'}, + 'project': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['cpu', 'disk_gb', 'host', + 'memory_mb', 'project'] + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['resource'] + } + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['host'] + } + } +@@ -81,7 +81,7 @@ startup_host = { + 'host': {'type': 'string'}, + 'power_action': {'enum': ['startup']} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['host', 'power_action'] + } + } +@@ -110,7 +110,7 @@ update_host = { + 'off_maintenance']}, + 'status': {'enum': ['enabled', 'disabled']} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'anyOf': [ + {'required': ['host', 'status']}, + {'required': ['host', 'maintenance_mode']} +diff --git a/tempest/lib/api_schema/response/compute/v2_1/hypervisors.py b/tempest/lib/api_schema/response/compute/v2_1/hypervisors.py +index d15b4f66a..5d8cf6d39 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/hypervisors.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/hypervisors.py +@@ -37,7 +37,7 @@ get_hypervisor_statistics = { + 'vcpus': {'type': 'integer'}, + 'vcpus_used': {'type': 'integer'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['count', 'current_workload', + 'disk_available_least', 'free_disk_gb', + 'free_ram_mb', 'local_gb', 'local_gb_used', +@@ -45,7 +45,7 @@ get_hypervisor_statistics = { + 'vcpus', 'vcpus_used'] + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['hypervisor_statistics'] + } + } +@@ -78,13 +78,13 @@ hypervisor_detail = { + 'id': {'type': ['integer', 'string']}, + 'disabled_reason': {'type': ['string', 'null']} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['host', 'id'] + }, + 'vcpus': {'type': 'integer'}, + 'vcpus_used': {'type': 'integer'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # NOTE: When loading os-hypervisor-status extension, + # a response contains status and state. So these params + # should not be required. +@@ -107,7 +107,7 @@ list_hypervisors_detail = { + 'items': hypervisor_detail + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['hypervisors'] + } + } +@@ -119,7 +119,7 @@ get_hypervisor = { + 'properties': { + 'hypervisor': hypervisor_detail + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['hypervisor'] + } + } +@@ -139,7 +139,7 @@ list_search_hypervisors = { + 'id': {'type': ['integer', 'string']}, + 'hypervisor_hostname': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # NOTE: When loading os-hypervisor-status extension, + # a response contains status and state. So these params + # should not be required. +@@ -147,7 +147,7 @@ list_search_hypervisors = { + } + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['hypervisors'] + } + } +@@ -166,14 +166,14 @@ get_hypervisor_uptime = { + 'hypervisor_hostname': {'type': 'string'}, + 'uptime': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # NOTE: When loading os-hypervisor-status extension, + # a response contains status and state. So these params + # should not be required. + 'required': ['id', 'hypervisor_hostname', 'uptime'] + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['hypervisor'] + } + } +@@ -188,7 +188,7 @@ get_hypervisors_servers['response_body']['properties']['hypervisors']['items'][ + 'uuid': {'type': 'string'}, + 'name': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + } + } + # In V2 API, if there is no servers (VM) on the Hypervisor host then 'servers' +diff --git a/tempest/lib/api_schema/response/compute/v2_1/images.py b/tempest/lib/api_schema/response/compute/v2_1/images.py +index 156ff4ac6..2acc12835 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/images.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/images.py +@@ -40,13 +40,13 @@ common_image_schema = { + 'id': {'type': 'string'}, + 'links': parameter_types.links + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['id', 'links'] + }, + 'OS-EXT-IMG-SIZE:size': {'type': ['integer', 'null']}, + 'OS-DCF:diskConfig': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # 'server' attributes only comes in response body if image is + # associated with any server. 'OS-EXT-IMG-SIZE:size' & 'OS-DCF:diskConfig' + # are API extension, So those are not defined as 'required'. +@@ -62,7 +62,7 @@ get_image = { + 'properties': { + 'image': common_image_schema + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['image'] + } + } +@@ -81,13 +81,13 @@ list_images = { + 'links': image_links, + 'name': {'type': ['string', 'null']} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['id', 'links', 'name'] + } + }, + 'images_links': parameter_types.links + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # NOTE(gmann): images_links attribute is not necessary to be + # present always So it is not 'required'. + 'required': ['images'] +@@ -120,7 +120,7 @@ image_metadata = { + 'properties': { + 'metadata': {'type': 'object'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['metadata'] + } + } +@@ -132,7 +132,7 @@ image_meta_item = { + 'properties': { + 'meta': {'type': 'object'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['meta'] + } + } +@@ -148,7 +148,7 @@ list_images_details = { + }, + 'images_links': parameter_types.links + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # NOTE(gmann): images_links attribute is not necessary to be + # present always So it is not 'required'. + 'required': ['images'] +diff --git a/tempest/lib/api_schema/response/compute/v2_1/instance_usage_audit_logs.py b/tempest/lib/api_schema/response/compute/v2_1/instance_usage_audit_logs.py +index 15224c5a0..402dfeac3 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/instance_usage_audit_logs.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/instance_usage_audit_logs.py +@@ -31,7 +31,7 @@ common_instance_usage_audit_log = { + 'errors': {'type': 'integer'}, + 'message': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['state', 'instances', 'errors', 'message'] + } + } +@@ -46,7 +46,7 @@ common_instance_usage_audit_log = { + 'total_errors': {'type': 'integer'}, + 'total_instances': {'type': 'integer'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['hosts_not_run', 'log', 'num_hosts', 'num_hosts_done', + 'num_hosts_not_run', 'num_hosts_running', 'overall_status', + 'period_beginning', 'period_ending', 'total_errors', +@@ -60,7 +60,7 @@ get_instance_usage_audit_log = { + 'properties': { + 'instance_usage_audit_log': common_instance_usage_audit_log + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['instance_usage_audit_log'] + } + } +@@ -72,7 +72,7 @@ list_instance_usage_audit_log = { + 'properties': { + 'instance_usage_audit_logs': common_instance_usage_audit_log + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['instance_usage_audit_logs'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_1/interfaces.py b/tempest/lib/api_schema/response/compute/v2_1/interfaces.py +index 99847502c..6a989e5eb 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/interfaces.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/interfaces.py +@@ -29,7 +29,7 @@ interface_common_info = { + }, + 'ip_address': parameter_types.ip_address + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['subnet_id', 'ip_address'] + } + }, +@@ -37,7 +37,7 @@ interface_common_info = { + 'net_id': {'type': 'string', 'format': 'uuid'}, + 'mac_addr': parameter_types.mac_address + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['port_state', 'fixed_ips', 'port_id', 'net_id', 'mac_addr'] + } + +@@ -48,7 +48,7 @@ get_create_interfaces = { + 'properties': { + 'interfaceAttachment': interface_common_info + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['interfaceAttachment'] + } + } +@@ -63,7 +63,7 @@ list_interfaces = { + 'items': interface_common_info + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['interfaceAttachments'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_1/keypairs.py b/tempest/lib/api_schema/response/compute/v2_1/keypairs.py +index e7dcf791d..8a95112c2 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/keypairs.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/keypairs.py +@@ -33,13 +33,13 @@ get_keypair = { + 'id': {'type': 'integer'} + + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['public_key', 'name', 'fingerprint', 'user_id', + 'deleted', 'created_at', 'updated_at', + 'deleted_at', 'id'] + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['keypair'] + } + } +@@ -58,14 +58,14 @@ create_keypair = { + 'user_id': {'type': 'string'}, + 'private_key': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # When create keypair API is being called with 'Public key' + # (Importing keypair) then, response body does not contain + # 'private_key' So it is not defined as 'required' + 'required': ['fingerprint', 'name', 'public_key', 'user_id'] + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['keypair'] + } + } +@@ -91,16 +91,16 @@ list_keypairs = { + 'name': {'type': 'string'}, + 'fingerprint': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['public_key', 'name', 'fingerprint'] + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['keypair'] + } + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['keypairs'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_1/limits.py b/tempest/lib/api_schema/response/compute/v2_1/limits.py +index 81f175fa7..bc4c1e3d8 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/limits.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/limits.py +@@ -43,7 +43,7 @@ get_limit = { + 'maxServerGroups': {'type': 'integer'}, + 'totalServerGroupsUsed': {'type': 'integer'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # NOTE(gmann): maxServerGroupMembers, maxServerGroups + # and totalServerGroupsUsed are API extension, + # and some environments return a response without these +@@ -86,21 +86,21 @@ get_limit = { + 'verb': + {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + } + }, + 'regex': {'type': 'string'}, + 'uri': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + } + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['absolute', 'rate'] + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['limits'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_1/migrations.py b/tempest/lib/api_schema/response/compute/v2_1/migrations.py +index c50286d27..19922f2b4 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/migrations.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/migrations.py +@@ -37,7 +37,7 @@ list_migrations = { + 'created_at': parameter_types.date_time, + 'updated_at': parameter_types.date_time_or_null + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': [ + 'id', 'status', 'instance_uuid', 'source_node', + 'source_compute', 'dest_node', 'dest_compute', +@@ -47,7 +47,7 @@ list_migrations = { + } + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['migrations'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_1/parameter_types.py b/tempest/lib/api_schema/response/compute/v2_1/parameter_types.py +index 28ed81673..dc7544581 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/parameter_types.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/parameter_types.py +@@ -23,7 +23,7 @@ links = { + }, + 'rel': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['href', 'rel'] + } + } +@@ -74,7 +74,7 @@ addresses = { + ] + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['version', 'addr'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_1/quotas.py b/tempest/lib/api_schema/response/compute/v2_1/quotas.py +index 44f5bdfd2..a4515a9ea 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/quotas.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/quotas.py +@@ -37,7 +37,7 @@ update_quota_set = { + 'injected_file_content_bytes': {'type': 'integer'}, + 'injected_file_path_bytes': {'type': 'integer'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # NOTE: server_group_members and server_groups are represented + # when enabling quota_server_group extension. So they should + # not be required. +@@ -49,7 +49,7 @@ update_quota_set = { + 'injected_file_path_bytes'] + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['quota_set'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_1/security_group_default_rule.py b/tempest/lib/api_schema/response/compute/v2_1/security_group_default_rule.py +index 2ec282698..1a2e19b84 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/security_group_default_rule.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/security_group_default_rule.py +@@ -23,12 +23,12 @@ common_security_group_default_rule_info = { + 'properties': { + 'cidr': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['cidr'], + }, + 'to_port': {'type': 'integer'}, + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['from_port', 'id', 'ip_protocol', 'ip_range', 'to_port'], + } + +@@ -40,7 +40,7 @@ create_get_security_group_default_rule = { + 'security_group_default_rule': + common_security_group_default_rule_info + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['security_group_default_rule'] + } + } +@@ -59,7 +59,7 @@ list_security_group_default_rules = { + 'items': common_security_group_default_rule_info + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['security_group_default_rules'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_1/security_groups.py b/tempest/lib/api_schema/response/compute/v2_1/security_groups.py +index 5ed5a5c80..d9f1794c6 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/security_groups.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/security_groups.py +@@ -21,7 +21,7 @@ common_security_group_rule = { + 'tenant_id': {'type': 'string'}, + 'name': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + }, + 'ip_protocol': {'type': ['string', 'null']}, + # 'parent_group_id' can be UUID so defining it as 'string' also. +@@ -31,7 +31,7 @@ common_security_group_rule = { + 'properties': { + 'cidr': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # When optional argument is provided in request body + # like 'group_id' then, attribute 'cidr' does not + # comes in response body. So it is not 'required'. +@@ -50,12 +50,12 @@ common_security_group = { + 'items': { + 'type': ['object', 'null'], + 'properties': common_security_group_rule, +- 'additionalProperties': False, ++ 'additionalProperties': True, + } + }, + 'description': {'type': 'string'}, + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['id', 'name', 'tenant_id', 'rules', 'description'], + } + +@@ -69,7 +69,7 @@ list_security_groups = { + 'items': common_security_group + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['security_groups'] + } + } +@@ -81,7 +81,7 @@ get_security_group = create_security_group = update_security_group = { + 'properties': { + 'security_group': common_security_group + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['security_group'] + } + } +@@ -98,12 +98,12 @@ create_security_group_rule = { + 'security_group_rule': { + 'type': 'object', + 'properties': common_security_group_rule, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['from_port', 'to_port', 'group', 'ip_protocol', + 'parent_group_id', 'id', 'ip_range'] + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['security_group_rule'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_1/server_groups.py b/tempest/lib/api_schema/response/compute/v2_1/server_groups.py +index 01db20b88..49a8f0d95 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/server_groups.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/server_groups.py +@@ -29,7 +29,7 @@ common_server_group = { + }, + 'metadata': {'type': 'object'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['id', 'name', 'policies', 'members', 'metadata'] + } + +@@ -40,7 +40,7 @@ create_show_server_group = { + 'properties': { + 'server_group': common_server_group + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['server_group'] + } + } +@@ -59,7 +59,7 @@ list_server_groups = { + 'items': common_server_group + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['server_groups'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_1/servers.py b/tempest/lib/api_schema/response/compute/v2_1/servers.py +index 3300298d1..ac050eb43 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/servers.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/servers.py +@@ -29,14 +29,14 @@ create_server = { + 'links': parameter_types.links, + 'OS-DCF:diskConfig': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # NOTE: OS-DCF:diskConfig & security_groups are API extension, + # and some environments return a response without these + # attributes.So they are not 'required'. + 'required': ['id', 'links'] + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['server'] + } + } +@@ -61,13 +61,13 @@ list_servers = { + 'links': parameter_types.links, + 'name': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['id', 'links', 'name'] + } + }, + 'servers_links': parameter_types.links + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # NOTE(gmann): servers_links attribute is not necessary to be + # present always So it is not 'required'. + 'required': ['servers'] +@@ -90,7 +90,7 @@ common_show_server = { + 'id': {'type': 'string'}, + 'links': parameter_types.links + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['id', 'links']}, + {'type': ['string', 'null']} + ]}, +@@ -103,7 +103,7 @@ common_show_server = { + # NOTE(gmann): This will be empty object if there is no + # flavor info present in DB. This can happen when flavor info is + # deleted after server creation. +- 'additionalProperties': False ++ 'additionalProperties': True + }, + 'fault': { + 'type': 'object', +@@ -113,7 +113,7 @@ common_show_server = { + 'message': {'type': 'string'}, + 'details': {'type': 'string'}, + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # NOTE(gmann): 'details' is not necessary to be present + # in the 'fault'. So it is not defined as 'required'. + 'required': ['code', 'created', 'message'] +@@ -131,7 +131,7 @@ common_show_server = { + 'accessIPv4': parameter_types.access_ip_v4, + 'accessIPv6': parameter_types.access_ip_v6 + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # NOTE(GMann): 'progress' attribute is present in the response + # only when server's status is one of the progress statuses + # ("ACTIVE","BUILD", "REBUILD", "RESIZE","VERIFY_RESIZE") +@@ -152,7 +152,7 @@ update_server = { + 'properties': { + 'server': common_show_server + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['server'] + } + } +@@ -183,7 +183,7 @@ server_detail['properties'].update({ + 'properties': { + 'id': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + }, + }, + 'config_drive': {'type': 'string'} +@@ -204,7 +204,7 @@ get_server = { + 'properties': { + 'server': server_detail + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['server'] + } + } +@@ -220,7 +220,7 @@ list_servers_detail = { + }, + 'servers_links': parameter_types.links + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # NOTE(gmann): servers_links attribute is not necessary to be + # present always So it is not 'required'. + 'required': ['servers'] +@@ -240,7 +240,7 @@ rescue_server = { + 'status_code': [200], + 'response_body': { + 'type': 'object', +- 'additionalProperties': False, ++ 'additionalProperties': True, + } + } + +@@ -265,14 +265,14 @@ list_virtual_interfaces = { + 'mac_address': parameter_types.mac_address, + 'OS-EXT-VIF-NET:net_id': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # 'OS-EXT-VIF-NET:net_id' is API extension So it is + # not defined as 'required' + 'required': ['id', 'mac_address'] + } + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['virtual_interfaces'] + } + } +@@ -285,7 +285,7 @@ common_attach_volume_info = { + 'volumeId': {'type': 'string'}, + 'serverId': {'type': ['integer', 'string']} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # 'device' is optional in response. + 'required': ['id', 'volumeId', 'serverId'] + } +@@ -297,7 +297,7 @@ attach_volume = { + 'properties': { + 'volumeAttachment': common_attach_volume_info + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['volumeAttachment'] + } + } +@@ -320,7 +320,7 @@ list_volume_attachments = { + 'items': common_attach_volume_info + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['volumeAttachments'] + } + } +@@ -340,7 +340,7 @@ list_addresses = { + 'properties': { + 'addresses': parameter_types.addresses + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['addresses'] + } + } +@@ -356,7 +356,7 @@ instance_actions = { + 'message': {'type': ['string', 'null']}, + 'instance_uuid': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['action', 'request_id', 'user_id', 'project_id', + 'start_time', 'message', 'instance_uuid'] + } +@@ -377,7 +377,7 @@ instance_action_events = { + 'result': {'type': ['string', 'null']}, + 'traceback': {'type': ['string', 'null']} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # NOTE(zhufl): events.traceback can only be seen by admin users + # with default policy.json, so it shouldn't be a required field. + 'required': ['event', 'start_time', 'finish_time', 'result'] +@@ -394,7 +394,7 @@ list_instance_actions = { + 'items': instance_actions + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['instanceActions'] + } + } +@@ -412,7 +412,7 @@ show_instance_action = { + 'properties': { + 'instanceAction': instance_actions_with_events + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['instanceAction'] + } + } +@@ -424,7 +424,7 @@ show_password = { + 'properties': { + 'password': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['password'] + } + } +@@ -443,11 +443,11 @@ get_vnc_console = { + 'format': 'uri' + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['type', 'url'] + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['console'] + } + } +@@ -459,7 +459,7 @@ get_console_output = { + 'properties': { + 'output': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['output'] + } + } +@@ -476,7 +476,7 @@ set_server_metadata = { + } + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['metadata'] + } + } +@@ -501,7 +501,7 @@ set_show_server_metadata_item = { + } + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['meta'] + } + } +@@ -532,7 +532,7 @@ evacuate_server_with_admin_pass = { + 'properties': { + 'adminPass': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['adminPass'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_1/services.py b/tempest/lib/api_schema/response/compute/v2_1/services.py +index 3b58ece48..b590c0221 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/services.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/services.py +@@ -34,13 +34,13 @@ list_services = { + 'updated_at': parameter_types.date_time_or_null, + 'disabled_reason': {'type': ['string', 'null']} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['id', 'zone', 'host', 'state', 'binary', + 'status', 'updated_at', 'disabled_reason'] + } + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['services'] + } + } +@@ -57,11 +57,11 @@ enable_disable_service = { + 'binary': {'type': 'string'}, + 'host': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['status', 'binary', 'host'] + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['service'] + } + } +@@ -79,11 +79,11 @@ disable_log_reason = { + 'host': {'type': 'string'}, + 'status': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['disabled_reason', 'binary', 'host', 'status'] + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['service'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_1/snapshots.py b/tempest/lib/api_schema/response/compute/v2_1/snapshots.py +index 826f85413..c808f5ee5 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/snapshots.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/snapshots.py +@@ -26,7 +26,7 @@ common_snapshot_info = { + 'displayName': {'type': ['string', 'null']}, + 'displayDescription': {'type': ['string', 'null']} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['id', 'volumeId', 'status', 'size', + 'createdAt', 'displayName', 'displayDescription'] + } +@@ -38,7 +38,7 @@ create_get_snapshot = { + 'properties': { + 'snapshot': common_snapshot_info + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['snapshot'] + } + } +@@ -53,7 +53,7 @@ list_snapshots = { + 'items': common_snapshot_info + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['snapshots'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_1/tenant_networks.py b/tempest/lib/api_schema/response/compute/v2_1/tenant_networks.py +index ddfab9619..02a9382ec 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/tenant_networks.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/tenant_networks.py +@@ -19,7 +19,7 @@ param_network = { + 'cidr': {'type': ['string', 'null']}, + 'label': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['id', 'cidr', 'label'] + } + +@@ -34,7 +34,7 @@ list_tenant_networks = { + 'items': param_network + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['networks'] + } + } +@@ -47,7 +47,7 @@ get_tenant_network = { + 'properties': { + 'network': param_network + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['network'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_1/versions.py b/tempest/lib/api_schema/response/compute/v2_1/versions.py +index 7f5623928..b57d1b8cb 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/versions.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/versions.py +@@ -31,7 +31,7 @@ _version = { + 'type': {'type': 'string'}, + }, + 'required': ['href', 'rel'], +- 'additionalProperties': False ++ 'additionalProperties': True + } + }, + 'status': {'type': 'string'}, +@@ -50,7 +50,7 @@ _version = { + # so they should not be required. + # NOTE(sdague): media-types only shows up in single version requests. + 'required': ['id', 'links', 'status', 'updated'], +- 'additionalProperties': False ++ 'additionalProperties': True + } + + list_versions = { +@@ -64,7 +64,7 @@ list_versions = { + } + }, + 'required': ['versions'], +- 'additionalProperties': False ++ 'additionalProperties': True + } + } + +@@ -96,7 +96,7 @@ get_version = { + } + }, + 'required': ['choices'], +- 'additionalProperties': False ++ 'additionalProperties': True + } + } + +@@ -107,6 +107,6 @@ get_one_version = { + 'properties': { + 'version': _version + }, +- 'additionalProperties': False ++ 'additionalProperties': True + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_1/volumes.py b/tempest/lib/api_schema/response/compute/v2_1/volumes.py +index d367f2adb..1125cbfa4 100644 +--- a/tempest/lib/api_schema/response/compute/v2_1/volumes.py ++++ b/tempest/lib/api_schema/response/compute/v2_1/volumes.py +@@ -42,7 +42,7 @@ create_get_volume = { + 'volumeId': {'type': 'string'}, + 'serverId': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # NOTE- If volume is not attached to any server + # then, 'attachments' attributes comes as array + # with empty objects "[{}]" due to that elements +@@ -53,13 +53,13 @@ create_get_volume = { + }, + 'os-vol-host-attr:host': {'type': 'string'}, + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['id', 'status', 'displayName', 'availabilityZone', + 'createdAt', 'displayDescription', 'volumeType', + 'snapshotId', 'metadata', 'size', 'attachments'] + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['volume'] + } + } +@@ -94,7 +94,7 @@ list_volumes = { + 'volumeId': {'type': 'string'}, + 'serverId': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # NOTE- If volume is not attached to any server + # then, 'attachments' attributes comes as array + # with empty object "[{}]" due to that elements +@@ -104,7 +104,7 @@ list_volumes = { + } + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['id', 'status', 'displayName', + 'availabilityZone', 'createdAt', + 'displayDescription', 'volumeType', +@@ -113,7 +113,7 @@ list_volumes = { + } + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['volumes'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_11/services.py b/tempest/lib/api_schema/response/compute/v2_11/services.py +index 9ece1f9b3..b17d180e3 100644 +--- a/tempest/lib/api_schema/response/compute/v2_11/services.py ++++ b/tempest/lib/api_schema/response/compute/v2_11/services.py +@@ -36,11 +36,11 @@ update_forced_down = { + 'host': {'type': 'string'}, + 'forced_down': {'type': 'boolean'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['binary', 'host', 'forced_down'] + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['service'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_16/servers.py b/tempest/lib/api_schema/response/compute/v2_16/servers.py +index fc81ff70a..495ed3ec9 100644 +--- a/tempest/lib/api_schema/response/compute/v2_16/servers.py ++++ b/tempest/lib/api_schema/response/compute/v2_16/servers.py +@@ -32,7 +32,7 @@ server_detail = { + 'id': {'type': 'string'}, + 'links': parameter_types.links + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['id', 'links']}, + {'type': ['string', 'null']} + ]}, +@@ -42,7 +42,7 @@ server_detail = { + 'id': {'type': 'string'}, + 'links': parameter_types.links + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['id', 'links'] + }, + 'fault': { +@@ -53,7 +53,7 @@ server_detail = { + 'message': {'type': 'string'}, + 'details': {'type': 'string'}, + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # NOTE(gmann): 'details' is not necessary to be present + # in the 'fault'. So it is not defined as 'required'. + 'required': ['code', 'created', 'message'] +@@ -90,7 +90,7 @@ server_detail = { + 'id': {'type': 'string'}, + 'delete_on_termination': {'type': 'boolean'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + }, + }, + 'OS-EXT-SRV-ATTR:reservation_id': {'type': ['string', 'null']}, +@@ -104,7 +104,7 @@ server_detail = { + # NOTE(gmann): new attributes in version 2.16 + 'host_status': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # NOTE(gmann): 'progress' attribute is present in the response + # only when server's status is one of the progress statuses + # ("ACTIVE","BUILD", "REBUILD", "RESIZE","VERIFY_RESIZE") +@@ -134,7 +134,7 @@ get_server = { + 'properties': { + 'server': server_detail + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['server'] + } + } +@@ -150,7 +150,7 @@ list_servers_detail = { + }, + 'servers_links': parameter_types.links + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # NOTE(gmann): servers_links attribute is not necessary to be + # present always So it is not 'required'. + 'required': ['servers'] +diff --git a/tempest/lib/api_schema/response/compute/v2_23/migrations.py b/tempest/lib/api_schema/response/compute/v2_23/migrations.py +index 3cd0f6ec1..af6fd8ade 100644 +--- a/tempest/lib/api_schema/response/compute/v2_23/migrations.py ++++ b/tempest/lib/api_schema/response/compute/v2_23/migrations.py +@@ -45,7 +45,7 @@ list_migrations = { + 'migration_type': {'type': ['string', 'null']}, + 'links': parameter_types.links + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': [ + 'id', 'status', 'instance_uuid', 'source_node', + 'source_compute', 'dest_node', 'dest_compute', +@@ -56,7 +56,7 @@ list_migrations = { + } + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['migrations'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_26/servers.py b/tempest/lib/api_schema/response/compute/v2_26/servers.py +index 5a0f98732..248605b29 100644 +--- a/tempest/lib/api_schema/response/compute/v2_26/servers.py ++++ b/tempest/lib/api_schema/response/compute/v2_26/servers.py +@@ -68,7 +68,7 @@ list_tags = { + 'properties': { + 'tags': tag_items, + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['tags'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_3/servers.py b/tempest/lib/api_schema/response/compute/v2_3/servers.py +index 1674c1b11..4dcfad49c 100644 +--- a/tempest/lib/api_schema/response/compute/v2_3/servers.py ++++ b/tempest/lib/api_schema/response/compute/v2_3/servers.py +@@ -40,7 +40,7 @@ server_detail = { + 'id': {'type': 'string'}, + 'links': parameter_types.links + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['id', 'links']}, + {'type': ['string', 'null']} + ]}, +@@ -50,7 +50,7 @@ server_detail = { + 'id': {'type': 'string'}, + 'links': parameter_types.links + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['id', 'links'] + }, + 'fault': { +@@ -61,7 +61,7 @@ server_detail = { + 'message': {'type': 'string'}, + 'details': {'type': 'string'}, + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # NOTE(gmann): 'details' is not necessary to be present + # in the 'fault'. So it is not defined as 'required'. + 'required': ['code', 'created', 'message'] +@@ -99,7 +99,7 @@ server_detail = { + 'id': {'type': 'string'}, + 'delete_on_termination': {'type': 'boolean'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + }, + }, + 'OS-EXT-SRV-ATTR:reservation_id': {'type': ['string', 'null']}, +@@ -110,7 +110,7 @@ server_detail = { + 'OS-EXT-SRV-ATTR:root_device_name': {'type': ['string', 'null']}, + 'OS-EXT-SRV-ATTR:user_data': {'type': ['string', 'null']}, + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # NOTE(gmann): 'progress' attribute is present in the response + # only when server's status is one of the progress statuses + # ("ACTIVE","BUILD", "REBUILD", "RESIZE","VERIFY_RESIZE") +@@ -140,7 +140,7 @@ get_server = { + 'properties': { + 'server': server_detail + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['server'] + } + } +@@ -156,7 +156,7 @@ list_servers_detail = { + }, + 'servers_links': parameter_types.links + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # NOTE(gmann): servers_links attribute is not necessary to be + # present always So it is not 'required'. + 'required': ['servers'] +diff --git a/tempest/lib/api_schema/response/compute/v2_45/images.py b/tempest/lib/api_schema/response/compute/v2_45/images.py +index 8a48f363e..395dd177d 100644 +--- a/tempest/lib/api_schema/response/compute/v2_45/images.py ++++ b/tempest/lib/api_schema/response/compute/v2_45/images.py +@@ -19,7 +19,7 @@ create_image = { + 'properties': { + 'image_id': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['image_id'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_47/servers.py b/tempest/lib/api_schema/response/compute/v2_47/servers.py +index d580f2c63..52ac89370 100644 +--- a/tempest/lib/api_schema/response/compute/v2_47/servers.py ++++ b/tempest/lib/api_schema/response/compute/v2_47/servers.py +@@ -30,7 +30,7 @@ flavor = { + } + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['original_name', 'disk', 'ephemeral', 'ram', 'swap', 'vcpus'] + } + +diff --git a/tempest/lib/api_schema/response/compute/v2_48/servers.py b/tempest/lib/api_schema/response/compute/v2_48/servers.py +index e2e45bc29..3310783ed 100644 +--- a/tempest/lib/api_schema/response/compute/v2_48/servers.py ++++ b/tempest/lib/api_schema/response/compute/v2_48/servers.py +@@ -45,7 +45,7 @@ show_server_diagnostics = { + 'maximum': {'type': ['integer', 'null']}, + 'used': {'type': ['integer', 'null']} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['maximum', 'used'] + }, + 'cpu_details': { +@@ -57,7 +57,7 @@ show_server_diagnostics = { + 'time': {'type': ['integer', 'null']}, + 'utilisation': {'type': ['integer', 'null']} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['id', 'time', 'utilisation'] + } + }, +@@ -79,7 +79,7 @@ show_server_diagnostics = { + 'tx_packets': {'type': ['integer', 'null']}, + 'tx_rate': {'type': ['integer', 'null']} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['mac_address', 'rx_octets', 'rx_errors', + 'rx_drop', + 'rx_packets', 'rx_rate', 'tx_octets', +@@ -98,13 +98,13 @@ show_server_diagnostics = { + 'write_requests': {'type': ['integer', 'null']}, + 'errors_count': {'type': ['integer', 'null']} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['read_bytes', 'read_requests', 'write_bytes', + 'write_requests', 'errors_count'] + } + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': [ + 'state', 'driver', 'hypervisor', 'hypervisor_os', 'uptime', + 'config_drive', 'num_cpus', 'num_nics', 'num_disks', +diff --git a/tempest/lib/api_schema/response/compute/v2_53/services.py b/tempest/lib/api_schema/response/compute/v2_53/services.py +index 97b0c7260..b526e638d 100644 +--- a/tempest/lib/api_schema/response/compute/v2_53/services.py ++++ b/tempest/lib/api_schema/response/compute/v2_53/services.py +@@ -51,13 +51,13 @@ update_service = { + 'zone': {'type': 'string'}, + 'forced_down': {'type': 'boolean'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['id', 'binary', 'disabled_reason', 'host', + 'state', 'status', 'updated_at', 'zone', + 'forced_down'] + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['service'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_55/flavors.py b/tempest/lib/api_schema/response/compute/v2_55/flavors.py +index 554f43b4c..07adf6270 100644 +--- a/tempest/lib/api_schema/response/compute/v2_55/flavors.py ++++ b/tempest/lib/api_schema/response/compute/v2_55/flavors.py +@@ -45,13 +45,13 @@ list_flavors = { + 'id': {'type': 'string'}, + 'description': flavor_description + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['name', 'links', 'id', 'description'] + } + }, + 'flavors_links': parameter_types.links + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # NOTE(gmann): flavors_links attribute is not necessary + # to be present always So it is not 'required'. + 'required': ['flavors'] +@@ -76,7 +76,7 @@ common_flavor_info = { + 'OS-FLV-EXT-DATA:ephemeral': {'type': 'integer'}, + 'description': flavor_description + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # 'OS-FLV-DISABLED', 'os-flavor-access', 'rxtx_factor' and + # 'OS-FLV-EXT-DATA' are API extensions. So they are not 'required'. + 'required': ['name', 'links', 'ram', 'vcpus', 'swap', 'disk', 'id', +@@ -96,7 +96,7 @@ list_flavors_details = { + # to be present always So it is not 'required'. + 'flavors_links': parameter_types.links + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['flavors'] + } + } +@@ -108,7 +108,7 @@ create_update_get_flavor_details = { + 'properties': { + 'flavor': common_flavor_info + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['flavor'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_6/servers.py b/tempest/lib/api_schema/response/compute/v2_6/servers.py +index 922bf7923..b94050d86 100644 +--- a/tempest/lib/api_schema/response/compute/v2_6/servers.py ++++ b/tempest/lib/api_schema/response/compute/v2_6/servers.py +@@ -50,11 +50,11 @@ get_remote_consoles = { + 'format': 'uri' + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['protocol', 'type', 'url'] + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['remote_console'] + } + } +diff --git a/tempest/lib/api_schema/response/compute/v2_61/flavors.py b/tempest/lib/api_schema/response/compute/v2_61/flavors.py +index 5119466ba..6d1d8ddb5 100644 +--- a/tempest/lib/api_schema/response/compute/v2_61/flavors.py ++++ b/tempest/lib/api_schema/response/compute/v2_61/flavors.py +@@ -58,7 +58,7 @@ common_flavor_info = { + 'description': flavor_description, + 'extra_specs': flavor_extra_specs + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + # 'OS-FLV-DISABLED', 'os-flavor-access', 'rxtx_factor' and + # 'OS-FLV-EXT-DATA' are API extensions. so they are not 'required'. + 'required': ['name', 'links', 'ram', 'vcpus', 'swap', 'disk', 'id', +@@ -78,7 +78,7 @@ list_flavors_details = { + # to be present always so it is not 'required'. + 'flavors_links': parameter_types.links + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['flavors'] + } + } +@@ -90,7 +90,7 @@ create_update_get_flavor_details = { + 'properties': { + 'flavor': common_flavor_info + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['flavor'] + } + } +diff --git a/tempest/lib/api_schema/response/volume/qos.py b/tempest/lib/api_schema/response/volume/qos.py +index d1b391062..3594c3f4e 100644 +--- a/tempest/lib/api_schema/response/volume/qos.py ++++ b/tempest/lib/api_schema/response/volume/qos.py +@@ -25,7 +25,7 @@ show_qos = { + 'consumer': {'type': 'string'}, + 'specs': {'type': ['object', 'null']}, + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['name', 'id', 'specs'] + }, + 'links': { +@@ -37,12 +37,12 @@ show_qos = { + 'format': 'uri'}, + 'rel': {'type': 'string'}, + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['href', 'rel'] + } + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['qos_specs', 'links'] + } + } +@@ -67,12 +67,12 @@ list_qos = { + 'id': {'type': 'string', 'format': 'uuid'}, + 'name': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['specs', 'id', 'name'] + } + } + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['qos_specs'] + } + } +@@ -87,7 +87,7 @@ set_qos_key = { + 'patternProperties': {'^.+$': {'type': 'string'}} + }, + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['qos_specs'] + } + } +@@ -109,12 +109,12 @@ show_association_qos = { + 'id': {'type': 'string', 'format': 'uuid'}, + 'name': {'type': 'string'} + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['association_type', 'id', 'name'] + } + }, + }, +- 'additionalProperties': False, ++ 'additionalProperties': True, + 'required': ['qos_associations'] + } + } +-- +2.20.1 + diff --git a/etc/patches/functest/disable-api-validation/apply.sh b/etc/patches/functest/disable-api-validation/apply.sh new file mode 100755 index 00000000..09ff912e --- /dev/null +++ b/etc/patches/functest/disable-api-validation/apply.sh @@ -0,0 +1,21 @@ +#!/bin/bash +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +set -e +set -u + +# without setting the user, git does not allow to create a commit +git config --global user.email "ovp-support@lfnetworking.org" +git config --global user.name "Dovetail" + +cd /src/tempest +git am $(dirname $0)/0001-Allow-additional-properties-in-API-responses.patch + +exit 0 diff --git a/etc/testcase/bottlenecks.stress.ping.yml b/etc/testcase/bottlenecks.stress.ping.yml new file mode 100644 index 00000000..e8c2acb9 --- /dev/null +++ b/etc/testcase/bottlenecks.stress.ping.yml @@ -0,0 +1,29 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +bottlenecks.stress.ping: + name: bottlenecks.stress.ping + objective: > # This test case verifies the ability of the SUT setting up VM pairs + # for different tenants and providing acceptable capacity after the amount of + # VM pairs reaches certain quantity. + validate: + type: bottlenecks + testcase: posca_factor_ping + report: + source_archive_files: + - bottlenecks.log + - bottlenecks.stress.ping.out + dest_archive_files: + - stress_logs/bottlenecks.stress.ping.log + - stress_logs/bottlenecks.stress.ping.out + check_results_files: + - stress_logs/bottlenecks.stress.ping.out + portal_key_file: stress_logs/bottlenecks.stress.ping.log + sub_testcase_list: diff --git a/etc/testcase/functest.healthcheck.connection_check.yml b/etc/testcase/functest.healthcheck.connection_check.yml new file mode 100644 index 00000000..b3a232b5 --- /dev/null +++ b/etc/testcase/functest.healthcheck.connection_check.yml @@ -0,0 +1,26 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.healthcheck.connection_check: + name: functest.healthcheck.connection_check + objective: check OpenStack API services connectivity through SNAPS framework + validate: + type: functest + testcase: connection_check + image_name: opnfv/functest-healthcheck + report: + source_archive_files: + - functest.log + dest_archive_files: + - healthcheck_logs/functest.healthcheck.connection_check.log + check_results_files: + - 'functest_results.txt' + portal_key_file: healthcheck_logs/functest.healthcheck.connection_check.log + sub_testcase_list: diff --git a/etc/testcase/functest.k8s.conformance.yml b/etc/testcase/functest.k8s.conformance.yml new file mode 100644 index 00000000..d203c89e --- /dev/null +++ b/etc/testcase/functest.k8s.conformance.yml @@ -0,0 +1,26 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.k8s.conformance: + name: functest.k8s.conformance + objective: Validate the deployed k8s cluster is conformance. + validate: + type: functest-k8s + testcase: k8s_conformance + image_name: opnfv/functest-kubernetes-smoke + report: + source_archive_files: + - functest-kubernetes.log + dest_archive_files: + - k8s_logs/functest.k8s.conformance.log + check_results_files: + - 'functest_results.txt' + portal_key_file: k8s_logs/functest.k8s.conformance.log + sub_testcase_list: diff --git a/etc/testcase/functest.k8s.smoke.yml b/etc/testcase/functest.k8s.smoke.yml new file mode 100644 index 00000000..a674dfef --- /dev/null +++ b/etc/testcase/functest.k8s.smoke.yml @@ -0,0 +1,26 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.k8s.smoke: + name: functest.k8s.smoke + objective: Validate the deployed k8s cluster is accessible. + validate: + type: functest-k8s + testcase: k8s_smoke + image_name: opnfv/functest-kubernetes-healthcheck + report: + source_archive_files: + - functest-kubernetes.log + dest_archive_files: + - k8s_logs/functest.k8s.smoke.log + check_results_files: + - 'functest_results.txt' + portal_key_file: k8s_logs/functest.k8s.smoke.log + sub_testcase_list: diff --git a/etc/testcase/functest.rally.authenticate.yml b/etc/testcase/functest.rally.authenticate.yml new file mode 100644 index 00000000..d327f0ee --- /dev/null +++ b/etc/testcase/functest.rally.authenticate.yml @@ -0,0 +1,40 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.rally.authenticate: + name: functest.rally.authenticate + objective: Run all Functest Rally Authenticate test cases + validate: + type: functest + testcase: rally_full + image_name: opnfv/functest-benchmarking + pre_condition: + - 'cp /home/opnfv/userconfig/rally_authenticate_testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' + report: + source_archive_files: + - functest.log + - rally_full/authenticate.json + - rally_full/rally_full.html + - rally_full/rally_full.xml + dest_archive_files: + - rally_authenticate_logs/functest.rally.authenticate.functest.log + - rally_authenticate_logs/authenticate.json + - rally_authenticate_logs/authenticate.html + - rally_authenticate_logs/authenticate.xml + check_results_files: + - 'functest_results.txt' + portal_key_file: rally_authenticate_logs/functest.rally.authenticate.functest.log + sub_testcase_list: + - 'Authenticate.keystone' + - 'Authenticate.validate_cinder' + - 'Authenticate.validate_glance' + - 'Authenticate.validate_heat' + - 'Authenticate.validate_neutron' + - 'Authenticate.validate_nova' diff --git a/etc/testcase/functest.rally.cinder.yml b/etc/testcase/functest.rally.cinder.yml new file mode 100644 index 00000000..955a0026 --- /dev/null +++ b/etc/testcase/functest.rally.cinder.yml @@ -0,0 +1,58 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.rally.cinder: + name: functest.rally.cinder + objective: Run all Functest Rally Cinder test cases + validate: + type: functest + testcase: rally_full + image_name: opnfv/functest-benchmarking + pre_condition: + - 'cp /home/opnfv/userconfig/rally_cinder_testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' + report: + source_archive_files: + - functest.log + - rally_full/cinder.json + - rally_full/rally_full.html + - rally_full/rally_full.xml + dest_archive_files: + - rally_cinder_logs/functest.rally.cinder.functest.log + - rally_cinder_logs/cinder.json + - rally_cinder_logs/cinder.html + - rally_cinder_logs/cinder.xml + check_results_files: + - 'functest_results.txt' + portal_key_file: rally_cinder_logs/functest.rally.cinder.functest.log + sub_testcase_list: + - 'CinderVolumes.create_and_attach_volume' + - 'CinderVolumes.create_and_list_snapshots' + - 'CinderVolumes.create_and_list_volume' + - 'CinderVolumes.create_and_list_volume-2' + - 'CinderVolumes.create_and_upload_volume_to_image' + - 'CinderVolumes.create_nested_snapshots_and_attach_volume' + - 'CinderVolumes.create_snapshot_and_attach_volume' + - 'CinderVolumes.create_volume' + - 'CinderVolumes.create_volume-2' + - 'CinderVolumes.list_volumes' + - 'CinderVolumes.create_and_delete_snapshot' + - 'CinderVolumes.create_and_delete_volume' + - 'CinderVolumes.create_and_delete_volume-2' + - 'CinderVolumes.create_and_delete_volume-3' + - 'CinderVolumes.create_and_extend_volume' + - 'CinderVolumes.create_from_volume_and_delete_volume' + - 'CinderQos.create_and_get_qos' + - 'CinderQos.create_and_list_qos' + - 'CinderQos.create_and_set_qos' + - 'CinderVolumeTypes.create_and_get_volume_type' + - 'CinderVolumeTypes.create_and_list_volume_types' + - 'CinderVolumeTypes.create_and_update_volume_type' + - 'CinderVolumeTypes.create_volume_type_and_encryption_type' + - 'CinderVolumeTypes.create_volume_type_add_and_list_type_access' diff --git a/etc/testcase/functest.rally.glance.yml b/etc/testcase/functest.rally.glance.yml new file mode 100644 index 00000000..589c861b --- /dev/null +++ b/etc/testcase/functest.rally.glance.yml @@ -0,0 +1,42 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.rally.glance: + name: functest.rally.glance + objective: Run all Functest Rally Glance test cases + validate: + type: functest + testcase: rally_full + image_name: opnfv/functest-benchmarking + pre_condition: + - 'cp /home/opnfv/userconfig/rally_glance_testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' + report: + source_archive_files: + - functest.log + - rally_full/glance.json + - rally_full/rally_full.html + - rally_full/rally_full.xml + dest_archive_files: + - rally_glance_logs/functest.rally.glance.functest.log + - rally_glance_logs/glance.json + - rally_glance_logs/glance.html + - rally_glance_logs/glance.xml + check_results_files: + - 'functest_results.txt' + portal_key_file: rally_glance_logs/functest.rally.glance.functest.log + sub_testcase_list: + - 'GlanceImages.create_and_delete_image' + - 'GlanceImages.create_and_list_image' + - 'GlanceImages.list_images' + - 'GlanceImages.create_image_and_boot_instances' + - 'GlanceImages.create_and_deactivate_image' + - 'GlanceImages.create_and_download_image' + - 'GlanceImages.create_and_get_image' + - 'GlanceImages.create_and_update_image' diff --git a/etc/testcase/functest.rally.gnocchi.yml b/etc/testcase/functest.rally.gnocchi.yml new file mode 100644 index 00000000..7ce9c117 --- /dev/null +++ b/etc/testcase/functest.rally.gnocchi.yml @@ -0,0 +1,50 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.rally.gnocchi: + name: functest.rally.gnocchi + objective: Run all Functest Rally Gnocchi test cases + validate: + type: functest + testcase: rally_full + image_name: opnfv/functest-benchmarking + pre_condition: + - 'cp /home/opnfv/userconfig/rally_gnocchi_testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' + report: + source_archive_files: + - functest.log + - rally_full/gnocchi.json + - rally_full/rally_full.html + - rally_full/rally_full.xml + dest_archive_files: + - rally_gnocchi_logs/functest.rally.gnocchi.functest.log + - rally_gnocchi_logs/gnocchi.json + - rally_gnocchi_logs/gnocchi.html + - rally_gnocchi_logs/gnocchi.xml + check_results_files: + - 'functest_results.txt' + portal_key_file: rally_gnocchi_logs/functest.rally.gnocchi.functest.log + sub_testcase_list: + - 'Gnocchi.list_capabilities' + - 'Gnocchi.get_status' + - 'GnocchiArchivePolicyRule.list_archive_policy_rule' + - 'GnocchiArchivePolicyRule.create_archive_policy_rule' + - 'GnocchiArchivePolicyRule.create_delete_archive_policy_rule' + - 'GnocchiArchivePolicy.list_archive_policy' + - 'GnocchiArchivePolicy.create_archive_policy' + - 'GnocchiArchivePolicy.create_delete_archive_policy' + - 'GnocchiResourceType.list_resource_type' + - 'GnocchiResourceType.create_resource_type' + - 'GnocchiResourceType.create_delete_resource_type' + - 'GnocchiMetric.list_metric' + - 'GnocchiMetric.create_metric' + - 'GnocchiMetric.create_delete_metric' + - 'GnocchiResource.create_resource' + - 'GnocchiResource.create_delete_resource' diff --git a/etc/testcase/functest.rally.heat.yml b/etc/testcase/functest.rally.heat.yml new file mode 100644 index 00000000..a6a632a2 --- /dev/null +++ b/etc/testcase/functest.rally.heat.yml @@ -0,0 +1,47 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.rally.heat: + name: functest.rally.heat + objective: Run all Functest Rally Heat test cases + validate: + type: functest + testcase: rally_full + image_name: opnfv/functest-benchmarking + pre_condition: + - 'cp /home/opnfv/userconfig/rally_heat_testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' + report: + source_archive_files: + - functest.log + - rally_full/heat.json + - rally_full/rally_full.html + - rally_full/rally_full.xml + dest_archive_files: + - rally_heat_logs/functest.rally.heat.functest.log + - rally_heat_logs/heat.json + - rally_heat_logs/heat.html + - rally_heat_logs/heat.xml + check_results_files: + - 'functest_results.txt' + portal_key_file: rally_heat_logs/functest.rally.heat.functest.log + sub_testcase_list: + - 'HeatStacks.create_and_delete_stack' + - 'HeatStacks.create_and_delete_stack-2' + - 'HeatStacks.create_and_delete_stack-3' + - 'HeatStacks.create_and_list_stack' + - 'HeatStacks.create_update_delete_stack' + - 'HeatStacks.create_update_delete_stack-2' + - 'HeatStacks.create_update_delete_stack-3' + - 'HeatStacks.create_update_delete_stack-4' + - 'HeatStacks.create_update_delete_stack-5' + - 'HeatStacks.create_update_delete_stack-6' + - 'HeatStacks.create_check_delete_stack' + - 'HeatStacks.create_suspend_resume_delete_stack' + - 'HeatStacks.list_stacks_and_resources' diff --git a/etc/testcase/functest.rally.keystone.yml b/etc/testcase/functest.rally.keystone.yml new file mode 100644 index 00000000..01b5751f --- /dev/null +++ b/etc/testcase/functest.rally.keystone.yml @@ -0,0 +1,45 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.rally.keystone: + name: functest.rally.keystone + objective: Run all Functest Rally Keystone test cases + validate: + type: functest + testcase: rally_full + image_name: opnfv/functest-benchmarking + pre_condition: + - 'cp /home/opnfv/userconfig/rally_keystone_testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' + report: + source_archive_files: + - functest.log + - rally_full/keystone.json + - rally_full/rally_full.html + - rally_full/rally_full.xml + dest_archive_files: + - rally_keystone_logs/functest.rally.keystone.functest.log + - rally_keystone_logs/keystone.json + - rally_keystone_logs/keystone.html + - rally_keystone_logs/keystone.xml + check_results_files: + - 'functest_results.txt' + portal_key_file: rally_keystone_logs/functest.rally.keystone.functest.log + sub_testcase_list: + - 'KeystoneBasic.add_and_remove_user_role' + - 'KeystoneBasic.create_add_and_list_user_roles' + - 'KeystoneBasic.create_and_list_tenants' + - 'KeystoneBasic.create_and_delete_role' + - 'KeystoneBasic.create_and_delete_service' + - 'KeystoneBasic.get_entities' + - 'KeystoneBasic.create_update_and_delete_tenant' + - 'KeystoneBasic.create_user' + - 'KeystoneBasic.create_tenant' + - 'KeystoneBasic.create_and_list_users' + - 'KeystoneBasic.create_tenant_with_users' diff --git a/etc/testcase/functest.rally.neutron.yml b/etc/testcase/functest.rally.neutron.yml new file mode 100644 index 00000000..233a1ff6 --- /dev/null +++ b/etc/testcase/functest.rally.neutron.yml @@ -0,0 +1,54 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.rally.neutron: + name: functest.rally.neutron + objective: Run all Functest Rally Neutron test cases + validate: + type: functest + testcase: rally_full + image_name: opnfv/functest-benchmarking + pre_condition: + - 'cp /home/opnfv/userconfig/rally_neutron_testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' + report: + source_archive_files: + - functest.log + - rally_full/neutron.json + - rally_full/rally_full.html + - rally_full/rally_full.xml + dest_archive_files: + - rally_neutron_logs/functest.rally.neutron.functest.log + - rally_neutron_logs/neutron.json + - rally_neutron_logs/neutron.html + - rally_neutron_logs/neutron.xml + check_results_files: + - 'functest_results.txt' + portal_key_file: rally_neutron_logs/functest.rally.neutron.functest.log + sub_testcase_list: + - 'NeutronNetworks.create_and_update_networks' + - 'NeutronNetworks.create_and_update_ports' + - 'NeutronNetworks.create_and_update_routers' + - 'NeutronNetworks.create_and_update_subnets' + - 'NeutronNetworks.create_and_delete_networks' + - 'NeutronNetworks.create_and_delete_ports' + - 'NeutronNetworks.create_and_delete_routers' + - 'NeutronNetworks.create_and_delete_subnets' + - 'NeutronNetworks.create_and_list_networks' + - 'NeutronNetworks.create_and_list_ports' + - 'NeutronNetworks.create_and_list_routers' + - 'NeutronNetworks.create_and_list_subnets' + - 'NeutronSecurityGroup.create_and_delete_security_groups' + - 'NeutronSecurityGroup.create_and_delete_security_group_rule' + - 'NeutronSecurityGroup.create_and_list_security_group_rules' + - 'NeutronSecurityGroup.create_and_show_security_group' + - 'NeutronNetworks.set_and_clear_router_gateway' + - 'NeutronNetworks.create_and_show_ports' + - 'NeutronNetworks.create_and_show_routers' + - 'NeutronNetworks.create_and_show_subnets' diff --git a/etc/testcase/functest.rally.nova.yml b/etc/testcase/functest.rally.nova.yml new file mode 100644 index 00000000..2cc07264 --- /dev/null +++ b/etc/testcase/functest.rally.nova.yml @@ -0,0 +1,61 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.rally.nova: + name: functest.rally.nova + objective: Run all Functest Rally Nova test cases + validate: + type: functest + testcase: rally_full + image_name: opnfv/functest-benchmarking + pre_condition: + - 'cp /home/opnfv/userconfig/rally_nova_testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' + report: + source_archive_files: + - functest.log + - rally_full/nova.json + - rally_full/rally_full.html + - rally_full/rally_full.xml + dest_archive_files: + - rally_nova_logs/functest.rally.nova.functest.log + - rally_nova_logs/nova.json + - rally_nova_logs/nova.html + - rally_nova_logs/nova.xml + check_results_files: + - 'functest_results.txt' + portal_key_file: rally_nova_logs/functest.rally.nova.functest.log + sub_testcase_list: + - 'NovaKeypair.create_and_delete_keypair' + - 'NovaKeypair.create_and_list_keypairs' + - 'NovaServers.boot_and_bounce_server' + - 'NovaServers.boot_and_delete_server' + - 'NovaServers.boot_and_list_server' + - 'NovaServers.boot_and_rebuild_server' + - 'NovaServers.snapshot_server' + - 'NovaServers.boot_server_from_volume' + - 'NovaServers.boot_server' + - 'NovaServers.list_servers' + - 'NovaServers.resize_server' + - 'NovaServers.boot_and_live_migrate_server' + - 'NovaServers.boot_server_attach_created_volume_and_live_migrate' + - 'NovaServers.boot_server_from_volume_and_live_migrate' + - 'NovaKeypair.boot_and_delete_server_with_keypair' + - 'NovaServers.boot_server_from_volume_and_delete' + - 'NovaServers.pause_and_unpause_server' + - 'NovaServers.boot_and_migrate_server' + - 'NovaServers.boot_server_and_list_interfaces' + - 'NovaServers.boot_and_get_console_url' + - 'NovaServers.boot_server_and_attach_interface' + - 'NovaServers.boot_server_attach_volume_and_list_attachments' + - 'NovaServers.boot_server_associate_and_dissociate_floating_ip' + - 'NovaServers.boot_and_associate_floating_ip' + - 'NovaServerGroups.create_and_delete_server_group' + - 'NovaServerGroups.create_and_get_server_group' + - 'NovaServerGroups.create_and_list_server_groups' diff --git a/etc/testcase/functest.rally.quotas.yml b/etc/testcase/functest.rally.quotas.yml new file mode 100644 index 00000000..44449e9c --- /dev/null +++ b/etc/testcase/functest.rally.quotas.yml @@ -0,0 +1,38 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.rally.quotas: + name: functest.rally.quotas + objective: Run all Functest Rally Quotas test cases + validate: + type: functest + testcase: rally_full + image_name: opnfv/functest-benchmarking + pre_condition: + - 'cp /home/opnfv/userconfig/rally_quotas_testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' + report: + source_archive_files: + - functest.log + - rally_full/quotas.json + - rally_full/rally_full.html + - rally_full/rally_full.xml + dest_archive_files: + - rally_quotas_logs/functest.rally.quotas.functest.log + - rally_quotas_logs/quotas.json + - rally_quotas_logs/quotas.html + - rally_quotas_logs/quotas.xml + check_results_files: + - 'functest_results.txt' + portal_key_file: rally_quotas_logs/functest.rally.quotas.functest.log + sub_testcase_list: + - 'Quotas.cinder_update_and_delete' + - 'Quotas.cinder_update' + - 'Quotas.neutron_update' + - 'Quotas.nova_update' diff --git a/etc/testcase/functest.security.patrole.yml b/etc/testcase/functest.security.patrole.yml new file mode 100644 index 00000000..6dd8c67d --- /dev/null +++ b/etc/testcase/functest.security.patrole.yml @@ -0,0 +1,156 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.security.patrole: + name: functest.security.patrole + objective: Run Patrole to perform RBAC tests of the image and networking services + validate: + type: functest + testcase: patrole + pre_condition: + - 'cp /home/opnfv/pre_config/tempest_conf.yaml /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml' + - 'cp /home/opnfv/userconfig/patrole_blacklist.yaml /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/blacklist.yaml' + report: + source_archive_files: + - functest.log + - patrole/rally.log + - patrole/tempest-report.html + dest_archive_files: + - security_logs/functest.security.patrole.functest.log + - security_logs/functest.security.patrole.log + - security_logs/functest.security.patrole.html + check_results_files: + - 'functest_results.txt' + portal_key_file: security_logs/functest.security.patrole.html + sub_testcase_list: + - patrole_tempest_plugin.tests.api.image.test_image_namespace_objects_rbac.ImageNamespacesObjectsRbacTest.test_create_metadef_object_in_namespace + - patrole_tempest_plugin.tests.api.image.test_image_namespace_objects_rbac.ImageNamespacesObjectsRbacTest.test_list_metadef_objects_in_namespace + - patrole_tempest_plugin.tests.api.image.test_image_namespace_objects_rbac.ImageNamespacesObjectsRbacTest.test_show_metadef_object_in_namespace + - patrole_tempest_plugin.tests.api.image.test_image_namespace_objects_rbac.ImageNamespacesObjectsRbacTest.test_update_metadef_object_in_namespace + - patrole_tempest_plugin.tests.api.image.test_image_namespace_property_rbac.NamespacesPropertyRbacTest.test_add_md_properties + - patrole_tempest_plugin.tests.api.image.test_image_namespace_property_rbac.NamespacesPropertyRbacTest.test_get_md_properties + - patrole_tempest_plugin.tests.api.image.test_image_namespace_property_rbac.NamespacesPropertyRbacTest.test_get_md_property + - patrole_tempest_plugin.tests.api.image.test_image_namespace_property_rbac.NamespacesPropertyRbacTest.test_modify_md_properties + - patrole_tempest_plugin.tests.api.image.test_image_namespace_rbac.ImageNamespacesRbacTest.test_create_metadef_namespace + - patrole_tempest_plugin.tests.api.image.test_image_namespace_rbac.ImageNamespacesRbacTest.test_modify_metadef_namespace + - patrole_tempest_plugin.tests.api.image.test_image_namespace_tags_rbac.NamespaceTagsRbacTest.test_create_namespace_tag + - patrole_tempest_plugin.tests.api.image.test_image_namespace_tags_rbac.NamespaceTagsRbacTest.test_create_namespace_tags + - patrole_tempest_plugin.tests.api.image.test_image_namespace_tags_rbac.NamespaceTagsRbacTest.test_list_namespace_tags + - patrole_tempest_plugin.tests.api.image.test_image_namespace_tags_rbac.NamespaceTagsRbacTest.test_show_namespace_tag + - patrole_tempest_plugin.tests.api.image.test_image_namespace_tags_rbac.NamespaceTagsRbacTest.test_update_namespace_tag + - patrole_tempest_plugin.tests.api.image.test_image_resource_types_rbac.ImageResourceTypesRbacTest.test_add_metadef_resource_type + - patrole_tempest_plugin.tests.api.image.test_image_resource_types_rbac.ImageResourceTypesRbacTest.test_get_metadef_resource_type + - patrole_tempest_plugin.tests.api.image.test_image_resource_types_rbac.ImageResourceTypesRbacTest.test_list_metadef_resource_types + - patrole_tempest_plugin.tests.api.image.test_images_member_rbac.ImagesMemberRbacTest.test_add_image_member + - patrole_tempest_plugin.tests.api.image.test_images_member_rbac.ImagesMemberRbacTest.test_delete_image_member + - patrole_tempest_plugin.tests.api.image.test_images_member_rbac.ImagesMemberRbacTest.test_list_image_members + - patrole_tempest_plugin.tests.api.image.test_images_member_rbac.ImagesMemberRbacTest.test_show_image_member + - patrole_tempest_plugin.tests.api.image.test_images_rbac.BasicOperationsImagesRbacTest.test_create_image + - patrole_tempest_plugin.tests.api.image.test_images_rbac.BasicOperationsImagesRbacTest.test_create_image_tag + - patrole_tempest_plugin.tests.api.image.test_images_rbac.BasicOperationsImagesRbacTest.test_deactivate_image + - patrole_tempest_plugin.tests.api.image.test_images_rbac.BasicOperationsImagesRbacTest.test_delete_image + - patrole_tempest_plugin.tests.api.image.test_images_rbac.BasicOperationsImagesRbacTest.test_delete_image_tag + - patrole_tempest_plugin.tests.api.image.test_images_rbac.BasicOperationsImagesRbacTest.test_download_image + - patrole_tempest_plugin.tests.api.image.test_images_rbac.BasicOperationsImagesRbacTest.test_list_images + - patrole_tempest_plugin.tests.api.image.test_images_rbac.BasicOperationsImagesRbacTest.test_publicize_image + - patrole_tempest_plugin.tests.api.image.test_images_rbac.BasicOperationsImagesRbacTest.test_reactivate_image + - patrole_tempest_plugin.tests.api.image.test_images_rbac.BasicOperationsImagesRbacTest.test_show_image + - patrole_tempest_plugin.tests.api.image.test_images_rbac.BasicOperationsImagesRbacTest.test_update_image + - patrole_tempest_plugin.tests.api.image.test_images_rbac.BasicOperationsImagesRbacTest.test_upload_image + - patrole_tempest_plugin.tests.api.network.test_agents_rbac.AgentsRbacTest.test_show_agent + - patrole_tempest_plugin.tests.api.network.test_agents_rbac.AgentsRbacTest.test_update_agent + - patrole_tempest_plugin.tests.api.network.test_agents_rbac.DHCPAgentSchedulersRbacTest.test_add_dhcp_agent_to_network + - patrole_tempest_plugin.tests.api.network.test_agents_rbac.DHCPAgentSchedulersRbacTest.test_delete_network_from_dhcp_agent + - patrole_tempest_plugin.tests.api.network.test_agents_rbac.DHCPAgentSchedulersRbacTest.test_list_networks_hosted_by_one_dhcp_agent + - patrole_tempest_plugin.tests.api.network.test_flavors_rbac.FlavorsPluginRbacTest.test_create_flavor + - patrole_tempest_plugin.tests.api.network.test_flavors_rbac.FlavorsPluginRbacTest.test_delete_flavor + - patrole_tempest_plugin.tests.api.network.test_flavors_rbac.FlavorsPluginRbacTest.test_list_flavors + - patrole_tempest_plugin.tests.api.network.test_flavors_rbac.FlavorsPluginRbacTest.test_show_flavor + - patrole_tempest_plugin.tests.api.network.test_flavors_rbac.FlavorsPluginRbacTest.test_update_flavor + - patrole_tempest_plugin.tests.api.network.test_floating_ips_rbac.FloatingIpsRbacTest.test_create_floating_ip + - patrole_tempest_plugin.tests.api.network.test_floating_ips_rbac.FloatingIpsRbacTest.test_create_floating_ip_floatingip_address + - patrole_tempest_plugin.tests.api.network.test_floating_ips_rbac.FloatingIpsRbacTest.test_delete_floating_ip + - patrole_tempest_plugin.tests.api.network.test_floating_ips_rbac.FloatingIpsRbacTest.test_show_floating_ip + - patrole_tempest_plugin.tests.api.network.test_floating_ips_rbac.FloatingIpsRbacTest.test_update_floating_ip + - patrole_tempest_plugin.tests.api.network.test_network_segments_rbac.NetworkSegmentsRbacTest.test_create_network_segments + - patrole_tempest_plugin.tests.api.network.test_network_segments_rbac.NetworkSegmentsRbacTest.test_show_network_segments + - patrole_tempest_plugin.tests.api.network.test_network_segments_rbac.NetworkSegmentsRbacTest.test_update_network_segments + - patrole_tempest_plugin.tests.api.network.test_networks_rbac.NetworksRbacTest.test_create_network + - patrole_tempest_plugin.tests.api.network.test_networks_rbac.NetworksRbacTest.test_create_network_is_default + - patrole_tempest_plugin.tests.api.network.test_networks_rbac.NetworksRbacTest.test_create_network_router_external + - patrole_tempest_plugin.tests.api.network.test_networks_rbac.NetworksRbacTest.test_create_network_shared + - patrole_tempest_plugin.tests.api.network.test_networks_rbac.NetworksRbacTest.test_delete_network + - patrole_tempest_plugin.tests.api.network.test_networks_rbac.NetworksRbacTest.test_list_dhcp_agents_on_hosting_network + - patrole_tempest_plugin.tests.api.network.test_networks_rbac.NetworksRbacTest.test_show_network + - patrole_tempest_plugin.tests.api.network.test_networks_rbac.NetworksRbacTest.test_show_network_provider_network_type + - patrole_tempest_plugin.tests.api.network.test_networks_rbac.NetworksRbacTest.test_show_network_provider_physical_network + - patrole_tempest_plugin.tests.api.network.test_networks_rbac.NetworksRbacTest.test_show_network_provider_segmentation_id + - patrole_tempest_plugin.tests.api.network.test_networks_rbac.NetworksRbacTest.test_show_network_router_external + - patrole_tempest_plugin.tests.api.network.test_networks_rbac.NetworksRbacTest.test_update_network + - patrole_tempest_plugin.tests.api.network.test_networks_rbac.NetworksRbacTest.test_update_network_provider_physical_network + - patrole_tempest_plugin.tests.api.network.test_networks_rbac.NetworksRbacTest.test_update_network_provider_segmentation_id + - patrole_tempest_plugin.tests.api.network.test_networks_rbac.NetworksRbacTest.test_update_network_router_external + - patrole_tempest_plugin.tests.api.network.test_networks_rbac.NetworksRbacTest.test_update_network_shared + - patrole_tempest_plugin.tests.api.network.test_ports_rbac.PortsRbacTest.test_create_port + - patrole_tempest_plugin.tests.api.network.test_ports_rbac.PortsRbacTest.test_create_port_allowed_address_pairs + - patrole_tempest_plugin.tests.api.network.test_ports_rbac.PortsRbacTest.test_create_port_binding_host_id + - patrole_tempest_plugin.tests.api.network.test_ports_rbac.PortsRbacTest.test_create_port_binding_profile + - patrole_tempest_plugin.tests.api.network.test_ports_rbac.PortsRbacTest.test_create_port_device_owner + - patrole_tempest_plugin.tests.api.network.test_ports_rbac.PortsRbacTest.test_create_port_fixed_ips_ip_address + - patrole_tempest_plugin.tests.api.network.test_ports_rbac.PortsRbacTest.test_create_port_mac_address + - patrole_tempest_plugin.tests.api.network.test_ports_rbac.PortsRbacTest.test_create_port_security_enabled + - patrole_tempest_plugin.tests.api.network.test_ports_rbac.PortsRbacTest.test_delete_port + - patrole_tempest_plugin.tests.api.network.test_ports_rbac.PortsRbacTest.test_show_port + - patrole_tempest_plugin.tests.api.network.test_ports_rbac.PortsRbacTest.test_show_port_binding_host_id + - patrole_tempest_plugin.tests.api.network.test_ports_rbac.PortsRbacTest.test_show_port_binding_profile + - patrole_tempest_plugin.tests.api.network.test_ports_rbac.PortsRbacTest.test_show_port_binding_vif_details + - patrole_tempest_plugin.tests.api.network.test_ports_rbac.PortsRbacTest.test_show_port_binding_vif_type + - patrole_tempest_plugin.tests.api.network.test_ports_rbac.PortsRbacTest.test_update_port + - patrole_tempest_plugin.tests.api.network.test_ports_rbac.PortsRbacTest.test_update_port_allowed_address_pairs + - patrole_tempest_plugin.tests.api.network.test_ports_rbac.PortsRbacTest.test_update_port_binding_host_id + - patrole_tempest_plugin.tests.api.network.test_ports_rbac.PortsRbacTest.test_update_port_binding_profile + - patrole_tempest_plugin.tests.api.network.test_ports_rbac.PortsRbacTest.test_update_port_device_owner + - patrole_tempest_plugin.tests.api.network.test_ports_rbac.PortsRbacTest.test_update_port_fixed_ips_ip_address + - patrole_tempest_plugin.tests.api.network.test_ports_rbac.PortsRbacTest.test_update_port_mac_address + - patrole_tempest_plugin.tests.api.network.test_ports_rbac.PortsRbacTest.test_update_port_security_enabled + - patrole_tempest_plugin.tests.api.network.test_routers_rbac.RouterRbacTest.test_add_router_interface + - patrole_tempest_plugin.tests.api.network.test_routers_rbac.RouterRbacTest.test_create_router + - patrole_tempest_plugin.tests.api.network.test_routers_rbac.RouterRbacTest.test_create_router_enable_snat + - patrole_tempest_plugin.tests.api.network.test_routers_rbac.RouterRbacTest.test_create_router_external_fixed_ips + - patrole_tempest_plugin.tests.api.network.test_routers_rbac.RouterRbacTest.test_delete_router + - patrole_tempest_plugin.tests.api.network.test_routers_rbac.RouterRbacTest.test_remove_router_interface + - patrole_tempest_plugin.tests.api.network.test_routers_rbac.RouterRbacTest.test_show_high_availability_router + - patrole_tempest_plugin.tests.api.network.test_routers_rbac.RouterRbacTest.test_show_router + - patrole_tempest_plugin.tests.api.network.test_routers_rbac.RouterRbacTest.test_update_router + - patrole_tempest_plugin.tests.api.network.test_routers_rbac.RouterRbacTest.test_update_router_enable_snat + - patrole_tempest_plugin.tests.api.network.test_routers_rbac.RouterRbacTest.test_update_router_external_fixed_ips + - patrole_tempest_plugin.tests.api.network.test_routers_rbac.RouterRbacTest.test_update_router_external_gateway_info + - patrole_tempest_plugin.tests.api.network.test_routers_rbac.RouterRbacTest.test_update_router_external_gateway_info_network_id + - patrole_tempest_plugin.tests.api.network.test_security_groups_rbac.SecGroupRbacTest.test_create_security_group + - patrole_tempest_plugin.tests.api.network.test_security_groups_rbac.SecGroupRbacTest.test_create_security_group_rule + - patrole_tempest_plugin.tests.api.network.test_security_groups_rbac.SecGroupRbacTest.test_delete_security_group + - patrole_tempest_plugin.tests.api.network.test_security_groups_rbac.SecGroupRbacTest.test_delete_security_group_rule + - patrole_tempest_plugin.tests.api.network.test_security_groups_rbac.SecGroupRbacTest.test_list_security_group_rules + - patrole_tempest_plugin.tests.api.network.test_security_groups_rbac.SecGroupRbacTest.test_list_security_groups + - patrole_tempest_plugin.tests.api.network.test_security_groups_rbac.SecGroupRbacTest.test_show_security_group_rule + - patrole_tempest_plugin.tests.api.network.test_security_groups_rbac.SecGroupRbacTest.test_show_security_group + - patrole_tempest_plugin.tests.api.network.test_security_groups_rbac.SecGroupRbacTest.test_update_security_group + - patrole_tempest_plugin.tests.api.network.test_service_providers_rbac.ServiceProvidersRbacTest.test_list_service_providers + - patrole_tempest_plugin.tests.api.network.test_subnetpools_rbac.SubnetPoolsRbacTest.test_create_subnetpool + - patrole_tempest_plugin.tests.api.network.test_subnetpools_rbac.SubnetPoolsRbacTest.test_create_subnetpool_shared + - patrole_tempest_plugin.tests.api.network.test_subnetpools_rbac.SubnetPoolsRbacTest.test_delete_subnetpool + - patrole_tempest_plugin.tests.api.network.test_subnetpools_rbac.SubnetPoolsRbacTest.test_show_subnetpool + - patrole_tempest_plugin.tests.api.network.test_subnetpools_rbac.SubnetPoolsRbacTest.test_update_subnetpool + - patrole_tempest_plugin.tests.api.network.test_subnetpools_rbac.SubnetPoolsRbacTest.test_update_subnetpool_is_default + - patrole_tempest_plugin.tests.api.network.test_subnets_rbac.SubnetsRbacTest.test_create_subnet + - patrole_tempest_plugin.tests.api.network.test_subnets_rbac.SubnetsRbacTest.test_delete_subnet + - patrole_tempest_plugin.tests.api.network.test_subnets_rbac.SubnetsRbacTest.test_list_subnets + - patrole_tempest_plugin.tests.api.network.test_subnets_rbac.SubnetsRbacTest.test_show_subnet + - patrole_tempest_plugin.tests.api.network.test_subnets_rbac.SubnetsRbacTest.test_update_subnet diff --git a/etc/testcase/functest.security.patrole_vxlan_dependent.yml b/etc/testcase/functest.security.patrole_vxlan_dependent.yml new file mode 100644 index 00000000..252a3e8c --- /dev/null +++ b/etc/testcase/functest.security.patrole_vxlan_dependent.yml @@ -0,0 +1,35 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.security.patrole_vxlan_dependent: + name: functest.security.patrole_vxlan_dependent + objective: Run 2 sub test cases in Patrole that are dependent on vxlan + validate: + type: functest + testcase: tempest_custom + pre_condition: + - 'cp /home/opnfv/pre_config/tempest_conf.yaml /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml' + - 'cp /home/opnfv/userconfig/tempest_custom_testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' + - 'cp /home/opnfv/functest/results/tempest_custom.txt /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt' + report: + source_archive_files: + - functest.log + - tempest_custom/rally.log + - tempest_custom/tempest-report.html + dest_archive_files: + - security_logs/functest.security.patrole_vxlan_dependent.functest.log + - security_logs/functest.security.patrole_vxlan_dependent.log + - security_logs/functest.security.patrole_vxlan_dependent.html + check_results_files: + - 'functest_results.txt' + portal_key_file: security_logs/functest.security.patrole_vxlan_dependent.html + sub_testcase_list: + - patrole_tempest_plugin.tests.api.network.test_networks_rbac.NetworksRbacTest.test_create_network_provider_network_type[id-3c42f7b8-b80c-44ef-8fa4-69ec4b1836bc] + - patrole_tempest_plugin.tests.api.network.test_networks_rbac.NetworksRbacTest.test_create_network_provider_segmentation_id[id-b9decb7b-68ef-4504-b99b-41edbf7d2af5] diff --git a/etc/testcase/functest.tempest.bgpvpn.yml b/etc/testcase/functest.tempest.bgpvpn.yml new file mode 100644 index 00000000..a1b6ae2c --- /dev/null +++ b/etc/testcase/functest.tempest.bgpvpn.yml @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.tempest.bgpvpn: + name: functest.tempest.bgpvpn + objective: validate BGPVPN API CRUD operations by means of Tempest tests from networking-bgpvpn repository + validate: + type: functest + testcase: networking-bgpvpn + pre_condition: + - 'cp /home/opnfv/pre_config/tempest_conf.yaml /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml' + report: + source_archive_files: + - functest.log + - networking-bgpvpn/rally.log + - networking-bgpvpn/tempest-report.html + dest_archive_files: + - tempest_logs/functest.tempest.bgpvpn.functest.log + - tempest_logs/functest.tempest.bgpvpn.log + - tempest_logs/functest.tempest.bgpvpn.html + check_results_files: + - 'functest_results.txt' + portal_key_file: tempest_logs/functest.tempest.bgpvpn.html + sub_testcase_list: + - networking_bgpvpn_tempest.tests.api.test_bgpvpn.BgpvpnTest.test_associate_disassociate_network + - networking_bgpvpn_tempest.tests.api.test_bgpvpn.BgpvpnTest.test_associate_disassociate_router + - networking_bgpvpn_tempest.tests.api.test_bgpvpn.BgpvpnTest.test_associate_invalid_network + - networking_bgpvpn_tempest.tests.api.test_bgpvpn.BgpvpnTest.test_attach_associated_subnet_to_associated_router + - networking_bgpvpn_tempest.tests.api.test_bgpvpn.BgpvpnTest.test_create_bgpvpn + - networking_bgpvpn_tempest.tests.api.test_bgpvpn.BgpvpnTest.test_create_bgpvpn_as_non_admin_fail + - networking_bgpvpn_tempest.tests.api.test_bgpvpn.BgpvpnTest.test_create_bgpvpn_with_invalid_routetargets + - networking_bgpvpn_tempest.tests.api.test_bgpvpn.BgpvpnTest.test_delete_bgpvpn + - networking_bgpvpn_tempest.tests.api.test_bgpvpn.BgpvpnTest.test_delete_bgpvpn_as_non_admin_fail + - networking_bgpvpn_tempest.tests.api.test_bgpvpn.BgpvpnTest.test_disassociate_invalid_network + - networking_bgpvpn_tempest.tests.api.test_bgpvpn.BgpvpnTest.test_list_bgpvpn + - networking_bgpvpn_tempest.tests.api.test_bgpvpn.BgpvpnTest.test_list_bgpvpn_as_non_owner_fail + - networking_bgpvpn_tempest.tests.api.test_bgpvpn.BgpvpnTest.test_list_netassoc_as_non_owner_fail + - networking_bgpvpn_tempest.tests.api.test_bgpvpn.BgpvpnTest.test_list_show_network_association + - networking_bgpvpn_tempest.tests.api.test_bgpvpn.BgpvpnTest.test_list_show_router_association + - networking_bgpvpn_tempest.tests.api.test_bgpvpn.BgpvpnTest.test_show_bgpvpn + - networking_bgpvpn_tempest.tests.api.test_bgpvpn.BgpvpnTest.test_show_bgpvpn_as_non_owner_fail + - networking_bgpvpn_tempest.tests.api.test_bgpvpn.BgpvpnTest.test_show_netassoc_as_non_owner_fail + - networking_bgpvpn_tempest.tests.api.test_bgpvpn.BgpvpnTest.test_update_bgpvpn_invalid_routetargets + - networking_bgpvpn_tempest.tests.api.test_bgpvpn.BgpvpnTest.test_update_route_target + - networking_bgpvpn_tempest.tests.api.test_bgpvpn.BgpvpnTest.test_update_route_target_non_admin_fail diff --git a/etc/testcase/functest.tempest.compute.yml b/etc/testcase/functest.tempest.compute.yml new file mode 100644 index 00000000..66b20a31 --- /dev/null +++ b/etc/testcase/functest.tempest.compute.yml @@ -0,0 +1,45 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.tempest.compute: + name: functest.tempest.compute + objective: tempest smoke test cases about compute + validate: + type: functest + testcase: tempest_custom + pre_condition: + - 'cp /home/opnfv/pre_config/tempest_conf.yaml /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml' + - 'cp /home/opnfv/userconfig/tempest_custom_testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' + - 'cp /home/opnfv/functest/results/tempest_custom.txt /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt' + report: + source_archive_files: + - functest.log + - tempest_custom/rally.log + - tempest_custom/tempest-report.html + dest_archive_files: + - tempest_logs/functest.tempest.compute.functest.log + - tempest_logs/functest.tempest.compute.log + - tempest_logs/functest.tempest.compute.html + check_results_files: + - 'functest_results.txt' + portal_key_file: tempest_logs/functest.tempest.compute.html + sub_testcase_list: + - tempest.api.compute.flavors.test_flavors.FlavorsV2TestJSON.test_get_flavor[id-1f12046b-753d-40d2-abb6-d8eb8b30cb2f,smoke] + - tempest.api.compute.flavors.test_flavors.FlavorsV2TestJSON.test_list_flavors[id-e36c0eaa-dff5-4082-ad1f-3f9a80aa3f59,smoke] + - tempest.api.compute.security_groups.test_security_group_rules.SecurityGroupRulesTestJSON.test_security_group_rules_create[id-850795d7-d4d3-4e55-b527-a774c0123d3a,smoke] + - tempest.api.compute.security_groups.test_security_group_rules.SecurityGroupRulesTestJSON.test_security_group_rules_list[id-a6154130-5a55-4850-8be4-5e9e796dbf17,smoke] + - tempest.api.compute.security_groups.test_security_groups.SecurityGroupsTestJSON.test_security_groups_create_list_delete[id-eb2b087d-633d-4d0d-a7bd-9e6ba35b32de,smoke] + - tempest.api.compute.servers.test_attach_interfaces.AttachInterfacesUnderV243Test.test_add_remove_fixed_ip[id-c7e0e60b-ee45-43d0-abeb-8596fd42a2f9,network,smoke] + - tempest.api.compute.servers.test_server_addresses.ServerAddressesTestJSON.test_list_server_addresses[id-6eb718c0-02d9-4d5e-acd1-4e0c269cef39,network,smoke] + - tempest.api.compute.servers.test_server_addresses.ServerAddressesTestJSON.test_list_server_addresses_by_network[id-87bbc374-5538-4f64-b673-2b0e4443cc30,network,smoke] + - tempest.api.compute.test_versions.TestVersions.test_get_version_details[id-b953a29e-929c-4a8e-81be-ec3a7e03cb76,smoke] + - tempest.api.compute.servers.test_create_server.ServersTestBootFromVolume.test_verify_server_details[id-5de47127-9977-400a-936f-abcfbec1218f,smoke] + - tempest.api.compute.servers.test_create_server.ServersTestBootFromVolume.test_list_servers[id-9a438d88-10c6-4bcd-8b5b-5b6e25e1346f,smoke] + - tempest.scenario.test_server_basic_ops.TestServerBasicOps.test_server_basic_ops[compute,id-7fff3fb3-91d8-4fd0-bd7d-0204f1f180ba,network,smoke] diff --git a/etc/testcase/functest.tempest.identity_v3.yml b/etc/testcase/functest.tempest.identity_v3.yml new file mode 100644 index 00000000..d37f649a --- /dev/null +++ b/etc/testcase/functest.tempest.identity_v3.yml @@ -0,0 +1,44 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.tempest.identity_v3: + name: functest.tempest.identity_v3 + objective: tempest smoke test cases about identity v3 + validate: + type: functest + testcase: tempest_custom + pre_condition: + - 'cp /home/opnfv/pre_config/tempest_conf.yaml /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml' + - 'cp /home/opnfv/userconfig/tempest_custom_testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' + - 'cp /home/opnfv/functest/results/tempest_custom.txt /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt' + report: + source_archive_files: + - functest.log + - tempest_custom/rally.log + - tempest_custom/tempest-report.html + dest_archive_files: + - tempest_logs/functest.tempest.identity_v3.functest.log + - tempest_logs/functest.tempest.identity_v3.log + - tempest_logs/functest.tempest.identity_v3.html + check_results_files: + - 'functest_results.txt' + portal_key_file: tempest_logs/functest.tempest.identity_v3.html + sub_testcase_list: + - tempest.api.identity.admin.v3.test_credentials.CredentialsTestJSON.test_credentials_create_get_update_delete[id-7cd59bf9-bda4-4c72-9467-d21cab278355,smoke] + - tempest.api.identity.admin.v3.test_domains.DomainsTestJSON.test_create_update_delete_domain[id-f2f5b44a-82e8-4dad-8084-0661ea3b18cf,smoke] + - tempest.api.identity.admin.v3.test_endpoints.EndPointsTestJSON.test_update_endpoint[id-37e8f15e-ee7c-4657-a1e7-f6b61e375eff,smoke] + - tempest.api.identity.admin.v3.test_groups.GroupsV3TestJSON.test_group_users_add_list_delete[id-1598521a-2f36-4606-8df9-30772bd51339,smoke] + - tempest.api.identity.admin.v3.test_policies.PoliciesTestJSON.test_create_update_delete_policy[id-e544703a-2f03-4cf2-9b0f-350782fdb0d3,smoke] + - tempest.api.identity.admin.v3.test_regions.RegionsTestJSON.test_create_region_with_specific_id[id-2c12c5b5-efcf-4aa5-90c5-bff1ab0cdbe2,smoke] + - tempest.api.identity.admin.v3.test_roles.RolesV3TestJSON.test_role_create_update_show_list[id-18afc6c0-46cf-4911-824e-9989cc056c3a,smoke] + - tempest.api.identity.admin.v3.test_services.ServicesTestJSON.test_create_update_get_service[id-5193aad5-bcb7-411d-85b0-b3b61b96ef06,smoke] + - tempest.api.identity.admin.v3.test_trusts.TrustsV3TestJSON.test_get_trusts_all[id-4773ebd5-ecbf-4255-b8d8-b63e6f72b65d,smoke] + - tempest.api.identity.v3.test_api_discovery.TestApiDiscovery.test_list_api_versions[id-721f480f-35b6-46c7-846e-047e6acea0dc,smoke] + - tempest.api.identity.v3.test_domains.DefaultDomainTestJSON.test_default_domain_exists[id-17a5de24-e6a0-4e4a-a9ee-d85b6e5612b5,smoke] diff --git a/etc/testcase/functest.tempest.image.yml b/etc/testcase/functest.tempest.image.yml new file mode 100644 index 00000000..36c484d5 --- /dev/null +++ b/etc/testcase/functest.tempest.image.yml @@ -0,0 +1,35 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.tempest.image: + name: functest.tempest.image + objective: tempest smoke test cases about image + validate: + type: functest + testcase: tempest_custom + pre_condition: + - 'cp /home/opnfv/pre_config/tempest_conf.yaml /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml' + - 'cp /home/opnfv/userconfig/tempest_custom_testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' + - 'cp /home/opnfv/functest/results/tempest_custom.txt /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt' + report: + source_archive_files: + - functest.log + - tempest_custom/rally.log + - tempest_custom/tempest-report.html + dest_archive_files: + - tempest_logs/functest.tempest.image.functest.log + - tempest_logs/functest.tempest.image.log + - tempest_logs/functest.tempest.image.html + check_results_files: + - 'functest_results.txt' + portal_key_file: tempest_logs/functest.tempest.image.html + sub_testcase_list: + - tempest.api.image.v2.test_images.BasicOperationsImagesTest.test_register_upload_get_image_file[id-139b765e-7f3d-4b3d-8b37-3ca3876ee318,smoke] + - tempest.api.image.v2.test_versions.VersionsTest.test_list_versions[id-659ea30a-a17c-4317-832c-0f68ed23c31d,smoke] diff --git a/etc/testcase/functest.tempest.ipv6_api.yml b/etc/testcase/functest.tempest.ipv6_api.yml new file mode 100644 index 00000000..d1fd55f5 --- /dev/null +++ b/etc/testcase/functest.tempest.ipv6_api.yml @@ -0,0 +1,54 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.tempest.ipv6_api: + name: functest.tempest.ipv6_api + objective: IPv6 API tempest tests + validate: + type: functest + testcase: tempest_custom + pre_condition: + - 'cp /home/opnfv/pre_config/tempest_conf.yaml /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml' + - 'cp /home/opnfv/userconfig/tempest_custom_testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' + - 'cp /home/opnfv/functest/results/tempest_custom.txt /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt' + report: + source_archive_files: + - functest.log + - tempest_custom/rally.log + - tempest_custom/tempest-report.html + dest_archive_files: + - tempest_logs/functest.tempest.ipv6_api.functest.log + - tempest_logs/functest.tempest.ipv6_api.log + - tempest_logs/functest.tempest.ipv6_api.html + check_results_files: + - 'functest_results.txt' + portal_key_file: tempest_logs/functest.tempest.ipv6_api.html + sub_testcase_list: + - tempest.api.network.test_networks.BulkNetworkOpsIpV6Test.test_bulk_create_delete_network[id-d4f9024d-1e28-4fc1-a6b1-25dbc6fa11e2,smoke] + - tempest.api.network.test_networks.BulkNetworkOpsIpV6Test.test_bulk_create_delete_port[id-48037ff2-e889-4c3b-b86a-8e3f34d2d060,smoke] + - tempest.api.network.test_networks.BulkNetworkOpsIpV6Test.test_bulk_create_delete_subnet[id-8936533b-c0aa-4f29-8e53-6cc873aec489,smoke] + - tempest.api.network.test_networks.NetworksIpV6Test.test_create_update_delete_network_subnet[id-0e269138-0da6-4efc-a46d-578161e7b221,smoke] + - tempest.api.network.test_networks.NetworksIpV6Test.test_external_network_visibility[id-af774677-42a9-4e4b-bb58-16fe6a5bc1ec,smoke] + - tempest.api.network.test_networks.NetworksIpV6Test.test_list_networks[id-f7ffdeda-e200-4a7a-bcbe-05716e86bf43,smoke] + - tempest.api.network.test_networks.NetworksIpV6Test.test_list_subnets[id-db68ba48-f4ea-49e9-81d1-e367f6d0b20a,smoke] + - tempest.api.network.test_networks.NetworksIpV6Test.test_show_network[id-2bf13842-c93f-4a69-83ed-717d2ec3b44e,smoke] + - tempest.api.network.test_networks.NetworksIpV6Test.test_show_subnet[id-bd635d81-6030-4dd1-b3b9-31ba0cfdf6cc,smoke] + - tempest.api.network.test_ports.PortsIpV6TestJSON.test_create_port_in_allowed_allocation_pools[id-0435f278-40ae-48cb-a404-b8a087bc09b1,smoke] + - tempest.api.network.test_ports.PortsIpV6TestJSON.test_create_port_with_no_securitygroups[id-4179dcb9-1382-4ced-84fe-1b91c54f5735,smoke] + - tempest.api.network.test_ports.PortsIpV6TestJSON.test_create_update_delete_port[id-c72c1c0c-2193-4aca-aaa4-b1442640f51c,smoke] + - tempest.api.network.test_ports.PortsIpV6TestJSON.test_list_ports[id-cf95b358-3e92-4a29-a148-52445e1ac50e,smoke] + - tempest.api.network.test_ports.PortsIpV6TestJSON.test_show_port[id-c9a685bd-e83f-499c-939f-9f7863ca259f,smoke] + - tempest.api.network.test_routers.RoutersIpV6Test.test_add_multiple_router_interfaces[id-802c73c9-c937-4cef-824b-2191e24a6aab,smoke] + - tempest.api.network.test_routers.RoutersIpV6Test.test_add_remove_router_interface_with_port_id[id-2b7d2f37-6748-4d78-92e5-1d590234f0d5,smoke] + - tempest.api.network.test_routers.RoutersIpV6Test.test_add_remove_router_interface_with_subnet_id[id-b42e6e39-2e37-49cc-a6f4-8467e940900a,smoke] + - tempest.api.network.test_routers.RoutersIpV6Test.test_create_show_list_update_delete_router[id-f64403e2-8483-4b34-8ccd-b09a87bcc68c,smoke] + - tempest.api.network.test_security_groups.SecGroupIPv6Test.test_create_list_update_show_delete_security_group[id-bfd128e5-3c92-44b6-9d66-7fe29d22c802,smoke] + - tempest.api.network.test_security_groups.SecGroupIPv6Test.test_create_show_delete_security_group_rule[id-cfb99e0e-7410-4a3d-8a0c-959a63ee77e9,smoke] + - tempest.api.network.test_security_groups.SecGroupIPv6Test.test_list_security_groups[id-e30abd17-fef9-4739-8617-dc26da88e686,smoke] diff --git a/etc/testcase/functest.tempest.ipv6_scenario.yml b/etc/testcase/functest.tempest.ipv6_scenario.yml new file mode 100644 index 00000000..6ddae4a4 --- /dev/null +++ b/etc/testcase/functest.tempest.ipv6_scenario.yml @@ -0,0 +1,41 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.tempest.ipv6_scenario: + name: functest.tempest.ipv6_scenario + objective: IPv6 tempest scenario tests + validate: + type: functest + testcase: tempest_custom + pre_condition: + - 'cp /home/opnfv/pre_config/tempest_conf.yaml /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml' + - 'cp /home/opnfv/userconfig/tempest_custom_testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' + - 'cp /home/opnfv/functest/results/tempest_custom.txt /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt' + report: + source_archive_files: + - functest.log + - tempest_custom/rally.log + - tempest_custom/tempest-report.html + dest_archive_files: + - tempest_logs/functest.tempest.ipv6_scenario.functest.log + - tempest_logs/functest.tempest.ipv6_scenario.log + - tempest_logs/functest.tempest.ipv6_scenario.html + check_results_files: + - 'functest_results.txt' + portal_key_file: tempest_logs/functest.tempest.ipv6_scenario.html + sub_testcase_list: + - tempest.scenario.test_network_v6.TestGettingAddress.test_dhcp6_stateless_from_os[compute,id-d7e1f858-187c-45a6-89c9-bdafde619a9f,network,slow] + - tempest.scenario.test_network_v6.TestGettingAddress.test_dualnet_dhcp6_stateless_from_os[compute,id-76f26acd-9688-42b4-bc3e-cd134c4cb09e,network,slow] + - tempest.scenario.test_network_v6.TestGettingAddress.test_multi_prefix_dhcpv6_stateless[compute,id-7ab23f41-833b-4a16-a7c9-5b42fe6d4123,network,slow] + - tempest.scenario.test_network_v6.TestGettingAddress.test_dualnet_multi_prefix_dhcpv6_stateless[compute,id-cf1c4425-766b-45b8-be35-e2959728eb00,network,slow] + - tempest.scenario.test_network_v6.TestGettingAddress.test_slaac_from_os[compute,id-2c92df61-29f0-4eaa-bee3-7c65bef62a43,network,slow] + - tempest.scenario.test_network_v6.TestGettingAddress.test_dualnet_slaac_from_os[compute,id-b6399d76-4438-4658-bcf5-0d6c8584fde2,network,slow] + - tempest.scenario.test_network_v6.TestGettingAddress.test_multi_prefix_slaac[compute,id-dec222b1-180c-4098-b8c5-cc1b8342d611,network,slow] + - tempest.scenario.test_network_v6.TestGettingAddress.test_dualnet_multi_prefix_slaac[compute,id-9178ad42-10e4-47e9-8987-e02b170cc5cd,network,slow] diff --git a/etc/testcase/functest.tempest.multi_node_scheduling.yml b/etc/testcase/functest.tempest.multi_node_scheduling.yml new file mode 100644 index 00000000..133f87d5 --- /dev/null +++ b/etc/testcase/functest.tempest.multi_node_scheduling.yml @@ -0,0 +1,39 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.tempest.multi_node_scheduling: + name: functest.tempest.multi_node_scheduling + objective: simple virtual machine resource scheduling on multiple nodes + validate: + type: functest + testcase: tempest_custom + pre_condition: + - 'cp /home/opnfv/pre_config/tempest_conf.yaml /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml' + - 'cp /home/opnfv/userconfig/tempest_custom_testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' + - 'cp /home/opnfv/functest/results/tempest_custom.txt /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt' + report: + source_archive_files: + - functest.log + - tempest_custom/rally.log + - tempest_custom/tempest-report.html + dest_archive_files: + - tempest_logs/functest.tempest.multi_node_scheduling.functest.log + - tempest_logs/functest.tempest.multi_node_scheduling.log + - tempest_logs/functest.tempest.multi_node_scheduling.html + check_results_files: + - 'functest_results.txt' + portal_key_file: tempest_logs/functest.tempest.multi_node_scheduling.html + sub_testcase_list: + - tempest.scenario.test_server_multinode.TestServerMultinode.test_schedule_to_all_nodes[compute,id-9cecbe35-b9d4-48da-a37e-7ce70aa43d30,network,smoke] + - tempest.api.compute.servers.test_server_group.ServerGroupTestJSON.test_create_delete_multiple_server_groups_with_same_name_policy[id-154dc5a4-a2fe-44b5-b99e-f15806a4a113] + - tempest.api.compute.servers.test_server_group.ServerGroupTestJSON.test_create_delete_server_group_with_affinity_policy[id-5dc57eda-35b7-4af7-9e5f-3c2be3d2d68b] + - tempest.api.compute.servers.test_server_group.ServerGroupTestJSON.test_create_delete_server_group_with_anti_affinity_policy[id-3645a102-372f-4140-afad-13698d850d23] + - tempest.api.compute.servers.test_server_group.ServerGroupTestJSON.test_list_server_groups[id-d4874179-27b4-4d7d-80e4-6c560cdfe321] + - tempest.api.compute.servers.test_server_group.ServerGroupTestJSON.test_show_server_group[id-b3545034-dd78-48f0-bdc2-a4adfa6d0ead] diff --git a/etc/testcase/functest.tempest.network_api.yml b/etc/testcase/functest.tempest.network_api.yml new file mode 100644 index 00000000..8d1298a8 --- /dev/null +++ b/etc/testcase/functest.tempest.network_api.yml @@ -0,0 +1,47 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.tempest.network_api: + name: functest.tempest.network_api + objective: tempest smoke API test cases covering networking capabilities + validate: + type: functest + testcase: tempest_custom + pre_condition: + - 'cp /home/opnfv/pre_config/tempest_conf.yaml /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml' + - 'cp /home/opnfv/userconfig/tempest_custom_testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' + - 'cp /home/opnfv/functest/results/tempest_custom.txt /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt' + report: + source_archive_files: + - functest.log + - tempest_custom/rally.log + - tempest_custom/tempest-report.html + dest_archive_files: + - tempest_logs/functest.tempest.network_api.functest.log + - tempest_logs/functest.tempest.network_api.log + - tempest_logs/functest.tempest.network_api.html + check_results_files: + - 'functest_results.txt' + portal_key_file: tempest_logs/functest.tempest.network_api.html + sub_testcase_list: + - tempest.api.network.test_extensions.ExtensionsTestJSON.test_list_show_extensions[id-ef28c7e6-e646-4979-9d67-deb207bc5564,smoke] + - tempest.api.network.test_floating_ips.FloatingIPTestJSON.test_create_floating_ip_specifying_a_fixed_ip_address[id-36de4bd0-f09c-43e3-a8e1-1decc1ffd3a5,smoke] + - tempest.api.network.test_floating_ips.FloatingIPTestJSON.test_create_list_show_update_delete_floating_ip[id-62595970-ab1c-4b7f-8fcc-fddfe55e8718,smoke] + - tempest.api.network.test_networks.BulkNetworkOpsTest.test_bulk_create_delete_network[id-d4f9024d-1e28-4fc1-a6b1-25dbc6fa11e2,smoke] + - tempest.api.network.test_networks.BulkNetworkOpsTest.test_bulk_create_delete_port[id-48037ff2-e889-4c3b-b86a-8e3f34d2d060,smoke] + - tempest.api.network.test_networks.BulkNetworkOpsTest.test_bulk_create_delete_subnet[id-8936533b-c0aa-4f29-8e53-6cc873aec489,smoke] + - tempest.api.network.test_networks.NetworksTest.test_external_network_visibility[id-af774677-42a9-4e4b-bb58-16fe6a5bc1ec,smoke] + - tempest.api.network.test_ports.PortsTestJSON.test_create_port_with_no_securitygroups[id-4179dcb9-1382-4ced-84fe-1b91c54f5735,smoke] + - tempest.api.network.test_routers.RoutersTest.test_add_multiple_router_interfaces[id-802c73c9-c937-4cef-824b-2191e24a6aab,smoke] + - tempest.api.network.test_routers.RoutersTest.test_add_remove_router_interface_with_port_id[id-2b7d2f37-6748-4d78-92e5-1d590234f0d5,smoke] + - tempest.api.network.test_routers.RoutersTest.test_add_remove_router_interface_with_subnet_id[id-b42e6e39-2e37-49cc-a6f4-8467e940900a,smoke] + - tempest.api.network.test_routers.RoutersTest.test_create_show_list_update_delete_router[id-f64403e2-8483-4b34-8ccd-b09a87bcc68c,smoke] + - tempest.api.network.test_subnetpools_extensions.SubnetPoolsTestJSON.test_create_list_show_update_delete_subnetpools[id-62595970-ab1c-4b7f-8fcc-fddfe55e9811,smoke] + - tempest.api.network.test_versions.NetworksApiDiscovery.test_api_version_resources[id-cac8a836-c2e0-4304-b556-cd299c7281d1,smoke] diff --git a/etc/testcase/functest.tempest.network_scenario.yml b/etc/testcase/functest.tempest.network_scenario.yml new file mode 100644 index 00000000..00847e8f --- /dev/null +++ b/etc/testcase/functest.tempest.network_scenario.yml @@ -0,0 +1,38 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.tempest.network_scenario: + name: functest.tempest.network_scenario + objective: tempest smoke scenario test cases covering networking capabilities + validate: + type: functest + testcase: tempest_custom + pre_condition: + - 'cp /home/opnfv/pre_config/tempest_conf.yaml /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml' + - 'cp /home/opnfv/userconfig/tempest_custom_testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' + - 'cp /home/opnfv/functest/results/tempest_custom.txt /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt' + report: + source_archive_files: + - functest.log + - tempest_custom/rally.log + - tempest_custom/tempest-report.html + dest_archive_files: + - tempest_logs/functest.tempest.network_scenario.functest.log + - tempest_logs/functest.tempest.network_scenario.log + - tempest_logs/functest.tempest.network_scenario.html + check_results_files: + - 'functest_results.txt' + portal_key_file: tempest_logs/functest.tempest.network_scenario.html + sub_testcase_list: + - tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_hotplug_nic[compute,id-c5adff73-e961-41f1-b4a9-343614f18cfa,network] + - tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_network_basic_ops[compute,id-f323b3ba-82f8-4db7-8ea6-6a895869ec49,network,smoke] + - tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_subnet_details[compute,id-d8bb918e-e2df-48b2-97cd-b73c95450980,network,slow] + - tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_update_instance_port_admin_state[compute,id-f5dfcc22-45fd-409f-954c-5bd500d7890b,network,slow] + - tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_update_router_admin_state[compute,id-04b9fe4e-85e8-4aea-b937-ea93885ac59f,network,slow] diff --git a/etc/testcase/functest.tempest.network_security.yml b/etc/testcase/functest.tempest.network_security.yml new file mode 100644 index 00000000..452adaad --- /dev/null +++ b/etc/testcase/functest.tempest.network_security.yml @@ -0,0 +1,39 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.tempest.network_security: + name: functest.tempest.network_security + objective: filtering packets based on security rules and port security in data path + validate: + type: functest + testcase: tempest_custom + pre_condition: + - 'cp /home/opnfv/pre_config/tempest_conf.yaml /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml' + - 'cp /home/opnfv/userconfig/tempest_custom_testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' + - 'cp /home/opnfv/functest/results/tempest_custom.txt /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt' + report: + source_archive_files: + - functest.log + - tempest_custom/rally.log + - tempest_custom/tempest-report.html + dest_archive_files: + - tempest_logs/functest.tempest.network_security.functest.log + - tempest_logs/functest.tempest.network_security.log + - tempest_logs/functest.tempest.network_security.html + check_results_files: + - 'functest_results.txt' + portal_key_file: tempest_logs/functest.tempest.network_security.html + sub_testcase_list: + - tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_port_security_macspoofing_port[compute,id-7c0bb1a2-d053-49a4-98f9-ca1a1d849f63,network,slow] + - tempest.scenario.test_security_groups_basic_ops.TestSecurityGroupsBasicOps.test_cross_tenant_traffic[compute,id-e79f879e-debb-440c-a7e4-efeda05b6848,network] + - tempest.scenario.test_security_groups_basic_ops.TestSecurityGroupsBasicOps.test_in_tenant_traffic[compute,id-63163892-bbf6-4249-aa12-d5ea1f8f421b,network] + - tempest.scenario.test_security_groups_basic_ops.TestSecurityGroupsBasicOps.test_multiple_security_groups[compute,id-d2f77418-fcc4-439d-b935-72eca704e293,network,slow] + - tempest.scenario.test_security_groups_basic_ops.TestSecurityGroupsBasicOps.test_port_security_disable_security_group[compute,id-7c811dcc-263b-49a3-92d2-1b4d8405f50c,network,slow] + - tempest.scenario.test_security_groups_basic_ops.TestSecurityGroupsBasicOps.test_port_update_new_security_group[compute,id-f4d556d7-1526-42ad-bafb-6bebf48568f6,network,slow] diff --git a/etc/testcase/functest.tempest.networking_sfc.yml b/etc/testcase/functest.tempest.networking_sfc.yml new file mode 100644 index 00000000..f6a2dd82 --- /dev/null +++ b/etc/testcase/functest.tempest.networking_sfc.yml @@ -0,0 +1,31 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.tempest.networking_sfc: + name: functest.tempest.networking_sfc + objective: validate SFC API CRUD operations by means of Tempest tests from networking-sfc repository + validate: + type: functest + testcase: networking-sfc + pre_condition: + - 'cp /home/opnfv/pre_config/tempest_conf.yaml /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml' + report: + source_archive_files: + - functest.log + - networking-sfc/rally.log + - networking-sfc/tempest-report.html + dest_archive_files: + - tempest_logs/functest.tempest.networking_sfc.functest.log + - tempest_logs/functest.tempest.networking_sfc.log + - tempest_logs/functest.tempest.networking_sfc.html + check_results_files: + - 'functest_results.txt' + portal_key_file: tempest_logs/functest.tempest.networking_sfc.html + sub_testcase_list: diff --git a/etc/testcase/functest.tempest.neutron_tempest_plugin_api.yml b/etc/testcase/functest.tempest.neutron_tempest_plugin_api.yml new file mode 100644 index 00000000..245dd6cc --- /dev/null +++ b/etc/testcase/functest.tempest.neutron_tempest_plugin_api.yml @@ -0,0 +1,600 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.tempest.neutron_tempest_plugin_api: + name: functest.tempest.neutron_tempest_plugin_api + objective: Run Neutron Tempest plugin API tests + validate: + type: functest + testcase: neutron-tempest-plugin-api + report: + source_archive_files: + - functest.log + - neutron-tempest-plugin-api/rally.log + - neutron-tempest-plugin-api/tempest-report.html + dest_archive_files: + - neutron_tempest_plugin_api_logs/functest.tempest.neutron_tempest_plugin_api.functest.log + - neutron_tempest_plugin_api_logs/functest.tempest.neutron_tempest_plugin_api.log + - neutron_tempest_plugin_api_logs/functest.tempest.neutron_tempest_plugin_api.html + check_results_files: + - 'functest_results.txt' + portal_key_file: neutron_tempest_plugin_api_logs/functest.tempest.neutron_tempest_plugin_api.html + sub_testcase_list: + - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleTestJSON.test_rule_create + - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleTestJSON.test_get_rules_by_policy + - neutron_tempest_plugin.api.test_routers.DvrRoutersTestToCentralized.test_convert_centralized_router + - neutron_tempest_plugin.api.test_metering_extensions.MeteringIpV6TestJSON.test_create_delete_metering_label_with_name_max_length + - neutron_tempest_plugin.api.test_security_groups_negative.NegativeSecGroupProtocolTest.test_create_security_group_rule_with_ipv6_protocol_integers + - neutron_tempest_plugin.api.test_address_scopes.AddressScopeTest.test_show_address_scope + - neutron_tempest_plugin.api.test_trunk_details.TestTrunkDetailsJSON.test_port_resource_trunk_details_with_subport + - neutron_tempest_plugin.api.admin.test_logging_negative.LoggingNegativeTestJSON.test_create_log_with_nonexistent_sg + - neutron_tempest_plugin.api.test_qos.QosMinimumBandwidthRuleTestJSON.test_rule_create_forbidden_for_regular_tenants + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_list_regular_rule_types + - neutron_tempest_plugin.api.admin.test_logging.LoggingTestJSON.test_log_lifecycle + - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleWithDirectionTestJSON.test_rule_create_forbidden_for_regular_tenants + - neutron_tempest_plugin.api.test_revisions.TestRevisions.test_update_network_bumps_revision + - neutron_tempest_plugin.api.test_qos.QosSearchCriteriaTest.test_list_no_pagination_limit_0 + - neutron_tempest_plugin.api.test_metering_extensions.MeteringTestJSON.test_create_delete_metering_label_with_name_max_length + - neutron_tempest_plugin.api.test_revisions.TestRevisions.test_update_subnet_bumps_network_revision + - neutron_tempest_plugin.api.admin.test_tag.TagFloatingIpTestJSON.test_floatingip_tags + - neutron_tempest_plugin.api.admin.test_networks.NetworksTestAdmin.test_create_network_with_project_and_tenant + - neutron_tempest_plugin.api.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_with_boolean_type_name + - neutron_tempest_plugin.api.admin.test_ports.PortTestCasesAdmin.test_update_mac_address + - neutron_tempest_plugin.api.test_floating_ips.FloatingIPTestJSON.test_blank_update_clears_association + - neutron_tempest_plugin.api.admin.test_external_network_extension.ExternalNetworksRBACTestJSON.test_wildcard_policy_delete_blocked_on_default_ext + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_remove_subport_passing_dict + - neutron_tempest_plugin.api.test_ports.PortsTestJSON.test_change_dhcp_flag_then_create_port + - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleWithDirectionTestJSON.test_rule_create + - neutron_tempest_plugin.api.admin.test_tag.TagFilterSubnetpoolTestJSON.test_filter_subnetpool_tags + - neutron_tempest_plugin.api.test_trunk.TrunkTestMtusJSON.test_add_subport_with_mtu_greater_than_subport + - neutron_tempest_plugin.api.admin.test_routers_flavors.RoutersFlavorTestCase.test_delete_router_flavor_in_use + - neutron_tempest_plugin.api.test_revisions.TestRevisions.test_update_qos_network_policy_binding_bumps_revision + - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleWithDirectionTestJSON.test_get_rules_by_policy + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_policy_association_with_tenant_network + - neutron_tempest_plugin.api.test_networks.NetworksSearchCriteriaTest.test_list_pagination + - neutron_tempest_plugin.api.test_timestamp.TestTimeStampWithL3.test_update_router_with_timestamp + - neutron_tempest_plugin.api.test_timestamp.TestTimeStamp.test_update_network_with_timestamp + - neutron_tempest_plugin.api.test_trunk.TrunkTestMtusJSON.test_create_trunk_with_mtu_equal_to_subport + - neutron_tempest_plugin.api.test_flavors_extensions.TestFlavorsJson.test_show_flavor + - neutron_tempest_plugin.api.test_subnetpools_negative.SubnetPoolsNegativeTestJSON.test_create_subnet_different_pools_same_network + - neutron_tempest_plugin.api.admin.test_shared_network_extension.RBACSharedNetworksTest.test_update_self_share_rule + - neutron_tempest_plugin.api.admin.test_dhcp_agent_scheduler.DHCPAgentSchedulersTestJSON.test_list_dhcp_agent_hosting_network + - neutron_tempest_plugin.api.test_routers.RoutersTest.test_create_update_router_description + - neutron_tempest_plugin.api.test_timestamp.TestTimeStampWithSecurityGroup.test_show_sg_attribute_with_timestamp + - neutron_tempest_plugin.api.test_service_type_management.ServiceTypeManagementTest.test_service_provider_list + - neutron_tempest_plugin.api.test_revisions.TestRevisions.test_update_network_constrained_by_revision + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTest.test_tenant_create_non_default_subnetpool + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTestV6.test_create_update_subnetpool_description + - neutron_tempest_plugin.api.admin.test_external_network_extension.ExternalNetworksRBACTestJSON.test_regular_client_shares_with_another + - neutron_tempest_plugin.api.test_routers.RoutersTest.test_network_attached_with_two_routers + - neutron_tempest_plugin.api.admin.test_extension_driver_port_security_admin.PortSecurityAdminTests.test_create_port_security_false_on_shared_network + - neutron_tempest_plugin.api.test_networks.NetworksTestJSON.test_list_networks_fields_keystone_v3 + - neutron_tempest_plugin.api.test_timestamp.TestTimeStampWithSecurityGroup.test_create_sgrule_with_timestamp + - neutron_tempest_plugin.api.test_timestamp.TestTimeStamp.test_create_port_with_timestamp + - neutron_tempest_plugin.api.test_trunk.TrunksSearchCriteriaTest.test_list_pagination_page_reverse_desc + - neutron_tempest_plugin.api.test_qos.QosDscpMarkingRuleTestJSON.test_rule_create + - neutron_tempest_plugin.api.admin.test_shared_network_extension.RBACSharedNetworksTest.test_tenant_cant_delete_other_tenants_ports + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_create_trunk_with_subport_missing_port_id + - neutron_tempest_plugin.api.test_subnets.SubnetsSearchCriteriaTest.test_list_sorts_desc + - neutron_tempest_plugin.api.admin.test_shared_network_extension.RBACSharedNetworksTest.test_filter_fields + - neutron_tempest_plugin.api.test_qos.QosSearchCriteriaTest.test_list_pagination_with_marker + - neutron_tempest_plugin.api.admin.test_shared_network_extension.RBACSharedNetworksTest.test_regular_client_shares_to_another_regular_client + - neutron_tempest_plugin.api.test_routers.RoutersTest.test_update_router_set_gateway_without_snat + - neutron_tempest_plugin.api.admin.test_networks.NetworksTestAdmin.test_create_tenant_network_vxlan + - neutron_tempest_plugin.api.test_qos.QosDscpMarkingRuleTestJSON.test_rule_create_forbidden_for_regular_tenants + - neutron_tempest_plugin.api.test_security_groups.RbacSharedSecurityGroupTest.test_filter_fields + - neutron_tempest_plugin.api.test_qos.RbacSharedQosPoliciesTest.test_filter_fields + - neutron_tempest_plugin.api.test_flavors_extensions.TestFlavorsIpV6TestJSON.test_create_update_delete_service_profile + - neutron_tempest_plugin.api.test_flavors_extensions.TestFlavorsJson.test_create_update_delete_service_profile + - neutron_tempest_plugin.api.admin.test_networks.NetworksTestAdmin.test_create_network_with_project + - neutron_tempest_plugin.api.admin.test_tag.TagFilterFloatingIpTestJSON.test_filter_floatingip_tags + - neutron_tempest_plugin.api.admin.test_quotas_negative.QuotasAdminNegativeTestJSON.test_create_network_when_quotas_is_full + - neutron_tempest_plugin.api.admin.test_external_network_extension.ExternalNetworksRBACTestJSON.test_wildcard_policy_created_from_external_network_api + - neutron_tempest_plugin.api.test_extra_dhcp_options.ExtraDHCPOptionsIpV6TestJSON.test_update_show_port_with_extra_dhcp_options + - neutron_tempest_plugin.api.test_routers.RoutersTest.test_update_router_set_gateway_with_snat_explicit + - neutron_tempest_plugin.api.test_subnetpools_negative.SubnetPoolsNegativeTestJSON.test_update_non_existent_subnetpool + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsSearchCriteriaTest.test_list_pagination_page_reverse_with_href_links + - neutron_tempest_plugin.api.test_extension_driver_port_security.PortSecTest.test_port_sec_update_port_failed + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_remove_subport_port_id_disabled_trunk + - neutron_tempest_plugin.api.test_revisions.TestRevisions.test_portbinding_bumps_revision + - neutron_tempest_plugin.api.admin.test_shared_network_extension.RBACSharedNetworksTest.test_policy_target_update + - neutron_tempest_plugin.api.test_ports.PortsSearchCriteriaTest.test_list_pagination_page_reverse_with_href_links + - neutron_tempest_plugin.api.test_revisions.TestRevisions.test_update_external_network_bumps_revision + - neutron_tempest_plugin.api.admin.test_network_segment_range.NetworkSegmentRangeTestJson.test_update_network_segment_range_failed_with_existing_range_impacted + - neutron_tempest_plugin.api.test_networks.NetworksSearchCriteriaTest.test_list_pagination_with_marker + - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleWithDirectionTestJSON.test_rule_create_fail_for_the_same_type + - neutron_tempest_plugin.api.test_qos.RbacSharedQosPoliciesTest.test_filter_rbac_policies + - neutron_tempest_plugin.api.test_trunk.TrunkTestJSON.test_remove_subport + - neutron_tempest_plugin.api.admin.test_tag.TagFilterQosPolicyTestJSON.test_filter_qos_policy_tags + - neutron_tempest_plugin.api.test_timestamp.TestTimeStamp.test_create_subnetpool_with_timestamp + - neutron_tempest_plugin.api.test_routers_negative.DvrRoutersNegativeTest.test_router_create_tenant_distributed_returns_forbidden + - neutron_tempest_plugin.api.test_routers.RoutersSearchCriteriaTest.test_list_sorts_desc + - neutron_tempest_plugin.api.test_allowed_address_pair.AllowedAddressPairIpV6TestJSON.test_update_port_with_address_pair + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTest.test_tenant_update_subnetpool + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTestV6.test_get_subnetpool + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTest.test_admin_create_shared_subnetpool + - neutron_tempest_plugin.api.admin.test_dhcp_agent_scheduler.DHCPAgentSchedulersTestJSON.test_add_remove_network_from_dhcp_agent + - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleTestJSON.test_rule_update_forbidden_for_regular_tenants_own_policy + - neutron_tempest_plugin.api.test_timestamp.TestTimeStampWithL3.test_show_router_attribute_with_timestamp + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_policy_association_with_network_nonexistent_policy + - neutron_tempest_plugin.api.test_metering_extensions.MeteringTestJSON.test_list_metering_label_rules + - neutron_tempest_plugin.api.test_revisions.TestRevisions.test_update_port_sg_binding_bumps_revision + - neutron_tempest_plugin.api.test_qos.QosDscpMarkingRuleTestJSON.test_rule_create_rule_nonexistent_policy + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_delete_not_allowed_if_policy_in_use_by_port + - neutron_tempest_plugin.api.test_floating_ips.FloatingIPTestJSON.test_floatingip_update_extra_attributes_port_id_not_changed + - neutron_tempest_plugin.api.test_ports.PortsSearchCriteriaTest.test_list_pagination_page_reverse_desc + - neutron_tempest_plugin.api.test_qos.QosSearchCriteriaTest.test_list_pagination + - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleWithDirectionTestJSON.test_rule_update_forbidden_for_regular_tenants_own_policy + - neutron_tempest_plugin.api.admin.test_quotas_negative.QuotasAdminNegativeTestJSON.test_create_floatingip_when_quotas_is_full + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsSearchCriteriaTest.test_list_sorts_desc + - neutron_tempest_plugin.api.test_security_groups_negative.NegativeSecGroupProtocolTest.test_create_security_group_rule_with_ipv6_protocol_names + - neutron_tempest_plugin.api.test_security_groups_negative.NegativeSecGroupTest.test_update_security_group_with_too_long_name + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_policy_create_forbidden_for_regular_tenants + - neutron_tempest_plugin.api.admin.test_shared_network_extension.SharedNetworksTest.test_list_shared_networks + - neutron_tempest_plugin.api.test_address_scopes.AddressScopeTest.test_delete_address_scope + - neutron_tempest_plugin.api.test_trunk.TrunkTestJSON.test_create_update_trunk + - neutron_tempest_plugin.api.test_network_ip_availability.NetworksIpAvailabilityIPv4Test.test_show_ip_availability_after_port_delete + - neutron_tempest_plugin.api.test_allowed_address_pair.AllowedAddressPairTestJSON.test_update_port_with_multiple_ip_mac_address_pair + - neutron_tempest_plugin.api.test_qos.RbacSharedQosPoliciesTest.test_network_presence_prevents_policy_rbac_policy_deletion + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsSearchCriteriaTest.test_list_sorts_asc + - neutron_tempest_plugin.api.test_networks.NetworksTestJSON.test_create_update_network_dns_domain + - neutron_tempest_plugin.api.test_subnetpools_negative.SubnetPoolsNegativeTestJSON.test_update_subnetpool_prefix_intersect + - neutron_tempest_plugin.api.admin.test_dhcp_agent_scheduler.DHCPAgentSchedulersTestJSON.test_dhcp_port_status_active + - neutron_tempest_plugin.api.test_network_ip_availability.NetworksIpAvailabilityIPv6Test.test_list_ip_availability_before_subnet + - neutron_tempest_plugin.api.test_revisions.TestRevisions.test_update_extra_dhcp_opt_bumps_revision + - neutron_tempest_plugin.api.test_trunk.TrunksSearchCriteriaTest.test_list_sorts_desc + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_create_policy + - neutron_tempest_plugin.api.test_subnetpools_negative.SubnetPoolsNegativeTestJSON.test_tenant_get_not_shared_admin_subnetpool + - neutron_tempest_plugin.api.test_subnetpools_negative.SubnetPoolsNegativeTestJSON.test_tenant_create_shared_subnetpool + - neutron_tempest_plugin.api.test_subnetpools_negative.SubnetPoolsNegativeTestJSON.test_tenant_create_default_subnetpool + - neutron_tempest_plugin.api.test_routers.RoutersIpV6Test.test_create_update_router_description + - neutron_tempest_plugin.api.test_routers.DvrRoutersTest.test_create_distributed_router + - neutron_tempest_plugin.api.admin.test_logging_negative.LoggingNegativeTestJSON.test_create_log_with_nonexistent_port + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_list_admin_rule_types + - neutron_tempest_plugin.api.test_allowed_address_pair.AllowedAddressPairIpV6TestJSON.test_update_port_with_multiple_ip_mac_address_pair + - neutron_tempest_plugin.api.test_network_ip_availability.NetworksIpAvailabilityIPv4Test.test_show_ip_availability_after_subnet_and_ports_create + - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleWithDirectionTestJSON.test_rule_create_fail_for_the_same_type + - neutron_tempest_plugin.api.test_subnetpools_negative.SubnetPoolsNegativeTestJSON.test_create_sp_associate_address_scope_multiple_prefix_intersect + - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleWithDirectionTestJSON.test_rule_update + - neutron_tempest_plugin.api.test_ports.PortsSearchCriteriaTest.test_list_pagination + - neutron_tempest_plugin.api.admin.test_shared_network_extension.RBACSharedNetworksTest.test_port_presence_prevents_network_rbac_policy_deletion + - neutron_tempest_plugin.api.test_security_groups_negative.NegativeSecGroupIPv6Test.test_update_security_group_with_too_long_name + - neutron_tempest_plugin.api.admin.test_routers_dvr.RouterTestCentralizedToDVR.test_centralized_router_update_to_dvr + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_add_subport_duplicate_segmentation_details + - neutron_tempest_plugin.api.test_metering_extensions.MeteringTestJSON.test_create_delete_metering_label_with_filters + - neutron_tempest_plugin.api.test_extension_driver_port_security.PortSecTest.test_port_sec_update_pass + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTest.test_update_subnetpool_prefixes_append + - neutron_tempest_plugin.api.test_subnets.SubnetsSearchCriteriaTest.test_list_pagination + - neutron_tempest_plugin.api.test_routers.RoutersIpV6Test.test_create_router_with_snat_explicit + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTest.test_show_subnetpool_has_project_id + - neutron_tempest_plugin.api.test_floating_ips.FloatingIPPoolTestJSON.test_create_floatingip_from_specific_pool + - neutron_tempest_plugin.api.admin.test_tag.TagFilterRouterTestJSON.test_filter_router_tags + - neutron_tempest_plugin.api.test_address_scopes_negative.AddressScopeTestNegative.test_tenant_get_not_shared_admin_address_scope + - neutron_tempest_plugin.api.test_ports.PortsSearchCriteriaTest.test_list_sorts_desc + - neutron_tempest_plugin.api.test_subnets.SubnetsSearchCriteriaTest.test_list_pagination_page_reverse_with_href_links + - neutron_tempest_plugin.api.test_network_ip_availability.NetworksIpAvailabilityIPv4Test.test_list_ip_availability_after_port_delete + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_add_subport_port_id_disabled_trunk + - neutron_tempest_plugin.api.admin.test_tag.TagFilterTrunkTestJSON.test_filter_trunk_tags + - neutron_tempest_plugin.api.admin.test_floating_ips_admin_actions.FloatingIPAdminTestJSON.test_create_floatingip_with_specified_ip_address + - neutron_tempest_plugin.api.test_trunk_details.TestTrunkDetailsJSON.test_port_resource_trunk_details_no_subports + - neutron_tempest_plugin.api.test_trunk.TrunksSearchCriteriaTest.test_list_no_pagination_limit_0 + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_add_subport_passing_dict + - neutron_tempest_plugin.api.test_trunk.TrunkTestJSON.test_get_subports + - neutron_tempest_plugin.api.test_trunk.TrunksSearchCriteriaTest.test_list_pagination_page_reverse_with_href_links + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_qos_policy_delete_with_rules + - neutron_tempest_plugin.api.test_address_scopes.AddressScopeTest.test_tenant_create_list_address_scope + - neutron_tempest_plugin.api.test_trunk.TrunkTestJSON.test_add_subports + - neutron_tempest_plugin.api.admin.test_shared_network_extension.RBACSharedNetworksTest.test_duplicate_policy_error + - neutron_tempest_plugin.api.test_routers.RoutersSearchCriteriaTest.test_list_pagination_page_reverse_with_href_links + - neutron_tempest_plugin.api.test_security_groups.RbacSharedSecurityGroupTest.test_port_presence_prevents_policy_rbac_policy_deletion + - neutron_tempest_plugin.api.admin.test_external_network_extension.ExternalNetworksRBACTestJSON.test_external_conversion_on_policy_create + - neutron_tempest_plugin.api.test_networks.NetworksSearchCriteriaTest.test_list_pagination_page_reverse_asc + - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleTestJSON.test_rule_delete + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_policy_association_with_port_non_shared_policy + - neutron_tempest_plugin.api.admin.test_shared_network_extension.RBACSharedNetworksTest.test_filter_policies + - neutron_tempest_plugin.api.admin.test_tag.TagFilterSubnetTestJSON.test_filter_subnet_tags + - neutron_tempest_plugin.api.admin.test_routers_dvr.RoutersTestDVR.test_centralized_router_creation + - neutron_tempest_plugin.api.test_subnetpools_negative.SubnetPoolsNegativeTestJSON.test_update_subnetpool_multiple_prefix_intersect + - neutron_tempest_plugin.api.admin.test_network_segment_range.NetworkSegmentRangeTestJson.test_list_network_segment_ranges + - neutron_tempest_plugin.api.test_qos.QosSearchCriteriaTest.test_list_pagination_page_reverse_desc + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_create_subport_invalid_inherit_network_segmentation_type + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_delete_trunk_disabled_trunk + - neutron_tempest_plugin.api.admin.test_external_network_extension.ExternalNetworksRBACTestJSON.test_external_network_on_shared_policy_delete + - neutron_tempest_plugin.api.admin.test_tag.TagSubnetPoolTestJSON.test_subnetpool_tags + - neutron_tempest_plugin.api.test_flavors_extensions.TestFlavorsIpV6TestJSON.test_list_flavors + - neutron_tempest_plugin.api.admin.test_shared_network_extension.RBACSharedNetworksTest.test_delete_self_share_rule + - neutron_tempest_plugin.api.admin.test_tag.TagSecGroupTestJSON.test_security_group_tags + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_user_create_port_with_admin_qos_policy + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTestV6.test_update_subnetpool_associate_address_scope + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_policy_update_forbidden_for_regular_tenants_foreign_policy + - neutron_tempest_plugin.api.test_qos.QosDscpMarkingRuleTestJSON.test_get_rules_by_policy + - neutron_tempest_plugin.api.admin.test_tag.TagSubnetTestJSON.test_subnet_tags + - neutron_tempest_plugin.api.test_qos.QosSearchCriteriaTest.test_list_pagination_page_reverse_asc + - neutron_tempest_plugin.api.test_networks.NetworksSearchCriteriaTest.test_list_sorts_asc + - neutron_tempest_plugin.api.test_extension_driver_port_security.PortSecTest.test_allowed_address_pairs + - neutron_tempest_plugin.api.test_routers_negative.HaRoutersNegativeTest.test_router_create_tenant_ha_returns_forbidden + - neutron_tempest_plugin.api.admin.test_external_network_extension.ExternalNetworksRBACTestJSON.test_external_conversion_on_one_policy_delete + - neutron_tempest_plugin.api.admin.test_shared_network_extension.SharedNetworksTest.test_create_port_shared_network_as_non_admin_tenant + - neutron_tempest_plugin.api.test_security_groups.SecGroupProtocolIPv6Test.test_security_group_rule_protocol_ints + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsSearchCriteriaTest.test_list_pagination_page_reverse_desc + - neutron_tempest_plugin.api.test_networks.NetworksTestJSON.test_show_network + - neutron_tempest_plugin.api.test_auto_allocated_topology.TestAutoAllocatedTopology.test_get_allocated_net_topology_as_tenant + - neutron_tempest_plugin.api.test_ports.PortsSearchCriteriaTest.test_list_pagination_page_reverse_asc + - neutron_tempest_plugin.api.test_address_scopes_negative.AddressScopeTestNegative.test_tenant_create_shared_address_scope + - neutron_tempest_plugin.api.test_allowed_address_pair.AllowedAddressPairIpV6TestJSON.test_create_list_port_with_address_pair + - neutron_tempest_plugin.api.test_metering_extensions.MeteringTestJSON.test_create_delete_metering_label_rule_with_filters + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTest.test_create_subnetpool_associate_address_scope + - neutron_tempest_plugin.api.test_revisions.TestRevisions.test_update_sg_group_bumps_revision + - neutron_tempest_plugin.api.test_qos.QosDscpMarkingRuleTestJSON.test_invalid_rule_create + - neutron_tempest_plugin.api.test_network_ip_availability.NetworksIpAvailabilityIPv6Test.test_show_ip_availability_after_port_delete + - neutron_tempest_plugin.api.admin.test_l3_agent_scheduler.L3AgentSchedulerTestJSON.test_add_list_remove_router_on_l3_agent + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_get_policy_that_is_shared + - neutron_tempest_plugin.api.test_qos_negative.QosNegativeTestJSON.test_add_policy_with_too_long_name + - neutron_tempest_plugin.api.test_qos.RbacSharedQosPoliciesTest.test_net_bound_shared_policy_wildcard_and_tenant_id_wild_remains + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTestV6.test_tenant_create_non_default_subnetpool + - neutron_tempest_plugin.api.test_qos.QosSearchCriteriaTest.test_list_pagination_page_reverse_with_href_links + - neutron_tempest_plugin.api.test_subnetpools_negative.SubnetPoolsNegativeTestJSON.test_update_subnetpool_associate_address_scope_of_other_owner + - neutron_tempest_plugin.api.test_revisions.TestRevisions.test_update_allowed_address_pairs_bumps_revision + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_policy_update_forbidden_for_regular_tenants_own_policy + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTest.test_update_subnetpool_disassociate_address_scope + - neutron_tempest_plugin.api.test_ports.PortsTestJSON.test_create_port_with_propagate_uplink_status + - neutron_tempest_plugin.api.test_qos.QosSearchCriteriaTest.test_list_sorts_asc + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTestV6.test_update_subnetpool_disassociate_address_scope + - neutron_tempest_plugin.api.test_routers_negative.RoutersNegativeTest.test_delete_router_in_use + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsSearchCriteriaTest.test_list_no_pagination_limit_0 + - neutron_tempest_plugin.api.test_address_scopes.AddressScopeTest.test_admin_update_shared_address_scope + - neutron_tempest_plugin.api.test_subnetpools_negative.SubnetPoolsNegativeTestJSON.test_get_non_existent_subnetpool + - neutron_tempest_plugin.api.admin.test_ports.PortTestCasesResourceRequest.test_port_resource_request_empty + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_show_rule_type_details_as_admin + - neutron_tempest_plugin.api.test_address_scopes.AddressScopeTest.test_admin_create_shared_address_scope + - neutron_tempest_plugin.api.admin.test_agent_management.AgentManagementTestJSON.test_list_agent + - neutron_tempest_plugin.api.test_routers.RoutersIpV6Test.test_network_attached_with_two_routers + - neutron_tempest_plugin.api.test_timestamp.TestTimeStampWithL3.test_create_floatingip_with_timestamp + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTest.test_update_subnetpool_associate_address_scope + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_add_subport_port_id_uses_parent_port_id + - neutron_tempest_plugin.api.test_timestamp.TestTimeStamp.test_show_networks_attribute_with_timestamp + - neutron_tempest_plugin.api.test_floating_ips.FloatingIPTestJSON.test_create_update_floatingip_port_details + - neutron_tempest_plugin.api.test_networks.NetworksSearchCriteriaTest.test_list_sorts_desc + - neutron_tempest_plugin.api.test_routers.RoutersTest.test_update_extra_route + - neutron_tempest_plugin.api.test_qos_negative.QosNegativeTestJSON.test_add_policy_with_too_long_description + - neutron_tempest_plugin.api.admin.test_network_segment_range.NetworkSegmentRangeTestJson.test_show_network_segment_range + - neutron_tempest_plugin.api.test_qos.RbacSharedQosPoliciesTest.test_policy_sharing_with_wildcard_and_tenant_id + - neutron_tempest_plugin.api.admin.test_shared_network_extension.RBACSharedNetworksTest.test_create_rbac_policy_with_target_tenant_none + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestMtusJSON.test_create_trunk_with_mtu_smaller_than_subport + - neutron_tempest_plugin.api.test_auto_allocated_topology.TestAutoAllocatedTopology.test_delete_allocated_net_topology_as_tenant + - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleTestJSON.test_rule_create_forbidden_for_regular_tenants + - neutron_tempest_plugin.api.test_subnetpools_negative.SubnetPoolsNegativeTestJSON.test_create_subnetpool_associate_invalid_address_scope + - neutron_tempest_plugin.api.test_qos.QosDscpMarkingRuleTestJSON.test_rule_delete + - neutron_tempest_plugin.api.test_address_scopes_negative.AddressScopeTestNegative.test_tenant_update_address_scope_shared_false + - neutron_tempest_plugin.api.test_timestamp.TestTimeStampWithL3.test_create_router_with_timestamp + - neutron_tempest_plugin.api.test_qos.QosMinimumBandwidthRuleTestJSON.test_get_rules_by_policy + - neutron_tempest_plugin.api.test_revisions.TestRevisions.test_update_port_security_bumps_revisions + - neutron_tempest_plugin.api.test_subnets.SubnetsSearchCriteriaTest.test_list_pagination_page_reverse_desc + - neutron_tempest_plugin.api.test_security_groups_negative.NegativeSecGroupTest.test_update_security_group_with_boolean_type_name + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_create_trunk_nonexistent_port_id + - neutron_tempest_plugin.api.test_security_groups.RbacSharedSecurityGroupTest.test_policy_target_update + - neutron_tempest_plugin.api.admin.test_ports.PortTestCasesAdmin.test_regenerate_mac_address + - neutron_tempest_plugin.api.test_trunk.TrunkTestMtusJSON.test_add_subport_with_mtu_equal_to_trunk + - neutron_tempest_plugin.api.test_revisions.TestRevisions.test_update_port_bumps_revision + - neutron_tempest_plugin.api.test_timestamp.TestTimeStamp.test_show_port_attribute_with_timestamp + - neutron_tempest_plugin.api.test_subnets.SubnetsSearchCriteriaTest.test_list_pagination_with_href_links + - neutron_tempest_plugin.api.test_security_groups_negative.NegativeSecGroupIPv6Test.test_create_security_group_with_boolean_type_name + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_show_policy_has_project_id + - neutron_tempest_plugin.api.admin.test_shared_network_extension.SharedNetworksTest.test_show_shared_networks_attribute + - neutron_tempest_plugin.api.test_subnetpools_negative.SubnetPoolsNegativeTestJSON.test_tenant_create_subnetpool_associate_shared_address_scope + - neutron_tempest_plugin.api.test_security_groups.RbacSharedSecurityGroupTest.test_regular_client_shares_to_another_regular_client + - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleWithDirectionTestJSON.test_rule_update_forbidden_for_regular_tenants_foreign_policy + - neutron_tempest_plugin.api.test_address_scopes_negative.AddressScopeTestNegative.test_get_non_existent_address_scope + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTest.test_create_subnet_from_pool_with_subnet_cidr + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestMtusJSON.test_add_subport_with_mtu_greater_than_trunk + - neutron_tempest_plugin.api.test_trunk.TrunkTestJSON.test_create_trunk_empty_subports_list + - neutron_tempest_plugin.api.test_address_scopes_negative.AddressScopeTestNegative.test_delete_address_scope_associated_with_subnetpool + - neutron_tempest_plugin.api.test_trunk.TrunkTestJSON.test_create_update_trunk_with_description + - neutron_tempest_plugin.api.test_extension_driver_port_security.PortSecTest.test_port_sec_specific_value_2 + - neutron_tempest_plugin.api.test_network_ip_availability.NetworksIpAvailabilityIPv6Test.test_list_ip_availability_after_subnet_and_ports + - neutron_tempest_plugin.api.test_address_scopes_negative.AddressScopeTestNegative.test_update_shared_address_scope_to_unshare + - neutron_tempest_plugin.api.test_revisions.TestRevisions.test_update_sg_rule_bumps_sg_revision + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_policy_update_association_with_port_shared_policy + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_delete_port_in_use_by_subport + - neutron_tempest_plugin.api.test_qos.QosMinimumBandwidthRuleTestJSON.test_rule_create_pass_for_direction_ingress + - neutron_tempest_plugin.api.test_routers_negative.RoutersNegativePolicyTest.test_add_interface_wrong_tenant + - neutron_tempest_plugin.api.admin.test_agent_management.AgentManagementTestJSON.test_list_agents_non_admin + - neutron_tempest_plugin.api.admin.test_tag.UpdateTagsTest.test_update_tags_affects_only_updated_resource + - neutron_tempest_plugin.api.test_timestamp.TestTimeStamp.test_update_subnet_with_timestamp + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTest.test_get_subnetpool + - neutron_tempest_plugin.api.test_networks.NetworksSearchCriteriaTest.test_list_pagination_with_href_links + - neutron_tempest_plugin.api.test_security_groups_negative.NegativeSecGroupIPv6Test.test_update_default_security_group_name + - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleWithDirectionTestJSON.test_get_rules_by_policy + - neutron_tempest_plugin.api.test_ports.PortsTestJSON.test_create_update_port_description + - neutron_tempest_plugin.api.admin.test_agent_management.AgentManagementTestJSON.test_update_agent_description + - neutron_tempest_plugin.api.admin.test_shared_network_extension.RBACSharedNetworksTest.test_regular_client_blocked_from_sharing_with_wildcard + - neutron_tempest_plugin.api.test_subnets.SubnetsSearchCriteriaTest.test_list_pagination_page_reverse_asc + - neutron_tempest_plugin.api.admin.test_external_network_extension.ExternalNetworksRBACTestJSON.test_regular_client_blocked_from_creating_external_wild_policies + - neutron_tempest_plugin.api.admin.test_shared_network_extension.AllowedAddressPairSharedNetworkTest.test_update_with_address_pair_blocked_on_other_network + - neutron_tempest_plugin.api.test_network_ip_availability.NetworksIpAvailabilityIPv6Test.test_list_ip_availability_after_port_delete + - neutron_tempest_plugin.api.test_address_scopes_negative.AddressScopeTestNegative.test_update_non_existent_address_scope + - neutron_tempest_plugin.api.admin.test_external_network_extension.ExternalNetworksRBACTestJSON.test_policy_allows_tenant_to_attach_ext_gw + - neutron_tempest_plugin.api.test_networks_negative.NetworksNegativeTest.test_delete_network_in_use + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTestV6.test_create_subnet_from_pool_with_default_prefixlen + - neutron_tempest_plugin.api.test_security_groups.SecGroupProtocolIPv6Test.test_security_group_rule_protocol_legacy_names + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_create_trunk_duplicate_subport_segmentation_ids + - neutron_tempest_plugin.api.test_subnetpools_negative.SubnetPoolsNegativeTestJSON.test_create_subnetpool_associate_non_exist_address_scope + - neutron_tempest_plugin.api.test_metering_extensions.MeteringIpV6TestJSON.test_create_delete_metering_label_with_filters + - neutron_tempest_plugin.api.test_allowed_address_pair.AllowedAddressPairTestJSON.test_update_port_with_address_pair + - neutron_tempest_plugin.api.test_trunk.TrunksSearchCriteriaTest.test_list_pagination + - neutron_tempest_plugin.api.test_security_groups_negative.NegativeSecGroupIPv6Test.test_delete_in_use_sec_group + - neutron_tempest_plugin.api.test_timestamp.TestTimeStamp.test_update_subnetpool_with_timestamp + - neutron_tempest_plugin.api.test_timestamp.TestTimeStamp.test_segment_with_timestamp + - neutron_tempest_plugin.api.test_flavors_extensions.TestFlavorsJson.test_list_service_profiles + - neutron_tempest_plugin.api.admin.test_tag.TagRouterTestJSON.test_router_tags + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_policy_update + - neutron_tempest_plugin.api.admin.test_network_segment_range.NetworkSegmentRangeTestJson.test_create_network_with_default_network_segment_range + - neutron_tempest_plugin.api.test_subnetpools_negative.SubnetPoolsNegativeTestJSON.test_update_subnetpool_prefixes_shrink + - neutron_tempest_plugin.api.test_metering_extensions.MeteringIpV6TestJSON.test_show_metering_label_rule + - neutron_tempest_plugin.api.test_routers.RoutersIpV6Test.test_update_router_reset_gateway_without_snat + - neutron_tempest_plugin.api.admin.test_logging_negative.LoggingNegativeTestJSON.test_create_log_with_invalid_resource_type + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTestV6.test_update_subnetpool_prefixes_append + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_policy_association_with_network_non_shared_policy + - neutron_tempest_plugin.api.test_qos.QosSearchCriteriaTest.test_list_pagination_with_href_links + - neutron_tempest_plugin.api.admin.test_networks.NetworksTestAdmin.test_create_network_with_project_and_other_tenant + - neutron_tempest_plugin.api.test_flavors_extensions.TestFlavorsJson.test_create_update_delete_flavor + - neutron_tempest_plugin.api.test_security_groups_negative.NegativeSecGroupTest.test_delete_in_use_sec_group + - neutron_tempest_plugin.api.test_routers.RoutersTest.test_create_router_with_snat_explicit + - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleWithDirectionTestJSON.test_rule_create_forbidden_for_regular_tenants + - neutron_tempest_plugin.api.test_security_groups_negative.NegativeSecGroupIPv6Test.test_create_security_group_with_too_long_name + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_policy_association_with_admin_network + - neutron_tempest_plugin.api.admin.test_shared_network_extension.SharedNetworksTest.test_create_update_shared_network + - neutron_tempest_plugin.api.test_routers.RoutersSearchCriteriaTest.test_list_pagination_page_reverse_desc + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_create_subport_nonexistent_trunk + - neutron_tempest_plugin.api.test_routers.RoutersIpV6Test.test_update_router_set_gateway_without_snat + - neutron_tempest_plugin.api.admin.test_ports.PortTestCasesResourceRequest.test_port_resource_request + - neutron_tempest_plugin.api.admin.test_routers_dvr.RoutersTestDVR.test_distributed_router_creation + - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleWithDirectionTestJSON.test_rule_update_forbidden_for_regular_tenants_own_policy + - neutron_tempest_plugin.api.test_revisions.TestRevisions.test_update_subnet_service_types_bumps_revisions + - neutron_tempest_plugin.api.admin.test_routers_ha.RoutersTestHA.test_legacy_router_update_to_ha + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_remove_subport_not_found + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTestV6.test_update_subnetpool_associate_another_address_scope + - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleWithDirectionTestJSON.test_rule_create_rule_nonexistent_policy + - neutron_tempest_plugin.api.test_timestamp.TestTimeStampWithSecurityGroup.test_show_sgrule_attribute_with_timestamp + - neutron_tempest_plugin.api.test_ports.PortsTestJSON.test_create_update_port_with_dns_domain + - neutron_tempest_plugin.api.test_security_groups.SecGroupTest.test_create_list_update_show_delete_security_group + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_policy_update_association_with_admin_network + - neutron_tempest_plugin.api.admin.test_tag.TagPortTestJSON.test_port_tags + - neutron_tempest_plugin.api.admin.test_tag.TagFilterPortTestJSON.test_filter_port_tags + - neutron_tempest_plugin.api.admin.test_quotas_negative.QuotasAdminNegativeTestJSON.test_create_security_group_when_quotas_is_full + - neutron_tempest_plugin.api.admin.test_shared_network_extension.SharedNetworksTest.test_filtering_shared_subnets + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTestV6.test_show_subnetpool_has_project_id + - neutron_tempest_plugin.api.test_timestamp.TestTimeStamp.test_show_subnet_attribute_with_timestamp + - neutron_tempest_plugin.api.test_network_ip_availability.NetworksIpAvailabilityIPv6Test.test_show_ip_availability_after_subnet_and_ports_create + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_policy_association_with_port_shared_policy + - neutron_tempest_plugin.api.test_networks.NetworksSearchCriteriaTest.test_list_validation_filters + - neutron_tempest_plugin.api.test_qos.RbacSharedQosPoliciesTest.test_rbac_policy_show + - neutron_tempest_plugin.api.admin.test_agent_availability_zone.AgentAvailabilityZoneTestCase.test_agents_availability_zone + - neutron_tempest_plugin.api.admin.test_tag.TagTrunkTestJSON.test_trunk_tags + - neutron_tempest_plugin.api.admin.test_quotas_negative.QuotasAdminNegativeTestJSON.test_create_subnet_when_quotas_is_full + - neutron_tempest_plugin.api.test_qos.RbacSharedQosPoliciesTest.test_regular_client_blocked_from_sharing_anothers_policy + - neutron_tempest_plugin.api.admin.test_shared_network_extension.RBACSharedNetworksTest.test_policy_show + - neutron_tempest_plugin.api.test_revisions.TestRevisions.test_update_qos_port_policy_binding_bumps_revision + - neutron_tempest_plugin.api.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_with_too_long_name + - neutron_tempest_plugin.api.test_flavors_extensions.TestFlavorsJson.test_show_service_profile + - neutron_tempest_plugin.api.test_timestamp.TestTimeStampWithSecurityGroup.test_update_sg_with_timestamp + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTest.test_update_subnetpool_associate_another_address_scope + - neutron_tempest_plugin.api.test_qos.RbacSharedQosPoliciesTest.test_net_bound_shared_policy_wildcard_and_tenant_id_wild_remove + - neutron_tempest_plugin.api.admin.test_external_network_extension.ExternalNetworksRBACTestJSON.test_delete_policies_while_tenant_attached_to_net + - neutron_tempest_plugin.api.test_extension_driver_port_security.PortSecTest.test_delete_with_port_sec + - neutron_tempest_plugin.api.test_availability_zones.ListAvailableZonesTest.test_list_available_zones + - neutron_tempest_plugin.api.test_routers.RoutersTest.test_create_router_with_default_snat_value + - neutron_tempest_plugin.api.test_security_groups.SecGroupProtocolIPv6Test.test_security_group_rule_protocol_names + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_delete_port_in_use_by_trunk + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTestV6.test_create_subnet_from_pool_with_prefixlen + - neutron_tempest_plugin.api.admin.test_shared_network_extension.SharedNetworksTest.test_filtering_shared_networks + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTest.test_create_list_subnetpool + - neutron_tempest_plugin.api.admin.test_tag.TagQosPolicyTestJSON.test_qos_policy_tags + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTestV6.test_create_subnet_from_pool_with_subnet_cidr + - neutron_tempest_plugin.api.test_revisions.TestRevisions.test_update_router_bumps_revision + - neutron_tempest_plugin.api.admin.test_tag.TagFilterNetworkTestJSON.test_filter_network_tags + - neutron_tempest_plugin.api.test_dhcp_ipv6.NetworksTestDHCPv6.test_dhcp_stateful_fixedips_outrange + - neutron_tempest_plugin.api.test_networks.NetworksMtuTestJSON.test_update_network_custom_mtu + - neutron_tempest_plugin.api.test_qos.RbacSharedQosPoliciesTest.test_regular_client_shares_to_another_regular_client + - neutron_tempest_plugin.api.test_ports.PortsSearchCriteriaTest.test_list_no_pagination_limit_0 + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_list_policy_filter_by_name + - neutron_tempest_plugin.api.test_network_ip_availability.NetworksIpAvailabilityIPv4Test.test_list_ip_availability_before_subnet + - neutron_tempest_plugin.api.admin.test_tag.TagFilterSecGroupTestJSON.test_filter_security_group_tags + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTestV6.test_create_subnet_from_pool_with_quota + - neutron_tempest_plugin.api.test_networks.NetworksTestJSON.test_show_network_fields_keystone_v3 + - neutron_tempest_plugin.api.test_metering_extensions.MeteringIpV6TestJSON.test_show_metering_label + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsSearchCriteriaTest.test_list_pagination_with_href_links + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_default_policy_creating_network_without_policy + - neutron_tempest_plugin.api.test_flavors_extensions.TestFlavorsIpV6TestJSON.test_list_service_profiles + - neutron_tempest_plugin.api.test_networks.NetworksSearchCriteriaTest.test_list_no_pagination_limit_0 + - neutron_tempest_plugin.api.test_metering_extensions.MeteringTestJSON.test_show_metering_label_rule + - neutron_tempest_plugin.api.test_flavors_extensions.TestFlavorsIpV6TestJSON.test_show_flavor + - neutron_tempest_plugin.api.test_trunk.TrunksSearchCriteriaTest.test_list_pagination_with_href_links + - neutron_tempest_plugin.api.test_network_ip_availability_negative.NetworksIpAvailabilityNegativeTest.test_network_availability_nonexistent_network_id + - neutron_tempest_plugin.api.test_timestamp.TestTimeStamp.test_create_network_with_timestamp + - neutron_tempest_plugin.api.admin.test_logging.LoggingTestJSON.test_list_supported_logging_types + - neutron_tempest_plugin.api.test_address_scopes_negative.AddressScopeTestNegative.test_delete_non_existent_address_scope + - neutron_tempest_plugin.api.test_security_groups.RbacSharedSecurityGroupTest.test_regular_client_blocked_from_sharing_anothers_policy + - neutron_tempest_plugin.api.test_qos.QosMinimumBandwidthRuleTestJSON.test_rule_create_fail_for_the_same_type + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_delete_policy + - neutron_tempest_plugin.api.admin.test_external_network_extension.ExternalNetworksRBACTestJSON.test_policy_allows_tenant_to_allocate_floatingip + - neutron_tempest_plugin.api.test_routers.RoutersIpV6Test.test_update_router_set_gateway_with_snat_explicit + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_create_subport_missing_segmentation_id + - neutron_tempest_plugin.api.admin.test_routers_ha.RoutersTestHA.test_legacy_router_creation + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTestV6.test_admin_create_shared_subnetpool + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_create_trunk_with_subport_missing_segmentation_type + - neutron_tempest_plugin.api.test_trunk.TrunksSearchCriteriaTest.test_list_sorts_asc + - neutron_tempest_plugin.api.test_trunk.TrunkTestInheritJSONBase.test_add_subport + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTest.test_create_update_subnetpool_description + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTest.test_update_subnetpool_prefixes_extend + - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleWithDirectionTestJSON.test_rule_update + - neutron_tempest_plugin.api.admin.test_shared_network_extension.RBACSharedNetworksTest.test_network_only_visible_to_policy_target + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTestV6.test_create_subnetpool_associate_address_scope + - neutron_tempest_plugin.api.test_qos.RbacSharedQosPoliciesTest.test_policy_target_update + - neutron_tempest_plugin.api.test_metering_extensions.MeteringTestJSON.test_list_metering_labels + - neutron_tempest_plugin.api.admin.test_dhcp_agent_scheduler.DHCPAgentSchedulersTestJSON.test_list_networks_hosted_by_one_dhcp + - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleTestJSON.test_rule_update_forbidden_for_regular_tenants_foreign_policy + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_show_rule_type_details_as_user + - neutron_tempest_plugin.api.test_timestamp.TestTimeStamp.test_update_port_with_timestamp + - neutron_tempest_plugin.api.test_qos.QosMinimumBandwidthRuleTestJSON.test_rule_delete + - neutron_tempest_plugin.api.test_security_groups.SecGroupProtocolTest.test_security_group_rule_protocol_names + - neutron_tempest_plugin.api.test_ports.PortsTestJSON.test_create_update_port_with_dns_name + - neutron_tempest_plugin.api.test_subnetpools_negative.SubnetPoolsNegativeTestJSON.test_update_subnetpool_associate_address_scope_wrong_ip_version + - neutron_tempest_plugin.api.test_networks.NetworksTestJSON.test_create_network_with_project + - neutron_tempest_plugin.api.admin.test_shared_network_extension.RBACSharedNetworksTest.test_rbac_bumps_network_revision + - neutron_tempest_plugin.api.test_security_groups.SecGroupProtocolTest.test_security_group_rule_protocol_ints + - neutron_tempest_plugin.api.test_qos.RbacSharedQosPoliciesTest.test_policy_sharing_with_wildcard + - neutron_tempest_plugin.api.test_revisions.TestRevisions.test_update_floatingip_bumps_revision + - neutron_tempest_plugin.api.test_floating_ips_negative.FloatingIPNegativeTestJSON.test_associate_floatingip_with_port_with_floatingip + - neutron_tempest_plugin.api.test_routers.RoutersTest.test_router_interface_status + - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleWithDirectionTestJSON.test_rule_delete + - neutron_tempest_plugin.api.admin.test_quotas.QuotasTest.test_quotas + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTestV6.test_update_subnetpool_prefixes_extend + - neutron_tempest_plugin.api.test_address_scopes.AddressScopeTest.test_tenant_update_address_scope + - neutron_tempest_plugin.api.test_trunk.TrunksSearchCriteriaTest.test_list_pagination_page_reverse_asc + - neutron_tempest_plugin.api.test_extension_driver_port_security.PortSecTest.test_port_sec_default_value + - neutron_tempest_plugin.api.test_allowed_address_pair.AllowedAddressPairIpV6TestJSON.test_update_port_with_cidr_address_pair + - neutron_tempest_plugin.api.admin.test_tag.TagNetworkTestJSON.test_network_tags + - neutron_tempest_plugin.api.admin.test_routers_ha.RoutersTestHA.test_delete_ha_router_keeps_ha_network_segment_data + - neutron_tempest_plugin.api.test_trunk_details.TestTrunkDetailsJSON.test_port_resource_empty_trunk_details + - neutron_tempest_plugin.api.test_qos.QosMinimumBandwidthRuleTestJSON.test_rule_create + - neutron_tempest_plugin.api.test_subnets.SubnetsSearchCriteriaTest.test_list_pagination_with_marker + - neutron_tempest_plugin.api.test_metering_negative.MeteringNegativeTestJSON.test_create_metering_label_with_too_long_name + - neutron_tempest_plugin.api.test_subnetpools_negative.SubnetPoolsNegativeTestJSON.test_tenant_update_sp_prefix_associated_with_shared_addr_scope + - neutron_tempest_plugin.api.test_qos.QosSearchCriteriaTest.test_list_sorts_desc + - neutron_tempest_plugin.api.admin.test_network_segment_range.NetworkSegmentRangeTestJson.test_create_update_delete_network_segment_range + - neutron_tempest_plugin.api.admin.test_security_groups.SecGroupAdminTest.test_security_group_recreated_on_port_update + - neutron_tempest_plugin.api.admin.test_shared_network_extension.RBACSharedNetworksTest.test_create_rbac_policy_with_target_tenant_too_long_id + - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleWithDirectionTestJSON.test_rule_create + - neutron_tempest_plugin.api.test_revisions.TestRevisions.test_update_subnet_bumps_revision + - neutron_tempest_plugin.api.admin.test_quotas_negative.QuotasAdminNegativeTestJSON.test_create_router_when_quotas_is_full + - neutron_tempest_plugin.api.test_qos.QosMinimumBandwidthRuleTestJSON.test_rule_create_rule_nonexistent_policy + - neutron_tempest_plugin.api.test_trunk.TrunkTestJSON.test_create_show_delete_trunk + - neutron_tempest_plugin.api.admin.test_quotas_negative.QuotasAdminNegativeTestJSON.test_create_port_when_quotas_is_full + - neutron_tempest_plugin.api.admin.test_shared_network_extension.RBACSharedNetworksTest.test_regular_client_blocked_from_sharing_anothers_network + - neutron_tempest_plugin.api.admin.test_shared_network_extension.RBACSharedNetworksTest.test_rbac_policy_quota + - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleTestJSON.test_rule_create_rule_nonexistent_policy + - neutron_tempest_plugin.api.test_revisions.TestRevisions.test_update_router_extra_attributes_bumps_revision + - neutron_tempest_plugin.api.test_ports.PortsTestJSON.test_add_ips_to_port + - neutron_tempest_plugin.api.admin.test_shared_network_extension.RBACSharedNetworksTest.test_tenant_can_delete_port_on_own_network + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTestV6.test_create_dual_stack_subnets_from_subnetpools + - neutron_tempest_plugin.api.admin.test_agent_management.AgentManagementTestJSON.test_show_agent + - neutron_tempest_plugin.api.test_extensions.ExtensionsTest.test_list_extensions_sorting + - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleWithDirectionTestJSON.test_rule_create_rule_nonexistent_policy + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsSearchCriteriaTest.test_list_validation_filters + - neutron_tempest_plugin.api.admin.test_shared_network_extension.RBACSharedNetworksTest.test_subnet_on_network_only_visible_to_policy_target + - neutron_tempest_plugin.api.test_flavors_extensions.TestFlavorsJson.test_list_flavors + - neutron_tempest_plugin.api.test_address_scopes.AddressScopeTest.test_show_address_scope_project_id + - neutron_tempest_plugin.api.test_trunk.TrunkTestJSON.test_delete_trunk_with_subport_is_allowed + - neutron_tempest_plugin.api.test_network_ip_availability.NetworksIpAvailabilityIPv4Test.test_list_ip_availability_after_subnet_and_ports + - neutron_tempest_plugin.api.test_trunk.TrunkTestMtusJSON.test_create_trunk_with_mtu_greater_than_subport + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsSearchCriteriaTest.test_list_pagination_with_marker + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_shared_policy_update + - neutron_tempest_plugin.api.admin.test_quotas.QuotasTest.test_detail_quotas + - neutron_tempest_plugin.api.test_metering_extensions.MeteringTestJSON.test_show_metering_label + - neutron_tempest_plugin.api.test_revisions.TestRevisions.test_update_subnetpool_bumps_revision + - neutron_tempest_plugin.api.test_timestamp.TestTimeStamp.test_create_subnet_with_timestamp + - neutron_tempest_plugin.api.admin.test_agent_management.AgentManagementTestJSON.test_update_agent_status + - neutron_tempest_plugin.api.test_revisions.TestRevisions.test_update_router_extra_routes_bumps_revision + - neutron_tempest_plugin.api.test_extension_driver_port_security.PortSecTest.test_port_sec_specific_value_1 + - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleTestJSON.test_rule_update + - neutron_tempest_plugin.api.admin.test_network_segment_range.NetworkSegmentRangeTestJson.test_delete_network_segment_range_failed_with_segment_referenced + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_create_trunk_nonexistent_subport_port_id + - neutron_tempest_plugin.api.test_trunk.TrunkTestJSON.test_show_trunk_has_project_id + - neutron_tempest_plugin.api.admin.test_ports.PortTestCasesResourceRequest.test_port_resource_request_inherited_policy + - neutron_tempest_plugin.api.test_security_groups_negative.NegativeSecGroupIPv6Test.test_update_security_group_with_boolean_type_name + - neutron_tempest_plugin.api.test_timestamp.TestTimeStampWithL3.test_update_floatingip_with_timestamp + - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleWithDirectionTestJSON.test_rule_update_forbidden_for_regular_tenants_foreign_policy + - neutron_tempest_plugin.api.test_trunk.TrunkTestJSON.test_create_trunk_subports_not_specified + - neutron_tempest_plugin.api.admin.test_routers_flavors.RoutersFlavorTestCase.test_badrequest_on_requesting_flags_and_flavor + - neutron_tempest_plugin.api.admin.test_routers_flavors.RoutersFlavorTestCase.test_create_router_with_flavor + - neutron_tempest_plugin.api.test_routers.RoutersIpV6Test.test_router_interface_status + - neutron_tempest_plugin.api.test_security_groups.RbacSharedSecurityGroupTest.test_rbac_policy_show + - neutron_tempest_plugin.api.test_ports.PortsSearchCriteriaTest.test_list_sorts_asc + - neutron_tempest_plugin.api.test_security_groups_negative.NegativeSecGroupTest.test_update_default_security_group_name + - neutron_tempest_plugin.api.test_ports.PortsSearchCriteriaTest.test_list_pagination_with_href_links + - neutron_tempest_plugin.api.test_ports.PortsSearchCriteriaTest.test_list_pagination_with_marker + - neutron_tempest_plugin.api.test_subnetpools_negative.SubnetPoolsNegativeTestJSON.test_create_subnetpool_associate_address_scope_prefix_intersect + - neutron_tempest_plugin.api.test_ports.PortsTestJSON.test_create_update_port_with_no_dns_name + - neutron_tempest_plugin.api.test_revisions.TestRevisions.test_update_dns_domain_bumps_revision + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_default_policy_creating_network_with_policy + - neutron_tempest_plugin.api.admin.test_external_network_extension.ExternalNetworksRBACTestJSON.test_external_update_policy_from_wildcard_to_specific_tenant + - neutron_tempest_plugin.api.test_subnetpools_negative.SubnetPoolsNegativeTestJSON.test_update_subnetpool_tenant_id + - neutron_tempest_plugin.api.test_timestamp.TestTimeStampWithL3.test_show_floatingip_attribute_with_timestamp + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTest.test_create_subnet_from_pool_with_prefixlen + - neutron_tempest_plugin.api.admin.test_quotas_negative.QuotasAdminNegativeTestJSON.test_create_security_group_rule_when_quotas_is_full + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTest.test_create_subnet_from_pool_with_quota + - neutron_tempest_plugin.api.test_routers.RoutersSearchCriteriaTest.test_list_sorts_asc + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_policy_association_with_port_nonexistent_policy + - neutron_tempest_plugin.api.test_security_groups.RbacSharedSecurityGroupTest.test_filter_rbac_policies + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_create_trunk_with_subport_missing_segmentation_id + - neutron_tempest_plugin.api.admin.test_shared_network_extension.SharedNetworksTest.test_create_bulk_shared_network + - neutron_tempest_plugin.api.test_routers.RoutersSearchCriteriaTest.test_list_no_pagination_limit_0 + - neutron_tempest_plugin.api.test_allowed_address_pair.AllowedAddressPairTestJSON.test_update_port_with_cidr_address_pair + - neutron_tempest_plugin.api.test_routers.RoutersIpV6Test.test_update_extra_route + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsSearchCriteriaTest.test_list_pagination_page_reverse_asc + - neutron_tempest_plugin.api.test_trunk.TrunkTestJSON.test_list_trunks + - neutron_tempest_plugin.api.test_routers.RoutersTest.test_update_router_reset_gateway_without_snat + - neutron_tempest_plugin.api.test_qos.QosTestJSON.test_delete_not_allowed_if_policy_in_use_by_network + - neutron_tempest_plugin.api.test_metering_extensions.MeteringIpV6TestJSON.test_create_delete_metering_label_rule_with_filters + - neutron_tempest_plugin.api.test_extensions.ExtensionsTest.test_list_extensions_pagination + - neutron_tempest_plugin.api.test_metering_extensions.MeteringIpV6TestJSON.test_list_metering_labels + - neutron_tempest_plugin.api.test_ports.PortsTestJSON.test_create_port_without_propagate_uplink_status + - neutron_tempest_plugin.api.test_extra_dhcp_options.ExtraDHCPOptionsTestJSON.test_update_show_port_with_extra_dhcp_options + - neutron_tempest_plugin.api.test_extensions.ExtensionsTest.test_list_extensions_includes_all + - neutron_tempest_plugin.api.test_qos.QosMinimumBandwidthRuleTestJSON.test_rule_update + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTest.test_create_subnet_from_pool_with_default_prefixlen + - neutron_tempest_plugin.api.test_routers.HaRoutersTest.test_convert_legacy_router + - neutron_tempest_plugin.api.test_flavors_extensions.TestFlavorsIpV6TestJSON.test_show_service_profile + - neutron_tempest_plugin.api.test_subnets.SubnetsSearchCriteriaTest.test_list_sorts_asc + - neutron_tempest_plugin.api.test_routers.RoutersSearchCriteriaTest.test_list_pagination_with_href_links + - neutron_tempest_plugin.api.admin.test_l3_agent_scheduler.L3AgentSchedulerTestJSON.test_list_routers_on_l3_agent + - neutron_tempest_plugin.api.test_routers.RoutersSearchCriteriaTest.test_list_pagination_page_reverse_asc + - neutron_tempest_plugin.api.test_extra_dhcp_options.ExtraDHCPOptionsIpV6TestJSON.test_create_list_port_with_extra_dhcp_options + - neutron_tempest_plugin.api.test_networks.NetworksSearchCriteriaTest.test_list_pagination_page_reverse_desc + - neutron_tempest_plugin.api.test_address_scopes_negative.AddressScopeTestNegative.test_tenant_update_address_scope_shared_true + - neutron_tempest_plugin.api.test_timestamp.TestTimeStampWithSecurityGroup.test_create_sg_with_timestamp + - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleWithDirectionTestJSON.test_rule_delete + - neutron_tempest_plugin.api.test_routers.RoutersSearchCriteriaTest.test_list_pagination_with_marker + - neutron_tempest_plugin.api.test_qos_negative.QosNegativeTestJSON.test_add_policy_with_too_long_tenant_id + - neutron_tempest_plugin.api.test_subnetpools_negative.SubnetPoolsNegativeTestJSON.test_delete_non_existent_subnetpool + - neutron_tempest_plugin.api.test_subnets.SubnetsSearchCriteriaTest.test_list_validation_filters + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTestV6.test_create_list_subnetpool + - neutron_tempest_plugin.api.test_networks.NetworksSearchCriteriaTest.test_list_pagination_page_reverse_with_href_links + - neutron_tempest_plugin.api.test_qos.QosMinimumBandwidthRuleTestJSON.test_rule_create_fail_for_missing_min_kbps + - neutron_tempest_plugin.api.admin.test_floating_ips_admin_actions.FloatingIPAdminTestJSON.test_associate_floating_ip_with_port_from_another_project + - neutron_tempest_plugin.api.admin.test_external_network_extension.ExternalNetworksRBACTestJSON.test_external_conversion_on_policy_delete + - neutron_tempest_plugin.api.test_allowed_address_pair.AllowedAddressPairTestJSON.test_create_list_port_with_address_pair + - neutron_tempest_plugin.api.test_extensions.ExtensionsTest.test_list_extensions_project_id + - neutron_tempest_plugin.api.admin.test_network_segment_range.NetworkSegmentRangeTestJson.test_create_network_with_tenant_specific_network_segment_range + - neutron_tempest_plugin.api.test_subnets.SubnetsSearchCriteriaTest.test_list_no_pagination_limit_0 + - neutron_tempest_plugin.api.test_qos.QosBandwidthLimitRuleTestJSON.test_rule_create_fail_for_the_same_type + - neutron_tempest_plugin.api.test_trunk.TrunksSearchCriteriaTest.test_list_pagination_with_marker + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsSearchCriteriaTest.test_list_pagination + - neutron_tempest_plugin.api.test_timestamp.TestTimeStamp.test_show_subnetpool_attribute_with_timestamp + - neutron_tempest_plugin.api.test_extra_dhcp_options.ExtraDHCPOptionsTestJSON.test_create_list_port_with_extra_dhcp_options + - neutron_tempest_plugin.api.test_routers.RoutersIpV6Test.test_create_router_with_default_snat_value + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_create_subport_nonexistent_port_id + - neutron_tempest_plugin.api.test_subnetpools_negative.SubnetPoolsNegativeTestJSON.test_update_subnetpool_not_modifiable_shared + - neutron_tempest_plugin.api.test_qos.QosDscpMarkingRuleTestJSON.test_rule_update + - neutron_tempest_plugin.api.test_security_groups.SecGroupTest.test_create_bulk_sec_groups + - neutron_tempest_plugin.api.test_networks.NetworksMtuTestJSON.test_create_network_custom_mtu + - neutron_tempest_plugin.api.admin.test_routers_ha.RoutersTestHA.test_ha_router_creation + - neutron_tempest_plugin.api.admin.test_shared_network_extension.AllowedAddressPairSharedNetworkTest.test_create_with_address_pair_blocked_on_other_network + - neutron_tempest_plugin.api.test_metering_extensions.MeteringIpV6TestJSON.test_list_metering_label_rules + - neutron_tempest_plugin.api.admin.test_shared_network_extension.RBACSharedNetworksTest.test_filtering_works_with_rbac_records_present + - neutron_tempest_plugin.api.test_subnetpools_negative.SubnetPoolsNegativeTestJSON.test_create_subnetpool_associate_address_scope_of_other_owner + - neutron_tempest_plugin.api.test_flavors_extensions.TestFlavorsIpV6TestJSON.test_create_update_delete_flavor + - neutron_tempest_plugin.api.test_extension_driver_port_security.PortSecTest.test_create_port_sec_with_security_group + - neutron_tempest_plugin.api.test_routers.RoutersSearchCriteriaTest.test_list_pagination + - neutron_tempest_plugin.api.test_router_interface_fip.RouterInterfaceFip.test_router_interface_fip + - neutron_tempest_plugin.api.test_subnetpools.SubnetPoolsTestV6.test_tenant_update_subnetpool + - neutron_tempest_plugin.api.test_qos.QosDscpMarkingRuleTestJSON.test_rule_create_fail_for_the_same_type + - neutron_tempest_plugin.api.test_floating_ips.FloatingIPTestJSON.test_create_update_floatingip_description diff --git a/etc/testcase/functest.tempest.osinterop.yml b/etc/testcase/functest.tempest.osinterop.yml new file mode 100644 index 00000000..0c83ef15 --- /dev/null +++ b/etc/testcase/functest.tempest.osinterop.yml @@ -0,0 +1,253 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.tempest.osinterop: + name: functest.tempest.osinterop + objective: > # Set of OpenStack interoperability test cases not flagged and required. It only contains OpenStack core (no object storage) + # The approved guidelines (2016.08) are valid for Kilo, Liberty, Mitaka and Newton releases of OpenStack + # The list can be generated using the Rest API from RefStack project: + # https://refstack.openstack.org/api/v1/guidelines/2016.08/tests?target=compute&type=required&alias=true&flag=false + validate: + type: functest + testcase: refstack_defcore + pre_condition: + - 'cp /home/opnfv/pre_config/tempest_conf.yaml /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml' + report: + source_archive_files: + - functest.log + - refstack_defcore/rally.log + - refstack_defcore/tempest-report.html + dest_archive_files: + - tempest_logs/functest.tempest.osinterop.functest.log + - tempest_logs/functest.tempest.osinterop.log + - tempest_logs/functest.tempest.osinterop.html + check_results_files: + - 'functest_results.txt' + portal_key_file: tempest_logs/functest.tempest.osinterop.html + sub_testcase_list: + - tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_icmp_type_code + - tempest.api.network.test_networks.NetworksTest.test_update_subnet_gw_dns_host_routes_dhcp + - tempest.api.volume.test_volumes_negative.VolumesNegativeTest.test_volume_delete_nonexistent_volume_id + - tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_get_delete_deleted_image + - tempest.api.volume.test_volumes_get.VolumesGetTest.test_volume_create_get_update_delete_from_image + - tempest.api.volume.test_volumes_get.VolumesGetTest.test_volume_create_get_update_delete + - tempest.api.image.v2.test_images.ListUserImagesTest.test_list_no_params + - tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_remote_ip_prefix + - tempest.api.identity.v3.test_tokens.TokensV3Test.test_create_token + - tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_delete_server_metadata_item + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_get_non_existent_server + - tempest.api.compute.servers.test_create_server.ServersTestJSON.test_host_name_is_same_as_server_name + - tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_active_status + - tempest.api.compute.servers.test_servers.ServersTestJSON.test_create_with_existing_server_name + - tempest.api.volume.test_volumes_list.VolumesListTestJSON.test_volumes_list_details_by_status + - tempest.api.network.test_networks.NetworksTest.test_list_subnets + - tempest.api.compute.servers.test_servers.ServersTestJSON.test_update_server_name + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_invalid_ip_v6_address + - tempest.api.compute.volumes.test_attach_volume.AttachVolumeTestJSON.test_list_get_volume_attachments + - tempest.api.network.test_networks.NetworksTest.test_show_network + - tempest.api.network.test_security_groups.SecGroupTest.test_create_show_delete_security_group_rule + - tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_gw_and_allocation_pools + - tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_get_image_null_id + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_update_server_set_empty_name + - tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_host_name_is_same_as_server_name + - tempest.api.network.test_ports.PortsTestJSON.test_show_port + - tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_image + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_delete_server_pass_id_exceeding_length_limit + - tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_limit + - tempest.api.compute.servers.test_servers.ServersTestJSON.test_update_access_server_address + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_stop_non_existent_server + - tempest.api.image.v2.test_images.ListUserImagesTest.test_get_images_schema + - tempest.api.volume.test_volumes_list.VolumesListTestJSON.test_volume_list_with_details + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_reboot_non_existent_server + - tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_delete_image_null_id + - tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_non_existent_security_group + - tempest.api.network.test_ports.PortsTestJSON.test_show_port_fields + - tempest.api.compute.servers.test_servers.ServersTestJSON.test_create_specify_keypair + - tempest.api.compute.test_versions.TestVersions.test_list_api_versions + - tempest.api.volume.test_volumes_list.VolumesListTestJSON.test_volume_list_with_param_metadata + - tempest.api.volume.test_volumes_negative.VolumesNegativeTest.test_list_volumes_with_invalid_status + - tempest.api.volume.test_volumes_negative.VolumesNegativeTest.test_update_volume_with_empty_volume_id + - tempest.api.volume.test_volumes_list.VolumesListTestJSON.test_volume_list_by_name + - tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_disk_format + - tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filtered_by_name_wildcard + - tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_all_attributes + - tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_status + - tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_get_server_metadata_item + - tempest.api.volume.test_volumes_snapshots_list.VolumesSnapshotListTestJSON.test_snapshots_list_with_params + - tempest.api.network.test_security_groups.SecGroupTest.test_create_list_update_show_delete_security_group + - tempest.api.compute.test_quotas.QuotasTestJSON.test_get_quotas + - tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_image + - tempest.api.compute.volumes.test_attach_volume.AttachVolumeTestJSON.test_attach_detach_volume + - tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_limits_pass_string + - tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_verify_server_details + - tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_delete_non_existing_image + - tempest.api.volume.test_volumes_negative.VolumesNegativeTest.test_delete_invalid_volume_id + - tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_duplicate_security_group_rule_fails + - tempest.api.volume.test_volumes_list.VolumesListTestJSON.test_volumes_list_by_status + - tempest.api.volume.test_volumes_list.VolumesListTestJSON.test_volume_list_details_with_multiple_params + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_rebuild_non_existent_server + - tempest.api.compute.servers.test_instance_actions.InstanceActionsTestJSON.test_list_instance_actions + - tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_server_name + - tempest.api.compute.servers.test_create_server.ServersTestJSON.test_list_servers_with_detail + - tempest.api.network.test_networks.NetworksTest.test_create_update_delete_network_subnet + - tempest.api.volume.test_volume_metadata.VolumesMetadataTest.test_update_show_volume_metadata_item + - tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_flavor + - tempest.api.volume.test_volumes_negative.VolumesNegativeTest.test_create_volume_with_nonexistent_source_volid + - tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_non_existing_flavor + - tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_with_a_deleted_server + - tempest.api.network.test_networks.NetworksTest.test_delete_network_with_subnet + - tempest.api.volume.test_volumes_negative.VolumesNegativeTest.test_list_volumes_detail_with_nonexistent_name + - tempest.api.image.v2.test_images.ListUserImagesTest.test_get_image_schema + - tempest.api.volume.test_volumes_negative.VolumesNegativeTest.test_update_volume_with_nonexistent_volume_id + - tempest.api.identity.v3.test_api_discovery.TestApiDiscovery.test_api_version_resources + - tempest.api.volume.test_volumes_negative.VolumesNegativeTest.test_list_volumes_with_nonexistent_name + - tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_limit + - tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_gw + - tempest.api.volume.test_volumes_negative.VolumesNegativeTest.test_create_volume_with_invalid_size + - tempest.api.volume.test_volumes_list.VolumesListTestJSON.test_volume_list + - tempest.api.identity.v3.test_api_discovery.TestApiDiscovery.test_api_version_statuses + - tempest.api.compute.servers.test_availability_zone.AZV2TestJSON.test_get_availability_zone_list_with_non_admin_user + - tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_lock_unlock_server + - tempest.api.volume.test_volumes_negative.VolumesNegativeTest.test_delete_volume_without_passing_volume_id + - tempest.api.network.test_security_groups.SecGroupTest.test_list_security_groups + - tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_show_non_existent_security_group + - tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_additional_args + - tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_dhcp_enabled + - tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_non_existent_remote_groupid + - tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_bad_remote_ip_prefix + - tempest.api.network.test_ports.PortsTestJSON.test_list_ports_fields + - tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_stop_start_server + - tempest.api.volume.test_volumes_list.VolumesListTestJSON.test_volume_list_details_pagination + - tempest.api.compute.servers.test_create_server.ServersTestJSON.test_verify_server_details + - tempest.api.compute.servers.test_delete_server.DeleteServersTestJSON.test_delete_active_server + - tempest.api.network.test_networks.NetworksTest.test_list_networks_fields + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_with_invalid_network_uuid + - tempest.api.image.v2.test_images_tags_negative.ImagesTagsNegativeTest.test_update_tags_for_non_existing_image + - tempest.api.volume.test_volumes_list.VolumesListTestJSON.test_volume_list_with_detail_param_metadata + - tempest.api.network.test_networks.NetworksTest.test_show_subnet_fields + - tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_server_status + - tempest.api.compute.servers.test_instance_actions.InstanceActionsTestJSON.test_get_instance_action + - tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_remote_group_id + - tempest.api.volume.test_volumes_negative.VolumesNegativeTest.test_get_volume_without_passing_volume_id + - tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_changes_since_invalid_date + - tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_list_server_metadata + - tempest.api.volume.test_volumes_snapshots_negative.VolumesSnapshotNegativeTestJSON.test_create_snapshot_with_nonexistent_volume_id + - tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_container_format + - tempest.api.volume.test_volumes_list.VolumesListTestJSON.test_volume_list_param_display_name_and_status + - tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_min_max_size + - tempest.api.compute.test_quotas.QuotasTestJSON.test_get_default_quotas + - tempest.api.image.v2.test_images_tags_negative.ImagesTagsNegativeTest.test_delete_non_existing_tag + - tempest.api.volume.test_volumes_list.VolumesListTestJSON.test_volumes_list_details_by_availability_zone + - tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_detail_server_is_deleted + - tempest.api.volume.test_volumes_negative.VolumesNegativeTest.test_create_volume_with_nonexistent_snapshot_id + - tempest.api.volume.test_volumes_actions.VolumesActionsTest.test_volume_bootable + - tempest.api.volume.test_volumes_negative.VolumesNegativeTest.test_update_volume_with_invalid_volume_id + - tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_size + - tempest.api.network.test_networks.NetworksTest.test_show_network_fields + - tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_non_existing_server_name + - tempest.api.volume.test_availability_zone.AvailabilityZoneTestJSON.test_get_availability_zone_list + - tempest.api.volume.test_volumes_snapshots_list.VolumesSnapshotListTestJSON.test_snapshots_list_details_with_params + - tempest.api.volume.test_volumes_negative.VolumesNegativeTest.test_create_volume_without_passing_size + - tempest.api.volume.test_volumes_negative.VolumesNegativeTest.test_list_volumes_detail_with_invalid_status + - tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_limits_pass_negative_value + - tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_get_non_existent_image + - tempest.api.compute.images.test_images_oneserver.ImagesOneServerTestJSON.test_create_image_specify_multibyte_character_image_name + - tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_set_server_metadata + - tempest.api.volume.test_volumes_negative.VolumesNegativeTest.test_create_volume_with_nonexistent_volume_type + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_rebuild_deleted_server + - tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_visibility + - tempest.api.compute.flavors.test_flavors.FlavorsV2TestJSON.test_list_flavors_with_detail + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_update_server_name_length_exceeds_256 + - tempest.api.volume.test_volumes_negative.VolumesNegativeTest.test_create_volume_with_size_zero + - tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_list_servers + - tempest.api.network.test_ports.PortsTestJSON.test_list_ports + - tempest.api.volume.test_volumes_list.VolumesListTestJSON.test_volume_list_pagination + - tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_show_non_existent_security_group_rule + - tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_non_existing_image + - tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_additional_default_security_group_fails + - tempest.api.network.test_networks.NetworksTest.test_list_networks + - tempest.api.volume.test_volume_metadata.VolumesMetadataTest.test_crud_volume_metadata + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_delete_server_pass_negative_id + - tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_limits_greater_than_actual_count + - tempest.api.volume.test_snapshot_metadata.SnapshotMetadataTestJSON.test_update_show_snapshot_metadata_item + - tempest.api.volume.test_snapshot_metadata.SnapshotMetadataTestJSON.test_crud_snapshot_metadata + - tempest.api.compute.servers.test_create_server.ServersTestJSON.test_verify_created_server_vcpus + - tempest.api.network.test_subnetpools_extensions.SubnetPoolsTestJSON.test_create_list_show_update_delete_subnetpools + - tempest.api.volume.test_volumes_list.VolumesListTestJSON.test_volumes_list_by_availability_zone + - tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_changes_since_future_date + - tempest.api.compute.servers.test_create_server.ServersTestJSON.test_list_servers + - tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_bad_protocol + - tempest.api.network.test_networks.NetworksTest.test_list_subnets_fields + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_server_name_blank + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_with_invalid_flavor + - tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_host_routes_and_dns_nameservers + - tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_verify_created_server_vcpus + - tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_update_server_metadata + - tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_reboot_server_hard + - tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_without_gateway + - tempest.api.volume.test_volumes_snapshots.VolumesSnapshotTestJSON.test_volume_from_snapshot + - tempest.api.volume.test_volumes_negative.VolumesNegativeTest.test_volume_get_nonexistent_volume_id + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_update_name_of_non_existent_server + - tempest.api.identity.v3.test_api_discovery.TestApiDiscovery.test_api_media_types + - tempest.api.image.v2.test_images.BasicOperationsImagesTest.test_delete_image + - tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_bad_ethertype + - tempest.api.volume.test_volumes_list.VolumesListTestJSON.test_volume_list_details_by_name + - tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_delete_non_existent_security_group + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_server_metadata_exceeds_length_limit + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_server_name_length_exceeds_256 + - tempest.api.network.test_ports.PortsTestJSON.test_create_port_in_allowed_allocation_pools + - tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_protocol_integer_value + - tempest.api.compute.servers.test_servers.ServersTestJSON.test_create_server_with_admin_password + - tempest.api.volume.test_volumes_actions.VolumesActionsTest.test_volume_readonly_update + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_with_invalid_image + - tempest.api.compute.flavors.test_flavors.FlavorsV2TestJSON.test_list_flavors + - tempest.api.volume.test_volumes_snapshots.VolumesSnapshotTestJSON.test_snapshot_create_get_list_update_delete + - tempest.api.volume.test_volumes_snapshots_negative.VolumesSnapshotNegativeTestJSON.test_create_snapshot_without_passing_volume_id + - tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_status_non_existing + - tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_invalid_ports + - tempest.api.volume.test_volumes_negative.VolumesNegativeTest.test_get_invalid_volume_id + - tempest.api.network.test_ports.PortsTestJSON.test_create_update_delete_port + - tempest.api.volume.test_volumes_negative.VolumesNegativeTest.test_create_volume_with_size_negative + - tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_list_servers_with_detail + - tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_limit_results + - tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_allocation_pools + - tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_set_server_metadata_item + - tempest.api.network.test_networks.NetworksTest.test_show_subnet + - tempest.api.image.v2.test_images.BasicOperationsImagesTest.test_update_image + - tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_server_name + - tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_flavor + - tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_rebuild_server + - tempest.api.compute.images.test_images_oneserver.ImagesOneServerTestJSON.test_create_delete_image + - tempest.api.image.v2.test_images_tags.ImagesTagsTest.test_update_delete_tags_for_image + - tempest.api.volume.test_volumes_get.VolumesGetTest.test_volume_create_get_update_delete_as_clone + - tempest.api.volume.test_extensions.ExtensionsTestJSON.test_list_extensions + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_numeric_server_name + - tempest.api.network.test_ports.PortsTestJSON.test_create_bulk_port + - tempest.api.volume.test_volumes_list.VolumesListTestJSON.test_volume_list_with_detail_param_display_name_and_status + - tempest.api.network.test_networks.NetworksTest.test_external_network_visibility + - tempest.api.network.test_ports.PortsTestJSON.test_port_list_filter_by_router_id + - tempest.api.network.test_routers_negative.RoutersNegativeTest.test_add_router_interfaces_on_overlapping_subnets_returns_400 + - tempest.api.network.test_routers_negative.RoutersNegativeTest.test_delete_non_existent_router_returns_404 + - tempest.api.network.test_routers_negative.RoutersNegativeTest.test_router_add_gateway_invalid_network_returns_404 + - tempest.api.network.test_routers_negative.RoutersNegativeTest.test_router_add_gateway_net_not_external_returns_400 + - tempest.api.network.test_routers_negative.RoutersNegativeTest.test_router_remove_interface_in_use_returns_409 + - tempest.api.network.test_routers_negative.RoutersNegativeTest.test_show_non_existent_router_returns_404 + - tempest.api.network.test_routers_negative.RoutersNegativeTest.test_update_non_existent_router_returns_404 + - tempest.api.network.test_routers.RoutersTest.test_add_multiple_router_interfaces + - tempest.api.network.test_routers.RoutersTest.test_add_remove_router_interface_with_port_id + - tempest.api.network.test_routers.RoutersTest.test_add_remove_router_interface_with_subnet_id + - tempest.api.network.test_routers.RoutersTest.test_create_show_list_update_delete_router + - tempest.api.network.test_routers.RoutersTest.test_update_delete_extra_route + - tempest.api.network.test_routers.RoutersTest.test_update_router_admin_state + - tempest.api.network.test_versions.NetworksApiDiscovery.test_api_version_resources + - tempest.api.volume.test_versions.VersionsTest.test_list_versions + - tempest.api.compute.keypairs.test_keypairs_v22.KeyPairsV22TestJSON.test_keypairsv22_create_list_show_with_type + - tempest.api.identity.v3.test_catalog.IdentityCatalogTest.test_catalog_standardization + - tempest.api.identity.v3.test_tokens.TokensV3Test.test_validate_token diff --git a/etc/testcase/functest.tempest.trunk-ports.yml b/etc/testcase/functest.tempest.trunk-ports.yml new file mode 100644 index 00000000..0434b912 --- /dev/null +++ b/etc/testcase/functest.tempest.trunk-ports.yml @@ -0,0 +1,70 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.tempest.neutron_trunk_ports: + name: functest.tempest.neutron_trunk_ports + objective: Run Neutron trunk port Tempest tests + validate: + type: functest + testcase: neutron_trunk + pre_condition: + - 'cp /home/opnfv/pre_config/tempest_conf.yaml /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml' + - 'cp /home/opnfv/userconfig/trunk_port_blacklist.yaml /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/blacklist.yaml' + report: + source_archive_files: + - functest.log + - neutron_trunk/rally.log + - neutron_trunk/tempest-report.html + dest_archive_files: + - tempest_logs/functest.tempest.neutron_trunk_ports.functest.log + - tempest_logs/functest.tempest.neutron_trunk_ports.log + - tempest_logs/functest.tempest.neutron_trunk_ports.html + check_results_files: + - 'functest_results.txt' + portal_key_file: tempest_logs/functest.tempest.neutron_trunk_ports.html + sub_testcase_list: + - neutron_tempest_plugin.api.test_trunk.TrunkTestJSON.test_add_subports + - neutron_tempest_plugin.api.test_trunk.TrunkTestJSON.test_create_show_delete_trunk + - neutron_tempest_plugin.api.test_trunk.TrunkTestJSON.test_create_trunk_empty_subports_list + - neutron_tempest_plugin.api.test_trunk.TrunkTestJSON.test_create_trunk_subports_not_specified + - neutron_tempest_plugin.api.test_trunk.TrunkTestJSON.test_delete_trunk_with_subport_is_allowed + - neutron_tempest_plugin.api.test_trunk.TrunkTestJSON.test_get_subports + - neutron_tempest_plugin.api.test_trunk.TrunkTestJSON.test_list_trunks + - neutron_tempest_plugin.api.test_trunk.TrunkTestJSON.test_remove_subport + - neutron_tempest_plugin.api.test_trunk.TrunksSearchCriteriaTest.test_list_no_pagination_limit_0 + - neutron_tempest_plugin.api.test_trunk.TrunksSearchCriteriaTest.test_list_pagination + - neutron_tempest_plugin.api.test_trunk.TrunksSearchCriteriaTest.test_list_pagination_page_reverse_asc + - neutron_tempest_plugin.api.test_trunk.TrunksSearchCriteriaTest.test_list_pagination_page_reverse_desc + - neutron_tempest_plugin.api.test_trunk.TrunksSearchCriteriaTest.test_list_pagination_with_marker + - neutron_tempest_plugin.api.test_trunk.TrunksSearchCriteriaTest.test_list_sorts_asc + - neutron_tempest_plugin.api.test_trunk.TrunksSearchCriteriaTest.test_list_sorts_desc + - neutron_tempest_plugin.api.test_trunk_details.TestTrunkDetailsJSON.test_port_resource_empty_trunk_details + - neutron_tempest_plugin.api.test_trunk_details.TestTrunkDetailsJSON.test_port_resource_trunk_details_no_subports + - neutron_tempest_plugin.api.test_trunk_details.TestTrunkDetailsJSON.test_port_resource_trunk_details_with_subport + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_add_subport_duplicate_segmentation_details + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_add_subport_passing_dict + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_add_subport_port_id_disabled_trunk + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_add_subport_port_id_uses_parent_port_id + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_create_subport_missing_segmentation_id + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_create_subport_nonexistent_port_id + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_create_subport_nonexistent_trunk + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_create_trunk_duplicate_subport_segmentation_ids + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_create_trunk_nonexistent_port_id + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_create_trunk_nonexistent_subport_port_id + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_create_trunk_with_subport_missing_port_id + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_create_trunk_with_subport_missing_segmentation_id + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_create_trunk_with_subport_missing_segmentation_type + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_delete_port_in_use_by_subport + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_delete_port_in_use_by_trunk + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_delete_trunk_disabled_trunk + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_remove_subport_not_found + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_remove_subport_passing_dict + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_remove_subport_port_id_disabled_trunk + - neutron_tempest_plugin.scenario.test_trunk.TrunkTest.test_trunk_subport_lifecycle diff --git a/etc/testcase/functest.tempest.vm_lifecycle.yml b/etc/testcase/functest.tempest.vm_lifecycle.yml new file mode 100644 index 00000000..8939ad64 --- /dev/null +++ b/etc/testcase/functest.tempest.vm_lifecycle.yml @@ -0,0 +1,45 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.tempest.vm_lifecycle: + name: functest.tempest.vm_lifecycle + objective: correct behavior after common virtual machine life cycles events + validate: + type: functest + testcase: tempest_custom + pre_condition: + - 'cp /home/opnfv/pre_config/tempest_conf.yaml /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml' + - 'cp /home/opnfv/userconfig/tempest_custom_testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' + - 'cp /home/opnfv/functest/results/tempest_custom.txt /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt' + report: + source_archive_files: + - functest.log + - tempest_custom/rally.log + - tempest_custom/tempest-report.html + dest_archive_files: + - tempest_logs/functest.tempest.vm_lifecycle.functest.log + - tempest_logs/functest.tempest.vm_lifecycle.log + - tempest_logs/functest.tempest.vm_lifecycle.html + check_results_files: + - 'functest_results.txt' + portal_key_file: tempest_logs/functest.tempest.vm_lifecycle.html + sub_testcase_list: + - tempest.scenario.test_minimum_basic.TestMinimumBasicScenario.test_minimum_basic_scenario[compute,id-bdbb5441-9204-419d-a225-b4fdbfb1a1a8,image,network,volume] + - tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_cold_migration[compute,id-a4858f6c-401e-4155-9a49-d5cd053d1a2f,network,slow] + - tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_pause_unpause[compute,id-2b2642db-6568-4b35-b812-eceed3fa20ce,network,slow] + - tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_reboot[compute,id-7b6860c2-afa3-4846-9522-adeb38dfbe08,network,slow] + - tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_rebuild[compute,id-88a529c2-1daa-4c85-9aec-d541ba3eb699,network,slow] + - tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_resize[compute,id-719eb59d-2f42-4b66-b8b1-bb1254473967,network,slow] + - tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_stop_start[compute,id-61f1aa9a-1573-410e-9054-afa557cab021,network,slow] + - tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_suspend_resume[compute,id-5cdf9499-541d-4923-804e-b9a60620a7f0,network,slow] + - tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_resize_volume_backed_server_confirm[id-e6c28180-7454-4b59-b188-0257af08a63b,volume] + - tempest.scenario.test_server_advanced_ops.TestServerAdvancedOps.test_server_sequence_suspend_resume[compute,id-949da7d5-72c8-4808-8802-e3d70df98e2c,slow] + - tempest.scenario.test_shelve_instance.TestShelveInstance.test_shelve_instance[compute,id-1164e700-0af0-4a4c-8792-35909a88743c,image,network,slow] + - tempest.scenario.test_shelve_instance.TestShelveInstance.test_shelve_volume_backed_instance[compute,id-c1b6318c-b9da-490b-9c67-9339b627271f,image,network,slow,volume] diff --git a/etc/testcase/functest.tempest.volume.yml b/etc/testcase/functest.tempest.volume.yml new file mode 100644 index 00000000..405716da --- /dev/null +++ b/etc/testcase/functest.tempest.volume.yml @@ -0,0 +1,35 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.tempest.volume: + name: functest.tempest.volume + objective: tempest smoke test cases about volume + validate: + type: functest + testcase: tempest_custom + pre_condition: + - 'cp /home/opnfv/pre_config/tempest_conf.yaml /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml' + - 'cp /home/opnfv/userconfig/tempest_custom_testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' + - 'cp /home/opnfv/functest/results/tempest_custom.txt /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt' + report: + source_archive_files: + - functest.log + - tempest_custom/rally.log + - tempest_custom/tempest-report.html + dest_archive_files: + - tempest_logs/functest.tempest.volume.functest.log + - tempest_logs/functest.tempest.volume.log + - tempest_logs/functest.tempest.volume.html + check_results_files: + - 'functest_results.txt' + portal_key_file: tempest_logs/functest.tempest.volume.html + sub_testcase_list: + - tempest.api.volume.test_volumes_actions.VolumesActionsTest.test_attach_detach_volume_to_instance[compute,id-fff42874-7db5-4487-a8e1-ddda5fb5288d,smoke] + - tempest.scenario.test_volume_boot_pattern.TestVolumeBootPattern.test_volume_boot_pattern[compute,id-557cd2c2-4eb8-4dce-98be-f86765ff311b,image,slow,volume] diff --git a/etc/testcase/functest.vnf.vepc.yml b/etc/testcase/functest.vnf.vepc.yml new file mode 100644 index 00000000..7825c42f --- /dev/null +++ b/etc/testcase/functest.vnf.vepc.yml @@ -0,0 +1,28 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.vnf.vepc: + name: functest.vnf.vepc + objective: Deploy a vEPC using Juju and perform EPC-specific test cases (e.g. attaching a UE to the EPC). + validate: + type: functest + testcase: juju_epc + image_name: opnfv/functest-vnf + pre_condition: + - 'cp /home/opnfv/userconfig/vnf_testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' + report: + source_archive_files: + - functest.log + dest_archive_files: + - vnf_logs/functest.vnf.vepc.log + check_results_files: + - 'functest_results.txt' + portal_key_file: vnf_logs/functest.vnf.vepc.log + sub_testcase_list: diff --git a/etc/testcase/functest.vnf.vims.yml b/etc/testcase/functest.vnf.vims.yml new file mode 100644 index 00000000..17769ca3 --- /dev/null +++ b/etc/testcase/functest.vnf.vims.yml @@ -0,0 +1,28 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.vnf.vims: + name: functest.vnf.vims + objective: testing for Clearwater IMS deployment using Cloudify orchestrator + validate: + type: functest + testcase: cloudify_ims + image_name: opnfv/functest-vnf + pre_condition: + - 'cp /home/opnfv/userconfig/vnf_testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' + report: + source_archive_files: + - functest.log + dest_archive_files: + - vnf_logs/functest.vnf.vims.log + check_results_files: + - 'functest_results.txt' + portal_key_file: vnf_logs/functest.vnf.vims.log + sub_testcase_list: diff --git a/etc/testcase/functest.vping.ssh.yml b/etc/testcase/functest.vping.ssh.yml new file mode 100644 index 00000000..d0efb7e9 --- /dev/null +++ b/etc/testcase/functest.vping.ssh.yml @@ -0,0 +1,26 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.vping.ssh: + name: functest.vping.ssh + objective: testing for vping using ssh + validate: + type: functest + testcase: vping_ssh + image_name: opnfv/functest-healthcheck + report: + source_archive_files: + - functest.log + dest_archive_files: + - vping_logs/functest.vping.ssh.log + check_results_files: + - 'functest_results.txt' + portal_key_file: vping_logs/functest.vping.ssh.log + sub_testcase_list: diff --git a/etc/testcase/functest.vping.userdata.yml b/etc/testcase/functest.vping.userdata.yml new file mode 100644 index 00000000..d98c19ec --- /dev/null +++ b/etc/testcase/functest.vping.userdata.yml @@ -0,0 +1,26 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +functest.vping.userdata: + name: functest.vping.userdata + objective: testing for vping using userdata + validate: + type: functest + testcase: vping_userdata + image_name: opnfv/functest-healthcheck + report: + source_archive_files: + - functest.log + dest_archive_files: + - vping_logs/functest.vping.userdata.log + check_results_files: + - 'functest_results.txt' + portal_key_file: vping_logs/functest.vping.userdata.log + sub_testcase_list: diff --git a/etc/testcase/onap-vtp.validate.csar.yml b/etc/testcase/onap-vtp.validate.csar.yml new file mode 100644 index 00000000..ed8f32ed --- /dev/null +++ b/etc/testcase/onap-vtp.validate.csar.yml @@ -0,0 +1,26 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +onap-vtp.validate.csar: + name: onap-vtp.validate.csar + objective: onap csar validation + vnf_type: tosca + validate: + type: onap-vtp + testcase: csar-validate + report: + source_archive_files: + - onap-vtp.validate.csar.out + dest_archive_files: + - onap-vtp_logs/onap-vtp.validate.csar.out + check_results_files: + - onap-vtp_logs/onap-vtp.validate.csar.out + portal_key_file: onap-vtp_logs/onap-vtp.validate.csar.out + sub_testcase_list: diff --git a/etc/testcase/onap-vvp.validate.heat.yml b/etc/testcase/onap-vvp.validate.heat.yml new file mode 100644 index 00000000..a166bdc6 --- /dev/null +++ b/etc/testcase/onap-vvp.validate.heat.yml @@ -0,0 +1,28 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +onap-vvp.validate.heat: + name: onap-vvp.validate.heat + objective: onap heat template validation + vnf_type: heat + validate: + type: onap-vvp + testcase: ice_validator + report: + source_archive_files: + - failures + - report.json + dest_archive_files: + - onap-vvp_logs/failures + - onap-vvp_logs/report.json + check_results_files: + - onap-vvp_logs/report.json + portal_key_file: onap-vvp_logs/report.json + sub_testcase_list: diff --git a/etc/testcase/yardstick.ha.cinder_api.yml b/etc/testcase/yardstick.ha.cinder_api.yml new file mode 100644 index 00000000..e6162739 --- /dev/null +++ b/etc/testcase/yardstick.ha.cinder_api.yml @@ -0,0 +1,29 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +yardstick.ha.cinder_api: + name: yardstick.ha.cinder_api + objective: > + This test case will verify the high availability of the + volume service provided by OpenStack (cinder-api) on control node. + validate: + type: yardstick + testcase: opnfv_yardstick_tc048 + report: + source_archive_files: + - yardstick.log + - yardstick.ha.cinder_api.out + dest_archive_files: + - ha_logs/yardstick.ha.cinder_api.log + - ha_logs/yardstick.ha.cinder_api.out + check_results_files: + - ha_logs/yardstick.ha.cinder_api.out + portal_key_file: ha_logs/yardstick.ha.cinder_api.log + sub_testcase_list: diff --git a/etc/testcase/yardstick.ha.controller_restart.yml b/etc/testcase/yardstick.ha.controller_restart.yml new file mode 100644 index 00000000..dddf89b7 --- /dev/null +++ b/etc/testcase/yardstick.ha.controller_restart.yml @@ -0,0 +1,27 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +yardstick.ha.controller_restart: + name: yardstick.ha.controller_restart + objective: OpenStack Controll Node abnormally shutdown. + validate: + type: yardstick + testcase: opnfv_yardstick_tc025 + report: + source_archive_files: + - yardstick.log + - yardstick.ha.controller_restart.out + dest_archive_files: + - ha_logs/yardstick.ha.controller_restart.log + - ha_logs/yardstick.ha.controller_restart.out + check_results_files: + - ha_logs/yardstick.ha.controller_restart.out + portal_key_file: ha_logs/yardstick.ha.controller_restart.log + sub_testcase_list: diff --git a/etc/testcase/yardstick.ha.cpu_load.yml b/etc/testcase/yardstick.ha.cpu_load.yml new file mode 100644 index 00000000..86c25091 --- /dev/null +++ b/etc/testcase/yardstick.ha.cpu_load.yml @@ -0,0 +1,32 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +yardstick.ha.cpu_load: + name: yardstick.ha.cpu_load + objective: > + This test case will verify the high availability of control node. + When the CPU usage of a specified controller node is stressed to 100%, + which breaks down the Openstack services on this node. These Openstack service + should able to be accessed by other controller nodes, and the services on + failed controller node should be isolated. + validate: + type: yardstick + testcase: opnfv_yardstick_tc051 + report: + source_archive_files: + - yardstick.log + - yardstick.ha.cpu_load.out + dest_archive_files: + - ha_logs/yardstick.ha.cpu_load.log + - ha_logs/yardstick.ha.cpu_load.out + check_results_files: + - ha_logs/yardstick.ha.cpu_load.out + portal_key_file: ha_logs/yardstick.ha.cpu_load.log + sub_testcase_list: diff --git a/etc/testcase/yardstick.ha.database.yml b/etc/testcase/yardstick.ha.database.yml new file mode 100644 index 00000000..ea0a6d49 --- /dev/null +++ b/etc/testcase/yardstick.ha.database.yml @@ -0,0 +1,29 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +yardstick.ha.database: + name: yardstick.ha.database + objective: > + This test case verifies the high-availability of the OpenStack + controller database instance. + validate: + type: yardstick + testcase: opnfv_yardstick_tc090 + report: + source_archive_files: + - yardstick.log + - yardstick.ha.database.out + dest_archive_files: + - ha_logs/yardstick.ha.database.log + - ha_logs/yardstick.ha.database.out + check_results_files: + - ha_logs/yardstick.ha.database.out + portal_key_file: ha_logs/yardstick.ha.database.log + sub_testcase_list: diff --git a/etc/testcase/yardstick.ha.disk_load.yml b/etc/testcase/yardstick.ha.disk_load.yml new file mode 100644 index 00000000..6969984c --- /dev/null +++ b/etc/testcase/yardstick.ha.disk_load.yml @@ -0,0 +1,31 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +yardstick.ha.disk_load: + name: yardstick.ha.disk_load + objective: > + This test case will verify the high availability of control node. + When the disk I/O of a specified disk is blocked, which breaks down the Openstack + services on this node. Read and write services should still be accessed by other + controller nodes, and the services on failed controller node should be isolated. + validate: + type: yardstick + testcase: opnfv_yardstick_tc052 + report: + source_archive_files: + - yardstick.log + - yardstick.ha.disk_load.out + dest_archive_files: + - ha_logs/yardstick.ha.disk_load.log + - ha_logs/yardstick.ha.disk_load.out + check_results_files: + - ha_logs/yardstick.ha.disk_load.out + portal_key_file: ha_logs/yardstick.ha.disk_load.log + sub_testcase_list: diff --git a/etc/testcase/yardstick.ha.glance_api.yml b/etc/testcase/yardstick.ha.glance_api.yml new file mode 100644 index 00000000..bbce399e --- /dev/null +++ b/etc/testcase/yardstick.ha.glance_api.yml @@ -0,0 +1,29 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +yardstick.ha.glance_api: + name: yardstick.ha.glance_api + objective: > + This test case will verify the high availability of the + image service provided by OpenStack (glance-api) on control node. + validate: + type: yardstick + testcase: opnfv_yardstick_tc047 + report: + source_archive_files: + - yardstick.log + - yardstick.ha.glance_api.out + dest_archive_files: + - ha_logs/yardstick.ha.glance_api.log + - ha_logs/yardstick.ha.glance_api.out + check_results_files: + - ha_logs/yardstick.ha.glance_api.out + portal_key_file: ha_logs/yardstick.ha.glance_api.log + sub_testcase_list: diff --git a/etc/testcase/yardstick.ha.haproxy.yml b/etc/testcase/yardstick.ha.haproxy.yml new file mode 100644 index 00000000..16748dbe --- /dev/null +++ b/etc/testcase/yardstick.ha.haproxy.yml @@ -0,0 +1,32 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +yardstick.ha.haproxy: + name: yardstick.ha.haproxy + objective: > + This test case will verify the high availability of the load balance + service(current is HAProxy) that supports OpenStack on controller node. When the + load balance service of a specified controller node is killed, whether other + load balancers on other controller nodes will work, and whether the controller node + will restart the load balancer are checked. + validate: + type: yardstick + testcase: opnfv_yardstick_tc053 + report: + source_archive_files: + - yardstick.log + - yardstick.ha.haproxy.out + dest_archive_files: + - ha_logs/yardstick.ha.haproxy.log + - ha_logs/yardstick.ha.haproxy.out + check_results_files: + - ha_logs/yardstick.ha.haproxy.out + portal_key_file: ha_logs/yardstick.ha.haproxy.log + sub_testcase_list: diff --git a/etc/testcase/yardstick.ha.keystone.yml b/etc/testcase/yardstick.ha.keystone.yml new file mode 100644 index 00000000..31d84aab --- /dev/null +++ b/etc/testcase/yardstick.ha.keystone.yml @@ -0,0 +1,29 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +yardstick.ha.keystone: + name: yardstick.ha.keystone + objective: > + This test case will verify the high availability of the + user service provided by OpenStack (keystone) on control node. + validate: + type: yardstick + testcase: opnfv_yardstick_tc046 + report: + source_archive_files: + - yardstick.log + - yardstick.ha.keystone.out + dest_archive_files: + - ha_logs/yardstick.ha.keystone.log + - ha_logs/yardstick.ha.keystone.out + check_results_files: + - ha_logs/yardstick.ha.keystone.out + portal_key_file: ha_logs/yardstick.ha.keystone.log + sub_testcase_list: diff --git a/etc/testcase/yardstick.ha.neutron_l3_agent.yml b/etc/testcase/yardstick.ha.neutron_l3_agent.yml new file mode 100644 index 00000000..0af89646 --- /dev/null +++ b/etc/testcase/yardstick.ha.neutron_l3_agent.yml @@ -0,0 +1,43 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +yardstick.ha.neutron_l3_agent: + name: yardstick.ha.neutron_l3_agent + objective: OpenStack Controller Virtual Router Service High Availability. + validate: + type: yardstick + testcase: opnfv_yardstick_tc058 + pre_condition: + - 'source /etc/yardstick/openstack.creds && + openstack --insecure image create neutron-l3-agent_ha_image + --disk-format qcow2 --container-format bare --public + --file /home/opnfv/images/cirros-0.4.0-x86_64-disk.img && + openstack --insecure flavor create --ram 512 --vcpu 1 --disk 1 neutron-l3-agent_ha_flavor' + cmds: + - "cd /home/opnfv/repos/yardstick && source /etc/yardstick/openstack.creds && + yardstick task start tests/opnfv/test_cases/{{validate_testcase}}.yaml + --output-file /tmp/yardstick/{{testcase}}.out + --task-args '{'file': '/etc/yardstick/pod.yaml', + 'image': 'neutron-l3-agent_ha_image', 'flavor': 'neutron-l3-agent_ha_flavor'}'" + post_condition: + - 'source /etc/yardstick/openstack.creds && + openstack --insecure image delete neutron-l3-agent_ha_image && + openstack --insecure flavor delete neutron-l3-agent_ha_flavor' + report: + source_archive_files: + - yardstick.log + - yardstick.ha.neutron_l3_agent.out + dest_archive_files: + - ha_logs/yardstick.ha.neutron_l3_agent.log + - ha_logs/yardstick.ha.neutron_l3_agent.out + check_results_files: + - ha_logs/yardstick.ha.neutron_l3_agent.out + portal_key_file: ha_logs/yardstick.ha.neutron_l3_agent.log + sub_testcase_list: diff --git a/etc/testcase/yardstick.ha.neutron_server.yml b/etc/testcase/yardstick.ha.neutron_server.yml new file mode 100644 index 00000000..d700294c --- /dev/null +++ b/etc/testcase/yardstick.ha.neutron_server.yml @@ -0,0 +1,29 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +yardstick.ha.neutron_server: + name: yardstick.ha.neutron_server + objective: > + This test case will verify the high availability of the + network service provided by OpenStack (neutro-server) on control node. + validate: + type: yardstick + testcase: opnfv_yardstick_tc045 + report: + source_archive_files: + - yardstick.log + - yardstick.ha.neutron_server.out + dest_archive_files: + - ha_logs/yardstick.ha.neutron_server.log + - ha_logs/yardstick.ha.neutron_server.out + check_results_files: + - ha_logs/yardstick.ha.neutron_server.out + portal_key_file: ha_logs/yardstick.ha.neutron_server.log + sub_testcase_list: diff --git a/etc/testcase/yardstick.ha.nova_api.yml b/etc/testcase/yardstick.ha.nova_api.yml new file mode 100644 index 00000000..91f1a609 --- /dev/null +++ b/etc/testcase/yardstick.ha.nova_api.yml @@ -0,0 +1,29 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +yardstick.ha.nova_api: + name: yardstick.ha.nova_api + objective: > + This test case will verify the high availability + of the service provided by OpenStack (like nova-api, neutro-server) on control node. + validate: + type: yardstick + testcase: opnfv_yardstick_tc019 + report: + source_archive_files: + - yardstick.log + - yardstick.ha.nova_api.out + dest_archive_files: + - ha_logs/yardstick.ha.nova_api.log + - ha_logs/yardstick.ha.nova_api.out + check_results_files: + - ha_logs/yardstick.ha.nova_api.out + portal_key_file: ha_logs/yardstick.ha.nova_api.log + sub_testcase_list: diff --git a/etc/testcase/yardstick.ha.rabbitmq.yml b/etc/testcase/yardstick.ha.rabbitmq.yml new file mode 100644 index 00000000..447f0270 --- /dev/null +++ b/etc/testcase/yardstick.ha.rabbitmq.yml @@ -0,0 +1,27 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +yardstick.ha.rabbitmq: + name: yardstick.ha.rabbitmq + objective: OpenStack Controller Messaging Queue Service High Availability. + validate: + type: yardstick + testcase: opnfv_yardstick_tc056 + report: + source_archive_files: + - yardstick.log + - yardstick.ha.rabbitmq.out + dest_archive_files: + - ha_logs/yardstick.ha.rabbitmq.log + - ha_logs/yardstick.ha.rabbitmq.out + check_results_files: + - ha_logs/yardstick.ha.rabbitmq.out + portal_key_file: ha_logs/yardstick.ha.rabbitmq.log + sub_testcase_list: diff --git a/etc/userconfig/ansible.cfg b/etc/userconfig/ansible.cfg new file mode 100644 index 00000000..15e9c250 --- /dev/null +++ b/etc/userconfig/ansible.cfg @@ -0,0 +1,11 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +[defaults] +host_key_checking = False diff --git a/etc/userconfig/env_config.sh.onap.sample b/etc/userconfig/env_config.sh.onap.sample new file mode 100644 index 00000000..81363e48 --- /dev/null +++ b/etc/userconfig/env_config.sh.onap.sample @@ -0,0 +1,22 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +## Special environment parameters for TOSCA validation tests. + +# The url under which the VNF SDK container is accessible through the host. +export HOST_URL="http://<docker host ip>:8702" + +# Absolute path of the CSAR file in container 'refrepo'. +export CSAR_FILE="/opt/test.csar" + +## Special environment parameters for Heat validation tests. + +# The VNF archive should be zip file and put at $DOVETAIL_HOME/pre_config. +# Here should give the name without postfix .zip. +export VNF_ARCHIVE_NAME="vnf_archive_name" diff --git a/etc/userconfig/env_config.sh.sample b/etc/userconfig/env_config.sh.sample new file mode 100644 index 00000000..3909427e --- /dev/null +++ b/etc/userconfig/env_config.sh.sample @@ -0,0 +1,41 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +# Project-level authentication scope (name or ID), recommend admin project. +export OS_PROJECT_NAME=admin + +# Authentication username, belongs to the project above, recommend admin user. +export OS_USERNAME=admin + +# Authentication password. Use your own password +export OS_PASSWORD=xxxxxxxx + +# Authentication URL, one of the endpoints of keystone service. If this is v3 version, +# there need some extra variables as follows. +export OS_AUTH_URL='http://xxx.xxx.xxx.xxx:5000/v3' + +# Default is 2.0. If use keystone v3 API, this should be set as 3. +export OS_IDENTITY_API_VERSION=3 + +# Domain name or ID containing the user above. +# Command to check the domain: openstack user show <OS_USERNAME> +export OS_USER_DOMAIN_NAME=default + +# Domain name or ID containing the project above. +# Command to check the domain: openstack project show <OS_PROJECT_NAME> +export OS_PROJECT_DOMAIN_NAME=default + +# Special environment parameters for https. +# If using https + cacert, the path of cacert file should be provided. +# The cacert file should be put at $DOVETAIL_HOME/pre_config. +#export OS_CACERT=/path/to/pre_config/cacert.pem + +# If using https + no cacert, should add OS_INSECURE environment parameter. +#export OS_INSECURE=True + diff --git a/etc/userconfig/hosts.yaml.sample b/etc/userconfig/hosts.yaml.sample new file mode 100644 index 00000000..445711db --- /dev/null +++ b/etc/userconfig/hosts.yaml.sample @@ -0,0 +1,16 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +hosts_info: + 192.168.141.101: + - ha-vip + <ip>: + - <hostname1> + - <hostname2> diff --git a/etc/userconfig/patrole_blacklist.yaml b/etc/userconfig/patrole_blacklist.yaml new file mode 100644 index 00000000..8fb99fee --- /dev/null +++ b/etc/userconfig/patrole_blacklist.yaml @@ -0,0 +1,37 @@ +--- +- + scenarios: + - (.*) + tests: + # need metering extension, otherwise the following 6 sub test cases will skip + - patrole_tempest_plugin.tests.api.network.test_metering_label_rules_rbac.MeteringLabelRulesRbacTest.test_create_metering_label_rule + - patrole_tempest_plugin.tests.api.network.test_metering_label_rules_rbac.MeteringLabelRulesRbacTest.test_delete_metering_label_rule + - patrole_tempest_plugin.tests.api.network.test_metering_label_rules_rbac.MeteringLabelRulesRbacTest.test_show_metering_label_rule + - patrole_tempest_plugin.tests.api.network.test_metering_labels_rbac.MeteringLabelsRbacTest.test_create_metering_label + - patrole_tempest_plugin.tests.api.network.test_metering_labels_rbac.MeteringLabelsRbacTest.test_delete_metering_label + - patrole_tempest_plugin.tests.api.network.test_metering_labels_rbac.MeteringLabelsRbacTest.test_show_metering_label + # need image type 'shared' and 'community' which were added in the Image API v2.5 + - patrole_tempest_plugin.tests.api.image.test_images_member_rbac.ImagesMemberRbacTest.test_update_image_member + - patrole_tempest_plugin.tests.api.image.test_images_rbac.BasicOperationsImagesRbacTest.test_communitize_image + # need l3_agent_scheduler extension which may not enabled on some SUTs with odl + - patrole_tempest_plugin.tests.api.network.test_agents_rbac.L3AgentSchedulerRbacTest.test_create_router_on_l3_agent + - patrole_tempest_plugin.tests.api.network.test_agents_rbac.L3AgentSchedulerRbacTest.test_delete_router_from_l3_agent + - patrole_tempest_plugin.tests.api.network.test_agents_rbac.L3AgentSchedulerRbacTest.test_list_routers_on_l3_agent + # need network extension: dvr, otherwise the following 3 sub test cases will skip + - patrole_tempest_plugin.tests.api.network.test_routers_rbac.RouterRbacTest.test_create_distributed_router + - patrole_tempest_plugin.tests.api.network.test_routers_rbac.RouterRbacTest.test_show_distributed_router + - patrole_tempest_plugin.tests.api.network.test_routers_rbac.RouterRbacTest.test_update_distributed_router + # need network extension: l3-ha which may not enabled on some SUTs with odl + - patrole_tempest_plugin.tests.api.network.test_routers_rbac.RouterRbacTest.test_create_high_availability_router + - patrole_tempest_plugin.tests.api.network.test_routers_rbac.RouterRbacTest.test_update_high_availability_router + # need segment extension, otherwise the following 4 sub test cases will skip + - patrole_tempest_plugin.tests.api.network.test_segments_rbac.SegmentsPluginRbacTest.test_create_segment + - patrole_tempest_plugin.tests.api.network.test_segments_rbac.SegmentsPluginRbacTest.test_delete_segment + - patrole_tempest_plugin.tests.api.network.test_segments_rbac.SegmentsPluginRbacTest.test_show_segment + - patrole_tempest_plugin.tests.api.network.test_segments_rbac.SegmentsPluginRbacTest.test_update_segment + # need flat provider network type + - patrole_tempest_plugin.tests.api.network.test_networks_rbac.NetworksRbacTest.test_create_network_provider_physical_network + # need vxlan provider network type + - patrole_tempest_plugin.tests.api.network.test_networks_rbac.NetworksRbacTest.test_update_network_provider_network_type + - patrole_tempest_plugin.tests.api.network.test_networks_rbac.NetworksRbacTest.test_create_network_provider_network_type + - patrole_tempest_plugin.tests.api.network.test_networks_rbac.NetworksRbacTest.test_create_network_provider_segmentation_id diff --git a/etc/userconfig/pod.yaml.sample b/etc/userconfig/pod.yaml.sample new file mode 100644 index 00000000..71b276a5 --- /dev/null +++ b/etc/userconfig/pod.yaml.sample @@ -0,0 +1,76 @@ +############################################################################## +# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +--- +# sample config file about the POD information, including the +# name/IP/user/ssh key and Controllers/Computes +# +# The options of this config file include: +# name: the name of this node +# role: node's role, support role: Master/Controller/Comupte/BareMetal +# ip: the node's IP address +# user: the username for login +# key_filename:the path of the private key file for login + +nodes: +- + name: node1 + role: Controller + ip: 10.1.0.50 + user: root + key_filename: /root/.ssh/id_rsa +- + name: node2 + role: Controller + ip: 10.1.0.51 + user: root + key_filename: /root/.ssh/id_rsa +- + name: node3 + role: Controller + ip: 10.1.0.52 + user: root + key_filename: /root/.ssh/id_rsa +- + name: node4 + role: Compute + ip: 10.1.0.53 + user: root + key_filename: /root/.ssh/id_rsa +- + name: node5 + role: Compute + ip: 10.1.0.54 + user: root + key_filename: /root/.ssh/id_rsa + +# The options of this section include: +# testcase_name: the name of test case +# attack_process: the name of the process this test case attempt to kill +# attack_host: one of the hosts given in section 'nodes' which is the primary host of attack_process +# +# if not set, it will use the default value of yardstick test case config +# the default attack_host of all test cases is 'node1' +# the default attack_process of all test cases are +# dovetail.ha.tc001: nova-api +# dovetail.ha.tc002: neutron-server +# dovetail.ha.tc003: keystone +# dovetail.ha.tc004: glance-api +# dovetail.ha.tc005: cinder-api +# dovetail.ha.tc008: haproxy +# dovetail.ha.tc010: rabbitmq-server +# dovetail.ha.tc011: neutron-l3-agent + +# process_info: +# - +# testcase_name: dovetail.ha.tc008 +# attack_host: node2 +# +# - +# testcase_name: dovetail.ha.tc010 +# attack_process: rabbitmq diff --git a/etc/userconfig/rally_authenticate_testcases.yaml b/etc/userconfig/rally_authenticate_testcases.yaml new file mode 100644 index 00000000..e2e67446 --- /dev/null +++ b/etc/userconfig/rally_authenticate_testcases.yaml @@ -0,0 +1,31 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +tiers: + - + name: components + order: 1 + description: >- + Run several OpenStack performance tools + https://docs.openstack.org/performance-docs/latest/methodologies/tools.html + testcases: + - + case_name: rally_full + project_name: functest + criteria: 100 + blocking: false + description: >- + This test case runs the Authenticate scenarios of the + OpenStack Rally suite using several threads and iterations. + run: + name: rally_full + args: + tests: + - 'authenticate' diff --git a/etc/userconfig/rally_cinder_testcases.yaml b/etc/userconfig/rally_cinder_testcases.yaml new file mode 100644 index 00000000..245b1285 --- /dev/null +++ b/etc/userconfig/rally_cinder_testcases.yaml @@ -0,0 +1,31 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +tiers: + - + name: components + order: 1 + description: >- + Run several OpenStack performance tools + https://docs.openstack.org/performance-docs/latest/methodologies/tools.html + testcases: + - + case_name: rally_full + project_name: functest + criteria: 100 + blocking: false + description: >- + This test case runs the Cinder scenarios of the + OpenStack Rally suite using several threads and iterations. + run: + name: rally_full + args: + tests: + - 'cinder' diff --git a/etc/userconfig/rally_glance_testcases.yaml b/etc/userconfig/rally_glance_testcases.yaml new file mode 100644 index 00000000..abaead70 --- /dev/null +++ b/etc/userconfig/rally_glance_testcases.yaml @@ -0,0 +1,31 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +tiers: + - + name: components + order: 1 + description: >- + Run several OpenStack performance tools + https://docs.openstack.org/performance-docs/latest/methodologies/tools.html + testcases: + - + case_name: rally_full + project_name: functest + criteria: 100 + blocking: false + description: >- + This test case runs the Glance scenarios of the + OpenStack Rally suite using several threads and iterations. + run: + name: rally_full + args: + tests: + - 'glance' diff --git a/etc/userconfig/rally_gnocchi_testcases.yaml b/etc/userconfig/rally_gnocchi_testcases.yaml new file mode 100644 index 00000000..378b5f59 --- /dev/null +++ b/etc/userconfig/rally_gnocchi_testcases.yaml @@ -0,0 +1,31 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +tiers: + - + name: components + order: 1 + description: >- + Run several OpenStack performance tools + https://docs.openstack.org/performance-docs/latest/methodologies/tools.html + testcases: + - + case_name: rally_full + project_name: functest + criteria: 100 + blocking: false + description: >- + This test case runs the Gnocchi scenarios of the + OpenStack Rally suite using several threads and iterations. + run: + name: rally_full + args: + tests: + - 'gnocchi' diff --git a/etc/userconfig/rally_heat_testcases.yaml b/etc/userconfig/rally_heat_testcases.yaml new file mode 100644 index 00000000..311d4f3f --- /dev/null +++ b/etc/userconfig/rally_heat_testcases.yaml @@ -0,0 +1,31 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +tiers: + - + name: components + order: 1 + description: >- + Run several OpenStack performance tools + https://docs.openstack.org/performance-docs/latest/methodologies/tools.html + testcases: + - + case_name: rally_full + project_name: functest + criteria: 100 + blocking: false + description: >- + This test case runs the Heat scenarios of the + OpenStack Rally suite using several threads and iterations. + run: + name: rally_full + args: + tests: + - 'heat' diff --git a/etc/userconfig/rally_keystone_testcases.yaml b/etc/userconfig/rally_keystone_testcases.yaml new file mode 100644 index 00000000..6a60ca7c --- /dev/null +++ b/etc/userconfig/rally_keystone_testcases.yaml @@ -0,0 +1,31 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +tiers: + - + name: components + order: 1 + description: >- + Run several OpenStack performance tools + https://docs.openstack.org/performance-docs/latest/methodologies/tools.html + testcases: + - + case_name: rally_full + project_name: functest + criteria: 100 + blocking: false + description: >- + This test case runs the Keystone scenarios of the + OpenStack Rally suite using several threads and iterations. + run: + name: rally_full + args: + tests: + - 'keystone' diff --git a/etc/userconfig/rally_neutron_testcases.yaml b/etc/userconfig/rally_neutron_testcases.yaml new file mode 100644 index 00000000..66a7b030 --- /dev/null +++ b/etc/userconfig/rally_neutron_testcases.yaml @@ -0,0 +1,31 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +tiers: + - + name: components + order: 1 + description: >- + Run several OpenStack performance tools + https://docs.openstack.org/performance-docs/latest/methodologies/tools.html + testcases: + - + case_name: rally_full + project_name: functest + criteria: 100 + blocking: false + description: >- + This test case runs the Neutron scenarios of the + OpenStack Rally suite using several threads and iterations. + run: + name: rally_full + args: + tests: + - 'neutron' diff --git a/etc/userconfig/rally_nova_testcases.yaml b/etc/userconfig/rally_nova_testcases.yaml new file mode 100644 index 00000000..8c54de21 --- /dev/null +++ b/etc/userconfig/rally_nova_testcases.yaml @@ -0,0 +1,31 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +tiers: + - + name: components + order: 1 + description: >- + Run several OpenStack performance tools + https://docs.openstack.org/performance-docs/latest/methodologies/tools.html + testcases: + - + case_name: rally_full + project_name: functest + criteria: 100 + blocking: false + description: >- + This test case runs the Nova scenarios of the + OpenStack Rally suite using several threads and iterations. + run: + name: rally_full + args: + tests: + - 'nova' diff --git a/etc/userconfig/rally_quotas_testcases.yaml b/etc/userconfig/rally_quotas_testcases.yaml new file mode 100644 index 00000000..add0cca5 --- /dev/null +++ b/etc/userconfig/rally_quotas_testcases.yaml @@ -0,0 +1,31 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +tiers: + - + name: components + order: 1 + description: >- + Run several OpenStack performance tools + https://docs.openstack.org/performance-docs/latest/methodologies/tools.html + testcases: + - + case_name: rally_full + project_name: functest + criteria: 100 + blocking: false + description: >- + This test case runs the Quotas scenarios of the + OpenStack Rally suite using several threads and iterations. + run: + name: rally_full + args: + tests: + - 'quotas' diff --git a/etc/userconfig/tempest_conf.yaml.sample b/etc/userconfig/tempest_conf.yaml.sample new file mode 100644 index 00000000..43a2a76b --- /dev/null +++ b/etc/userconfig/tempest_conf.yaml.sample @@ -0,0 +1,25 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +# This is an empty configuration file to be filled up with the desired options +# to generate a custom tempest.conf +# Examples: +# network-feature-enabled: +# port_security: True + +# volume-feature-enabled: +# api_v1: False + +# validation: +# image_ssh_user: root +# ssh_timeout: 300 + +# compute: +# min_compute_nodes: 2 +# volume_device_name: vdb diff --git a/etc/userconfig/tempest_custom_testcases.yaml b/etc/userconfig/tempest_custom_testcases.yaml new file mode 100644 index 00000000..03170b40 --- /dev/null +++ b/etc/userconfig/tempest_custom_testcases.yaml @@ -0,0 +1,34 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +tiers: + - + name: smoke + order: 1 + description: >- + Set of basic Functional tests to validate the OPNFV scenarios. + testcases: + - + case_name: tempest_custom + project_name: functest + criteria: 100 + blocking: false + 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. + run: + name: tempest_common + args: + mode: 'custom' + option: + - '--concurrency=4' diff --git a/etc/userconfig/testcases.yaml b/etc/userconfig/testcases.yaml new file mode 100644 index 00000000..440807bb --- /dev/null +++ b/etc/userconfig/testcases.yaml @@ -0,0 +1,35 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +tiers: + - + name: smoke + order: 1 + ci_loop: '(daily)|(weekly)' + description: >- + Set of basic Functional tests to validate the OPNFV scenarios. + testcases: + - + case_name: tempest_custom + project_name: functest + criteria: 100 + blocking: false + 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: '' + scenario: '' + run: + module: 'functest.opnfv_tests.openstack.tempest.tempest' + class: 'TempestCustom' diff --git a/etc/userconfig/trunk_port_blacklist.yaml b/etc/userconfig/trunk_port_blacklist.yaml new file mode 100644 index 00000000..bf4cfe08 --- /dev/null +++ b/etc/userconfig/trunk_port_blacklist.yaml @@ -0,0 +1,28 @@ +--- +- + scenarios: + - (.*) + tests: + # need VLAN type driver, otherwise the following 1 sub test case will skip + - neutron_tempest_plugin.api.test_trunk.TrunkTestInheritJSONBase.test_add_subport + # need vxlan type driver, otherwise the following 1 sub test case will skip + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestJSON.test_create_subport_invalid_inherit_network_segmentation_type + # need vxlan or gre type driver, otherwise the following 6 sub test case will skip + - neutron_tempest_plugin.api.test_trunk.TrunkTestMtusJSON.test_add_subport_with_mtu_equal_to_trunk + - neutron_tempest_plugin.api.test_trunk.TrunkTestMtusJSON.test_add_subport_with_mtu_greater_than_subport + - neutron_tempest_plugin.api.test_trunk.TrunkTestMtusJSON.test_create_trunk_with_mtu_equal_to_subport + - neutron_tempest_plugin.api.test_trunk.TrunkTestMtusJSON.test_create_trunk_with_mtu_greater_than_subport + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestMtusJSON.test_add_subport_with_mtu_greater_than_trunk + - neutron_tempest_plugin.api.test_trunk_negative.TrunkTestMtusJSON.test_create_trunk_with_mtu_smaller_than_subport + # advanced image is required to run this test, otherwise the following 2 sub test case will skip + - neutron_tempest_plugin.scenario.test_trunk.TrunkTest.test_parent_port_connectivity_after_trunk_deleted_lb + - neutron_tempest_plugin.scenario.test_trunk.TrunkTest.test_subport_connectivity + # key 'revision_number' is a new extension for Newton and not support by Mitaka + - neutron_tempest_plugin.api.test_trunk.TrunkTestJSON.test_create_update_trunk + # extension 'project-id' is a new extension for Newton + - neutron_tempest_plugin.api.test_trunk.TrunkTestJSON.test_show_trunk_has_project_id + # Can not work correctly on Mitaka + - neutron_tempest_plugin.api.test_trunk.TrunkTestJSON.test_create_update_trunk_with_description + # Remove neutron trunk test cases with href links + - neutron_tempest_plugin.api.test_trunk.TrunksSearchCriteriaTest.test_list_pagination_page_reverse_with_href_links + - neutron_tempest_plugin.api.test_trunk.TrunksSearchCriteriaTest.test_list_pagination_with_href_links diff --git a/etc/userconfig/vnf_testcases.yaml b/etc/userconfig/vnf_testcases.yaml new file mode 100644 index 00000000..21586ab6 --- /dev/null +++ b/etc/userconfig/vnf_testcases.yaml @@ -0,0 +1,39 @@ +############################################################################## +# Copyright (c) 2019 opnfv. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +--- +tiers: + - + name: vnf + order: 5 + description: >- + Collection of VNF test cases. + testcases: + - + case_name: cloudify_ims + project_name: functest + criteria: 100 + blocking: false + description: >- + This test case deploys an OpenSource vIMS solution from + Clearwater using the Cloudify orchestrator. It also runs + some signaling traffic. + run: + name: cloudify_ims + + - + case_name: juju_epc + project_name: functest + criteria: 100 + blocking: false + description: >- + vEPC validation with Juju as VNF manager and ABoT as test + executor. + run: + name: juju_epc |