in awscli/customizations/cloudformation/artifact_exporter.py [0:0]
def export(self, resource_id, resource_dict, parent_dir):
if resource_dict is None:
return
property_value = jmespath.search(self.PROPERTY_NAME, resource_dict)
if not property_value and not self.PACKAGE_NULL_PROPERTY:
return
if isinstance(property_value, dict):
LOG.debug("Property {0} of {1} resource is not a URL"
.format(self.PROPERTY_NAME, resource_id))
return
# If property is a file but not a zip file, place file in temp
# folder and send the temp folder to be zipped
temp_dir = None
if is_local_file(property_value) and not \
is_zip_file(property_value) and self.FORCE_ZIP:
temp_dir = copy_to_temp_dir(property_value)
set_value_from_jmespath(resource_dict, self.PROPERTY_NAME, temp_dir)
try:
self.do_export(resource_id, resource_dict, parent_dir)
except Exception as ex:
LOG.debug("Unable to export", exc_info=ex)
raise exceptions.ExportFailedError(
resource_id=resource_id,
property_name=self.PROPERTY_NAME,
property_value=property_value,
ex=ex)
finally:
if temp_dir:
shutil.rmtree(temp_dir)