diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-04-28 16:13:46 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-04-28 16:13:46 +0000 |
| commit | 941217a5f391941925339acaeb6892fe5d1cf5b2 (patch) | |
| tree | dd10375a8b29ede3003a7298fb360ad56abab2b6 /openstackclient/volume/v2 | |
| parent | 74162fa31a3c34ee08472f24318f1c326b493330 (diff) | |
| parent | 4072554608abd4828f281dcc0e20ce99ed6611b9 (diff) | |
| download | python-openstackclient-941217a5f391941925339acaeb6892fe5d1cf5b2.tar.gz | |
Merge "Support for volume service list"
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)) |
