diff --git a/doc/source/command-objects/project.rst b/doc/source/command-objects/project.rst index b8607f0b62..cde4a9dd6c 100644 --- a/doc/source/command-objects/project.rst +++ b/doc/source/command-objects/project.rst @@ -124,6 +124,12 @@ Set project properties Set project name +.. option:: --domain <domain> + + Domain owning :ref:`\<project\> <project_set-project>` (name or ID) + + .. versionadded:: 3 + .. option:: --description <description> Set project description diff --git a/openstackclient/identity/v3/project.py b/openstackclient/identity/v3/project.py index 0cb3c45310..48f547f3ed 100644 --- a/openstackclient/identity/v3/project.py +++ b/openstackclient/identity/v3/project.py @@ -241,6 +241,11 @@ class SetProject(command.Command): metavar='<name>', help='Set project name', ) + parser.add_argument( + '--domain', + metavar='<domain>', + help='Domain owning <project> (name or ID)', + ) parser.add_argument( '--description', metavar='<description>', @@ -271,6 +276,7 @@ class SetProject(command.Command): identity_client = self.app.client_manager.identity if (not parsed_args.name + and not parsed_args.domain and not parsed_args.description and not parsed_args.enable and not parsed_args.property @@ -285,6 +291,8 @@ class SetProject(command.Command): kwargs = {} if parsed_args.name: kwargs['name'] = parsed_args.name + if parsed_args.domain: + kwargs['domain'] = parsed_args.domain if parsed_args.description: kwargs['description'] = parsed_args.description if parsed_args.enable: diff --git a/openstackclient/tests/identity/v3/test_project.py b/openstackclient/tests/identity/v3/test_project.py index ec50da0c30..ebf612ccd3 100644 --- a/openstackclient/tests/identity/v3/test_project.py +++ b/openstackclient/tests/identity/v3/test_project.py @@ -618,10 +618,12 @@ class TestProjectSet(TestProject): def test_project_set_name(self): arglist = [ '--name', 'qwerty', + '--domain', identity_fakes.domain_id, identity_fakes.project_name, ] verifylist = [ ('name', 'qwerty'), + ('domain', identity_fakes.domain_id), ('enable', False), ('disable', False), ('project', identity_fakes.project_name), @@ -634,6 +636,7 @@ class TestProjectSet(TestProject): # Set expected values kwargs = { 'name': 'qwerty', + 'domain': identity_fakes.domain_id, } # ProjectManager.update(project, name=, domain=, description=, # enabled=, **kwargs) @@ -644,10 +647,12 @@ class TestProjectSet(TestProject): def test_project_set_description(self): arglist = [ + '--domain', identity_fakes.domain_id, '--description', 'new desc', identity_fakes.project_name, ] verifylist = [ + ('domain', identity_fakes.domain_id), ('description', 'new desc'), ('enable', False), ('disable', False), @@ -660,6 +665,7 @@ class TestProjectSet(TestProject): # Set expected values kwargs = { + 'domain': identity_fakes.domain_id, 'description': 'new desc', } self.projects_mock.update.assert_called_with( @@ -669,10 +675,12 @@ class TestProjectSet(TestProject): def test_project_set_enable(self): arglist = [ + '--domain', identity_fakes.domain_id, '--enable', identity_fakes.project_name, ] verifylist = [ + ('domain', identity_fakes.domain_id), ('enable', True), ('disable', False), ('project', identity_fakes.project_name), @@ -684,6 +692,7 @@ class TestProjectSet(TestProject): # Set expected values kwargs = { + 'domain': identity_fakes.domain_id, 'enabled': True, } self.projects_mock.update.assert_called_with( @@ -693,10 +702,12 @@ class TestProjectSet(TestProject): def test_project_set_disable(self): arglist = [ + '--domain', identity_fakes.domain_id, '--disable', identity_fakes.project_name, ] verifylist = [ + ('domain', identity_fakes.domain_id), ('enable', False), ('disable', True), ('project', identity_fakes.project_name), @@ -708,6 +719,7 @@ class TestProjectSet(TestProject): # Set expected values kwargs = { + 'domain': identity_fakes.domain_id, 'enabled': False, } self.projects_mock.update.assert_called_with( @@ -717,11 +729,13 @@ class TestProjectSet(TestProject): def test_project_set_property(self): arglist = [ + '--domain', identity_fakes.domain_id, '--property', 'fee=fi', '--property', 'fo=fum', identity_fakes.project_name, ] verifylist = [ + ('domain', identity_fakes.domain_id), ('property', {'fee': 'fi', 'fo': 'fum'}), ('project', identity_fakes.project_name), ] @@ -732,6 +746,7 @@ class TestProjectSet(TestProject): # Set expected values kwargs = { + 'domain': identity_fakes.domain_id, 'fee': 'fi', 'fo': 'fum', }