summaryrefslogtreecommitdiff
path: root/openstackclient/volume/v2
diff options
context:
space:
mode:
authorSheel Rana <ranasheel2000@gmail.com>2016-03-30 17:05:09 +0530
committerSheel Rana <ranasheel2000@gmail.com>2016-04-25 17:42:12 +0000
commit4072554608abd4828f281dcc0e20ce99ed6611b9 (patch)
tree22a21059104d0ecff9545848abf6978925c62706 /openstackclient/volume/v2
parent9e7f0cf1a544e13d472f49b64d1c5320f6f8d08c (diff)
downloadpython-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.py70
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))