From 339a0f4a8c4291e71c5b86158dc47ba4f3a7cf51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gon=C3=A9ri=20Le=20Bouder?= Date: Tue, 16 Apr 2019 23:09:55 -0400 Subject: [PATCH] vmware_datastore_facts: don't nodify dict in iter (#54869) (#54870) With Python3, we cannot iterate on a dict and modify it at the same time. Fixes ##54869 --- lib/ansible/modules/cloud/vmware/vmware_datastore_facts.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/ansible/modules/cloud/vmware/vmware_datastore_facts.py b/lib/ansible/modules/cloud/vmware/vmware_datastore_facts.py index 1fd9ccbcdf..041b088294 100644 --- a/lib/ansible/modules/cloud/vmware/vmware_datastore_facts.py +++ b/lib/ansible/modules/cloud/vmware/vmware_datastore_facts.py @@ -214,10 +214,12 @@ class PyVmomiCache(object): if confine_to_datacenter: if hasattr(objects, 'items'): # resource pools come back as a dictionary + tmpobjs = objects.copy() for k, v in objects.items(): parent_dc = get_parent_datacenter(k) if parent_dc.name != self.dc_name: - objects.pop(k, None) + tmpobjs.pop(k, None) + objects = tmpobjs else: # everything else should be a list objects = [x for x in objects if get_parent_datacenter(x).name == self.dc_name]