Skip to content

Commit 0fd090e

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "Add name and enabled param in ListDomain parser"
2 parents b3e69a2 + 8628e52 commit 0fd090e

3 files changed

Lines changed: 80 additions & 1 deletion

File tree

openstackclient/identity/v3/domain.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,9 +126,30 @@ def take_action(self, parsed_args):
126126
class ListDomain(command.Lister):
127127
_description = _("List domains")
128128

129+
def get_parser(self, prog_name):
130+
parser = super(ListDomain, self).get_parser(prog_name)
131+
parser.add_argument(
132+
'--name',
133+
metavar='<name>',
134+
help=_('The domain name'),
135+
)
136+
parser.add_argument(
137+
'--enabled',
138+
dest='enabled',
139+
action='store_true',
140+
help=_('The domains that are enabled will be returned'),
141+
)
142+
return parser
143+
129144
def take_action(self, parsed_args):
145+
kwargs = {}
146+
if parsed_args.name:
147+
kwargs['name'] = parsed_args.name
148+
if parsed_args.enabled:
149+
kwargs['enabled'] = True
150+
130151
columns = ('ID', 'Name', 'Enabled', 'Description')
131-
data = self.app.client_manager.identity.domains.list()
152+
data = self.app.client_manager.identity.domains.list(**kwargs)
132153
return (columns,
133154
(utils.get_item_properties(
134155
s, columns,

openstackclient/tests/unit/identity/v3/test_domain.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,61 @@ def test_domain_list_no_options(self):
293293
), )
294294
self.assertEqual(datalist, tuple(data))
295295

296+
def test_domain_list_with_option_name(self):
297+
arglist = ['--name',
298+
self.domain.name]
299+
verifylist = [
300+
('name', self.domain.name)
301+
]
302+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
303+
304+
# In base command class Lister in cliff, abstract method take_action()
305+
# returns a tuple containing the column names and an iterable
306+
# containing the data to be listed.
307+
columns, data = self.cmd.take_action(parsed_args)
308+
309+
kwargs = {
310+
'name': self.domain.name
311+
}
312+
self.domains_mock.list.assert_called_with(**kwargs)
313+
314+
collist = ('ID', 'Name', 'Enabled', 'Description')
315+
self.assertEqual(collist, columns)
316+
datalist = ((
317+
self.domain.id,
318+
self.domain.name,
319+
True,
320+
self.domain.description,
321+
), )
322+
self.assertEqual(datalist, tuple(data))
323+
324+
def test_domain_list_with_option_enabled(self):
325+
arglist = ['--enabled']
326+
verifylist = [
327+
('enabled', True)
328+
]
329+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
330+
331+
# In base command class Lister in cliff, abstract method take_action()
332+
# returns a tuple containing the column names and an iterable
333+
# containing the data to be listed.
334+
columns, data = self.cmd.take_action(parsed_args)
335+
336+
kwargs = {
337+
'enabled': True
338+
}
339+
self.domains_mock.list.assert_called_with(**kwargs)
340+
341+
collist = ('ID', 'Name', 'Enabled', 'Description')
342+
self.assertEqual(collist, columns)
343+
datalist = ((
344+
self.domain.id,
345+
self.domain.name,
346+
True,
347+
self.domain.description,
348+
), )
349+
self.assertEqual(datalist, tuple(data))
350+
296351

297352
class TestDomainSet(TestDomain):
298353

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
---
2+
features:
3+
- Add ``--name`` and ``--domain`` option to ``domain list`` command.

0 commit comments

Comments
 (0)