Throw an error if a daemon cannot reach the coordinator anymore.
This is only an interim solution. In the future, we want to make the daemon more robust and ideally even allow restarts of the coordinator.
This PR makes it possible to use command line argument as custom node source.
This is very useful when the program is dependant on some environment variable
to be run. Exemples are: ROS/setup.bash and Python/Conda activate.
Custom node source can now be:
- a path: `./target/debut/abcd`
- a program in path: `rosrun`
- a url: `https://github.com/dora-rs/dora/releases/download/v0.0.0-test.4/rust-dataflow-example-node`
- or at the last resort a command line program: `source setup.bash && roslaunch velodyne_pointcloud VLP16_points.launch`
All those sources can have arguments `args` passed through the `args` field of the node. This args field
is recommanded when using a path as it will better manage the different OS.
* Enable passing Env variables to Runtime and single operators node
This changes add the capacity to pass env variables to runtime and single operators node
with the same logic as custom nodes.
i.e.:
```yaml
- id: plot
operator:
python: plot.py
inputs:
image: webcam/image
bbox: object_detection/bbox
env:
ENV_1: variable_1
ENV_2: variable_2
```
and:
```yaml
- id: plot
runtime:
operators:
python: plot.py
inputs:
image: webcam/image
bbox: object_detection/bbox
env:
ENV_1: variable_1
ENV_2: variable_2
```
* Unify `env` declarations in `Node` struct (#125)
Instead of duplicating them in the sub-structs. This change also allows us to keep the `serde(transparent)` attribute on `RuntimeNode`, which is required for parsing our existing YAML format.
Co-authored-by: Philipp Oppermann <dev@phil-opp.com>
Makes it possible to set an URL as operator source. The `dora-runtime` will then try to download the operator from the given URL when the dataflow is started.