diff --git a/package-source-builder/overlay/usr/bin/ci-license-scan b/package-source-builder/overlay/usr/bin/ci-license-scan index eb19064a68a1e110e08f37d89a65f9fdcbeda86d..818e6fbe770ab9bdb88bd7d033f37374f44bf620 100755 --- a/package-source-builder/overlay/usr/bin/ci-license-scan +++ b/package-source-builder/overlay/usr/bin/ci-license-scan @@ -363,8 +363,9 @@ def main(): name = name[:-len(suffix)] foss_project = fossology.ApertisFossology(args.fossology_host, args.fossology_username, args.fossology_password) foss_project.upload(args.source_url, args.source_branch, name) - reuse_id, reuse_group = foss_project.get_previous_upload_analysis_ids(name) - foss_project.analyse(reuse_id, reuse_group) + group_id = foss_project.get_group_id() + reuse_id = foss_project.get_previous_upload_analysis_id(name, group_id) + foss_project.analyse(reuse_id, group_id) report = foss_project.get_report('dep5') print(report, file=f) # open for parsing as binary since copyrights may (incorrectly) contain binary data diff --git a/package-source-builder/overlay/usr/bin/fossology.py b/package-source-builder/overlay/usr/bin/fossology.py index 30ec54bf084ca0638483d5f1daf579314feacb7a..eed35230db020e17d291d30f14a38992588e012e 100755 --- a/package-source-builder/overlay/usr/bin/fossology.py +++ b/package-source-builder/overlay/usr/bin/fossology.py @@ -44,7 +44,13 @@ class ApertisFossology: print_err(".", end = '', flush = True) time.sleep(1) - def get_previous_upload_analysis_ids(self, name): + def get_group_id(self): + resp = self.session.get(f"{self.server}/jobs?upload={self.upload_id}") + if resp.status_code != 200: + raise Exception('GET /jobs?upload={} {}'.format(self.upload_id, resp.status_code)) + return resp.json()[-1]["groupId"] + + def get_previous_upload_analysis_id(self, name, group_id): last_deleted_upload_id = 0 resp = self.session.get(f"{self.server}/jobs") if resp.status_code != 200: @@ -54,11 +60,12 @@ class ApertisFossology: if job["name"] == "Delete": last_deleted_upload_id = job["uploadId"] elif (job["name"] == name and + job["groupId"] == group_id and job["uploadId"] != self.upload_id and job["uploadId"] != last_deleted_upload_id): - return job["uploadId"], job["groupId"] + return job["uploadId"] - return 0, 0 + return 0 def upload(self, url, branch, name): print_err("Uploading {} branch {}".format(url, branch)) @@ -183,9 +190,11 @@ if __name__ == "__main__": project.upload(source_url, source_branch, name) - reuse_id, reuse_group = project.get_previous_upload_analysis_ids(name) + group_id = project.get_group_id() + + reuse_id = project.get_previous_upload_analysis_id(name, group_id) - project.analyse(reuse_id, reuse_group) + project.analyse(reuse_id, group_id) report = project.get_report('dep5') print(report)