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."""