From 4c8b61e279cb4fabd9bafcec4db509fd6d47fd10 Mon Sep 17 00:00:00 2001 From: Eric Fried Date: Thu, 25 May 2017 13:19:14 -0500 Subject: [PATCH] Nix redundant dict in set_inventory_for_provider SchedulerReportClient.set_inventory_for_provider was creating an unnecessary copy of its inv_data dict. Add a weensy bit of efficiency by removing it and just using the input parameter as is. Also use a generator instead of a list when identifying custom resource classes to create. Change-Id: I862a12f0e2bde0c9e7ebd35611ab40ddbc975fd7 --- nova/scheduler/client/report.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/nova/scheduler/client/report.py b/nova/scheduler/client/report.py index 794ca8bad159..b4857eea1a83 100644 --- a/nova/scheduler/client/report.py +++ b/nova/scheduler/client/report.py @@ -688,16 +688,13 @@ class SchedulerReportClient(object): """ self._ensure_resource_provider(rp_uuid, rp_name) - new_inv = {} - for rc_name, inv in inv_data.items(): - if rc_name not in fields.ResourceClass.STANDARD: - # Auto-create custom resource classes coming from a virt driver - self._ensure_resource_class(rc_name) + # Auto-create custom resource classes coming from a virt driver + list(map(self._ensure_resource_class, + (rc_name for rc_name in inv_data + if rc_name not in fields.ResourceClass.STANDARD))) - new_inv[rc_name] = inv - - if new_inv: - self._update_inventory(rp_uuid, new_inv) + if inv_data: + self._update_inventory(rp_uuid, inv_data) else: self._delete_inventory(rp_uuid)