|
17 | 17 |
|
18 | 18 | import re |
19 | 19 |
|
| 20 | +from novaclient import exceptions as nova_exceptions |
20 | 21 | from osc_lib.command import command |
21 | 22 | from osc_lib import utils |
22 | 23 | import six |
@@ -94,18 +95,22 @@ def take_action(self, parsed_args): |
94 | 95 | if service_host in aggregate.hosts] |
95 | 96 | hypervisor["aggregates"] = member_of |
96 | 97 |
|
97 | | - uptime = compute_client.hypervisors.uptime(hypervisor['id'])._info |
98 | | - # Extract data from uptime value |
99 | | - # format: 0 up 0, 0 users, load average: 0, 0, 0 |
100 | | - # example: 17:37:14 up 2:33, 3 users, load average: 0.33, 0.36, 0.34 |
101 | | - m = re.match( |
102 | | - "\s*(.+)\sup\s+(.+),\s+(.+)\susers?,\s+load average:\s(.+)", |
103 | | - uptime['uptime']) |
104 | | - if m: |
105 | | - hypervisor["host_time"] = m.group(1) |
106 | | - hypervisor["uptime"] = m.group(2) |
107 | | - hypervisor["users"] = m.group(3) |
108 | | - hypervisor["load_average"] = m.group(4) |
| 98 | + try: |
| 99 | + uptime = compute_client.hypervisors.uptime(hypervisor['id'])._info |
| 100 | + # Extract data from uptime value |
| 101 | + # format: 0 up 0, 0 users, load average: 0, 0, 0 |
| 102 | + # example: 17:37:14 up 2:33, 3 users, |
| 103 | + # load average: 0.33, 0.36, 0.34 |
| 104 | + m = re.match( |
| 105 | + "\s*(.+)\sup\s+(.+),\s+(.+)\susers?,\s+load average:\s(.+)", |
| 106 | + uptime['uptime']) |
| 107 | + if m: |
| 108 | + hypervisor["host_time"] = m.group(1) |
| 109 | + hypervisor["uptime"] = m.group(2) |
| 110 | + hypervisor["users"] = m.group(3) |
| 111 | + hypervisor["load_average"] = m.group(4) |
| 112 | + except nova_exceptions.HTTPNotImplemented: |
| 113 | + pass |
109 | 114 |
|
110 | 115 | hypervisor["service_id"] = hypervisor["service"]["id"] |
111 | 116 | hypervisor["service_host"] = hypervisor["service"]["host"] |
|
0 commit comments