From bd73a5482ca8174b6ac83b26ae09cac0e82a468e Mon Sep 17 00:00:00 2001 From: Oleksii Chuprykov <ochuprykov@mirantis.com> Date: Thu, 23 Oct 2014 18:12:23 +0300 Subject: [PATCH] Add os_ prefix to project_domain_name/id Running glance without defining --os-tenant-id and --os-tenant-name leads to AttributeError. Add os_ prefix to project_domain_name and project_domain_id because args object doesn't have them Closes-Bug: #1384759 Change-Id: Id85569aad538efcf327312d9936bb6463279ce34 --- glanceclient/shell.py | 6 +++--- tests/test_shell.py | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/glanceclient/shell.py b/glanceclient/shell.py index 61c3c72f..cf3209c9 100644 --- a/glanceclient/shell.py +++ b/glanceclient/shell.py @@ -475,12 +475,12 @@ class OpenStackImagesShell(object): project_info = (args.os_tenant_name or args.os_tenant_id or (args.os_project_name and - (args.project_domain_name or - args.project_domain_id)) or + (args.os_project_domain_name or + args.os_project_domain_id)) or args.os_project_id) if (not project_info): - # tenent is deprecated in Keystone v3. Use the latest + # tenant is deprecated in Keystone v3. Use the latest # terminology instead. raise exc.CommandError( _("You must provide a project_id or project_name (" diff --git a/tests/test_shell.py b/tests/test_shell.py index 1a6e5baa..bc49e9ce 100644 --- a/tests/test_shell.py +++ b/tests/test_shell.py @@ -273,6 +273,22 @@ class ShellTest(utils.TestCase): # Make sure we are actually prompted. mock_getpass.assert_called_with('OS Password: ') + @mock.patch( + 'glanceclient.shell.OpenStackImagesShell._get_keystone_session') + @mock.patch.object(openstack_shell.OpenStackImagesShell, '_cache_schemas') + def test_no_auth_with_proj_name(self, cache_schemas, session): + with mock.patch('glanceclient.v2.client.Client'): + args = ('--os-project-name myname ' + '--os-project-domain-name mydomain ' + '--os-project-domain-id myid ' + '--os-image-api-version 2 image-list') + glance_shell = openstack_shell.OpenStackImagesShell() + glance_shell.main(args.split()) + ((args), kwargs) = session.call_args + self.assertEqual('myname', kwargs['project_name']) + self.assertEqual('mydomain', kwargs['project_domain_name']) + self.assertEqual('myid', kwargs['project_domain_id']) + class ShellTestWithKeystoneV3Auth(ShellTest): # auth environment to use