diff --git a/tempest_horizon/config.py b/tempest_horizon/config.py
index 7866d0b..a66ab86 100644
--- a/tempest_horizon/config.py
+++ b/tempest_horizon/config.py
@@ -25,6 +25,15 @@
                deprecated_for_removal=True),
 ]
 
-service_opt = cfg.BoolOpt(
-    'horizon', default=True,
-    help="Whether or not Horizon is expected to be available")
+#service_opt = cfg.BoolOpt(
+#    'horizon', default=True,
+#    help="Whether or not Horizon is expected to be available")
+#
+service_available_group = cfg.OptGroup(name="service_available",
+                                       title="Available OpenStack Services")
+
+ServiceAvailableGroup = [
+    cfg.BoolOpt('horizon',
+                default=True,
+                help="Whether or not Horizon is expected to be available"),
+]
diff --git a/tempest_horizon/plugin.py b/tempest_horizon/plugin.py
index 47666be..e873ac3 100644
--- a/tempest_horizon/plugin.py
+++ b/tempest_horizon/plugin.py
@@ -15,7 +15,7 @@
 from tempest import config
 from tempest.test_discover import plugins
 
-from tempest_horizon import config as dashboard_config
+from tempest_horizon import config as dash_config
 
 
 class HorizonTempestPlugin(plugins.TempestPlugin):
@@ -27,12 +27,16 @@
         return full_test_dir, base_path
 
     def register_opts(self, conf):
-        if 'dashboard' not in conf:
-            config.register_opt_group(conf, dashboard_config.dashboard_group,
-                                      dashboard_config.DashboardGroup)
-        if not getattr(conf.service_available, 'horizon'):
-            conf.register_opt(dashboard_config.service_opt,
-                              group='service_available')
+        config.register_opt_group(conf,
+                                  dash_config.dashboard_group,
+                                  dash_config.DashboardGroup)
+        config.register_opt_group(conf,
+                                  dash_config.service_available_group,
+                                  dash_config.ServiceAvailableGroup)
 
     def get_opt_lists(self):
-        return [('dashboard', config.DashboardGroup)]
+        return [(dash_config.dashboard_group.name,
+                 dash_config.DashboardGroup),
+                (dash_config.service_available_group.name,
+                 dash_config.ServiceAvailableGroup),
+               ]
diff --git a/tempest_horizon/tests/scenario/test_dashboard_basic_ops.py b/tempest_horizon/tests/scenario/test_dashboard_basic_ops.py
index 5d4f7b3..37bf603 100644
--- a/tempest_horizon/tests/scenario/test_dashboard_basic_ops.py
+++ b/tempest_horizon/tests/scenario/test_dashboard_basic_ops.py
@@ -112,7 +112,6 @@
         self.assertIn('Overview', response.read())
 
     @test.idempotent_id('4f8851b1-0e69-482b-b63b-84c6e76f6c80')
-    @test.services('dashboard')
     def test_basic_scenario(self):
         creds = self.os.credentials
         self.check_login_page()
