diff --git a/package/cloudshell/cm/ansible/domain/zip_service.py b/package/cloudshell/cm/ansible/domain/zip_service.py index a7fe784..d98d041 100644 --- a/package/cloudshell/cm/ansible/domain/zip_service.py +++ b/package/cloudshell/cm/ansible/domain/zip_service.py @@ -7,7 +7,7 @@ def extract_all(self, zip_file_name): zip = None try: zip = ZipFile(zip_file_name, 'r') - if self._contain_sinlge_folder(zip): + if self._contain_single_folder(zip): for file_info in self._get_files(zip): file_info.filename = self._remove_first_folder(file_info.filename) zip.extract(file_info) @@ -43,11 +43,12 @@ def _is_folder(zipped_item): return zipped_item.filename[-1] == '/' @staticmethod - def _contain_sinlge_folder(zip): + def _contain_single_folder(zip): ''' :type zip: ZipFile :rtype: bool ''' - files = zip.namelist(); - folder = next((f for f in files if f[-1] == '/'), None) + files = zip.namelist() + # base folder not always guaranteed to be member in namelist - this expression will extract base folder name anyway + folder = next((f.split("/")[0] + "/" for f in files if "/" in f), None) return folder and all(f.startswith(folder) for f in files) \ No newline at end of file diff --git a/package/version.txt b/package/version.txt index 10bf840..f93ea0c 100644 --- a/package/version.txt +++ b/package/version.txt @@ -1 +1 @@ -2.0.1 \ No newline at end of file +2.0.2 \ No newline at end of file