Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-20 07:59:00

0001 import json
0002 import os
0003 import uuid
0004 
0005 import requests
0006 from pandaharvester.harvestercore import core_utils
0007 from pandaharvester.harvestercore.plugin_base import PluginBase
0008 from pandaharvester.harvestermisc.gitlab_utils import store_job_params
0009 
0010 # setup base logger
0011 baseLogger = core_utils.setup_logger("gitlab_submitter")
0012 
0013 
0014 # dummy submitter
0015 class GitlabSubmitter(PluginBase):
0016     # constructor
0017     def __init__(self, **kwarg):
0018         self.timeout = 180
0019         PluginBase.__init__(self, **kwarg)
0020 
0021     # trigger pipeline jobs
0022     def submit_workers(self, workspec_list):
0023         tmpLog = self.make_logger(baseLogger, method_name="submit_workers")
0024         tmpLog.debug(f"start nWorkers={len(workspec_list)}")
0025         retList = []
0026         for workSpec in workspec_list:
0027             try:
0028                 jobSpec = workSpec.get_jobspec_list()[0]
0029                 secrets = jobSpec.jobParams["secrets"]
0030                 params = json.loads(jobSpec.jobParams["jobPars"])
0031                 params["secrets"] = secrets
0032                 store_job_params(workSpec, params)
0033                 url = f"{params['project_api']}/{params['project_id']}/trigger/pipeline"
0034                 data = {"token": secrets[params["trigger_token"]], "ref": params["ref"]}
0035                 try:
0036                     tmpLog.debug(f"trigger pipeline at {url}")
0037                     r = requests.post(url, data=data, timeout=self.timeout)
0038                     response = r.json()
0039                     tmpLog.debug(f"got {str(response)}")
0040                 except Exception:
0041                     err_str = core_utils.dump_error_message(tmpLog)
0042                     retList.append((False, err_str))
0043                     continue
0044                 if response["status"] == "created":
0045                     workSpec.batchID = f"{response['id']} {response['project_id']}"
0046                     tmpLog.debug(f"succeeded with {workSpec.batchID}")
0047                     retList.append((True, ""))
0048                 else:
0049                     err_str = f"failed to trigger with {response['status']}"
0050                     tmpLog.error(err_str)
0051                     retList.append((False, err_str))
0052             except Exception:
0053                 err_str = core_utils.dump_error_message(tmpLog)
0054                 retList.append((False, err_str))
0055         tmpLog.debug("done")
0056         return retList