Added the ability for Queue functions like mkdirs to override if they are done or not.
git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@4458 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
parent
97b153f2fa
commit
e02f837659
|
|
@ -12,11 +12,11 @@ class FunctionEdge(var function: QFunction) extends QEdge {
|
||||||
var runner: JobRunner =_
|
var runner: JobRunner =_
|
||||||
|
|
||||||
private var currentStatus = {
|
private var currentStatus = {
|
||||||
val doneOutputs = function.doneOutputs
|
val isDone = function.isDone
|
||||||
val failOutputs = function.failOutputs
|
val isFail = function.isFail
|
||||||
if (failOutputs.exists(_.exists))
|
if (isFail.isDefined && isFail.get)
|
||||||
RunnerStatus.FAILED
|
RunnerStatus.FAILED
|
||||||
else if (doneOutputs.size > 0 && doneOutputs.forall(_.exists))
|
else if (isDone.isDefined && isDone.get)
|
||||||
RunnerStatus.DONE
|
RunnerStatus.DONE
|
||||||
else
|
else
|
||||||
RunnerStatus.PENDING
|
RunnerStatus.PENDING
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,30 @@ trait QFunction {
|
||||||
*/
|
*/
|
||||||
def dotString = ""
|
def dotString = ""
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns true if the function is done, false if it's
|
||||||
|
* not done and None if the done status is unknown.
|
||||||
|
*/
|
||||||
|
def isDone = {
|
||||||
|
val files = doneOutputs
|
||||||
|
if (files.size == 0)
|
||||||
|
None
|
||||||
|
else
|
||||||
|
Some(files.forall(_.exists))
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns true if the function has failed, false if it
|
||||||
|
* has not failed and None if the fail status is unknown.
|
||||||
|
*/
|
||||||
|
def isFail = {
|
||||||
|
val files = failOutputs
|
||||||
|
if (files.size == 0)
|
||||||
|
None
|
||||||
|
else
|
||||||
|
Some(files.exists(_.exists))
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns true if the file should be used for status output.
|
* Returns true if the file should be used for status output.
|
||||||
* @return true if the file should be used for status output.
|
* @return true if the file should be used for status output.
|
||||||
|
|
|
||||||
|
|
@ -19,5 +19,7 @@ class CreateTempDirsFunction extends InProcessFunction {
|
||||||
|
|
||||||
override def useStatusOutput(file: File) = false
|
override def useStatusOutput(file: File) = false
|
||||||
|
|
||||||
|
override def isDone = Some(tempDirectories.forall(_.exists))
|
||||||
|
|
||||||
def run() = tempDirectories.foreach(_.mkdirs)
|
def run() = tempDirectories.foreach(_.mkdirs)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue