diff options
| author | Sheel Rana <ranasheel2000@gmail.com> | 2016-03-30 17:05:09 +0530 |
|---|---|---|
| committer | Sheel Rana <ranasheel2000@gmail.com> | 2016-04-25 17:42:12 +0000 |
| commit | 4072554608abd4828f281dcc0e20ce99ed6611b9 (patch) | |
| tree | 22a21059104d0ecff9545848abf6978925c62706 /openstackclient/volume/v2 | |
| parent | 9e7f0cf1a544e13d472f49b64d1c5320f6f8d08c (diff) | |
| download | python-openstackclient-4072554608abd4828f281dcc0e20ce99ed6611b9.tar.gz | |
Support for volume service list
OSC does not support to list volume services.
This patch will provide support for adding volume service related
support.
Closes-bug:#1550999
Implements: bp cinder-command-support
Change-Id: I50ac14aeb96c4b8ddbf7b33e519feea0d126f752
Diffstat (limited to 'openstackclient/volume/v2')
| -rw-r--r-- | openstackclient/volume/v2/service.py | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/openstackclient/volume/v2/service.py b/openstackclient/volume/v2/service.py new file mode 100644 index 00000000..f26be13e --- /dev/null +++ b/openstackclient/volume/v2/service.py @@ -0,0 +1,70 @@ +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# + +"""Service action implementations""" + +from openstackclient.common import command +from openstackclient.common import utils + + +class ListService(command.Lister): + """List service command""" + + def get_parser(self, prog_name): + parser = super(ListService, self).get_parser(prog_name) + parser.add_argument( + "--host", + metavar="<host>", + help="List services on specified host (name only)") + parser.add_argument( + "--service", + metavar="<service>", + help="List only specified service (name only)") + parser.add_argument( + "--long", + action="store_true", + default=False, + help="List additional fields in output" + ) + return parser + + def take_action(self, parsed_args): + service_client = self.app.client_manager.volume + + if parsed_args.long: + columns = [ + "Binary", + "Host", + "Zone", + "Status", + "State", + "Updated At", + "Disabled Reason" + ] + else: + columns = [ + "Binary", + "Host", + "Zone", + "Status", + "State", + "Updated At" + ] + + data = service_client.services.list(parsed_args.host, + parsed_args.service) + return (columns, + (utils.get_item_properties( + s, columns, + ) for s in data)) |
