pub struct RunCommand {Show 15 fields
pub dataflow: String,
pub uv: bool,
pub stop_after: Option<Duration>,
pub log_level: LogLevelOrStdout,
pub log_format: LogFormat,
pub log_filter: Option<String>,
pub allow_shell_nodes: bool,
pub debug: bool,
pub locked: bool,
pub write_lockfile: bool,
pub lockfile: Option<PathBuf>,
pub working_dir: Option<PathBuf>,
pub hub_override: Vec<String>,
pub env: Vec<String>,
pub exit_when_nodes_finish: Option<bool>,
}Expand description
Run a dataflow locally in isolation.
Spawns nodes in-process without a coordinator. CLI monitoring
commands (dora list, dora stop, dora logs, …) do NOT attach
to a dora run execution. Use dora up + dora start instead when
you need to attach those tools or run multiple coordinated
dataflows.
Fields§
§dataflow: StringPath to the dataflow descriptor file
uv: bool§stop_after: Option<Duration>Automatically stop the dataflow after the given duration
The command will send a stop message after the specified time has elapsed, similar to pressing Ctrl-C. This gracefully stops all nodes in the dataflow.
Examples: –stop-after 30 # 30 seconds (a bare number is seconds) –stop-after 10s # 10 seconds –stop-after 5m # 5 minutes –stop-after 1h30m # 1 hour 30 minutes –stop-after 500ms # 500 milliseconds
log_level: LogLevelOrStdoutMinimum log level to display
Levels: error, warn, info, debug, trace, stdout (default). “stdout” shows everything including raw stdout from nodes.
log_format: LogFormatOutput format for log messages
json emits JSON Lines (one object per log message).
log_filter: Option<String>Per-node log level filter
Format: “node1=level,node2=level”. Overrides –log-level for matched nodes.
Examples: –log-filter “sensor=debug,processor=warn”
allow_shell_nodes: boolAllow shell nodes to execute arbitrary commands.
Shell nodes are disabled by default for security reasons. This flag sets the DORA_ALLOW_SHELL_NODES environment variable.
debug: boolEnable debug mode (publishes all messages to Zenoh for topic echo/hz/info)
locked: boolUse pinned git source commits from a lockfile during pre-run build.
write_lockfile: boolWrite resolved git source commits to a lockfile during pre-run build.
lockfile: Option<PathBuf>Path to build lockfile (defaults to <dataflow-stem>.dora-lock.yaml).
working_dir: Option<PathBuf>Decouples the working dir used for descriptor-relative paths
from the dataflow file’s parent. Needed when the path passed in
is a rewritten copy (e.g. dora record’s tempfile) whose parent
can’t resolve the original build: / relative-path references.
hub_override: Vec<String>Substitute a local checkout for a hub package (UC11 inner loop):
--hub-override <namespace>/<name>=<path>. Same as dora build --hub-override; dora run is always local, so it applies directly.
env: Vec<String>Set an environment variable for every node of this dataflow
(repeatable). Merges into the dataflow-level env: block;
node-level env: entries still win on conflict.
Under dora run nodes also inherit this process’s environment,
but --env is the portable spelling that behaves identically
under dora start (where nodes inherit the DAEMON’s environment
instead). Applies at spawn time only; build: commands are
unaffected.
Values must survive the descriptor encoding verbatim: a literal
$ is refused (the receiving process would expand it) and so are
numeric-looking values that would be coerced.
exit_when_nodes_finish: Option<bool>Exit once every node has finished, treating dora/timer/...
inputs as a clock rather than as work.
By default a node is only told its inputs are closed when ALL of them are, and a timer input never closes — so a graph where any node consumes a timer cannot finish on its own, even after every worker has done its work. With this flag a node is finished once its DATA inputs have closed, which makes “run N items and exit” scriptable without wrapping the command in a timeout.
Nodes whose inputs are all timers are unaffected: they have no data dependency that could finish, so they are treated as sources, exactly as a node with no inputs is.
Overrides exit_when_nodes_finish: in the dataflow YAML in
either direction: pass the flag to force it on, or
--exit-when-nodes-finish=false to force it off for a descriptor
that asks for it. Omit it entirely and the descriptor decides.
Implementations§
Trait Implementations§
Source§impl Args for Run
impl Args for Run
Source§fn augment_args<'b>(__clap_app: Command) -> Command
fn augment_args<'b>(__clap_app: Command) -> Command
Source§fn augment_args_for_update<'b>(__clap_app: Command) -> Command
fn augment_args_for_update<'b>(__clap_app: Command) -> Command
Command so it can instantiate self via
FromArgMatches::update_from_arg_matches_mut Read moreSource§impl FromArgMatches for Run
impl FromArgMatches for Run
Source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
Source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches,
) -> Result<Self, Error>
fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>
Source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§fn update_from_arg_matches_mut(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Auto Trait Implementations§
impl Freeze for Run
impl RefUnwindSafe for Run
impl Send for Run
impl Sync for Run
impl Unpin for Run
impl UnsafeUnpin for Run
impl UnwindSafe for Run
Blanket Implementations§
Source§impl<Source> AccessAs for Source
impl<Source> AccessAs for Source
impl<T> Allocation for T
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> FitForCBox for T
impl<T> FitForCBox for T
type CBoxWrapped = Box_<T>
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request