From 3671a574a6e5b5cf752f89069a251ecb7a49af95 Mon Sep 17 00:00:00 2001 From: Anders Daljord Morken Date: Mon, 8 Jun 2015 15:26:35 +0200 Subject: [PATCH] Add CLI support for deregistering services. --- consulate/cli.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/consulate/cli.py b/consulate/cli.py index 91cd113..a7c506e 100644 --- a/consulate/cli.py +++ b/consulate/cli.py @@ -96,6 +96,16 @@ def add_register_args(parser): ttl.add_argument('duration', type=int, default=10, help='TTL duration for a service with missing check data') +def add_deregister_args(parser): + """Add the deregister command and arguments. + + :param argparse.Subparser parser: parser + + """ + # Service registration + registerp = parser.add_parser('deregister', + help='Deregister a service for this node') + registerp.add_argument('service_id', help='The service registration id') def parse_cli_args(): """Create the argument parser and add the arguments""" @@ -118,6 +128,7 @@ def parse_cli_args(): sparser = parser.add_subparsers(title='Commands', dest='command') add_register_args(sparser) + add_deregister_args(sparser) add_kv_args(sparser) return parser.parse_args() @@ -256,6 +267,18 @@ def register(consul, args): except exceptions.ConnectionError: connection_error() +def deregister(consul, args): + """Handle service deregistration. + + :param consulate.api_old.Consul consul: The Consul instance + :param argparser.namespace args: The cli args + + """ + try: + consul.agent.service.deregister(args.service_id) + except exceptions.ConnectionError: + connection_error() + # Mapping dict to simplify the code in main() KV_ACTIONS = { 'backup': kv_backup, @@ -281,5 +304,7 @@ def main(): args.token, args.api_scheme, adapter) if args.command == 'register': register(consul, args) + elif args.command == 'deregister': + deregister(consul, args) elif args.command == 'kv': KV_ACTIONS[args.action](consul, args)