From 7015dbbdf001bff6670a2027fb609083dcd06e10 Mon Sep 17 00:00:00 2001 From: John Spray Date: Wed, 12 Mar 2025 14:02:11 +0000 Subject: [PATCH] storcon_cli: remove pre-warm helper (#11183) ## Problem This command was used when onboarding tenants to the storage controller. We no longer do that, so the command can go. ## Summary of changes - Remove `storcon_cli tenant-warmup` command --- control_plane/storcon_cli/src/main.rs | 98 +-------------------------- 1 file changed, 2 insertions(+), 96 deletions(-) diff --git a/control_plane/storcon_cli/src/main.rs b/control_plane/storcon_cli/src/main.rs index b5c4f21e97..ae4bf9a519 100644 --- a/control_plane/storcon_cli/src/main.rs +++ b/control_plane/storcon_cli/src/main.rs @@ -14,8 +14,8 @@ use pageserver_api::controller_api::{ TenantShardMigrateRequest, TenantShardMigrateResponse, }; use pageserver_api::models::{ - EvictionPolicy, EvictionPolicyLayerAccessThreshold, LocationConfigSecondary, ShardParameters, - TenantConfig, TenantConfigPatchRequest, TenantConfigRequest, TenantShardSplitRequest, + EvictionPolicy, EvictionPolicyLayerAccessThreshold, ShardParameters, TenantConfig, + TenantConfigPatchRequest, TenantConfigRequest, TenantShardSplitRequest, TenantShardSplitResponse, }; use pageserver_api::shard::{ShardStripeSize, TenantShardId}; @@ -158,12 +158,6 @@ enum Command { #[arg(long)] tenant_id: TenantId, }, - /// For a tenant which hasn't been onboarded to the storage controller yet, add it in secondary - /// mode so that it can warm up content on a pageserver. - TenantWarmup { - #[arg(long)] - tenant_id: TenantId, - }, TenantSetPreferredAz { #[arg(long)] tenant_id: TenantId, @@ -871,94 +865,6 @@ async fn main() -> anyhow::Result<()> { ) .await?; } - Command::TenantWarmup { tenant_id } => { - let describe_response = storcon_client - .dispatch::<(), TenantDescribeResponse>( - Method::GET, - format!("control/v1/tenant/{tenant_id}"), - None, - ) - .await; - match describe_response { - Ok(describe) => { - if matches!(describe.policy, PlacementPolicy::Secondary) { - // Fine: it's already known to controller in secondary mode: calling - // again to put it into secondary mode won't cause problems. - } else { - anyhow::bail!("Tenant already present with policy {:?}", describe.policy); - } - } - Err(mgmt_api::Error::ApiError(StatusCode::NOT_FOUND, _)) => { - // Fine: this tenant isn't know to the storage controller yet. - } - Err(e) => { - // Unexpected API error - return Err(e.into()); - } - } - - vps_client - .location_config( - TenantShardId::unsharded(tenant_id), - pageserver_api::models::LocationConfig { - mode: pageserver_api::models::LocationConfigMode::Secondary, - generation: None, - secondary_conf: Some(LocationConfigSecondary { warm: true }), - shard_number: 0, - shard_count: 0, - shard_stripe_size: ShardParameters::DEFAULT_STRIPE_SIZE.0, - tenant_conf: TenantConfig::default(), - }, - None, - true, - ) - .await?; - - let describe_response = storcon_client - .dispatch::<(), TenantDescribeResponse>( - Method::GET, - format!("control/v1/tenant/{tenant_id}"), - None, - ) - .await?; - - let secondary_ps_id = describe_response - .shards - .first() - .unwrap() - .node_secondary - .first() - .unwrap(); - - println!("Tenant {tenant_id} warming up on pageserver {secondary_ps_id}"); - loop { - let (status, progress) = vps_client - .tenant_secondary_download( - TenantShardId::unsharded(tenant_id), - Some(Duration::from_secs(10)), - ) - .await?; - println!( - "Progress: {}/{} layers, {}/{} bytes", - progress.layers_downloaded, - progress.layers_total, - progress.bytes_downloaded, - progress.bytes_total - ); - match status { - StatusCode::OK => { - println!("Download complete"); - break; - } - StatusCode::ACCEPTED => { - // Loop - } - _ => { - anyhow::bail!("Unexpected download status: {status}"); - } - } - } - } Command::TenantDrop { tenant_id, unclean } => { if !unclean { anyhow::bail!(