Blob Blame History Raw
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