Browse Source

Use cli to spawn daemon run-dataflow to avoid confused exe path

tags/v0.3.2-rc2
haixuanTao 2 years ago
parent
commit
05f919e06c
11 changed files with 183 additions and 14 deletions
  1. +16
    -1
      examples/benchmark/run.rs
  2. +16
    -1
      examples/c++-dataflow/run.rs
  3. +16
    -1
      examples/c-dataflow/run.rs
  4. +16
    -1
      examples/cmake-dataflow/run.rs
  5. +21
    -2
      examples/multiple-daemons/run.rs
  6. +17
    -2
      examples/python-dataflow/run.rs
  7. +17
    -2
      examples/python-operator-dataflow/run.rs
  8. +16
    -1
      examples/python-ros2-dataflow/run.rs
  9. +16
    -1
      examples/rust-dataflow-url/run.rs
  10. +16
    -1
      examples/rust-dataflow/run.rs
  11. +16
    -1
      examples/rust-ros2-dataflow/run.rs

+ 16
- 1
examples/benchmark/run.rs View File

@@ -13,7 +13,7 @@ async fn main() -> eyre::Result<()> {
let dataflow = Path::new("dataflow.yml");
build_dataflow(dataflow).await?;

dora_daemon::Daemon::run_dataflow(dataflow).await?;
run_dataflow(dataflow).await?;

Ok(())
}
@@ -29,3 +29,18 @@ async fn build_dataflow(dataflow: &Path) -> eyre::Result<()> {
};
Ok(())
}

async fn run_dataflow(dataflow: &Path) -> eyre::Result<()> {
let cargo = std::env::var("CARGO").unwrap();
let mut cmd = tokio::process::Command::new(&cargo);
cmd.arg("run");
cmd.arg("--package").arg("dora-cli");
cmd.arg("--")
.arg("daemon")
.arg("--run-dataflow")
.arg(dataflow);
if !cmd.status().await?.success() {
bail!("failed to run dataflow");
};
Ok(())
}

+ 16
- 1
examples/c++-dataflow/run.rs View File

@@ -112,7 +112,7 @@ async fn main() -> eyre::Result<()> {

let dataflow = Path::new("dataflow.yml").to_owned();
build_package("dora-runtime").await?;
dora_daemon::Daemon::run_dataflow(&dataflow).await?;
run_dataflow(&dataflow).await?;

Ok(())
}
@@ -128,6 +128,21 @@ async fn build_package(package: &str) -> eyre::Result<()> {
Ok(())
}

async fn run_dataflow(dataflow: &Path) -> eyre::Result<()> {
let cargo = std::env::var("CARGO").unwrap();
let mut cmd = tokio::process::Command::new(&cargo);
cmd.arg("run");
cmd.arg("--package").arg("dora-cli");
cmd.arg("--")
.arg("daemon")
.arg("--run-dataflow")
.arg(dataflow);
if !cmd.status().await?.success() {
bail!("failed to run dataflow");
};
Ok(())
}

async fn build_cxx_node(
root: &Path,
paths: &[&Path],


+ 16
- 1
examples/c-dataflow/run.rs View File

@@ -23,7 +23,7 @@ async fn main() -> eyre::Result<()> {
build_c_operator(root).await?;

let dataflow = Path::new("dataflow.yml").to_owned();
dora_daemon::Daemon::run_dataflow(&dataflow).await?;
run_dataflow(&dataflow).await?;

Ok(())
}
@@ -39,6 +39,21 @@ async fn build_package(package: &str) -> eyre::Result<()> {
Ok(())
}

async fn run_dataflow(dataflow: &Path) -> eyre::Result<()> {
let cargo = std::env::var("CARGO").unwrap();
let mut cmd = tokio::process::Command::new(&cargo);
cmd.arg("run");
cmd.arg("--package").arg("dora-cli");
cmd.arg("--")
.arg("daemon")
.arg("--run-dataflow")
.arg(dataflow);
if !cmd.status().await?.success() {
bail!("failed to run dataflow");
};
Ok(())
}

async fn build_c_node(root: &Path, name: &str, out_name: &str) -> eyre::Result<()> {
let mut clang = tokio::process::Command::new("clang");
clang.arg(name);


+ 16
- 1
examples/cmake-dataflow/run.rs View File

@@ -40,7 +40,7 @@ async fn main() -> eyre::Result<()> {

let dataflow = Path::new("dataflow.yml").to_owned();
build_package("dora-runtime").await?;
dora_daemon::Daemon::run_dataflow(&dataflow).await?;
run_dataflow(&dataflow).await?;

Ok(())
}
@@ -55,3 +55,18 @@ async fn build_package(package: &str) -> eyre::Result<()> {
}
Ok(())
}

async fn run_dataflow(dataflow: &Path) -> eyre::Result<()> {
let cargo = std::env::var("CARGO").unwrap();
let mut cmd = tokio::process::Command::new(&cargo);
cmd.arg("run");
cmd.arg("--package").arg("dora-cli");
cmd.arg("--")
.arg("daemon")
.arg("--run-dataflow")
.arg(dataflow);
if !cmd.status().await?.success() {
bail!("failed to run dataflow");
};
Ok(())
}

+ 21
- 2
examples/multiple-daemons/run.rs View File

@@ -37,8 +37,8 @@ async fn main() -> eyre::Result<()> {
let (coordinator_port, coordinator) =
dora_coordinator::start(Some(0), ReceiverStream::new(coordinator_events_rx)).await?;
let coordinator_addr = SocketAddr::new(Ipv4Addr::LOCALHOST.into(), coordinator_port);
let daemon_a = dora_daemon::Daemon::run(coordinator_addr, "A".into());
let daemon_b = dora_daemon::Daemon::run(coordinator_addr, "B".into());
let daemon_a = run_dataflow(coordinator_addr.to_string(), "A".into(), dataflow);
let daemon_b = run_dataflow(coordinator_addr.to_string(), "B".into(), dataflow);

tracing::info!("Spawning coordinator and daemons");
let mut tasks = JoinSet::new();
@@ -196,3 +196,22 @@ async fn build_dataflow(dataflow: &Path) -> eyre::Result<()> {
};
Ok(())
}

async fn run_dataflow(coordinator: String, machine_id: &str, dataflow: &Path) -> eyre::Result<()> {
let cargo = std::env::var("CARGO").unwrap();
let mut cmd = tokio::process::Command::new(&cargo);
cmd.arg("run");
cmd.arg("--package").arg("dora-cli");
cmd.arg("--")
.arg("daemon")
.arg("--run-dataflow")
.arg(dataflow)
.arg("--machine-id")
.arg(machine_id)
.arg("--coordinator-addr")
.arg(coordinator);
if !cmd.status().await?.success() {
bail!("failed to run dataflow");
};
Ok(())
}

+ 17
- 2
examples/python-dataflow/run.rs View File

@@ -1,7 +1,7 @@
use dora_core::{get_pip_path, get_python_path, run};
use dora_download::download_file;
use dora_tracing::set_up_tracing;
use eyre::{ContextCompat, WrapErr};
use eyre::{bail, ContextCompat, WrapErr};
use std::path::Path;

#[tokio::main]
@@ -81,7 +81,22 @@ async fn main() -> eyre::Result<()> {
.context("Could not download weights.")?;

let dataflow = Path::new("dataflow.yml");
dora_daemon::Daemon::run_dataflow(dataflow).await?;
run_dataflow(dataflow).await?;

Ok(())
}

async fn run_dataflow(dataflow: &Path) -> eyre::Result<()> {
let cargo = std::env::var("CARGO").unwrap();
let mut cmd = tokio::process::Command::new(&cargo);
cmd.arg("run");
cmd.arg("--package").arg("dora-cli");
cmd.arg("--")
.arg("daemon")
.arg("--run-dataflow")
.arg(dataflow);
if !cmd.status().await?.success() {
bail!("failed to run dataflow");
};
Ok(())
}

+ 17
- 2
examples/python-operator-dataflow/run.rs View File

@@ -1,7 +1,7 @@
use dora_core::{get_pip_path, get_python_path, run};
use dora_download::download_file;
use dora_tracing::set_up_tracing;
use eyre::{ContextCompat, WrapErr};
use eyre::{bail, ContextCompat, WrapErr};
use std::path::Path;

#[tokio::main]
@@ -81,7 +81,22 @@ async fn main() -> eyre::Result<()> {
.await
.context("Could not download weights.")?;
let dataflow = Path::new("dataflow.yml");
dora_daemon::Daemon::run_dataflow(dataflow).await?;
run_dataflow(dataflow).await?;

Ok(())
}

async fn run_dataflow(dataflow: &Path) -> eyre::Result<()> {
let cargo = std::env::var("CARGO").unwrap();
let mut cmd = tokio::process::Command::new(&cargo);
cmd.arg("run");
cmd.arg("--package").arg("dora-cli");
cmd.arg("--")
.arg("daemon")
.arg("--run-dataflow")
.arg(dataflow);
if !cmd.status().await?.success() {
bail!("failed to run dataflow");
};
Ok(())
}

+ 16
- 1
examples/python-ros2-dataflow/run.rs View File

@@ -74,7 +74,22 @@ async fn main() -> eyre::Result<()> {
.context("maturin develop failed")?;

let dataflow = Path::new("dataflow.yml");
dora_daemon::Daemon::run_dataflow(dataflow).await?;
run_dataflow(dataflow).await?;

Ok(())
}

async fn run_dataflow(dataflow: &Path) -> eyre::Result<()> {
let cargo = std::env::var("CARGO").unwrap();
let mut cmd = tokio::process::Command::new(&cargo);
cmd.arg("run");
cmd.arg("--package").arg("dora-cli");
cmd.arg("--")
.arg("daemon")
.arg("--run-dataflow")
.arg(dataflow);
if !cmd.status().await?.success() {
bail!("failed to run dataflow");
};
Ok(())
}

+ 16
- 1
examples/rust-dataflow-url/run.rs View File

@@ -13,7 +13,7 @@ async fn main() -> eyre::Result<()> {
let dataflow = Path::new("dataflow.yml");
build_dataflow(dataflow).await?;

dora_daemon::Daemon::run_dataflow(dataflow).await?;
run_dataflow(dataflow).await?;

Ok(())
}
@@ -29,3 +29,18 @@ async fn build_dataflow(dataflow: &Path) -> eyre::Result<()> {
};
Ok(())
}

async fn run_dataflow(dataflow: &Path) -> eyre::Result<()> {
let cargo = std::env::var("CARGO").unwrap();
let mut cmd = tokio::process::Command::new(&cargo);
cmd.arg("run");
cmd.arg("--package").arg("dora-cli");
cmd.arg("--")
.arg("daemon")
.arg("--run-dataflow")
.arg(dataflow);
if !cmd.status().await?.success() {
bail!("failed to run dataflow");
};
Ok(())
}

+ 16
- 1
examples/rust-dataflow/run.rs View File

@@ -13,7 +13,7 @@ async fn main() -> eyre::Result<()> {
let dataflow = Path::new("dataflow.yml");
build_dataflow(dataflow).await?;

dora_daemon::Daemon::run_dataflow(dataflow).await?;
run_dataflow(dataflow).await?;

Ok(())
}
@@ -29,3 +29,18 @@ async fn build_dataflow(dataflow: &Path) -> eyre::Result<()> {
};
Ok(())
}

async fn run_dataflow(dataflow: &Path) -> eyre::Result<()> {
let cargo = std::env::var("CARGO").unwrap();
let mut cmd = tokio::process::Command::new(&cargo);
cmd.arg("run");
cmd.arg("--package").arg("dora-cli");
cmd.arg("--")
.arg("daemon")
.arg("--run-dataflow")
.arg(dataflow);
if !cmd.status().await?.success() {
bail!("failed to run dataflow");
};
Ok(())
}

+ 16
- 1
examples/rust-ros2-dataflow/run.rs View File

@@ -13,7 +13,7 @@ async fn main() -> eyre::Result<()> {
let dataflow = Path::new("dataflow.yml");
build_dataflow(dataflow).await?;

dora_daemon::Daemon::run_dataflow(dataflow).await?;
run_dataflow(dataflow).await?;

Ok(())
}
@@ -29,3 +29,18 @@ async fn build_dataflow(dataflow: &Path) -> eyre::Result<()> {
};
Ok(())
}

async fn run_dataflow(dataflow: &Path) -> eyre::Result<()> {
let cargo = std::env::var("CARGO").unwrap();
let mut cmd = tokio::process::Command::new(&cargo);
cmd.arg("run");
cmd.arg("--package").arg("dora-cli");
cmd.arg("--")
.arg("daemon")
.arg("--run-dataflow")
.arg(dataflow);
if !cmd.status().await?.success() {
bail!("failed to run dataflow");
};
Ok(())
}

Loading…
Cancel
Save