dsh_api 0.10.0

DSH resource management API client
Documentation
#[allow(unused_imports)]
#[path = "common.rs"]
mod common;

use crate::common::{initialize_logger, print_header};
use dsh_api::dsh_api_client_factory::DshApiClientFactory;
use dsh_api::types::{AllocationStatus, TaskStatus};

const APPLICATION: &str = "cmd";
const TASK_ID: &str = "5fbf9fdff8-g7d2m-00000000";

#[tokio::main]
async fn main() -> Result<(), String> {
  initialize_logger();

  let client_factory = DshApiClientFactory::default();
  let client = client_factory.client().await?;

  print_header(&format!("client.get_task('{}', '{}',)", APPLICATION, TASK_ID));
  let task: TaskStatus = client.get_task(APPLICATION, TASK_ID).await?;
  println!("({}, {}) -> {}", APPLICATION, TASK_ID, task);

  use dsh_api::types::Task;
  print_header(&format!("client.get_task_actual('{}', '{}')", APPLICATION, TASK_ID));
  let task_actual: Task = client.get_task_actual(APPLICATION, TASK_ID).await?;
  println!("({}, {}) -> {}", APPLICATION, TASK_ID, task_actual);

  print_header(&format!("client.get_task_appid_ids('{}')", APPLICATION));
  let task_appid_ids: Vec<String> = client.get_task_appid_ids(APPLICATION).await?;
  println!("{} -> {}", APPLICATION, task_appid_ids.len());
  for task_appid_id in task_appid_ids {
    println!("{}", task_appid_id);
  }

  print_header(&format!("client.get_application_tasks('{}')", APPLICATION));
  let application_tasks = client.application_tasks(APPLICATION).await?;
  for (task_id, task_status) in application_tasks {
    println!("{} -> {}", task_id, task_status.actual.unwrap().staged_at);
  }

  print_header("client.get_task_ids()");
  let task_ids: Vec<String> = client.get_task_ids().await?;
  println!("{}", task_ids.len());
  for task_id in task_ids {
    println!("{}", task_id);
  }

  print_header(&format!("client.get_task_status('{}', '{}')", APPLICATION, TASK_ID));
  let task_status: AllocationStatus = client.get_task_status(APPLICATION, TASK_ID).await?;
  println!("({}, {}) -> {}", APPLICATION, TASK_ID, task_status);

  Ok(())
}