def updateStatus(self, majorStatus, minorStatus, **kwargs): """ passes status """ my_dict = {"t_id": self.jobId, "inst_id": self.instanceId, "major_status": majorStatus, "minor_status": minorStatus} if 'resources' in kwargs: if kwargs['resources']: RM = kwargs['resources'] if not isinstance(RM, ResourceMonitor): raise Exception("resource must be of type resource monitor") my_dict['memory'] = RM.getMemory(unit='Mb') my_dict['cpu'] = RM.getCpuTime() del kwargs['resources'] my_dict.update(kwargs) if majorStatus in FINAL_STATII: # keep only NUMLINES of log file. theLog = self.error_log.splitlines() if len(theLog) > NUMLINES_LOG: self.error_log = "\n".join(theLog[-(NUMLINES_LOG-1):-1]) my_dict['log']=self.error_log # print '*DEBUG* my_dict: %s'%str(my_dict) res = Rpost("%s/jobstatus/" % DAMPE_WORKFLOW_URL, data={"args": dumps(my_dict)}) res.raise_for_status() if not res.json().get("result", "nok") == "ok": raise Exception(res.json().get("error", "ErrorMissing")) if majorStatus in ["Done", "Failed", "Terminated"]: witness = open(oPath.join(self.wd, "%s" % majorStatus.upper()), 'w') witness.write(self.getJobName()) witness.close() return
def postmark_spamcheck(self, message, options): data = {'email': message, 'options': options} result = POST(self.postmark_spamcheck_url, data) result.raise_for_status() content = loads(result.content) if 'error' in content: raise Exception(content['message']) return content
def registerDS(self, filename=None, overwrite=False): site = cfg.get("site", "name") if filename is None: files = [fi['target'] for fi in self.OutputFiles] else: files = [filename] for fi in files: tg = oPath.expandvars(fi) res = Rpost("%s/datacat/" % DAMPE_WORKFLOW_URL, data={"filename": tg, "site": site, "action": "register", "overwrite": str(overwrite)}) res.raise_for_status() if not res.json().get("result", "nok") == "ok": raise Exception(res.json().get("error", "No error provided."))