33import shutil
44import tempfile
55from collections import defaultdict
6+ from itertools import chain
67from xml .etree .ElementTree import ParseError
78
89from defusedxml .minidom import parseString
@@ -116,11 +117,19 @@ def get_repo_existing_components(self, plan_or_flow_name, paths=""):
116117 components = metadata_tree .parse_package_xml_types (
117118 "name" , source_xml_tree
118119 )
119-
120120 response_messages = self ._get_api_object_responce (
121121 package_xml_path , source_xml_tree .version .text
122122 )
123- mdapi_components .update (components )
123+ merged = {}
124+ for key in set (components ).union (mdapi_components ):
125+ merged [key ] = list (
126+ set (
127+ chain (
128+ components .get (key , []), mdapi_components .get (key , [])
129+ )
130+ )
131+ )
132+ mdapi_components = merged
124133 mdapi_response_messages .extend (response_messages )
125134 continue
126135 self ._copy_to_tempdir (path , temp_dir )
@@ -132,7 +141,13 @@ def get_repo_existing_components(self, plan_or_flow_name, paths=""):
132141
133142 # remove temp dir
134143 shutil .rmtree (temp_dir )
135- components .update (mdapi_components )
144+ print (mdapi_components )
145+ merged = {}
146+ for key in set (components ).union (mdapi_components ):
147+ merged [key ] = list (
148+ set (chain (components .get (key , []), mdapi_components .get (key , [])))
149+ )
150+ components = merged
136151 api_retrieve_unpackaged_response .extend (mdapi_response_messages )
137152 return [components , api_retrieve_unpackaged_response ]
138153
0 commit comments