From 5fddec359dbf6106fd72fcc469d37fd432c85cf3 Mon Sep 17 00:00:00 2001 From: lin-hua-cheng <os.lcheng@gmail.com> Date: Fri, 20 Feb 2015 22:23:30 -0800 Subject: [PATCH] Add 'uptime' in 'hypervisor show' Fetch the 'uptime' by making a call to hypervisor-uptime. Update the help for 'hypervisor show' to mention that it supports by Name or Id. Change-Id: I31060d203e87749cfc05810c2d9db42f2416051d Partial-Bug: #1423748 --- openstackclient/compute/v2/hypervisor.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/openstackclient/compute/v2/hypervisor.py b/openstackclient/compute/v2/hypervisor.py index 355ffbb315..65035d0431 100644 --- a/openstackclient/compute/v2/hypervisor.py +++ b/openstackclient/compute/v2/hypervisor.py @@ -16,6 +16,7 @@ """Hypervisor action implementations""" import logging +import re import six from cliff import lister @@ -76,6 +77,18 @@ class ShowHypervisor(show.ShowOne): hypervisor = utils.find_resource(compute_client.hypervisors, parsed_args.hypervisor)._info.copy() + uptime = compute_client.hypervisors.uptime(hypervisor['id'])._info + # Extract data from uptime value + # format: 0 up 0, 0 users, load average: 0, 0, 0 + # example: 17:37:14 up 2:33, 3 users, load average: 0.33, 0.36, 0.34 + m = re.match("(.+)\sup\s+(.+),\s+(.+)\susers,\s+load average:\s(.+)", + uptime['uptime']) + if m: + hypervisor["host_time"] = m.group(1) + hypervisor["uptime"] = m.group(2) + hypervisor["users"] = m.group(3) + hypervisor["load_average"] = m.group(4) + hypervisor["service_id"] = hypervisor["service"]["id"] hypervisor["service_host"] = hypervisor["service"]["host"] del hypervisor["service"]