From cd432715c1b91449b4f3193ae4cd137300d9952a Mon Sep 17 00:00:00 2001
From: Nils Philippsen <nils@redhat.com>
Date: Tue, 9 Jun 2020 15:33:11 +0200
Subject: [PATCH] Don't pop from currently iterated dict
Avoids: "RuntimeError: dictionary changed size during iteration"
Signed-off-by: Nils Philippsen <nils@redhat.com>
---
lib/ansiblereview/groupvars.py | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/lib/ansiblereview/groupvars.py b/lib/ansiblereview/groupvars.py
index 3245c80..70441c0 100644
--- a/lib/ansiblereview/groupvars.py
+++ b/lib/ansiblereview/groupvars.py
@@ -38,12 +38,15 @@ def remove_inherited_and_overridden_vars(vars, group, inventory):
if group not in _vars:
_vars[group] = get_group_vars(group, inventory)
gv = _vars[group]
+ keys_to_pop = []
for (k, v) in vars.items():
if k in gv:
if gv[k] == v:
- vars.pop(k)
+ keys_to_pop.append(k)
else:
gv.pop(k)
+ for k in keys_to_pop:
+ vars.pop(k)
def remove_inherited_and_overridden_group_vars(group, inventory):
--
2.26.2