Support "--long" option in ListService
Add "--long" option in ListService so that compute service disabled reason can be showed. Change-Id: I1ace8f1c4e4efe0a1a8f6710425d73eb5db9e5e1 Closes-Bug: #1556815
This commit is contained in:
parent
76081239d2
commit
8664a2f8ae
doc/source/command-objects
openstackclient
@ -31,6 +31,7 @@ List service command
|
|||||||
os compute service list
|
os compute service list
|
||||||
[--host <host>]
|
[--host <host>]
|
||||||
[--service <service>]
|
[--service <service>]
|
||||||
|
[--long]
|
||||||
|
|
||||||
.. _compute-service-list:
|
.. _compute-service-list:
|
||||||
.. describe:: --host <host>
|
.. describe:: --host <host>
|
||||||
@ -41,6 +42,10 @@ List service command
|
|||||||
|
|
||||||
Name of service
|
Name of service
|
||||||
|
|
||||||
|
.. describe:: --long
|
||||||
|
|
||||||
|
List additional fields in output
|
||||||
|
|
||||||
|
|
||||||
compute service set
|
compute service set
|
||||||
-------------------
|
-------------------
|
||||||
|
@ -49,19 +49,37 @@ class ListService(command.Lister):
|
|||||||
"--service",
|
"--service",
|
||||||
metavar="<service>",
|
metavar="<service>",
|
||||||
help="Name of service")
|
help="Name of service")
|
||||||
|
parser.add_argument(
|
||||||
|
"--long",
|
||||||
|
action="store_true",
|
||||||
|
default=False,
|
||||||
|
help="List additional fields in output"
|
||||||
|
)
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
def take_action(self, parsed_args):
|
def take_action(self, parsed_args):
|
||||||
compute_client = self.app.client_manager.compute
|
compute_client = self.app.client_manager.compute
|
||||||
columns = (
|
if parsed_args.long:
|
||||||
"Id",
|
columns = (
|
||||||
"Binary",
|
"Id",
|
||||||
"Host",
|
"Binary",
|
||||||
"Zone",
|
"Host",
|
||||||
"Status",
|
"Zone",
|
||||||
"State",
|
"Status",
|
||||||
"Updated At"
|
"State",
|
||||||
)
|
"Updated At",
|
||||||
|
"Disabled Reason"
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
columns = (
|
||||||
|
"Id",
|
||||||
|
"Binary",
|
||||||
|
"Host",
|
||||||
|
"Zone",
|
||||||
|
"Status",
|
||||||
|
"State",
|
||||||
|
"Updated At"
|
||||||
|
)
|
||||||
data = compute_client.services.list(parsed_args.host,
|
data = compute_client.services.list(parsed_args.host,
|
||||||
parsed_args.service)
|
parsed_args.service)
|
||||||
return (columns,
|
return (columns,
|
||||||
|
@ -79,10 +79,12 @@ QUOTA_data = tuple(QUOTA[x] for x in sorted(QUOTA))
|
|||||||
service_host = 'host_test'
|
service_host = 'host_test'
|
||||||
service_binary = 'compute_test'
|
service_binary = 'compute_test'
|
||||||
service_status = 'enabled'
|
service_status = 'enabled'
|
||||||
|
service_disabled_reason = 'earthquake'
|
||||||
SERVICE = {
|
SERVICE = {
|
||||||
'host': service_host,
|
'host': service_host,
|
||||||
'binary': service_binary,
|
'binary': service_binary,
|
||||||
'status': service_status,
|
'status': service_status,
|
||||||
|
'disabled_reason': service_disabled_reason,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -85,13 +85,37 @@ class TestServiceList(TestService):
|
|||||||
# In base command class Lister in cliff, abstract method take_action()
|
# In base command class Lister in cliff, abstract method take_action()
|
||||||
# returns a tuple containing the column names and an iterable
|
# returns a tuple containing the column names and an iterable
|
||||||
# containing the data to be listed.
|
# containing the data to be listed.
|
||||||
self.cmd.take_action(parsed_args)
|
columns, data = self.cmd.take_action(parsed_args)
|
||||||
|
|
||||||
self.service_mock.list.assert_called_with(
|
self.service_mock.list.assert_called_with(
|
||||||
compute_fakes.service_host,
|
compute_fakes.service_host,
|
||||||
compute_fakes.service_binary,
|
compute_fakes.service_binary,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
self.assertNotIn("Disabled Reason", columns)
|
||||||
|
self.assertNotIn(compute_fakes.service_disabled_reason, list(data)[0])
|
||||||
|
|
||||||
|
def test_service_list_with_long_option(self):
|
||||||
|
arglist = [
|
||||||
|
'--host', compute_fakes.service_host,
|
||||||
|
'--service', compute_fakes.service_binary,
|
||||||
|
'--long'
|
||||||
|
]
|
||||||
|
verifylist = [
|
||||||
|
('host', compute_fakes.service_host),
|
||||||
|
('service', compute_fakes.service_binary),
|
||||||
|
('long', True)
|
||||||
|
]
|
||||||
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||||
|
|
||||||
|
# In base command class Lister in cliff, abstract method take_action()
|
||||||
|
# returns a tuple containing the column names and an iterable
|
||||||
|
# containing the data to be listed.
|
||||||
|
columns, data = self.cmd.take_action(parsed_args)
|
||||||
|
|
||||||
|
self.assertIn("Disabled Reason", columns)
|
||||||
|
self.assertIn(compute_fakes.service_disabled_reason, list(data)[0])
|
||||||
|
|
||||||
|
|
||||||
class TestServiceSet(TestService):
|
class TestServiceSet(TestService):
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user