Show which aggregate a hypervisor is member of
This adds support for showing which host aggregates a hypervisor is member of, if any. It supports hypervisors with or without nova cells. Closes-bug: #1470875 Change-Id: I0cfe4f15fa8f8ba0be3295b79cd438998893114c
This commit is contained in:
parent
d80deaba41
commit
3bfaf79732
@ -77,6 +77,29 @@ class ShowHypervisor(show.ShowOne):
|
|||||||
hypervisor = utils.find_resource(compute_client.hypervisors,
|
hypervisor = utils.find_resource(compute_client.hypervisors,
|
||||||
parsed_args.hypervisor)._info.copy()
|
parsed_args.hypervisor)._info.copy()
|
||||||
|
|
||||||
|
aggregates = compute_client.aggregates.list()
|
||||||
|
hypervisor["aggregates"] = list()
|
||||||
|
if aggregates:
|
||||||
|
# Hypervisors in nova cells are prefixed by "<cell>@"
|
||||||
|
if "@" in hypervisor['service']['host']:
|
||||||
|
cell, service_host = hypervisor['service']['host'].split('@',
|
||||||
|
1)
|
||||||
|
else:
|
||||||
|
cell = None
|
||||||
|
service_host = hypervisor['service']['host']
|
||||||
|
|
||||||
|
if cell:
|
||||||
|
# The host aggregates are also prefixed by "<cell>@"
|
||||||
|
member_of = [aggregate.name
|
||||||
|
for aggregate in aggregates
|
||||||
|
if cell in aggregate.name and
|
||||||
|
service_host in aggregate.hosts]
|
||||||
|
else:
|
||||||
|
member_of = [aggregate.name
|
||||||
|
for aggregate in aggregates
|
||||||
|
if service_host in aggregate.hosts]
|
||||||
|
hypervisor["aggregates"] = member_of
|
||||||
|
|
||||||
uptime = compute_client.hypervisors.uptime(hypervisor['id'])._info
|
uptime = compute_client.hypervisors.uptime(hypervisor['id'])._info
|
||||||
# Extract data from uptime value
|
# Extract data from uptime value
|
||||||
# format: 0 up 0, 0 users, load average: 0, 0, 0
|
# format: 0 up 0, 0 users, load average: 0, 0, 0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user