Browse Source

link up command with the newly added binaries within the cli

tags/v0.3.2-rc0
haixuanTao 2 years ago
parent
commit
54b0882f6f
3 changed files with 16 additions and 32 deletions
  1. +2
    -14
      binaries/cli/src/main.rs
  2. +13
    -17
      binaries/cli/src/up.rs
  3. +1
    -1
      binaries/daemon/src/spawn.rs

+ 2
- 14
binaries/cli/src/main.rs View File

@@ -66,10 +66,6 @@ enum Command {
Up {
#[clap(long)]
config: Option<PathBuf>,
#[clap(long)]
coordinator_path: Option<PathBuf>,
#[clap(long)]
daemon_path: Option<PathBuf>,
},
/// Destroy running coordinator and daemon. If some dataflows are still running, they will be stopped first.
Destroy {
@@ -203,15 +199,7 @@ fn run() -> eyre::Result<()> {
args,
internal_create_with_path_dependencies,
} => template::create(args, internal_create_with_path_dependencies)?,
Command::Up {
config,
coordinator_path,
daemon_path,
} => up::up(
config.as_deref(),
coordinator_path.as_deref(),
daemon_path.as_deref(),
)?,
Command::Up { config } => up::up(config.as_deref())?,
Command::Logs { dataflow, node } => {
let uuid = Uuid::parse_str(&dataflow).ok();
let name = if uuid.is_some() { None } else { Some(dataflow) };
@@ -294,7 +282,7 @@ fn run() -> eyre::Result<()> {
run_dataflow,
} => {
let rt = Builder::new_multi_thread()
.enable_io()
.enable_all()
.build()
.context("tokio runtime failed")?;
rt.block_on(async {


+ 13
- 17
binaries/cli/src/up.rs View File

@@ -6,17 +6,13 @@ use std::{fs, path::Path, process::Command, time::Duration};
#[derive(Debug, Default, serde::Serialize, serde::Deserialize)]
struct UpConfig {}

pub(crate) fn up(
config_path: Option<&Path>,
coordinator: Option<&Path>,
daemon: Option<&Path>,
) -> eyre::Result<()> {
pub(crate) fn up(config_path: Option<&Path>) -> eyre::Result<()> {
let UpConfig {} = parse_dora_config(config_path)?;

let mut session = match connect_to_coordinator() {
Ok(session) => session,
Err(_) => {
start_coordinator(coordinator).wrap_err("failed to start dora-coordinator")?;
start_coordinator().wrap_err("failed to start dora-coordinator")?;

loop {
match connect_to_coordinator() {
@@ -31,7 +27,7 @@ pub(crate) fn up(
};

if !daemon_running(&mut *session)? {
start_daemon(daemon).wrap_err("failed to start dora-daemon")?;
start_daemon().wrap_err("failed to start dora-daemon")?;
}

Ok(())
@@ -70,24 +66,24 @@ fn parse_dora_config(config_path: Option<&Path>) -> Result<UpConfig, eyre::ErrRe
Ok(config)
}

fn start_coordinator(coordinator: Option<&Path>) -> eyre::Result<()> {
let coordinator = coordinator.unwrap_or_else(|| Path::new("dora-coordinator"));
let mut cmd = Command::new(coordinator);
fn start_coordinator() -> eyre::Result<()> {
let mut cmd =
Command::new(std::env::current_exe().wrap_err("failed to get current executable path")?);
cmd.arg("coordinator");
cmd.spawn()
.wrap_err_with(|| format!("failed to run {}", coordinator.display()))?;
.wrap_err_with(|| format!("failed to run `dora coordinator`"))?;

println!("started dora coordinator");

Ok(())
}

fn start_daemon(daemon: Option<&Path>) -> eyre::Result<()> {
let daemon = daemon.unwrap_or_else(|| Path::new("dora-daemon"));
let mut cmd = Command::new(daemon);
fn start_daemon() -> eyre::Result<()> {
let mut cmd =
Command::new(std::env::current_exe().wrap_err("failed to get current executable path")?);
cmd.arg("daemon");
cmd.spawn()
.wrap_err_with(|| format!("failed to run {}", daemon.display()))?;
.wrap_err_with(|| format!("failed to run `dora daemon`"))?;

println!("started dora daemon");



+ 1
- 1
binaries/daemon/src/spawn.rs View File

@@ -162,7 +162,7 @@ pub async fn spawn_node(
let mut cmd = tokio::process::Command::new(
std::env::current_exe().wrap_err("failed to get current executable path")?,
);
cmd.arg("--run-dora-runtime");
cmd.arg("runtime");
cmd
} else {
eyre::bail!("Runtime can not mix Python Operator with other type of operator.");


Loading…
Cancel
Save