+ elif mime_type in ["application/zip"]:
+ package_zip = ZipFile(filename)
+ package_files = package_zip.infolist()
+
+ descriptors = []
+ if (
+ "Definitions" in package_files
+ and "TOSCA-Metadata" in package_files
+ ):
+ descriptors = [
+ definition
+ for definition in package_files
+ if "Definitions/" in definition
+ and (
+ definition.endswith(".yaml")
+ or definition.endswith(".yml")
+ )
+ ]
+ else:
+ descriptors = [
+ definition
+ for definition in package_files
+ if definition.endswith(".yaml")
+ or definition.endswith(".yml")
+ ]
+ if len(descriptors) < 1:
+ raise ClientException(
+ "No descriptor found on this package, OSM was expecting at least 1"
+ )
+ descriptor_data = package_zip.open(descriptors[0])
+ package_zip.close()
+