From f88cffc9b41e879e1656bcd0bae439b41d885138 Mon Sep 17 00:00:00 2001 From: Reedip Date: Mon, 3 Sep 2018 13:20:08 +0000 Subject: [PATCH] Add configuration support for skipping tests This patch add configuration support in Octavia Tempest Plugin, in case a provider driver does not support Health Monitors. Change-Id: I25eb52e9f64a08560c9ea2f664edd9826be6e379 --- octavia_tempest_plugin/config.py | 9 +++++++++ octavia_tempest_plugin/plugin.py | 5 +++++ .../tests/api/v2/test_healthmonitor.py | 6 ++++++ .../tests/scenario/v2/test_healthmonitor.py | 6 ++++++ 4 files changed, 26 insertions(+) diff --git a/octavia_tempest_plugin/config.py b/octavia_tempest_plugin/config.py index b683ee32..62affc03 100644 --- a/octavia_tempest_plugin/config.py +++ b/octavia_tempest_plugin/config.py @@ -144,3 +144,12 @@ OctaviaGroup = [ default=None, help='Availability zone to use for creating servers.'), ] + +lb_feature_enabled_group = cfg.OptGroup(name='loadbalancer-feature-enabled', + title='Enabled/Disabled LB features') +LBFeatureEnabledGroup = [ + cfg.BoolOpt('health_monitor_enabled', + default=True, + help="Whether Health Monitor is available with provider" + " driver or not."), +] diff --git a/octavia_tempest_plugin/plugin.py b/octavia_tempest_plugin/plugin.py index 5aae7228..ec093e7a 100644 --- a/octavia_tempest_plugin/plugin.py +++ b/octavia_tempest_plugin/plugin.py @@ -35,6 +35,9 @@ class OctaviaTempestPlugin(plugins.TempestPlugin): project_config.ServiceAvailableGroup) config.register_opt_group(conf, project_config.octavia_group, project_config.OctaviaGroup) + config.register_opt_group(conf, + project_config.lb_feature_enabled_group, + project_config.LBFeatureEnabledGroup) def get_opt_lists(self): return [ @@ -42,6 +45,8 @@ class OctaviaTempestPlugin(plugins.TempestPlugin): project_config.ServiceAvailableGroup), (project_config.octavia_group.name, project_config.OctaviaGroup), + (project_config.lb_feature_enabled_group.name, + project_config.LBFeatureEnabledGroup) ] def get_service_clients(self): diff --git a/octavia_tempest_plugin/tests/api/v2/test_healthmonitor.py b/octavia_tempest_plugin/tests/api/v2/test_healthmonitor.py index 4a43e7b6..48879952 100644 --- a/octavia_tempest_plugin/tests/api/v2/test_healthmonitor.py +++ b/octavia_tempest_plugin/tests/api/v2/test_healthmonitor.py @@ -33,6 +33,12 @@ LOG = logging.getLogger(__name__) class HealthMonitorAPITest(test_base.LoadBalancerBaseTest): """Test the healthmonitor object API.""" + @classmethod + def skip_checks(cls): + super(HealthMonitorAPITest, cls).skip_checks() + if not CONF.loadbalancer_feature_enabled.health_monitor_enabled: + cls.skip('Health Monitors not supported') + @classmethod def resource_setup(cls): """Setup resources needed by the tests.""" diff --git a/octavia_tempest_plugin/tests/scenario/v2/test_healthmonitor.py b/octavia_tempest_plugin/tests/scenario/v2/test_healthmonitor.py index 02cec6e2..7b769e1e 100644 --- a/octavia_tempest_plugin/tests/scenario/v2/test_healthmonitor.py +++ b/octavia_tempest_plugin/tests/scenario/v2/test_healthmonitor.py @@ -28,6 +28,12 @@ CONF = config.CONF class HealthMonitorScenarioTest(test_base.LoadBalancerBaseTest): + @classmethod + def skip_checks(cls): + super(HealthMonitorScenarioTest, cls).skip_checks() + if not CONF.loadbalancer_feature_enabled.health_monitor_enabled: + cls.skip('Health Monitors not supported') + @classmethod def resource_setup(cls): """Setup resources needed by the tests."""