Execution of downstream components when upstream component fails
Issue #46
new
Create folder "foo" and make sure "foo2" does NOT exist. First run this script successfully:
import anduril.tools._
import anduril.builtin._
import org.anduril.runtime._
object failWithChange {
val fails=INPUT("foo")
//~ val fails=INPUT("foo2")
val failsArray=Folder2Array(fails)
val consumes_input=QuickBash(in=fails, script="echo foo > $out")
val secondary_consumer=QuickBash(in=consumes_input, script="echo script that changed > $out")
//~ val secondary_consumer=QuickBash(in=consumes_input, script="echo script that changed to this > $out")
for ((k,v)<-iterArray(failsArray)) {}
}
Then lets make two changes: The "fails" instance gets a failing value "foo2", AND instance "secondary_consumer" simply has a change in the parameters:
import anduril.tools._
import anduril.builtin._
import org.anduril.runtime._
object failWithChange {
//~ val fails=INPUT("foo")
val fails=INPUT("foo2")
val failsArray=Folder2Array(fails)
val consumes_input=QuickBash(in=fails, script="echo foo > $out")
//~ val secondary_consumer=QuickBash(in=consumes_input, script="echo script that changed > $out")
val secondary_consumer=QuickBash(in=consumes_input, script="echo script that changed to this > $out")
for ((k,v)<-iterArray(failsArray)) {}
}
Here, "fails" fails as it should, but engine restarts because of iterArray, and the downstream components are run (all of them)