diff --git a/muranorepository/api/utils.py b/muranorepository/api/utils.py index d0917be..0aa7195 100644 --- a/muranorepository/api/utils.py +++ b/muranorepository/api/utils.py @@ -33,7 +33,7 @@ def get_archive(client, hash_sum): archive_manager = Archiver() cache_dir = os.path.join(CONF.cache_dir, client) if not os.path.exists(cache_dir): - os.mkdir(cache_dir) + os.makedirs(cache_dir) existing_hash = None else: existing_hash = archive_manager.get_existing_hash(cache_dir) diff --git a/muranorepository/utils/archiver.py b/muranorepository/utils/archiver.py index aca4e88..42e1111 100644 --- a/muranorepository/utils/archiver.py +++ b/muranorepository/utils/archiver.py @@ -120,14 +120,14 @@ class Archiver(object): clean_dir(cache_dir) hash_folder = self._create_hash_folder(arch_name, cache_dir) try: - shutil.move(ARCHIVE_PKG_NAME, os.path.join(hash_folder, - arch_name)) + shutil.move(arch_name, os.path.join(hash_folder, + ARCHIVE_PKG_NAME)) except Exception as e: log.error('Unable to move created archive {0}' ' to hash folder {1} due to {2}'.format(arch_name, hash_folder, e)) - return os.path.abspath(os.path.join(hash_folder, arch_name)) + return os.path.abspath(os.path.join(hash_folder, ARCHIVE_PKG_NAME)) def _create_hash_folder(self, archive_name, cache_dir): """ @@ -222,10 +222,12 @@ class Archiver(object): log.info( 'Manifest for {0} service has no file definitions for ' '{1}'.format(manifest.service_display_name, data_type)) - return self._compose_archive(ARCHIVE_PKG_NAME, - temp_dir, - hash=True, - cache_dir=cache_dir) + + with tempfile.NamedTemporaryFile(delete=False) as temp_file: + return self._compose_archive(temp_file.name, + temp_dir, + hash=True, + cache_dir=cache_dir) def create_service_archive(self, manifest, file_name): temp_dir = tempfile.mkdtemp()