
from oslo.config import cfg

from keystone.openstack.common import log

CONF = cfg.CONF

API_SERVICE_OPTS = [
    cfg.StrOpt('bind_ip',
               default='0.0.0.0',
               help='IP for the server to bind to'),
    cfg.IntOpt('port',
               default=9109,
               help='The port for the server'),
]

CONF.register_opts(API_SERVICE_OPTS)


def parse_args(args, default_config_files=None):
    CONF(args=args[1:],
         project='kds',
         default_config_files=default_config_files)


def prepare_service(argv=[]):
    cfg.set_defaults(log.log_opts,
                     default_log_levels=['sqlalchemy=WARN',
                                         'eventlet.wsgi.server=WARN'
                                         ])
    parse_args(argv)
    log.setup('kds')


from oslo.config import cfg

from keystone.openstack.common import log

CONF = cfg.CONF

FILE_OPTIONS = {
    None: [
        cfg.StrOpt('bind_ip',
                   default='0.0.0.0',
                   help='IP for the server to bind to'),
        cfg.IntOpt('port',
                   default=9109,
                   help='The port for the server')]}


def configure(conf=None):
    if conf is None:
        conf = CONF

    for group in FILE_OPTIONS:
        conf.register_opts(FILE_OPTIONS[group], group=group)


def parse_args(args, default_config_files=None):
    CONF(args=args[1:],
         project='kds',
         default_config_files=default_config_files)


def prepare_service(argv=[]):
    cfg.set_defaults(log.log_opts,
                     default_log_levels=['sqlalchemy=WARN',
                                         'eventlet.wsgi.server=WARN'
                                         ])
    parse_args(argv)
    log.setup('kds')


configure()

Restructure KDS options to be more like Keystone's options
Restructure KDS options to be more like Keystone's options

Restructure the KDS options to be more closely aligned with the way
Keystone options work and allowing movement towards not registering
the options on import. This will also prevent KDS options from
appearing in the Keystone auto-generated sample config.

Change-Id: I073aa58ff3132e2714478f54c88c3a8200ff47da

  
  from oslo.config import cfg
  
  from keystone.openstack.common import log
  
  CONF = cfg.CONF
  
- API_SERVICE_OPTS = [
+ FILE_OPTIONS = {
+     None: [
-     cfg.StrOpt('bind_ip',
+         cfg.StrOpt('bind_ip',
-                default='0.0.0.0',
+                    default='0.0.0.0',
-                help='IP for the server to bind to'),
+                    help='IP for the server to bind to'),
-     cfg.IntOpt('port',
+         cfg.IntOpt('port',
-                default=9109,
+                    default=9109,
-                help='The port for the server'),
+                    help='The port for the server')]}
- ]
  
- CONF.register_opts(API_SERVICE_OPTS)
+ 
+ def configure(conf=None):
+     if conf is None:
+         conf = CONF
+ 
+     for group in FILE_OPTIONS:
+         conf.register_opts(FILE_OPTIONS[group], group=group)
  
  
  def parse_args(args, default_config_files=None):
      CONF(args=args[1:],
           project='kds',
           default_config_files=default_config_files)
  
  
  def prepare_service(argv=[]):
      cfg.set_defaults(log.log_opts,
                       default_log_levels=['sqlalchemy=WARN',
                                           'eventlet.wsgi.server=WARN'
                                           ])
      parse_args(argv)
      log.setup('kds')
  
+ 
+ configure()
+ 
Restructure KDS options to be more like Keystone's options
## Code Before:

from oslo.config import cfg

from keystone.openstack.common import log

CONF = cfg.CONF

API_SERVICE_OPTS = [
    cfg.StrOpt('bind_ip',
               default='0.0.0.0',
               help='IP for the server to bind to'),
    cfg.IntOpt('port',
               default=9109,
               help='The port for the server'),
]

CONF.register_opts(API_SERVICE_OPTS)


def parse_args(args, default_config_files=None):
    CONF(args=args[1:],
         project='kds',
         default_config_files=default_config_files)


def prepare_service(argv=[]):
    cfg.set_defaults(log.log_opts,
                     default_log_levels=['sqlalchemy=WARN',
                                         'eventlet.wsgi.server=WARN'
                                         ])
    parse_args(argv)
    log.setup('kds')

## Instruction:
Restructure KDS options to be more like Keystone's options
## Code After:

from oslo.config import cfg

from keystone.openstack.common import log

CONF = cfg.CONF

FILE_OPTIONS = {
    None: [
        cfg.StrOpt('bind_ip',
                   default='0.0.0.0',
                   help='IP for the server to bind to'),
        cfg.IntOpt('port',
                   default=9109,
                   help='The port for the server')]}


def configure(conf=None):
    if conf is None:
        conf = CONF

    for group in FILE_OPTIONS:
        conf.register_opts(FILE_OPTIONS[group], group=group)


def parse_args(args, default_config_files=None):
    CONF(args=args[1:],
         project='kds',
         default_config_files=default_config_files)


def prepare_service(argv=[]):
    cfg.set_defaults(log.log_opts,
                     default_log_levels=['sqlalchemy=WARN',
                                         'eventlet.wsgi.server=WARN'
                                         ])
    parse_args(argv)
    log.setup('kds')


configure()
