summaryrefslogtreecommitdiff
path: root/openstackclient/volume
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-04-28 16:13:46 +0000
committerGerrit Code Review <review@openstack.org>2016-04-28 16:13:46 +0000
commit941217a5f391941925339acaeb6892fe5d1cf5b2 (patch)
treedd10375a8b29ede3003a7298fb360ad56abab2b6 /openstackclient/volume
parent74162fa31a3c34ee08472f24318f1c326b493330 (diff)
parent4072554608abd4828f281dcc0e20ce99ed6611b9 (diff)
downloadpython-openstackclient-941217a5f391941925339acaeb6892fe5d1cf5b2.tar.gz
Merge "Support for volume service list"
Diffstat (limited to 'openstackclient/volume')
-rw-r--r--openstackclient/volume/v1/service.py70
-rw-r--r--openstackclient/volume/v2/service.py70
2 files changed, 140 insertions, 0 deletions
diff --git a/openstackclient/volume/v1/service.py b/openstackclient/volume/v1/service.py
new file mode 100644
index 00000000..f26be13e
--- /dev/null
+++ b/openstackclient/volume/v1/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))
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))