diff options
Diffstat (limited to 'external/meta-spdxscanner/classes/fossology-rest.bbclass')
-rw-r--r-- | external/meta-spdxscanner/classes/fossology-rest.bbclass | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/external/meta-spdxscanner/classes/fossology-rest.bbclass b/external/meta-spdxscanner/classes/fossology-rest.bbclass index d253853d..4e906093 100644 --- a/external/meta-spdxscanner/classes/fossology-rest.bbclass +++ b/external/meta-spdxscanner/classes/fossology-rest.bbclass @@ -22,6 +22,8 @@ HOSTTOOLS_NONFATAL += "curl" CREATOR_TOOL = "fossology-rest.bbclass in meta-spdxscanner" +NO_PROXY ?= "127.0.0.1" + # If ${S} isn't actually the top-level source directory, set SPDX_S to point at # the real top-level directory. SPDX_S ?= "${S}" @@ -107,7 +109,7 @@ python do_spdx () { for f_dir, f in list_files(spdx_temp_dir): temp_file = os.path.join(spdx_temp_dir,f_dir,f) shutil.copy(temp_file, temp_dir) - # shutil.rmtree(spdx_temp_dir) + shutil.rmtree(spdx_temp_dir) d.setVar('WORKDIR', spdx_workdir) info['sourcedir'] = spdx_workdir git_path = "%s/git/.git" % info['sourcedir'] @@ -144,6 +146,8 @@ def get_folder_id_by_name(d, folder_name): import subprocess import json + no_proxy = (d.getVar('NO_PROXY', True) or "") + server_url = (d.getVar('FOSSOLOGY_SERVER', True) or "") if server_url == "": bb.note("Please set fossology server URL by setting FOSSOLOGY_SERVER!\n") @@ -156,7 +160,7 @@ def get_folder_id_by_name(d, folder_name): rest_api_cmd = "curl -k -s -S -X GET " + server_url + "/api/v1/folders" \ + " -H \"Authorization: Bearer " + token + "\"" \ - + " --noproxy 127.0.0.1" + + " --noproxy " + no_proxy bb.note("Invoke rest_api_cmd = " + rest_api_cmd ) try: all_folder = subprocess.check_output(rest_api_cmd, stderr=subprocess.STDOUT, shell=True) @@ -183,6 +187,7 @@ def create_folder(d, folder_name): import os import subprocess + no_proxy = (d.getVar('NO_PROXY', True) or "") server_url = (d.getVar('FOSSOLOGY_SERVER', True) or "") if server_url == "": bb.note("Please set fossology server URL by setting FOSSOLOGY_SERVER!\n") @@ -197,7 +202,7 @@ def create_folder(d, folder_name): + " -H \'parentFolder: 1\'" \ + " -H \'folderName: " + folder_name + "\'" \ + " -H \"Authorization: Bearer " + token + "\"" \ - + " --noproxy 127.0.0.1" + + " --noproxy " + no_proxy bb.note("Invoke rest_api_cmd = " + rest_api_cmd) try: add_folder = subprocess.check_output(rest_api_cmd, stderr=subprocess.STDOUT, shell=True) @@ -235,7 +240,7 @@ def has_upload(d, tar_file, folder_id): import subprocess (work_dir, file_name) = os.path.split(tar_file) - + no_proxy = (d.getVar('NO_PROXY', True) or "") server_url = (d.getVar('FOSSOLOGY_SERVER', True) or "") if server_url == "": bb.note("Please set fossology server URL by setting FOSSOLOGY_SERVER!\n") @@ -248,7 +253,7 @@ def has_upload(d, tar_file, folder_id): rest_api_cmd = "curl -k -s -S -X GET " + server_url + "/api/v1/uploads" \ + " -H \"Authorization: Bearer " + token + "\"" \ - + " --noproxy 127.0.0.1" + + " --noproxy " + no_proxy bb.note("Invoke rest_api_cmd = " + rest_api_cmd ) try: @@ -272,7 +277,7 @@ def has_upload(d, tar_file, folder_id): bb.note(str(len(upload_output))) for i in range(0, len(upload_output)): if upload_output[i]["uploadname"] == file_name and str(upload_output[i]["folderid"]) == str(folder_id): - bb.warn("Find " + file_name + " in fossology server \"Software Repository\" folder. So, will not upload again.") + bb.warn("Find " + file_name + " in fossology server. So, will not upload again.") return upload_output[i]["id"] return False @@ -282,6 +287,7 @@ def upload(d, tar_file, folder): delaytime = 50 i = 0 + no_proxy = (d.getVar('NO_PROXY', True) or "") server_url = (d.getVar('FOSSOLOGY_SERVER', True) or "") if server_url == "": bb.note("Please set fossology server URL by setting FOSSOLOGY_SERVER!\n") @@ -299,7 +305,7 @@ def upload(d, tar_file, folder): + " -H \'public: public\'" \ + " -H \'Content-Type: multipart/form-data\'" \ + " -F \'fileInput=@\"" + tar_file + "\";type=application/octet-stream\'" \ - + " --noproxy 127.0.0.1" + + " --noproxy " + no_proxy bb.note("Upload : Invoke rest_api_cmd = " + rest_api_cmd ) while i < 10: time.sleep(delaytime) @@ -324,6 +330,7 @@ def analysis(d, folder_id, upload_id): delaytime = 50 i = 0 + no_proxy = (d.getVar('NO_PROXY', True) or "") server_url = (d.getVar('FOSSOLOGY_SERVER', True) or "") if server_url == "": bb.note("Please set fossology server URL by setting FOSSOLOGY_SERVER!\n") @@ -340,7 +347,7 @@ def analysis(d, folder_id, upload_id): + " -H \"Authorization: Bearer " + token + "\"" \ + " -H \'Content-Type: application/json\'" \ + " --data \'{\"analysis\": {\"bucket\": true,\"copyright_email_author\": true,\"ecc\": true, \"keyword\": true,\"mime\": true,\"monk\": true,\"nomos\": true,\"package\": true},\"decider\": {\"nomos_monk\": true,\"bulk_reused\": true,\"new_scanner\": true}}\'" \ - + " --noproxy 127.0.0.1" + + " --noproxy " + no_proxy bb.note("Analysis : Invoke rest_api_cmd = " + rest_api_cmd ) while i < 10: try: @@ -372,6 +379,7 @@ def trigger(d, folder_id, upload_id): delaytime = 50 i = 0 + no_proxy = (d.getVar('NO_PROXY', True) or "") server_url = (d.getVar('FOSSOLOGY_SERVER', True) or "") if server_url == "": bb.note("Please set fossology server URL by setting FOSSOLOGY_SERVER!\n") @@ -386,7 +394,7 @@ def trigger(d, folder_id, upload_id): + " -H \"Authorization: Bearer " + token + "\"" \ + " -H \"uploadId: " + str(upload_id) + "\"" \ + " -H \'reportFormat: spdx2tv\'" \ - + " --noproxy 127.0.0.1" + + " --noproxy " + no_proxy bb.note("trigger : Invoke rest_api_cmd = " + rest_api_cmd ) while i < 10: time.sleep(delaytime) @@ -416,6 +424,7 @@ def get_spdx(d, report_id, spdx_file): complete = False i = 0 + no_proxy = (d.getVar('NO_PROXY', True) or "") server_url = (d.getVar('FOSSOLOGY_SERVER', True) or "") if server_url == "": bb.note("Please set fossology server URL by setting FOSSOLOGY_SERVER!\n") @@ -428,7 +437,7 @@ def get_spdx(d, report_id, spdx_file): rest_api_cmd = "curl -k -s -S -X GET " + server_url + "/api/v1/report/" + report_id \ + " -H \'accept: text/plain\'" \ + " -H \"Authorization: Bearer " + token + "\"" \ - + " --noproxy 127.0.0.1" + + " --noproxy " + no_proxy bb.note("get_spdx : Invoke rest_api_cmd = " + rest_api_cmd ) while i < 10: time.sleep(delaytime) @@ -461,13 +470,12 @@ def get_spdx(d, report_id, spdx_file): bb.warn(d.getVar('PN', True) + ": Get the first line is " + first_line + ". Try agin") file.close() - os.remove(spdx_file) i += 1 delaytime = delaytime + 20 time.sleep(delaytime) file.close() - bb.warn(d.getVar('PN', True) + ": Get spdx failed, Please check your fossology server.") + bb.warn(d.getVar('PN', True) + ": SPDX file maybe have something wrong, please confirm.") def invoke_rest_api(d, tar_file, spdx_file, folder_id): import os |