0861fc2d22
CLI options must be registered before the command line is parsed or a cfg.ArgsAlreadyParsedError is raised. Since commit2cbea24we are registering two 'remote_debug' arguments in nova.service. In commitb506529, we see a hack being added to ensure that nova.service is imported and the CLI opts registered before config.parse_args() is called. To clean this up somewhat, refactor all the elements of this remote debugger support into nova.debugger. Avoid importing modules at module import time since we need to import this before monkey patching. Add a function for registering the CLI options just before config.parse_args() is called. And fail gracefully if the CLI options aren't registered when we called debugger.init(). Note that because the options aren't registered at module import time any more, the config generator doesn't pick them up. However, that's actually a good thing since this support doesn't work if you enable it via config files since debugger.enabled() only looks at the command line. DocImpact: remote_debug options are not available via the config file, only via the command line. Change-Id: I97f747a2fb9222137203657df1d86ba89f3219e2