Use plugin architecture to register options

Tempest has provided the mechanism to register/list options for
plugins. Use it instead of registering own options externally.

Change-Id: I8f8467167943856c13675ab81aaecf50e61b151d
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
diff --git a/neutron_tempest_plugin/config.py b/neutron_tempest_plugin/config.py
index cbf593d..48f4316 100644
--- a/neutron_tempest_plugin/config.py
+++ b/neutron_tempest_plugin/config.py
@@ -158,11 +158,9 @@
                 default=False,
                 help='Schedule BGP speakers to agents explicitly.'),
 ]
+neutron_group = cfg.OptGroup(name="neutron_plugin_options",
+                             title="Neutron Plugin Options")
 
-# TODO(amuller): Redo configuration options registration as part of the planned
-# transition to the Tempest plugin architecture
-for opt in NeutronPluginOptions:
-    CONF.register_opt(opt, 'neutron_plugin_options')
 
 BgpvpnGroup = [
     cfg.IntOpt('min_asn',
@@ -182,11 +180,8 @@
                help=("Maximum number for the range of "
                      "assigned number for distinguishers.")),
 ]
-
 bgpvpn_group = cfg.OptGroup(name="bgpvpn", title=("Networking-Bgpvpn Service "
                                                   "Options"))
-CONF.register_group(bgpvpn_group)
-CONF.register_opts(BgpvpnGroup, group="bgpvpn")
 
 FwaasGroup = [
     cfg.StrOpt('driver',
@@ -194,11 +189,8 @@
                choices=['openvswitch', 'ovn'],
                help='Driver used by the FWaaS plugin.'),
 ]
-
 fwaas_group = cfg.OptGroup(
     name="fwaas", title=("Neutron-fwaas Service Options"))
-CONF.register_group(fwaas_group)
-CONF.register_opts(FwaasGroup, group="fwaas")
 
 
 TaasGroup = [
@@ -215,8 +207,6 @@
 ]
 taas_group = cfg.OptGroup(name='taas',
                           title='TaaS Tempest Options')
-CONF.register_group(taas_group)
-CONF.register_opts(TaasGroup, group="taas")
 
 
 DynamicRoutingGroup = [
@@ -225,12 +215,9 @@
                help=('Base image used to build the image for connectivity '
                      'check')),
 ]
-
 dynamic_routing_group = cfg.OptGroup(
     name="dynamic_routing",
     title=("Neutron-Dynamic-Routing Service Options"))
-CONF.register_group(dynamic_routing_group)
-CONF.register_opts(DynamicRoutingGroup, group="dynamic_routing")
 
 
 # DNS Integration with an External Service
@@ -242,5 +229,3 @@
 ]
 dns_feature_group = cfg.OptGroup(
     name='designate_feature_enabled', title='Enabled Designate Features')
-CONF.register_group(dns_feature_group)
-CONF.register_opts(DnsFeatureGroup, group="designate_feature_enabled")
diff --git a/neutron_tempest_plugin/plugin.py b/neutron_tempest_plugin/plugin.py
index fc41bdd..029fdab 100644
--- a/neutron_tempest_plugin/plugin.py
+++ b/neutron_tempest_plugin/plugin.py
@@ -16,8 +16,11 @@
 
 import os
 
+from tempest import config
 from tempest.test_discover import plugins
 
+from neutron_tempest_plugin import config as neutron_config
+
 
 class NeutronTempestPlugin(plugins.TempestPlugin):
     def load_tests(self):
@@ -28,7 +31,31 @@
         return full_test_dir, base_path
 
     def register_opts(self, conf):
-        pass
+        config.register_opt_group(conf, neutron_config.neutron_group,
+                                  neutron_config.NeutronPluginOptions)
+        config.register_opt_group(conf, neutron_config.bgpvpn_group,
+                                  neutron_config.BgpvpnGroup)
+        config.register_opt_group(conf, neutron_config.fwaas_group,
+                                  neutron_config.FwaasGroup)
+        config.register_opt_group(conf, neutron_config.taas_group,
+                                  neutron_config.TaasGroup)
+        config.register_opt_group(conf, neutron_config.dynamic_routing_group,
+                                  neutron_config.DynamicRoutingGroup)
+        config.register_opt_group(conf, neutron_config.dns_feature_group,
+                                  neutron_config.DnsFeatureGroup)
 
     def get_opt_lists(self):
-        pass
+        return [
+            (neutron_config.neutron_group.name,
+             neutron_config.NeutronPluginOptions),
+            (neutron_config.bgpvpn_group.name,
+             neutron_config.BgpvpnGroup),
+            (neutron_config.fwaas_group.name,
+             neutron_config.FwaasGroup),
+            (neutron_config.taas_group.name,
+             neutron_config.TaasGroup),
+            (neutron_config.dynamic_routing_group.name,
+             neutron_config.DynamicRoutingGroup),
+            (neutron_config.dns_feature_group.name,
+             neutron_config.DnsFeatureGroup)
+        ]