Skip to content

Commit d5a4216

Browse files
Jenkinsopenstack-gerrit
authored andcommitted
Merge "Add compute hosts support."
2 parents 6fae83b + 47068b1 commit d5a4216

2 files changed

Lines changed: 86 additions & 1 deletion

File tree

openstackclient/compute/v2/host.py

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
# Copyright 2013 OpenStack, LLC.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License"); you may
4+
# not use this file except in compliance with the License. You may obtain
5+
# a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11+
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12+
# License for the specific language governing permissions and limitations
13+
# under the License.
14+
#
15+
16+
"""Host action implementations"""
17+
18+
import logging
19+
20+
from cliff import lister
21+
22+
from novaclient.v1_1 import hosts
23+
from openstackclient.common import utils
24+
25+
26+
class ListHost(lister.Lister):
27+
"""List host command"""
28+
29+
api = "compute"
30+
log = logging.getLogger(__name__ + ".ListHost")
31+
32+
def get_parser(self, prog_name):
33+
parser = super(ListHost, self).get_parser(prog_name)
34+
parser.add_argument(
35+
"--zone",
36+
metavar="<zone>",
37+
help="Only return hosts in the availability zone.")
38+
return parser
39+
40+
def take_action(self, parsed_args):
41+
self.log.debug("take_action(%s)" % parsed_args)
42+
compute_client = self.app.client_manager.compute
43+
columns = (
44+
"Host Name",
45+
"Service",
46+
"Zone"
47+
)
48+
data = compute_client.hosts.list_all(parsed_args.zone)
49+
return (columns,
50+
(utils.get_item_properties(
51+
s, columns,
52+
) for s in data))
53+
54+
55+
class ShowHost(lister.Lister):
56+
"""Show host command"""
57+
58+
api = "compute"
59+
log = logging.getLogger(__name__ + ".ShowHost")
60+
61+
def get_parser(self, prog_name):
62+
parser = super(ShowHost, self).get_parser(prog_name)
63+
parser.add_argument(
64+
"host",
65+
metavar="<host>",
66+
help="Name of host")
67+
return parser
68+
69+
def take_action(self, parsed_args):
70+
self.log.debug("take_action(%s)" % parsed_args)
71+
compute_client = self.app.client_manager.compute
72+
columns = (
73+
"Host",
74+
"Project",
75+
"CPU",
76+
"Memory MB",
77+
"Disk GB"
78+
)
79+
data = compute_client.hosts.get(parsed_args.host)
80+
return (columns,
81+
(utils.get_item_properties(
82+
s, columns,
83+
) for s in data))

setup.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ def read(fname):
132132
'delete_server=openstackclient.compute.v2.server:DeleteServer',
133133
'list_agent=openstackclient.compute.v2.agent:ListAgent',
134134
'list_flavor=openstackclient.compute.v2.flavor:ListFlavor',
135+
'list_host=openstackclient.compute.v2.host:ListHost',
135136
'list_server=openstackclient.compute.v2.server:ListServer',
136137
'list_compute-service=' +
137138
'openstackclient.compute.v2.service:ListService',
@@ -140,9 +141,10 @@ def read(fname):
140141
'rebuild_server=openstackclient.compute.v2.server:RebuildServer',
141142
'resume_server=openstackclient.compute.v2.server:ResumeServer',
142143
'set_agent=openstackclient.compute.v2.agent:SetAgent',
143-
'show_flavor=openstackclient.compute.v2.flavor:ShowFlavor',
144144
'set_compute-service=' +
145145
'openstackclient.compute.v2.service:SetService',
146+
'show_flavor=openstackclient.compute.v2.flavor:ShowFlavor',
147+
'show_host=openstackclient.compute.v2.host:ShowHost',
146148
'show_server=openstackclient.compute.v2.server:ShowServer',
147149
'suspend_server=openstackclient.compute.v2.server:SuspendServer',
148150
'unpause_server=openstackclient.compute.v2.server:UnpauseServer',

0 commit comments

Comments
 (0)