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()