From d6f99b721d3e3978fd6a5438bdacefd5840d3b02 Mon Sep 17 00:00:00 2001 From: Hironori Shiina Date: Thu, 11 Aug 2016 00:02:29 +0900 Subject: [PATCH] Fix regular expression for uptime in hypervisor show Hypervisor show command has a few bugs as follows. - It doesn't trim an extra whitespace in the head of uptime information. - It doesn't display uptime information when the number of user is 1. This patch fixes the regular expression to match uptime information. Change-Id: Ic2f7fd9a9274466717084a0886f95f78e98a9007 Closes-Bug: 1611809 --- openstackclient/compute/v2/hypervisor.py | 5 +++-- openstackclient/tests/unit/compute/v2/test_hypervisor.py | 8 ++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/openstackclient/compute/v2/hypervisor.py b/openstackclient/compute/v2/hypervisor.py index 00625050a7..f9051919e7 100644 --- a/openstackclient/compute/v2/hypervisor.py +++ b/openstackclient/compute/v2/hypervisor.py @@ -98,8 +98,9 @@ class ShowHypervisor(command.ShowOne): # 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']) + m = re.match( + "\s*(.+)\sup\s+(.+),\s+(.+)\susers?,\s+load average:\s(.+)", + uptime['uptime']) if m: hypervisor["host_time"] = m.group(1) hypervisor["uptime"] = m.group(2) diff --git a/openstackclient/tests/unit/compute/v2/test_hypervisor.py b/openstackclient/tests/unit/compute/v2/test_hypervisor.py index d94a107c26..02ac6ba36e 100644 --- a/openstackclient/tests/unit/compute/v2/test_hypervisor.py +++ b/openstackclient/tests/unit/compute/v2/test_hypervisor.py @@ -159,10 +159,12 @@ class TestHypervisorShow(TestHypervisor): 'free_disk_gb', 'free_ram_mb', 'host_ip', + 'host_time', 'hypervisor_hostname', 'hypervisor_type', 'hypervisor_version', 'id', + 'load_average', 'local_gb', 'local_gb_used', 'memory_mb', @@ -172,6 +174,8 @@ class TestHypervisorShow(TestHypervisor): 'service_id', 'state', 'status', + 'uptime', + 'users', 'vcpus', 'vcpus_used', ) @@ -183,10 +187,12 @@ class TestHypervisorShow(TestHypervisor): 50, 1024, '192.168.0.10', + '01:28:24', self.hypervisor.hypervisor_hostname, 'QEMU', 2004001, self.hypervisor.id, + '0.94, 0.62, 0.50', 50, 0, 1024, @@ -196,6 +202,8 @@ class TestHypervisorShow(TestHypervisor): 1, 'up', 'enabled', + '3 days, 11:15', + '1', 4, 0, )