bug(descriptor): missing fields in stored descriptors. 1408, 1388

Change-Id: I404cb8788458c5c574748e67de1b5f37b0a0c77b
Signed-off-by: bravof <fbravo@whitestack.com>
diff --git a/osm_nbi/utils.py b/osm_nbi/utils.py
index bb9e33e..aac3d90 100644
--- a/osm_nbi/utils.py
+++ b/osm_nbi/utils.py
@@ -37,3 +37,22 @@
             return index
     else:
         return -1
+
+
+def deep_update_dict(data, updated_data):
+    if isinstance(data, list):
+        processed_items_data = []
+        for index, item in enumerate(data):
+            processed_items_data.append(deep_update_dict(item, updated_data[index]))
+        return processed_items_data
+
+    if isinstance(data, dict):
+        for key in data.keys():
+            if key in updated_data:
+                if not isinstance(data[key], dict) and not isinstance(data[key], list):
+                    data[key] = updated_data[key]
+                else:
+                    data[key] = deep_update_dict(data[key], updated_data[key])
+        return data
+
+    return data