From 4a975ce9938679365e542a754477353314282ace Mon Sep 17 00:00:00 2001 From: Dean Troyer Date: Tue, 28 Feb 2012 11:58:22 -0600 Subject: [PATCH] Add endpoint commands help text Makes the new endpoint-* commands help text consistient with the other keystone commands. Also removes 'nargs' from options that require arguments. Change-Id: Idc638883b3675cf1d30163064e58ffe761c6f08b --- keystoneclient/v2_0/shell.py | 34 +++++++++++++++------------------- tests/test_shell.py | 22 ++++++++++++++++++++++ 2 files changed, 37 insertions(+), 19 deletions(-) diff --git a/keystoneclient/v2_0/shell.py b/keystoneclient/v2_0/shell.py index 91d0b23c7..9f185e10d 100755 --- a/keystoneclient/v2_0/shell.py +++ b/keystoneclient/v2_0/shell.py @@ -322,37 +322,33 @@ def do_endpoint_get(kc, args): def do_endpoint_list(kc, args): + """List configured service endpoints""" endpoints = kc.endpoints.list() utils.print_list(endpoints, - ['id', 'region', 'publicurl', 'internalurl', 'publicurl']) + ['id', 'region', 'publicurl', 'internalurl', 'adminurl']) -@utils.arg('--region', metavar='', - help='Endpoint region', nargs='?', default='regionOne') -@utils.arg('--service_id', metavar='', - help='ID of service associated with Endpoint', nargs='?') -@utils.arg('--publicurl', metavar='', - help='Public URL endpoint', nargs='?') -@utils.arg('--adminurl', metavar='', - help='Admin URL endpoint', nargs='?') -@utils.arg('--internalurl', metavar='', - help='Internal URL endpoint', nargs='?') +@utils.arg('--region', metavar='', + help='Endpoint region', default='regionOne') +@utils.arg('--service_id', metavar='', + help='ID of service associated with Endpoint') +@utils.arg('--publicurl', metavar='', + help='Public URL endpoint') +@utils.arg('--adminurl', metavar='', + help='Admin URL endpoint') +@utils.arg('--internalurl', metavar='', + help='Internal URL endpoint') def do_endpoint_create(kc, args): - kwargs = { - 'region': args.region, - 'service_id': args.service_id, - 'publicurl': args.publicurl, - 'adminurl': args.adminurl, - 'internalurl': args.internalurl, - } + """Create a new endpoint associated with a service""" endpoint = kc.endpoints.create( args.region, args.service_id, args.publicurl, args.adminurl, args.internalurl) utils.print_dict(endpoint._info) -@utils.arg('id', metavar='', help='ID of endpoint to delete') +@utils.arg('id', metavar='', help='ID of endpoint to delete') def do_endpoint_delete(kc, args): + """Delete a service endpoint""" try: kc.endpoints.delete(args.id) print 'Endpoint has been deleted.' diff --git a/tests/test_shell.py b/tests/test_shell.py index 9b4c30d4f..b958e22eb 100644 --- a/tests/test_shell.py +++ b/tests/test_shell.py @@ -175,3 +175,25 @@ class ShellTest(utils.TestCase): do_shell_mock): shell('ec2-credentials-delete') assert do_shell_mock.called + + def test_do_endpoints(self): + do_shell_mock = mock.MagicMock() + # grab the decorators for do_endpoint_create + shell_func = getattr(shell_v2_0, 'do_endpoint_create') + do_shell_mock.arguments = getattr(shell_func, 'arguments', []) + with mock.patch('keystoneclient.v2_0.shell.do_endpoint_create', + do_shell_mock): + + # Test create args + shell('endpoint-create ' + '--service_id=2 --publicurl=http://example.com:1234/go ' + '--adminurl=http://example.com:9876/adm') + assert do_shell_mock.called + ((a, b), c) = do_shell_mock.call_args + assert (b.auth_url, b.password, b.os_tenant_id, + b.tenant_name, b.username, b.identity_api_version) == \ + (DEFAULT_AUTH_URL, DEFAULT_PASSWORD, DEFAULT_TENANT_ID, + DEFAULT_TENANT_NAME, DEFAULT_USERNAME, '') + assert (b.service_id, b.publicurl, b.adminurl) == ('2', + 'http://example.com:1234/go', + 'http://example.com:9876/adm')