]> git.apps.os.sepia.ceph.com Git - teuthology.git/commitdiff
teuthology/misc: support MappingProxyType in deep_merge
authorPatrick Donnelly <pdonnell@redhat.com>
Mon, 18 Jul 2022 13:50:02 +0000 (09:50 -0400)
committerPatrick Donnelly <pdonnell@redhat.com>
Mon, 18 Jul 2022 14:10:31 +0000 (10:10 -0400)
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
teuthology/misc.py

index 85285cc783711c4a17ec15cd68725fb754bd712d..9fc344b67451d15147eb8834c652574c8f38fa5c 100644 (file)
@@ -17,6 +17,7 @@ import json
 import re
 import pprint
 import datetime
+from types import MappingProxyType
 
 from tarfile import ReadError
 
@@ -1010,12 +1011,14 @@ def deep_merge(a, b):
         a.extend(b)
         return a
     elif isinstance(a, dict):
-        assert isinstance(b, dict)
+        assert isinstance(b, dict) or isinstance(b, MappingProxyType)
         for (k, v) in b.items():
             a[k] = deep_merge(a.get(k), v)
         return a
     elif isinstance(b, dict) or isinstance(b, list):
         return deep_merge(b.__class__(), b)
+    elif isinstance(b, MappingProxyType):
+        return deep_merge(dict(), b)
     else:
         return b