From 132a95ce625c989685e439f78078f7a437867ec6 Mon Sep 17 00:00:00 2001 From: Josh Priddle Date: Wed, 11 Mar 2026 12:55:16 -0400 Subject: [PATCH] Merge change domain into env update --- src/cli.rs | 41 +++++++------------------------------- src/commands/env.rs | 48 ++++++++++----------------------------------- src/main.rs | 40 ++++++++----------------------------- 3 files changed, 25 insertions(+), 104 deletions(-) diff --git a/src/cli.rs b/src/cli.rs index f308d02..9dbd96f 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -312,9 +312,6 @@ pub enum EnvCommands { Update { /// Environment ID env_id: String, - /// New environment name - #[arg(long)] - name: Option, /// Custom domain #[arg(long, conflicts_with = "clear_custom_domain")] custom_domain: Option, @@ -340,6 +337,13 @@ pub enum EnvCommands { #[command(subcommand)] command: EnvSecretCommands, }, + /// Check domain change status + DomainChangeStatus { + /// Environment ID + env_id: String, + /// Domain change ID + domain_change_id: String, + }, /// Manage environment database Db { #[command(subcommand)] @@ -420,37 +424,6 @@ pub enum EnvDbCommands { /// Promote ID promote_id: String, }, - /// Manage domain changes - DomainChange { - #[command(subcommand)] - command: EnvDomainChangeCommands, - }, -} - -#[derive(Subcommand)] -pub enum EnvDomainChangeCommands { - /// Create a domain change - Create { - /// Environment ID - env_id: String, - /// New custom domain - #[arg( - long, - required_unless_present = "clear_custom_domain", - conflicts_with = "clear_custom_domain" - )] - custom_domain: Option, - /// Remove custom domain and revert to platform domain - #[arg(long, conflicts_with = "custom_domain")] - clear_custom_domain: bool, - }, - /// Check domain change status - Status { - /// Environment ID - env_id: String, - /// Domain change ID - domain_change_id: String, - }, } #[derive(Subcommand)] diff --git a/src/commands/env.rs b/src/commands/env.rs index c7cdc88..3c31585 100644 --- a/src/commands/env.rs +++ b/src/commands/env.rs @@ -33,19 +33,12 @@ struct CreateEnvRequest { #[derive(Debug, Serialize)] struct UpdateEnvRequest { - #[serde(skip_serializing_if = "Option::is_none")] - name: Option, #[serde(skip_serializing_if = "Option::is_none")] custom_domain: Option>, #[serde(skip_serializing_if = "Option::is_none")] tags: Option>, } -#[derive(Debug, Serialize)] -struct DomainChangeRequest { - custom_domain: Option, -} - #[derive(Debug, Serialize)] struct CreateSecretRequest { key: String, @@ -223,13 +216,11 @@ pub fn create( pub fn update( client: &ApiClient, env_id: &str, - name: Option, custom_domain: Option>, tags: Option>, format: OutputFormat, ) -> Result<(), ApiError> { let body = UpdateEnvRequest { - name, custom_domain, tags, }; @@ -241,7 +232,16 @@ pub fn update( return Ok(()); } - print_message("Environment updated successfully."); + let pending = &response["data"]["pending_domain_change"]; + if pending.is_object() { + print_message(&format!( + "Domain change started: {} ({})", + pending["id"].as_str().unwrap_or("-"), + pending["status"].as_str().unwrap_or("-") + )); + } else { + print_message("Environment updated successfully."); + } Ok(()) } @@ -525,34 +525,6 @@ pub fn db_promote_status( // Domain change commands -pub fn domain_change_create( - client: &ApiClient, - env_id: &str, - custom_domain: Option, - format: OutputFormat, -) -> Result<(), ApiError> { - let body = DomainChangeRequest { custom_domain }; - - let response: Value = client.post( - &format!("/api/v1/vector/environments/{}/domain-change", env_id), - &body, - )?; - - if format == OutputFormat::Json { - print_json(&response); - return Ok(()); - } - - let data = &response["data"]; - print_message(&format!( - "Domain change started: {} ({})", - data["id"].as_str().unwrap_or("-"), - data["status"].as_str().unwrap_or("-") - )); - - Ok(()) -} - pub fn domain_change_status( client: &ApiClient, env_id: &str, diff --git a/src/main.rs b/src/main.rs index cf881bc..57a0168 100644 --- a/src/main.rs +++ b/src/main.rs @@ -13,10 +13,9 @@ use cli::{ AccountApiKeyCommands, AccountCommands, AccountSecretCommands, AccountSshKeyCommands, ArchiveCommands, AuthCommands, BackupCommands, BackupDownloadCommands, Cli, Commands, DbCommands, DbExportCommands, DbImportSessionCommands, DeployCommands, EnvCommands, - EnvDbCommands, EnvDomainChangeCommands, EnvSecretCommands, EventCommands, McpCommands, - RestoreCommands, SiteCommands, SiteSshKeyCommands, SslCommands, WafAllowedReferrerCommands, - WafBlockedIpCommands, WafBlockedReferrerCommands, WafCommands, WafRateLimitCommands, - WebhookCommands, + EnvDbCommands, EnvSecretCommands, EventCommands, McpCommands, RestoreCommands, SiteCommands, + SiteSshKeyCommands, SslCommands, WafAllowedReferrerCommands, WafBlockedIpCommands, + WafBlockedReferrerCommands, WafCommands, WafRateLimitCommands, WebhookCommands, }; use commands::{ account, archive, auth, backup, db, deploy, env, event, mcp, restore, site, ssl, waf, webhook, @@ -187,7 +186,6 @@ fn run_env(command: EnvCommands, format: OutputFormat) -> Result<(), ApiError> { ), EnvCommands::Update { env_id, - name, custom_domain, clear_custom_domain, tags, @@ -197,10 +195,14 @@ fn run_env(command: EnvCommands, format: OutputFormat) -> Result<(), ApiError> { } else { custom_domain.map(Some) }; - env::update(&client, &env_id, name, custom_domain, tags, format) + env::update(&client, &env_id, custom_domain, tags, format) } EnvCommands::Delete { env_id } => env::delete(&client, &env_id, format), EnvCommands::ResetDbPassword { env_id } => env::reset_db_password(&client, &env_id, format), + EnvCommands::DomainChangeStatus { + env_id, + domain_change_id, + } => env::domain_change_status(&client, &env_id, &domain_change_id, format), EnvCommands::Secret { command } => run_env_secret(&client, command, format), EnvCommands::Db { command } => run_env_db(&client, command, format), } @@ -248,32 +250,6 @@ fn run_env_db( EnvDbCommands::PromoteStatus { env_id, promote_id } => { env::db_promote_status(client, &env_id, &promote_id, format) } - EnvDbCommands::DomainChange { command } => run_env_domain_change(client, command, format), - } -} - -fn run_env_domain_change( - client: &ApiClient, - command: EnvDomainChangeCommands, - format: OutputFormat, -) -> Result<(), ApiError> { - match command { - EnvDomainChangeCommands::Create { - env_id, - custom_domain, - clear_custom_domain, - } => { - let custom_domain = if clear_custom_domain { - None - } else { - custom_domain - }; - env::domain_change_create(client, &env_id, custom_domain, format) - } - EnvDomainChangeCommands::Status { - env_id, - domain_change_id, - } => env::domain_change_status(client, &env_id, &domain_change_id, format), } }