summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuojian Shao <guojian@unitedstack.com>2015-05-29 11:50:30 -0400
committerGuojian Shao <guojian@unitedstack.com>2015-05-29 22:42:42 -0400
commit542f5873648df3657e623643a19f723a298fc46f (patch)
tree61455af13de38dfebe0a1d2e69b02c3e21e767d3
parent211c14c638b9bf393932be42d4f04a4dd12a84bc (diff)
downloadpython-openstackclient-542f5873648df3657e623643a19f723a298fc46f.tar.gz
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
-rw-r--r--doc/source/command-objects/project.rst6
-rw-r--r--openstackclient/identity/v3/project.py8
-rw-r--r--openstackclient/tests/identity/v3/test_project.py15
3 files changed, 29 insertions, 0 deletions
diff --git a/doc/source/command-objects/project.rst b/doc/source/command-objects/project.rst
index b8607f0b..cde4a9dd 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 0cb3c453..48f547f3 100644
--- a/openstackclient/identity/v3/project.py
+++ b/openstackclient/identity/v3/project.py
@@ -242,6 +242,11 @@ class SetProject(command.Command):
help='Set project name',
)
parser.add_argument(
+ '--domain',
+ metavar='<domain>',
+ help='Domain owning <project> (name or ID)',
+ )
+ parser.add_argument(
'--description',
metavar='<description>',
help='Set project 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 ec50da0c..ebf612cc 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',
}