diff options
author | Alexander Sulfrian <alex@spline.inf.fu-berlin.de> | 2015-02-07 15:24:48 +0100 |
---|---|---|
committer | Alexander Sulfrian <alex@spline.inf.fu-berlin.de> | 2015-02-07 15:24:48 +0100 |
commit | bab0b84e0026ce34523c11e9284ffc835ded21fe (patch) | |
tree | f54387231c89dc876bc8a80a97ac693a5744dc58 | |
parent | 65a0fe82f4a33ab5b6720d603681213935b5d3aa (diff) | |
download | bcfg2-tools-bab0b84e0026ce34523c11e9284ffc835ded21fe.tar.gz bcfg2-tools-bab0b84e0026ce34523c11e9284ffc835ded21fe.tar.bz2 bcfg2-tools-bab0b84e0026ce34523c11e9284ffc835ded21fe.zip |
clients: Implement list and remove as SubCommands.
-rwxr-xr-x | clients | 38 |
1 files changed, 32 insertions, 6 deletions
@@ -2,10 +2,36 @@ import Bcfg2.Options import Bcfg2.Client.Proxy -parser = Bcfg2.Options.get_parser( - components=[Bcfg2.Client.Proxy.ComponentProxy]) -parser.parse() -proxy = Bcfg2.Client.Proxy.ComponentProxy() -for client in proxy.Metadata.list_clients(): - print client +class _ClientCmd(Bcfg2.Options.Subcommand): + pass + +class Remove(_ClientCmd): + """ Remove the given client. """ + options = [Bcfg2.Options.PositionalArgument( + 'client', + help='Name of the client, that should be removed.')] + + def run(self, setup): + proxy = Bcfg2.Client.Proxy.ComponentProxy() + proxy.Metadata.remove_client(setup.client) + +class List(_ClientCmd): + """ List all clients. """ + + def run(self, setup): + proxy = Bcfg2.Client.Proxy.ComponentProxy() + for client in proxy.Metadata.list_clients(): + print client + +class ManageClients(Bcfg2.Options.CommandRegistry): + def __init__(self): + Bcfg2.Options.CommandRegistry.__init__(self) + self.register_commands(globals().values(), parent=_ClientCmd) + parser = Bcfg2.Options.get_parser( + description="Manage clients of a running Bcfg2 server", + components=[Bcfg2.Client.Proxy.ComponentProxy, self]) + parser.add_options(self.subcommand_options) + parser.parse() + +ManageClients().runcommand() |