Beispiel #1
0
def addMkDirJob(workflow=None, mkdir=None, outputDir=None, namespace=None, version=None,\
   parentJobLs=None, extraDependentInputLs=None):
    """
	2012.10.2, increment workflow.no_of_jobs
	2012.9.11
		make sure that parentJobLs and extraDependentInputLs are not None.
	2012.3.10
		add argument parentJobLs, extraDependentInputLs
	2011-11-28
		get namespace and version from workflow first
	2011-9-14
	"""
    # Add a mkdir job for any directory.
    job = Job(namespace=getattr(workflow, 'namespace', namespace), name=mkdir.name, \
       version=getattr(workflow, 'version', version))
    job.addArguments(outputDir)
    job.folder = outputDir  #custom attribute
    job.output = outputDir  #custom attribute
    workflow.addJob(job)
    if parentJobLs:
        for parentJob in parentJobLs:
            if parentJob:
                workflow.depends(parent=parentJob, child=job)
    if extraDependentInputLs:
        for input in extraDependentInputLs:
            if input is not None:
                job.uses(input, transfer=True, register=True, link=Link.INPUT)
    if hasattr(workflow, 'no_of_jobs'):  #2012.10.2
        workflow.no_of_jobs += 1
    return job