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
diff --git a/octavia_tempest_plugin/config.py b/octavia_tempest_plugin/config.py
index b683ee3..62affc0 100644
--- a/octavia_tempest_plugin/config.py
+++ b/octavia_tempest_plugin/config.py
@@ -144,3 +144,12 @@
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 5aae722..ec093e7 100644
--- a/octavia_tempest_plugin/plugin.py
+++ b/octavia_tempest_plugin/plugin.py
@@ -35,6 +35,9 @@
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 @@
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 4a43e7b..4887995 100644
--- a/octavia_tempest_plugin/tests/api/v2/test_healthmonitor.py
+++ b/octavia_tempest_plugin/tests/api/v2/test_healthmonitor.py
@@ -34,6 +34,12 @@
"""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."""
super(HealthMonitorAPITest, cls).resource_setup()
diff --git a/octavia_tempest_plugin/tests/scenario/v2/test_healthmonitor.py b/octavia_tempest_plugin/tests/scenario/v2/test_healthmonitor.py
index 02cec6e..7b769e1 100644
--- a/octavia_tempest_plugin/tests/scenario/v2/test_healthmonitor.py
+++ b/octavia_tempest_plugin/tests/scenario/v2/test_healthmonitor.py
@@ -29,6 +29,12 @@
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."""
super(HealthMonitorScenarioTest, cls).resource_setup()