From afe3b76e6f55d96b72fce4476a57312adfbaa7fc Mon Sep 17 00:00:00 2001 From: ZhangXiao Date: Wed, 6 Apr 2022 15:57:21 +0800 Subject: [PATCH] aptly_deb_usage: Remove file folders before upload packages In corner cases when file been uploaded into file folder but not inserted into repo and clean the file folder, the process been interrupted thus the file fold with packages been remained by mistake. This will cause the uploaded package been placed into wrong repository. To fix it: Each time before upload package, remove file folders; Each repository use its own file folder as its name. Test Plan: - PASS: repo_manage.py upload_pkg ... Story: 2009221 Task: 44959 Signed-off-by: ZhangXiao Change-Id: Id680b1071e6a001b01d394bc613389cd41d3c682 --- build-tools/stx/aptly_deb_usage.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/build-tools/stx/aptly_deb_usage.py b/build-tools/stx/aptly_deb_usage.py index 46eee2b3..5a2551fb 100755 --- a/build-tools/stx/aptly_deb_usage.py +++ b/build-tools/stx/aptly_deb_usage.py @@ -471,9 +471,14 @@ class Deb_aptly(): # with '%3a' by mistake, this will cause error in aptly. new_name = pkg_name.replace('%3a', ':') os.rename(pkg_name, new_name) - # Add the package into local repo - self.aptly.files.upload('tmp_folder', new_name) - task = self.aptly.repos.add_uploaded_file(repo_name, 'tmp_folder', remove_processed_files=True) + # In corner cases the process been interrupted thus related file folders + # remained. Remove them firstly. + for file in self.aptly.files.list(): + self.aptly.files.delete(file) + # Upload package file into related file folder. + self.aptly.files.upload(repo_name, new_name) + # Add uploaded file into local repository. + task = self.aptly.repos.add_uploaded_file(repo_name, repo_name, remove_processed_files=True) self.aptly.tasks.wait_for_task_by_id(task.id) if self.aptly.tasks.show(task.id).state != 'SUCCEEDED': self.logger.warning('add_upload_file failed %s : %s : %s', new_name, repo_name, self.aptly.tasks.show(task.id).state)