예제 #1
0
def parseJobFiles(jobTreeJobsRoot, updatedJobFiles, childJobFileToParentJob,
                  childCounts, shellJobs):
    jobFile = getJobFileName(jobTreeJobsRoot)
    if os.path.exists(jobFile):
        return _parseJobFiles(jobTreeJobsRoot, updatedJobFiles,
                              childJobFileToParentJob, childCounts, shellJobs)
    return reduce(lambda x, y: x + y, [
        parseJobFiles(childDir, updatedJobFiles, childJobFileToParentJob,
                      childCounts, shellJobs)
        for childDir in listChildDirs(jobTreeJobsRoot)
    ], [])
예제 #2
0
def _parseJobFiles(jobTreeJobsRoot, updatedJobFiles, childJobFileToParentJob, childCounts, shellJobs):
    #Read job
    job = parseJobFile(getJobFileName(jobTreeJobsRoot))
    #Get children
    childJobs = reduce(lambda x,y:x+y, [ parseJobFiles(childDir, updatedJobFiles, childJobFileToParentJob, childCounts, shellJobs) for childDir in listChildDirs(jobTreeJobsRoot) ], [])
    if len(childJobs) > 0:
        childCounts[job] = len(childJobs)
        for childJob in childJobs:
            childJobFileToParentJob[childJob.getJobFileName()] = job
    elif len(job.followOnCommands) > 0:
        updatedJobFiles.add(job)
    else: #Job is stub with nothing left to do, so ignore
        shellJobs.add(job)
        return []
    return [ job ]
예제 #3
0
def _parseJobFiles(jobTreeJobsRoot, updatedJobFiles, childJobFileToParentJob,
                   childCounts, shellJobs):
    #Read job
    job = parseJobFile(getJobFileName(jobTreeJobsRoot))
    #Get children
    childJobs = reduce(lambda x, y: x + y, [
        parseJobFiles(childDir, updatedJobFiles, childJobFileToParentJob,
                      childCounts, shellJobs)
        for childDir in listChildDirs(jobTreeJobsRoot)
    ], [])
    if len(childJobs) > 0:
        childCounts[job] = len(childJobs)
        for childJob in childJobs:
            childJobFileToParentJob[childJob.getJobFileName()] = job
    elif len(job.followOnCommands) > 0:
        updatedJobFiles.add(job)
    else:  #Job is stub with nothing left to do, so ignore
        shellJobs.add(job)
        return []
    return [job]
예제 #4
0
def parseJobFiles(jobTreeJobsRoot, updatedJobFiles, childJobFileToParentJob, childCounts, shellJobs):
    jobFile = getJobFileName(jobTreeJobsRoot)
    if os.path.exists(jobFile):
        return _parseJobFiles(jobTreeJobsRoot, updatedJobFiles, childJobFileToParentJob, childCounts, shellJobs)
    return reduce(lambda x,y:x+y, [ parseJobFiles(childDir, updatedJobFiles, childJobFileToParentJob, childCounts, shellJobs) for childDir in listChildDirs(jobTreeJobsRoot) ], [])