Skip to content

Commit

Permalink
Refactor run_logs
Browse files Browse the repository at this point in the history
  • Loading branch information
sestrella committed Oct 22, 2024
1 parent f146426 commit 812d021
Showing 1 changed file with 38 additions and 2 deletions.
40 changes: 38 additions & 2 deletions rust/iecs/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use std::{fmt::Display, process::Command};

use anyhow::{ensure, Context};
use aws_config::BehaviorVersion;
use aws_sdk_ecs::types::{Cluster, Container, Session, Task};
use aws_sdk_ecs::types::{Cluster, Container, LogDriver, Session, Task};
use aws_sdk_ssm::operation::start_session::StartSessionInput;
use clap::Parser;
use inquire::Select;
Expand Down Expand Up @@ -33,6 +33,10 @@ struct ExecArgs {
struct LogsArgs {
#[arg(long)]
cluster: Option<String>,
#[arg(long)]
task: Option<String>,
#[arg(long)]
container: Option<String>,
}

struct SelectableCluster {
Expand Down Expand Up @@ -82,6 +86,7 @@ impl TryFrom<String> for SelectableCluster {
struct SelectableTask {
name: String,
arn: String,
task_definition_arn: Option<String>,
}

impl Display for SelectableTask {
Expand All @@ -99,6 +104,7 @@ impl TryFrom<&Task> for SelectableTask {
Ok(SelectableTask {
name: name.to_string(),
arn: arn.to_string(),
task_definition_arn: value.task_definition_arn.clone(),
})
}
}
Expand All @@ -113,6 +119,7 @@ impl TryFrom<String> for SelectableTask {
Ok(SelectableTask {
name: name.to_string(),
arn: value,
task_definition_arn: None,
})
}
}
Expand Down Expand Up @@ -227,7 +234,36 @@ async fn run_exec(client: &aws_sdk_ecs::Client, args: &ExecArgs) -> anyhow::Resu
Ok(())
}

async fn run_logs(_client: &aws_sdk_ecs::Client, _args: &LogsArgs) -> anyhow::Result<()> {
async fn run_logs(client: &aws_sdk_ecs::Client, args: &LogsArgs) -> anyhow::Result<()> {
let cluster = get_cluster(&client, &args.cluster).await?;
let task = get_task(&client, &cluster.arn, &args.task).await?;
let task_definition_arn = task
.task_definition_arn
.context("task_definition_arn not found")?;
// let container = get_container(&client, &cluster.arn, &task.arn, &args.container).await?;
let output = client
.describe_task_definition()
.task_definition(task_definition_arn)
.send()
.await?;
let container_definition = output
.task_definition
.context("TODO")?
.container_definitions
.context("")?
.into_iter()
// TODO: remove hard-coded container name
.find(|container_definition| container_definition.name == Some("action_cable".to_string()))
.context("TODO")?;
let log_configuration = container_definition.log_configuration.context("TODO")?;
let log_driver = log_configuration.log_driver;
ensure!(
log_driver != LogDriver::Awslogs,
"Unsupported log driver '{}'",
log_driver
);
let log_options = log_configuration.options.context("TODO")?;
let _log_group = log_options.get("awslogs-group").context("TODO")?;
Ok(())
}

Expand Down

0 comments on commit 812d021

Please sign in to comment.