dora icon indicating copy to clipboard operation
dora copied to clipboard

Plans for command line interface

Open phil-opp opened this issue 3 years ago • 4 comments

We are planning a dora command line tool with the following subcommands:

For v0.1:

  • [x] help: Help about any command (generated by clap)
  • [x] check
    • [x] Pre-check the dora installation/environment for potential problems (e.g., YAML syntax)
    • [x] Check that the dora-coordinator is running
    • [x] Check that the iox-roudi deamon is running
  • [x] build: Build the dora nodes/operators (similar to run.rs in current examples)
  • [x] graph: Generate dataflow graph per YAML spec
    • [x] visualize as mermaid code
    • [x] open image automatically, e.g. in OS or browser window
  • [x] templates: Dora node/operator template
    • [x] Rust
    • [x] C
    • [x] Python
    • [x] C++
    • [x] dataflow YAML
  • [x] start: Run dora dataflow
  • [x] stop: Stop dora dataflow
  • [x] destroy: Cleanup and destroy all dora related processes
  • [x] list: List running dora entities (resources)
  • [x] up: Install all dora dependencies and start dora coordinator, iceoryx daemon and/or zenoh router etc
    • Unfortunately there does not seem a good way to detect whether the iceoryx daemon is already running (see https://github.com/eclipse-iceoryx/iceoryx-rs/issues/62).
  • [x] upgrade: Upgrade dora

Later:

  • [ ] dashboard: Open the dora dashboard in a web browser (future)
  • [ ] logs: Tail logs from customer node/operators
  • [ ] metrics: Fetch metrics from customer node/operators
  • [ ] stats: Display dora/traffic statistics
  • [ ] get: Get info about the dora entity (future may need CRUD on dora entity)
  • [ ] graph: visualize as image directly (e.g. as svg)

Other Ideas:

  • [ ] package: Create an archive file containing all compiled nodes for easier distribution
    • similar to cargo package

See the discussion in #81 for more context.

Implementation PRs:

  • https://github.com/dora-rs/dora/pull/84
  • https://github.com/dora-rs/dora/pull/97
  • https://github.com/dora-rs/dora/pull/105
  • https://github.com/dora-rs/dora/pull/107
  • https://github.com/dora-rs/dora/pull/114
  • https://github.com/dora-rs/dora/pull/115
  • https://github.com/dora-rs/dora/pull/116
  • https://github.com/dora-rs/dora/pull/117
  • https://github.com/dora-rs/dora/pull/123
  • https://github.com/dora-rs/dora/pull/126

phil-opp avatar Oct 05 '22 11:10 phil-opp

@phil-opp creating an API to check whether the iceoryx daemon is running is on our todo list. We are at the moment just busy with other stuff.

elBoberido avatar Nov 06 '22 15:11 elBoberido

Great to hear that, thanks! For now we just check the running processes, so we have a workaround.

phil-opp avatar Nov 07 '22 10:11 phil-opp

Just want to comment that, I think that the upgrade of dora should be done at a package manager level.

At present time, dora is packaged in cargo, and can be upgraded as such: cargo install dora-cli --force or with https://crates.io/crates/cargo-update as any other Rust application.

Therefore I marked it as done.

We can later plan to release dora into more package manager.

haixuanTao avatar Apr 11 '23 05:04 haixuanTao