diff --git a/README.md b/README.md index 1f10b83..f184962 100644 --- a/README.md +++ b/README.md @@ -484,16 +484,15 @@ clickhousectl cloud postgres get clickhousectl cloud postgres create \ --name my-pg \ --region us-east-1 \ - --size m7i.2xlarge \ - --storage-gb 100 + --size c6gd.xlarge \ + --pg-version 18 -# Create with version + HA + tags + advanced config +# Create with HA + tags + advanced config clickhousectl cloud postgres create \ --name my-pg \ --region us-east-1 \ - --size m7i.2xlarge \ - --storage-gb 100 \ - --pg-version 17 \ + --size c6gd.xlarge \ + --pg-version 18 \ --ha-type sync \ --tag env=prod \ --pg-config-file ./pg.json @@ -502,7 +501,6 @@ clickhousectl cloud postgres create \ clickhousectl cloud postgres update \ --name renamed \ --size m7i.4xlarge \ - --storage-gb 200 \ --add-tag env=prod --remove-tag legacy # Delete @@ -538,7 +536,6 @@ clickhousectl cloud postgres switchover | `--name` | Service name (required) | | `--region` | Cloud region, e.g. `us-east-1` (required) | | `--size` | Instance size, e.g. `m7i.2xlarge` (required; server-validated) | -| `--storage-gb` | Storage size in GB (required) | | `--provider` | Cloud provider (default: `aws`) | | `--pg-version` | Postgres major version: `18`, `17`, `16` | | `--ha-type` | High-availability: `none`, `async`, `sync` | diff --git a/crates/clickhouse-cloud-api/src/models.rs b/crates/clickhouse-cloud-api/src/models.rs index 38ac676..1e66278 100644 --- a/crates/clickhouse-cloud-api/src/models.rs +++ b/crates/clickhouse-cloud-api/src/models.rs @@ -7860,8 +7860,6 @@ pub struct BasePostgresService { pub region: PgRegion, #[serde(default)] pub size: PgSize, - #[serde(rename = "storageSize", default)] - pub storage_size: PgStorageSize, #[serde(default)] pub tags: PgTags, } @@ -10497,8 +10495,6 @@ pub struct PostgresServiceListItem { pub size: PgSize, #[serde(default)] pub state: PgStateProperty, - #[serde(rename = "storageSize", default)] - pub storage_size: PgStorageSize, #[serde(default)] pub tags: PgTags, } @@ -10525,8 +10521,6 @@ pub struct PostgresServicePatchRequest { pub region: Option, #[serde(skip_serializing_if = "Option::is_none", default)] pub size: Option, - #[serde(rename = "storageSize", skip_serializing_if = "Option::is_none", default)] - pub storage_size: Option, #[serde(skip_serializing_if = "Option::is_none", default)] pub tags: Option, } @@ -10546,8 +10540,6 @@ pub struct PostgresServicePostRequest { pub provider: PgProvider, pub region: PgRegion, pub size: PgSize, - #[serde(rename = "storageSize")] - pub storage_size: PgStorageSize, #[serde(skip_serializing_if = "Option::is_none", default)] pub tags: Option, } diff --git a/crates/clickhouse-cloud-api/tests/clickpipes/postgres_cdc_test.rs b/crates/clickhouse-cloud-api/tests/clickpipes/postgres_cdc_test.rs index 4f08a33..0b7e45b 100644 --- a/crates/clickhouse-cloud-api/tests/clickpipes/postgres_cdc_test.rs +++ b/crates/clickhouse-cloud-api/tests/clickpipes/postgres_cdc_test.rs @@ -109,7 +109,6 @@ async fn cloud_clickpipe_postgres_cdc() -> TestResult<()> { provider: PgProvider::Unknown(ctx.provider.clone()), region: ctx.region.clone(), size: PgSize::R8gd_medium, - storage_size: 59, tags: Some(ctx.clickpipe_run_tags()), ..Default::default() }; diff --git a/crates/clickhouse-cloud-api/tests/client_test.rs b/crates/clickhouse-cloud-api/tests/client_test.rs index ee15ad5..0c2080d 100644 --- a/crates/clickhouse-cloud-api/tests/client_test.rs +++ b/crates/clickhouse-cloud-api/tests/client_test.rs @@ -1963,7 +1963,7 @@ async fn create_postgres_service() { Mock::given(method("POST")) .and(path("/v1/organizations/org-1/postgres")) - .and(body_partial_json(serde_json::json!({"name": "pg-svc", "provider": "aws", "region": "us-east-1", "size": "c6gd.medium", "storageSize": 100}))) + .and(body_partial_json(serde_json::json!({"name": "pg-svc", "provider": "aws", "region": "us-east-1", "size": "c6gd.medium"}))) .respond_with(ok_json(serde_json::json!({ "id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "name": "pg-svc", @@ -1980,7 +1980,6 @@ async fn create_postgres_service() { provider: PgProvider::Aws, region: "us-east-1".to_string(), size: PgSize::C6gd_medium, - storage_size: 100, ..Default::default() }; let resp = c diff --git a/crates/clickhouse-cloud-api/tests/integration_postgres_test.rs b/crates/clickhouse-cloud-api/tests/integration_postgres_test.rs index 8833a29..e0c355d 100644 --- a/crates/clickhouse-cloud-api/tests/integration_postgres_test.rs +++ b/crates/clickhouse-cloud-api/tests/integration_postgres_test.rs @@ -14,7 +14,6 @@ async fn cloud_postgres_crud_lifecycle() -> TestResult<()> { log_run_header("cloud_postgres_crud_lifecycle", &ctx); let mut failures = FailureRecorder::default(); let size = PgSize::R8gd_medium; - let storage_gb: i64 = 59; // ── Preflight ─────────────────────────────────────────────── @@ -57,7 +56,6 @@ async fn cloud_postgres_crud_lifecycle() -> TestResult<()> { provider: PgProvider::Unknown(ctx.provider.clone()), region: ctx.region.clone(), size: size.clone(), - storage_size: storage_gb, tags: Some(ctx.postgres_run_tags()), ..Default::default() }; @@ -122,7 +120,6 @@ async fn cloud_postgres_crud_lifecycle() -> TestResult<()> { assert_eq!(ready.name, ctx.postgres_service_name()); assert_eq!(ready.size.to_string(), size.to_string()); - assert_eq!(ready.storage_size, storage_gb); assert_eq!(ready.region, ctx.region); assert_eq!(ready.provider.to_string(), ctx.provider); assert!( diff --git a/crates/clickhouse-cloud-api/tests/models_test.rs b/crates/clickhouse-cloud-api/tests/models_test.rs index e414ea1..1168f6f 100644 --- a/crates/clickhouse-cloud-api/tests/models_test.rs +++ b/crates/clickhouse-cloud-api/tests/models_test.rs @@ -627,7 +627,6 @@ fn serialize_postgres_service_post_request() { provider: PgProvider::Aws, region: "us-east-1".to_string(), size: PgSize::C6gd_medium, - storage_size: 100, ..Default::default() }; let json = serde_json::to_value(&req).unwrap(); @@ -635,7 +634,7 @@ fn serialize_postgres_service_post_request() { assert_eq!(json["provider"], "aws"); assert_eq!(json["region"], "us-east-1"); assert_eq!(json["size"], "c6gd.medium"); - assert_eq!(json["storageSize"], 100); + assert!(json.get("storageSize").is_none()); // Optional fields omitted assert!(json.get("haType").is_none()); assert!(json.get("pgConfig").is_none()); diff --git a/crates/clickhousectl/src/cloud/cli.rs b/crates/clickhousectl/src/cloud/cli.rs index 029b9cd..85ee720 100644 --- a/crates/clickhousectl/src/cloud/cli.rs +++ b/crates/clickhousectl/src/cloud/cli.rs @@ -2672,7 +2672,7 @@ mod tests { ); // Postgres writes - assert_write(&["clickhousectl", "cloud", "postgres", "create", "--name", "pg", "--region", "us-east-1", "--size", "m7i.2xlarge", "--storage-gb", "100"], true); + assert_write(&["clickhousectl", "cloud", "postgres", "create", "--name", "pg", "--region", "us-east-1", "--size", "m7i.2xlarge"], true); assert_write(&["clickhousectl", "cloud", "postgres", "update", "pg-1", "--name", "renamed"], true); assert_write(&["clickhousectl", "cloud", "postgres", "delete", "pg-1"], true); assert_write(&["clickhousectl", "cloud", "postgres", "config", "replace", "pg-1", "--file", "/tmp/c.json"], true); diff --git a/crates/clickhousectl/src/cloud/postgres.rs b/crates/clickhousectl/src/cloud/postgres.rs index 4a18282..b793385 100644 --- a/crates/clickhousectl/src/cloud/postgres.rs +++ b/crates/clickhousectl/src/cloud/postgres.rs @@ -46,9 +46,6 @@ pub enum PostgresCommands { /// Instance size (e.g. m7i.2xlarge). Server validates — accepts any value. #[arg(long)] size: String, - /// Storage size in GB - #[arg(long)] - storage_gb: i64, /// Cloud provider #[arg(long, default_value = "aws")] provider: String, @@ -81,8 +78,6 @@ pub enum PostgresCommands { #[arg(long)] size: Option, #[arg(long)] - storage_gb: Option, - #[arg(long)] provider: Option, #[arg(long, value_parser = clap::builder::PossibleValuesParser::new(KNOWN_PG_VERSIONS))] pg_version: Option, @@ -431,7 +426,6 @@ pub struct PostgresCreateOptions<'a> { pub name: &'a str, pub region: &'a str, pub size: &'a str, - pub storage_gb: i64, pub provider: &'a str, pub pg_version: Option<&'a str>, pub ha_type: Option<&'a str>, @@ -445,7 +439,6 @@ pub struct PostgresUpdateOptions<'a> { pub name: Option<&'a str>, pub region: Option<&'a str>, pub size: Option<&'a str>, - pub storage_gb: Option, pub provider: Option<&'a str>, pub pg_version: Option<&'a str>, pub ha_type: Option<&'a str>, @@ -598,7 +591,6 @@ pub async fn postgres_create( provider, region: opts.region.to_string(), size, - storage_size: opts.storage_gb, postgres_version: pg_version, ha_type, tags, @@ -671,7 +663,6 @@ pub async fn postgres_update( provider, region: opts.region.map(|s| s.to_string()), size, - storage_size: opts.storage_gb, postgres_version: pg_version, ha_type, tags, @@ -1067,10 +1058,9 @@ mod tests { "--name", "pg1", "--region", "us-east-1", "--size", "m7i.2xlarge", - "--storage-gb", "100", ]); let PostgresCommands::Create { - name, region, size, storage_gb, provider, pg_version, ha_type, .. + name, region, size, provider, pg_version, ha_type, .. } = cmd else { panic!("expected create"); @@ -1078,7 +1068,6 @@ mod tests { assert_eq!(name, "pg1"); assert_eq!(region, "us-east-1"); assert_eq!(size, "m7i.2xlarge"); - assert_eq!(storage_gb, 100); assert_eq!(provider, "aws"); assert!(pg_version.is_none()); assert!(ha_type.is_none()); @@ -1091,7 +1080,6 @@ mod tests { "--name", "pg1", "--region", "us-east-1", "--size", "m7i.2xlarge", - "--storage-gb", "100", "--pg-version", "17", "--ha-type", "sync", "--tag", "env=prod", @@ -1111,10 +1099,10 @@ mod tests { "clickhousectl", "cloud", "postgres", "create", "--name", "pg1", "--region", "us-east-1", - // missing --size and --storage-gb + // missing --size ]) .err().expect("expected parse error"); - assert!(err.to_string().contains("--size") || err.to_string().contains("--storage-gb")); + assert!(err.to_string().contains("--size")); } #[test] @@ -1124,7 +1112,6 @@ mod tests { "--name", "pg1", "--region", "us-east-1", "--size", "m7i.2xlarge", - "--storage-gb", "100", "--pg-version", "15", ]) .err().expect("expected parse error"); diff --git a/crates/clickhousectl/src/main.rs b/crates/clickhousectl/src/main.rs index 5ab6393..9d1ac41 100644 --- a/crates/clickhousectl/src/main.rs +++ b/crates/clickhousectl/src/main.rs @@ -1011,7 +1011,6 @@ async fn run_postgres( name, region, size, - storage_gb, provider, pg_version, ha_type, @@ -1024,7 +1023,6 @@ async fn run_postgres( name: &name, region: ®ion, size: &size, - storage_gb, provider: &provider, pg_version: pg_version.as_deref(), ha_type: ha_type.as_deref(), @@ -1040,7 +1038,6 @@ async fn run_postgres( name, region, size, - storage_gb, provider, pg_version, ha_type, @@ -1052,7 +1049,6 @@ async fn run_postgres( name: name.as_deref(), region: region.as_deref(), size: size.as_deref(), - storage_gb, provider: provider.as_deref(), pg_version: pg_version.as_deref(), ha_type: ha_type.as_deref(),