Skip to content

Commit 6bbe4ac

Browse files
committed
Allow for invalid resource provider allocations
Sometimes placement can get in a state where there are invalid resource provider allocations that do not have an associated server instance.
1 parent 6889f2f commit 6bbe4ac

File tree

2 files changed

+12
-8
lines changed

2 files changed

+12
-8
lines changed

os_capacity/data/server.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,10 @@ def _parse_created(raw_created):
2828

2929
def get(compute_client, uuid):
3030
url = "/servers/%s" % uuid
31-
raw_server = compute_client.get(url).json()['server']
31+
response = compute_client.get(url)
32+
if not response.ok:
33+
return None
34+
raw_server = response.json()['server']
3235
return Server(
3336
uuid=raw_server['id'],
3437
name=raw_server['name'],

os_capacity/utils.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -143,13 +143,14 @@ def get_allocations_with_server_info(app, flat_usage=True, get_names=False):
143143
usage = ", ".join(usage_amounts)
144144

145145
server = server_data.get(app.compute_client, allocation.consumer_uuid)
146-
delta = now - server.created
147-
days_running = delta.days + 1
148-
149-
allocation_tuples.append(AllocationList(
150-
rp_name, allocation.consumer_uuid, usage,
151-
server.flavor_id, days_running, server.project_id,
152-
server.user_id))
146+
if server:
147+
delta = now - server.created
148+
days_running = delta.days + 1
149+
150+
allocation_tuples.append(AllocationList(
151+
rp_name, allocation.consumer_uuid, usage,
152+
server.flavor_id, days_running, server.project_id,
153+
server.user_id))
153154

154155
allocation_tuples.sort(key=lambda x: (x.project_id, x.user_id,
155156
x.days * -1, x.flavor_id))

0 commit comments

Comments
 (0)