-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Issue 60: leaving state vector empty (#133)
* handle invalid data exceptions dawgie supports two types of exceptions to be thrown: dawgie.NoValidInputDataError and dawgie.NoValidOutputDataError. In these two cases, the job should be considered a success but not move the target forward in the processing tree. This creates a try state condition which will be True (full success), None (invalid data exception), False (all other exceptions). * handle the tri-state Add an invalid state to the messaging that is passed about. Updated dawgie.pl.farm to translate the tri-state message from teh workers to the dawgie.pl.jobinfo.State.{failure,invalid,success} as required. * connect the error step Added dawgie.pl.schedule.purge() with empty implementation. Walking down the tree and removing targets is going to take some work. Just put the empty implementation to connect the dawgie.pl.farm. Connect dawgie.pl.farm._res() to dawgie.pl.schedule.purge(). The current behavior is the same. * purge target from possible work Simply walk down the children nodes and remove target from do, doing, and todo. While this straight forward, it is not perfect. If another job is in progress that does create data for this target, they will once again cause the target show up in the faulting nodes children if the tree is such. Still, it is the best and the pipeline is robust enough to continue processing depite the error. * verify purge Actually test that the purge works as expected. Created a simplified tree and opped one of the tarets as expected. Note that this example also shows that if node a then trips after b as the test inidicates, d will fire off then fail preventing f from being triggered. * fix problems found in testing The dawgie.pl.farm.Hand._res() implementation was less than perfect. First, did a small amount of refactoring to make the function static as it really is. Then, only computes some values once rather than serveral times in the function. Most important, the test of which branch to take required updating to verifiy against dawgie.pl.jobinfo.State.success rather than just that is positive looking. * verify purge via message return Given the response is normally passed from the worker back, the handler of these responses - dawgie.pl.farm.Hand._res() - has to correctly call purge. Added a test to show that is is actually happening as expected. Co-authored-by: Al Niessner <Al.Niessner@xxx.xxx>
- Loading branch information
1 parent
186d6c7
commit 77be1db
Showing
7 changed files
with
123 additions
and
25 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters