diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2014-11-10 19:55:53 +0100 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2014-11-10 19:55:53 +0100 |
commit | 3f32d999c6e75af57058e389a07d1ab6a62eaebb (patch) | |
tree | 6055de1e6a541e2e5e4a721058f414a0e50258b6 /src/lib/Bcfg2/Server/Info.py | |
parent | da93fb540c28be3341ec0d37d1fbd90153fb750c (diff) | |
parent | 0e133c157755908d05c44c3a36b1dc0668e1d111 (diff) | |
download | bcfg2-3f32d999c6e75af57058e389a07d1ab6a62eaebb.tar.gz bcfg2-3f32d999c6e75af57058e389a07d1ab6a62eaebb.tar.bz2 bcfg2-3f32d999c6e75af57058e389a07d1ab6a62eaebb.zip |
Merge branch 'options-unit-tests' of https://github.com/stpierre/bcfg2
* 'options-unit-tests' of https://github.com/stpierre/bcfg2:
Options: Fixed non-path database name parsing
Options: further command registry fixes
Options: gather as much data from config file first
Options: fix path canonicalization and file-like objects
testsuite: unlink temporary files
Options: ensure <repository> macros are always fixed up
DBSettings: fix up <repository> in database name
testsuite: better debug capturing for options tests
call shutdown on subcommand registries
fixed some places where plugin loading should fail silently
testsuite: Added unit tests for new option parsing
testsuite: capture stderr by default
Test failure to parse config file when bcfg2.conf exists
testsuite: skip nested exclusive option group test on py2.6
testsuite: Added unit tests for new option parsing
Diffstat (limited to 'src/lib/Bcfg2/Server/Info.py')
-rw-r--r-- | src/lib/Bcfg2/Server/Info.py | 37 |
1 files changed, 16 insertions, 21 deletions
diff --git a/src/lib/Bcfg2/Server/Info.py b/src/lib/Bcfg2/Server/Info.py index a5136f01d..6af561089 100644 --- a/src/lib/Bcfg2/Server/Info.py +++ b/src/lib/Bcfg2/Server/Info.py @@ -123,15 +123,6 @@ class InfoCmd(Bcfg2.Options.Subcommand): # pylint: disable=W0223 list(self.core.metadata.groups.keys())) -class Help(InfoCmd, Bcfg2.Options.HelpCommand): - """ Get help on a specific subcommand """ - def command_registry(self): - return self.core.commands - - def run(self, setup): - Bcfg2.Options.HelpCommand.run(self, setup) - - class Debug(InfoCmd): """ Shell out to a Python interpreter """ interpreters, default_interpreter = load_interpreters() @@ -805,15 +796,12 @@ if HAS_PROFILE: display_trace(prof) -class InfoCore(cmd.Cmd, - Bcfg2.Server.Core.Core, - Bcfg2.Options.CommandRegistry): +class InfoCore(cmd.Cmd, Bcfg2.Server.Core.Core): """Main class for bcfg2-info.""" def __init__(self): cmd.Cmd.__init__(self) Bcfg2.Server.Core.Core.__init__(self) - Bcfg2.Options.CommandRegistry.__init__(self) self.prompt = 'bcfg2-info> ' def get_locals(self): @@ -849,20 +837,20 @@ class InfoCore(cmd.Cmd, pass def shutdown(self): - Bcfg2.Options.CommandRegistry.shutdown(self) Bcfg2.Server.Core.Core.shutdown(self) -class CLI(object): +class CLI(Bcfg2.Options.CommandRegistry): """ The bcfg2-info CLI """ options = [Bcfg2.Options.BooleanOption("-p", "--profile", help="Profile")] def __init__(self): - Bcfg2.Options.register_commands(InfoCore, globals().values(), - parent=InfoCmd) + Bcfg2.Options.CommandRegistry.__init__(self) + self.register_commands(globals().values(), parent=InfoCmd) parser = Bcfg2.Options.get_parser( description="Inspect a running Bcfg2 server", components=[self, InfoCore]) + parser.add_options(self.subcommand_options) parser.parse() if Bcfg2.Options.setup.profile and HAS_PROFILE: @@ -874,11 +862,18 @@ class CLI(object): print("Profiling functionality not available.") self.core = InfoCore() - for command in self.core.commands.values(): + for command in self.commands.values(): command.core = self.core def run(self): """ Run bcfg2-info """ - if Bcfg2.Options.setup.subcommand != 'help': - self.core.run() - return self.core.runcommand() + try: + if Bcfg2.Options.setup.subcommand != 'help': + self.core.run() + return self.runcommand() + finally: + self.shutdown() + + def shutdown(self): + Bcfg2.Options.CommandRegistry.shutdown(self) + self.core.shutdown() |