From 4434bd22a5482071d18f97c000f292ef25190195 Mon Sep 17 00:00:00 2001 From: Jorrit Schaap <schaap@astron.nl> Date: Tue, 12 Apr 2016 14:57:51 +0000 Subject: [PATCH] Task #8887: fix --- .../ResourceAssignmentDatabase/radb.py | 38 +++++++++++-------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb.py b/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb.py index a4515276793..7f700c44ef3 100644 --- a/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb.py +++ b/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb.py @@ -1334,22 +1334,30 @@ class RADatabase: resources = self.getResources(resource_ids=resource_ids, include_availability=True) for resource in resources: - resource_id = resource['id'] - resource_usages = all_usages[resource_id] - # copy resource capacities - resource_usages['total_capacity'] = resource['total_capacity'] - resource_usages['available_capacity'] = resource['available_capacity'] - resource_usages['used_capacity'] = resource['used_capacity'] - # and compute unaccounted-for usage, - # which is the actual used_capacity minus the currently allocated total claim size - utcnow = datetime.utcnow() - allocated_usages = resource_usages['usages'].get('allocated', []) - past_allocated_usages = sorted([au for au in allocated_usages if au['timestamp'] <= utcnow]) - if past_allocated_usages: - currently_allocated_usage = past_allocated_usages[-1] - resource_usages['misc_used_capacity'] = resource['used_capacity'] - currently_allocated_usage['value'] - else: + try: + resource_id = resource['id'] + resource_usages = all_usages[resource_id] + # copy resource capacities + resource_usages['total_capacity'] = 0 + resource_usages['available_capacity'] = 0 + resource_usages['used_capacity'] = 0 resource_usages['misc_used_capacity'] = 0 + if 'total_capacity' in resource: + resource_usages['total_capacity'] = resource['total_capacity'] + if 'available_capacity' in resource: + resource_usages['available_capacity'] = resource['available_capacity'] + if 'used_capacity' in resource: + resource_usages['used_capacity'] = resource['used_capacity'] + # and compute unaccounted-for usage, + # which is the actual used_capacity minus the currently allocated total claim size + utcnow = datetime.utcnow() + allocated_usages = resource_usages['usages'].get('allocated', []) + past_allocated_usages = sorted([au for au in allocated_usages if au['timestamp'] <= utcnow]) + if past_allocated_usages: + currently_allocated_usage = past_allocated_usages[-1] + resource_usages['misc_used_capacity'] = resource['used_capacity'] - currently_allocated_usage['value'] + except: + pass all_usages_list = all_usages.values() return all_usages_list -- GitLab