Skip to content

Commit a863843

Browse files
committed
Fixed Bug
1 parent df58663 commit a863843

2 files changed

Lines changed: 31 additions & 3 deletions

File tree

cumulusci/tasks/metadata/package.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,19 @@ def process_common_components(response_messages: List, components: Dict):
4545
"""Compare compoents in the api responce object with list of components and return common common components"""
4646
if not response_messages or not components:
4747
return components
48-
4948
for message in response_messages:
49+
5050
message_list = message.firstChild.nextSibling.firstChild.nodeValue.split("'")
5151
if len(message_list) > 1:
5252
component_type = message_list[1]
5353
message_txt = message_list[2]
54-
5554
if "is not available in this organization" in message_txt:
5655
del components[component_type]
56+
elif "is unknown" in message_txt:
57+
component_type = message_list[0].split(" ")
58+
components[component_type[0]].remove(message_list[1])
59+
if len(components[component_type]) == 0:
60+
del components[component_type]
5761
else:
5862
component_name = message_list[3]
5963
if component_name in components[component_type]:

cumulusci/tasks/salesforce/check_components.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ def _run_task(self):
6060
for component_type, component_names in components.items():
6161
self.logger.debug(f"{component_type}: {', '.join(component_names)}")
6262
# check common components
63+
components.pop("Settings", None)
6364
existing_components = process_common_components(
6465
api_retrieve_unpackaged_response, components
6566
)
@@ -102,12 +103,33 @@ def get_repo_existing_components(self, plan_or_flow_name, paths=""):
102103
# Temp dir to copy all deploy paths from task options
103104
temp_dir = tempfile.mkdtemp()
104105
self.logger.info(f"Temporary deploy directory created: {temp_dir}")
105-
106+
mdapi_components = {}
107+
mdapi_response_messages = []
106108
for path in self.deploy_paths:
107109
full_path = os.path.join(self.project_config.repo_root, path)
108110
if not os.path.exists(full_path):
109111
self.logger.info(f"Skipping path: '{path}' - path doesn't exist")
110112
continue
113+
elif "package.xml" in os.listdir(full_path):
114+
package_xml_path = os.path.join(full_path, "package.xml")
115+
source_xml_tree = metadata_tree.parse(package_xml_path)
116+
components = metadata_tree.parse_package_xml_types(
117+
"name", source_xml_tree
118+
)
119+
120+
response_messages = self._get_api_object_responce(
121+
package_xml_path, source_xml_tree.version.text
122+
)
123+
print("heloo", components)
124+
for message in response_messages:
125+
126+
message_list = (
127+
message.firstChild.nextSibling.firstChild.nodeValue.split("'")
128+
)
129+
print(message_list)
130+
mdapi_components.update(components)
131+
mdapi_response_messages.extend(response_messages)
132+
continue
111133
self._copy_to_tempdir(path, temp_dir)
112134

113135
(
@@ -117,6 +139,8 @@ def get_repo_existing_components(self, plan_or_flow_name, paths=""):
117139

118140
# remove temp dir
119141
shutil.rmtree(temp_dir)
142+
components.update(mdapi_components)
143+
api_retrieve_unpackaged_response.extend(mdapi_response_messages)
120144
return [components, api_retrieve_unpackaged_response]
121145

122146
def _copy_to_tempdir(self, src_dir, temp_dir):

0 commit comments

Comments
 (0)