示例#1
0
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
示例#2
0
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
示例#3
0
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
示例#4
0
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
示例#5
0
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
示例#6
0
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
示例#7
0
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
示例#8
0
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
示例#9
0
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
示例#10
0
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
示例#11
0
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
示例#12
0
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