**** CubicPower OpenStack Study ****
def enabled():
    return ('--remote_debug-host' in sys.argv and
            '--remote_debug-port' in sys.argv)
**** CubicPower OpenStack Study ****
def register_cli_opts():
    from oslo.config import cfg
    cli_opts = [
        cfg.StrOpt('host',
                    help='Debug host (IP or name) to connect. Note '
                        'that using the remote debug option changes how '
                        'Nova uses the eventlet library to support async IO. '
                        'This could result in failures that do not occur '
                        'under normal operation. Use at your own risk.'),
        cfg.IntOpt('port',
                    help='Debug port to connect. Note '
                        'that using the remote debug option changes how '
                        'Nova uses the eventlet library to support async IO. '
                        'This could result in failures that do not occur '
                        'under normal operation. Use at your own risk.')
    ]
    cfg.CONF.register_cli_opts(cli_opts, 'remote_debug')
**** CubicPower OpenStack Study ****
def init():
    from oslo.config import cfg
    CONF = cfg.CONF
    # NOTE(markmc): gracefully handle the CLI options not being registered
    if 'remote_debug' not in CONF:
        return
    if not (CONF.remote_debug.host and CONF.remote_debug.port):
        return
    from nova.openstack.common.gettextutils import _
    from nova.openstack.common import log as logging
    LOG = logging.getLogger(__name__)
    LOG.debug(_('Listening on %(host)s:%(port)s for debug connection'),
              {'host': CONF.remote_debug.host,
               'port': CONF.remote_debug.port})
    from pydev import pydevd
    pydevd.settrace(host=CONF.remote_debug.host,
                    port=CONF.remote_debug.port,
                    stdoutToServer=False,
                    stderrToServer=False)
    LOG.warn(_('WARNING: Using the remote debug option changes how '
               'Nova uses the eventlet library to support async IO. This '
               'could result in failures that do not occur under normal '
               'operation. Use at your own risk.'))