Most of the functionality that seash provides for interactive use is useful for any other type of experiment manager, but difficult to use programmatically as-is because of how the current seash implementation ties in state and considerations of efficiency/user-friendliness (like keys, targets, parallelization, and success/failure tallying) into the functions that actually interact with remote nodemanagers.
Instead of developing diverging code bases, let's factor out the valuable pieces from seash into SeattleTestbed/seattlelib_v2's experimentlib.r2py. This will require some thinking about disentangling functionality.
Most of the functionality that
seash
provides for interactive use is useful for any other type of experiment manager, but difficult to use programmatically as-is because of how the currentseash
implementation ties in state and considerations of efficiency/user-friendliness (like keys, targets, parallelization, and success/failure tallying) into the functions that actually interact with remote nodemanagers.(As an illustrative example, consider
seash
's and the currentexperimentlib.r2py
's file upload functions.)Instead of developing diverging code bases, let's factor out the valuable pieces from
seash
into SeattleTestbed/seattlelib_v2'sexperimentlib.r2py
. This will require some thinking about disentangling functionality.