def setFailedTasks(taskName, status, failure_reason): """ _setStartInjection_ """ factory = DBConnect.getConnection(package='Databases.TaskDB') tasks = factory(classname = "Task.SetFailedTasks") try: tasks.execute(taskName, status, failure_reason) except Exception, ex: msg = "Unable to set status %s and failure_reason %s for taskname %s\n" %(status, failure_reason, taskName) msg += str(ex) raise RuntimeError, msg
def getFailedGroups(): """ _getFailedGroups_ """ factory = DBConnect.getConnection(package='Databases.TaskDB') failedJobGroup = factory(classname = "JobGroup.GetFailedJobGroup") try: failed_jobgroup = failedJobGroup.execute() except Exception, ex: msg = "Unable to get failed jobgroups \n" msg += str(ex) raise RuntimeError, msg
def setEndInjection(taskName): """ _setStartInjection_ """ factory = DBConnect.getConnection(package='Databases.TaskDB') tasks = factory(classname = "Task.SetEndInjection") try: tasks.execute(taskName) except Exception, ex: msg = "Unable to set taskname %s\n" %taskName msg += str(ex) raise RuntimeError, msg
def setStatusTask(taskName, status): """ _setQueuedTask_ """ factory = DBConnect.getConnection(package='Databases.TaskDB') tasks = factory(classname = "Task.SetStatusTask") try: tasks.execute(taskName, status) except Exception, ex: msg = "Unable to get new resubmit tasks \n" msg += str(ex) raise RuntimeError, msg
def updateTaskWorker(getstatus, setstatus, twname, limit): """ _updateTaskWorker_ """ factory = DBConnect.getConnection(package='Databases.TaskDB') tasks = factory(classname = "Task.UpdateWorker") try: tasks.execute(getstatus, setstatus, twname, limit) except Exception, ex: msg = "Unable to get status %s and update status %s for taskworker %s\n" %(getstatus, setstatus, twname) msg += str(ex) raise RuntimeError, msg
def setJobSetId(taskName, jobSetId): """ _setJobSetId_ """ factory = DBConnect.getConnection(package='Databases.TaskDB') tasks = factory(classname = "Task.SetJobSetId") try: tasks.execute(taskName, jobSetId) except Exception, ex: msg = "Unable to set jobSetId %s for taskname %s\n" %(jobSetId, taskName) msg += str(ex) raise RuntimeError, msg
def setStatus(tm_jobgroups_id, status): """ _setQueuedTask_ """ factory = DBConnect.getConnection(package="Databases.TaskDB") statusJobGroup = factory(classname="JobGroup.SetStatusJobGroup") try: statusJobGroup.execute(tm_jobgroups_id, status) except Exception, ex: msg = "Unable to get new resubmit tasks \n" msg += str(ex) raise RuntimeError, msg
def setJobDefId(tm_jobgroups_id, panda_jobdef_id): """ _setJobDefId_ """ factory = DBConnect.getConnection() jobDefId = factory(classname="JobGroup.SetJobDefId") try: jobDefId.execute(tm_jobgroups_id, panda_jobdef_id) except Exception, ex: msg = "Unable to set the jobdefid \n" msg += str(ex) raise RuntimeError, msg
def getNewResubmitTasks(): """ _getNewResubmitTasks_ """ factory = DBConnect.getConnection(package='Databases.TaskDB') tasks = factory(classname = "Task.GetNewResubmit") try: taskList = tasks.execute() except Exception, ex: msg = "Unable to get new resubmit tasks \n" msg += str(ex) raise RuntimeError, msg
def getReadyTasks(getstatus, twname, limit = 0): """ _getKillTasks_ """ factory = DBConnect.getConnection(package='Databases.TaskDB') tasks = factory(classname = "Task.GetReadyTasks") try: taskList = tasks.execute(getstatus, twname, limit) except Exception, ex: msg = "Unable to get ready tasks \n" msg += str(ex) raise RuntimeError, msg
def addJobGroup(taskName, jobdefid, status, blocks, jobgroup_failure, tm_user_dn): """ _addJobGroup_ """ factory = DBConnect.getConnection(package="Databases.TaskDB") newJobGroup = factory(classname = "JobGroup.AddJobGroup") try: #Actually I am not sure I want the following three lines... It can trigger errors later #Let's discuss this at the ticket review # #TODO put 4000 in some variable in Create.py and use it when you create the DB # if len(blocks) > 4000: # logger.warning("Truncating blocks field as it exceeds 4000 chars") # blocks = blocks[:4000] jobgroupId = newJobGroup.execute(taskName, jobdefid, status, blocks, jobgroup_failure, tm_user_dn) except Exception, ex: msg = "Unable to create jobgroup %s of task named %s\n" % (jobdefid, taskName) msg += str(ex) raise RuntimeError, msg
def createTask(taskName, panda_jobset_id, tm_task_status, tm_task_failure, \ tm_job_sw, tm_job_arch, tm_input_dataset, tm_site_whitelist, tm_site_blacklist, tm_split_algo, \ tm_split_args, tm_totalunits, tm_user_sandbox, tm_cache_url, tm_username, tm_user_dn, tm_user_vo, tm_user_role, \ tm_user_group, tm_publish_name, tm_asyncdest, tm_dbs_url, tm_publish_dbs_url, tm_outfiles, \ tm_tfile_outfiles, tm_edm_outfiles, tm_transformation, tm_arguments): """ _createTask_ Create a new task entry, return the task id This creates a basic task entity, details of size of task, datasets etc need to be added with other API calls """ factory = DBConnect.getConnection(package='Databases.TaskDB') # // # // does the task name already exist? #// taskId = factory(classname = "Task.ID").execute(taskName) if taskId != None: msg = "task name already exists: %s\n" % taskName msg += "Cannot create new task with same name" raise RuntimeError, msg newTask = factory(classname = "Task.New") try: taskId = newTask.execute( taskName, panda_jobset_id, tm_task_status, tm_task_failure, \ tm_job_sw, tm_job_arch, tm_input_dataset, tm_site_whitelist, tm_site_blacklist, tm_split_algo, \ tm_split_args, tm_totalunits, tm_user_sandbox, tm_cache_url, tm_username, tm_user_dn, tm_user_vo, tm_user_role, \ tm_user_group, tm_publish_name, tm_asyncdest, tm_dbs_url, tm_publish_dbs_url, tm_outfiles, \ tm_tfile_outfiles, tm_edm_outfiles, tm_transformation, tm_arguments ) except Exception, ex: msg = "Unable to create task named %s\n" % taskName msg += str(ex) raise RuntimeError, msg