Skip to content

Commit 542f587

Browse files
author
Guojian Shao
committed
add --domain argument to v3 project set
Currently argument 'domain' is not supported by command 'os project set', but it is required by keystone v3 update project API to match the domain id. Closes-Bug: #1460122 Change-Id: I1b32f67f78b369f6134a74cdf9a4811b7539d44b
1 parent 211c14c commit 542f587

3 files changed

Lines changed: 29 additions & 0 deletions

File tree

‎doc/source/command-objects/project.rst‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,12 @@ Set project properties
124124

125125
Set project name
126126

127+
.. option:: --domain <domain>
128+
129+
Domain owning :ref:`\<project\> <project_set-project>` (name or ID)
130+
131+
.. versionadded:: 3
132+
127133
.. option:: --description <description>
128134

129135
Set project description

‎openstackclient/identity/v3/project.py‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,11 @@ def get_parser(self, prog_name):
241241
metavar='<name>',
242242
help='Set project name',
243243
)
244+
parser.add_argument(
245+
'--domain',
246+
metavar='<domain>',
247+
help='Domain owning <project> (name or ID)',
248+
)
244249
parser.add_argument(
245250
'--description',
246251
metavar='<description>',
@@ -271,6 +276,7 @@ def take_action(self, parsed_args):
271276
identity_client = self.app.client_manager.identity
272277

273278
if (not parsed_args.name
279+
and not parsed_args.domain
274280
and not parsed_args.description
275281
and not parsed_args.enable
276282
and not parsed_args.property
@@ -285,6 +291,8 @@ def take_action(self, parsed_args):
285291
kwargs = {}
286292
if parsed_args.name:
287293
kwargs['name'] = parsed_args.name
294+
if parsed_args.domain:
295+
kwargs['domain'] = parsed_args.domain
288296
if parsed_args.description:
289297
kwargs['description'] = parsed_args.description
290298
if parsed_args.enable:

‎openstackclient/tests/identity/v3/test_project.py‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -618,10 +618,12 @@ def test_project_set_no_options(self):
618618
def test_project_set_name(self):
619619
arglist = [
620620
'--name', 'qwerty',
621+
'--domain', identity_fakes.domain_id,
621622
identity_fakes.project_name,
622623
]
623624
verifylist = [
624625
('name', 'qwerty'),
626+
('domain', identity_fakes.domain_id),
625627
('enable', False),
626628
('disable', False),
627629
('project', identity_fakes.project_name),
@@ -634,6 +636,7 @@ def test_project_set_name(self):
634636
# Set expected values
635637
kwargs = {
636638
'name': 'qwerty',
639+
'domain': identity_fakes.domain_id,
637640
}
638641
# ProjectManager.update(project, name=, domain=, description=,
639642
# enabled=, **kwargs)
@@ -644,10 +647,12 @@ def test_project_set_name(self):
644647

645648
def test_project_set_description(self):
646649
arglist = [
650+
'--domain', identity_fakes.domain_id,
647651
'--description', 'new desc',
648652
identity_fakes.project_name,
649653
]
650654
verifylist = [
655+
('domain', identity_fakes.domain_id),
651656
('description', 'new desc'),
652657
('enable', False),
653658
('disable', False),
@@ -660,6 +665,7 @@ def test_project_set_description(self):
660665

661666
# Set expected values
662667
kwargs = {
668+
'domain': identity_fakes.domain_id,
663669
'description': 'new desc',
664670
}
665671
self.projects_mock.update.assert_called_with(
@@ -669,10 +675,12 @@ def test_project_set_description(self):
669675

670676
def test_project_set_enable(self):
671677
arglist = [
678+
'--domain', identity_fakes.domain_id,
672679
'--enable',
673680
identity_fakes.project_name,
674681
]
675682
verifylist = [
683+
('domain', identity_fakes.domain_id),
676684
('enable', True),
677685
('disable', False),
678686
('project', identity_fakes.project_name),
@@ -684,6 +692,7 @@ def test_project_set_enable(self):
684692

685693
# Set expected values
686694
kwargs = {
695+
'domain': identity_fakes.domain_id,
687696
'enabled': True,
688697
}
689698
self.projects_mock.update.assert_called_with(
@@ -693,10 +702,12 @@ def test_project_set_enable(self):
693702

694703
def test_project_set_disable(self):
695704
arglist = [
705+
'--domain', identity_fakes.domain_id,
696706
'--disable',
697707
identity_fakes.project_name,
698708
]
699709
verifylist = [
710+
('domain', identity_fakes.domain_id),
700711
('enable', False),
701712
('disable', True),
702713
('project', identity_fakes.project_name),
@@ -708,6 +719,7 @@ def test_project_set_disable(self):
708719

709720
# Set expected values
710721
kwargs = {
722+
'domain': identity_fakes.domain_id,
711723
'enabled': False,
712724
}
713725
self.projects_mock.update.assert_called_with(
@@ -717,11 +729,13 @@ def test_project_set_disable(self):
717729

718730
def test_project_set_property(self):
719731
arglist = [
732+
'--domain', identity_fakes.domain_id,
720733
'--property', 'fee=fi',
721734
'--property', 'fo=fum',
722735
identity_fakes.project_name,
723736
]
724737
verifylist = [
738+
('domain', identity_fakes.domain_id),
725739
('property', {'fee': 'fi', 'fo': 'fum'}),
726740
('project', identity_fakes.project_name),
727741
]
@@ -732,6 +746,7 @@ def test_project_set_property(self):
732746

733747
# Set expected values
734748
kwargs = {
749+
'domain': identity_fakes.domain_id,
735750
'fee': 'fi',
736751
'fo': 'fum',
737752
}

0 commit comments

Comments
 (0)