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
This commit is contained in:
Eric Fried 2017-05-25 13:19:14 -05:00
parent 65402e1aeb
commit 4c8b61e279
1 changed files with 6 additions and 9 deletions

View File

@ -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)