From e1dc928517e4c852b25cbb8f7455e49d7ce3ede7 Mon Sep 17 00:00:00 2001 From: Cédric Ollivier Date: Sun, 15 Jul 2018 14:15:45 +0200 Subject: Dynamically skip neutron_trunk and barbican MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It avoids fasly testcases in failure for end users. It also removes the neutron_trunk class which is now useless (Queens). Change-Id: I3f5a1ac84a50e061da6eadcc5c9bafb2e99050db Signed-off-by: Cédric Ollivier --- docker/smoke/testcases.yaml | 13 +++++---- functest/ci/testcases.yaml | 13 +++++---- functest/opnfv_tests/openstack/tempest/tempest.py | 34 +++++++++++++++++++++++ functest/opnfv_tests/openstack/trunk/__init__.py | 0 functest/opnfv_tests/openstack/trunk/trunk.py | 27 ------------------ 5 files changed, 48 insertions(+), 39 deletions(-) delete mode 100644 functest/opnfv_tests/openstack/trunk/__init__.py delete mode 100644 functest/opnfv_tests/openstack/trunk/trunk.py diff --git a/docker/smoke/testcases.yaml b/docker/smoke/testcases.yaml index 207bfc96b..b59af41a7 100644 --- a/docker/smoke/testcases.yaml +++ b/docker/smoke/testcases.yaml @@ -125,13 +125,14 @@ tiers: OpenStack Tempest suite. The list of test cases is generated by Tempest having as input the relevant testcase list file. - dependencies: - - INSTALLER_TYPE: '(fuel)|(apex)|(compass)' run: - module: 'functest.opnfv_tests.openstack.trunk.trunk' - class: 'TempestNeutronTrunk' + module: 'functest.opnfv_tests.openstack.tempest.tempest' + class: 'TempestCommon' args: mode: 'neutron_tempest_plugin.(api|scenario).test_trunk' + neutron_extensions: + - trunk + - trunk_details - case_name: barbican @@ -141,10 +142,10 @@ tiers: description: >- It leverages on the tempest plugin containing tests used to verify the functionality of a barbican installation. - dependencies: - - INSTALLER_TYPE: '^((?!fuel|apex|compass|daisy|osa).)*$' run: module: 'functest.opnfv_tests.openstack.tempest.tempest' class: 'TempestCommon' args: mode: 'barbican_tempest_plugin.tests.(api|scenario)' + services: + - barbican diff --git a/functest/ci/testcases.yaml b/functest/ci/testcases.yaml index 79190091c..a9e023e4c 100644 --- a/functest/ci/testcases.yaml +++ b/functest/ci/testcases.yaml @@ -316,13 +316,14 @@ tiers: OpenStack Tempest suite. The list of test cases is generated by Tempest having as input the relevant testcase list file. - dependencies: - - INSTALLER_TYPE: '(fuel)|(apex)|(compass)' run: - module: 'functest.opnfv_tests.openstack.trunk.trunk' - class: 'TempestNeutronTrunk' + module: 'functest.opnfv_tests.openstack.tempest.tempest' + class: 'TempestCommon' args: mode: 'neutron_tempest_plugin.(api|scenario).test_trunk' + neutron_extensions: + - trunk + - trunk_details - case_name: barbican @@ -332,13 +333,13 @@ tiers: description: >- It leverages on the tempest plugin containing tests used to verify the functionality of a barbican installation. - dependencies: - - INSTALLER_TYPE: '^((?!fuel|apex|compass|daisy|osa).)*$' run: module: 'functest.opnfv_tests.openstack.tempest.tempest' class: 'TempestCommon' args: mode: 'barbican_tempest_plugin.tests.(api|scenario)' + services: + - barbican - name: features diff --git a/functest/opnfv_tests/openstack/tempest/tempest.py b/functest/opnfv_tests/openstack/tempest/tempest.py index bf79eb21d..52cc31c4a 100644 --- a/functest/opnfv_tests/openstack/tempest/tempest.py +++ b/functest/opnfv_tests/openstack/tempest/tempest.py @@ -55,6 +55,40 @@ class TempestCommon(singlevm.VmReady1): self.conf_file = None self.image_alt = None self.flavor_alt = None + self.services = [] + try: + self.services = kwargs['run']['args']['services'] + except Exception: # pylint: disable=broad-except + pass + self.neutron_extensions = [] + try: + self.neutron_extensions = kwargs['run']['args'][ + 'neutron_extensions'] + except Exception: # pylint: disable=broad-except + pass + + def check_services(self): + """Check the mandatory services.""" + for service in self.services: + try: + self.cloud.search_services(service)[0] + except Exception: # pylint: disable=broad-except + self.is_skipped = True + break + + def check_extensions(self): + """Check the mandatory network extensions.""" + extensions = self.cloud.get_network_extensions() + for network_extension in self.neutron_extensions: + if network_extension not in extensions: + LOGGER.warning( + "Cannot find Neutron extension: %s", network_extension) + self.is_skipped = True + break + + def check_requirements(self): + self.check_services() + self.check_extensions() @staticmethod def read_file(filename): diff --git a/functest/opnfv_tests/openstack/trunk/__init__.py b/functest/opnfv_tests/openstack/trunk/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/functest/opnfv_tests/openstack/trunk/trunk.py b/functest/opnfv_tests/openstack/trunk/trunk.py deleted file mode 100644 index 8d177675b..000000000 --- a/functest/opnfv_tests/openstack/trunk/trunk.py +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2018 Orange 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 - -# pylint: disable=missing-docstring - -from six.moves import configparser - -from functest.opnfv_tests.openstack.tempest import tempest - - -class TempestNeutronTrunk(tempest.TempestCommon): - """Tempest neutron trunk testcase implementation.""" - - def configure(self, **kwargs): - super(TempestNeutronTrunk, self).configure(**kwargs) - rconfig = configparser.RawConfigParser() - rconfig.read(self.conf_file) - rconfig.set('network-feature-enabled', 'api_extensions', 'all') - with open(self.conf_file, 'wb') as config_file: - rconfig.write(config_file) - self.backup_tempest_config(self.conf_file, self.res_dir) -- cgit 1.2.3-korg