From 2ce46627e7c8769f1b5c09c131487f9299041223 Mon Sep 17 00:00:00 2001 From: Arman Garg Date: Mon, 17 Aug 2026 12:06:04 +0530 Subject: [PATCH 1/5] Add `--kafka-cluster flag` to usm connect register + update describe output for cloud Kafka --- internal/usm/command_connect_cluster_cloud.go | 49 +++++++++++++++++++ .../usm/command_connect_cluster_create.go | 17 +++++-- .../usm/command_connect_cluster_describe.go | 4 +- .../usm/connect-cluster/create-help.golden | 3 +- .../create/create-cloud-kafka-json.golden | 9 ++++ .../create/create-cloud-kafka.golden | 10 ++++ .../create-fail-missing-kafka-flag.golden | 26 ++++++++++ ...fail-mutually-exclusive-kafka-flags.golden | 26 ++++++++++ test/usm_connect_cluster_test.go | 6 ++- 9 files changed, 139 insertions(+), 11 deletions(-) create mode 100644 internal/usm/command_connect_cluster_cloud.go create mode 100644 test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka-json.golden create mode 100644 test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka.golden create mode 100644 test/fixtures/output/usm/connect-cluster/create/create-fail-missing-kafka-flag.golden create mode 100644 test/fixtures/output/usm/connect-cluster/create/create-fail-mutually-exclusive-kafka-flags.golden diff --git a/internal/usm/command_connect_cluster_cloud.go b/internal/usm/command_connect_cluster_cloud.go new file mode 100644 index 0000000000..211a1e93df --- /dev/null +++ b/internal/usm/command_connect_cluster_cloud.go @@ -0,0 +1,49 @@ +package usm + +import ( + "github.com/spf13/cobra" + + usmv1 "github.com/confluentinc/ccloud-sdk-go-v2/usm/v1" + + "github.com/confluentinc/cli/v4/pkg/output" + "github.com/confluentinc/cli/v4/pkg/resource" +) + +// connectClusterCloudOut is the single-object output shape for a Connect cluster +// backed by a Confluent Cloud (lkc-) Kafka cluster. It relabels the generic +// kafka_cluster_id as "Kafka Cluster ID" instead of "Confluent Platform Kafka Cluster Id". +type connectClusterCloudOut struct { + ID string `human:"ID" serialized:"id"` + ConfluentPlatformConnectClusterId string `human:"Confluent Platform Connect Cluster ID" serialized:"confluent_platform_connect_cluster_id"` + UsmKafkaClusterId string `human:"USM Kafka Cluster Id" serialized:"usm_kafka_cluster_id"` + KafkaClusterId string `human:"Kafka Cluster ID" serialized:"kafka_cluster_id"` + Environment string `human:"Environment" serialized:"environment"` + Cloud string `human:"Cloud" serialized:"cloud"` + Region string `human:"Region" serialized:"region"` +} + +// isCloudKafkaCluster reports whether the metadata Kafka cluster id refers to a +// Confluent Cloud Kafka cluster (lkc-...), as opposed to a Confluent Platform one. +func isCloudKafkaCluster(kafkaClusterId string) bool { + return resource.LookupType(kafkaClusterId) == resource.KafkaCluster +} + +// printConnectClusterByType prints a single Connect cluster, choosing the output +// shape based on whether its metadata Kafka cluster is Confluent Cloud or Confluent Platform. +func printConnectClusterByType(cmd *cobra.Command, connectCluster usmv1.UsmV1ConnectCluster) error { + if !isCloudKafkaCluster(connectCluster.GetKafkaClusterId()) { + return printConnectCluster(cmd, connectCluster) + } + + table := output.NewTable(cmd) + table.Add(&connectClusterCloudOut{ + ID: connectCluster.GetId(), + ConfluentPlatformConnectClusterId: connectCluster.GetConfluentPlatformConnectClusterId(), + UsmKafkaClusterId: connectCluster.GetUsmKafkaClusterId(), + KafkaClusterId: connectCluster.GetKafkaClusterId(), + Environment: connectCluster.Environment.GetId(), + Cloud: connectCluster.GetCloud(), + Region: connectCluster.GetRegion(), + }) + return table.Print() +} diff --git a/internal/usm/command_connect_cluster_create.go b/internal/usm/command_connect_cluster_create.go index 643c9f05e5..1d73f26264 100644 --- a/internal/usm/command_connect_cluster_create.go +++ b/internal/usm/command_connect_cluster_create.go @@ -1,5 +1,3 @@ -// Code generated by cli-terraform-generator; DO NOT EDIT. - package usm import ( @@ -29,9 +27,9 @@ func (c *connectClusterCommand) newCreateCommand() *cobra.Command { ), } - // Required flags + // Kafka cluster flags (exactly one required, mutually exclusive) cmd.Flags().String("confluent-platform-kafka-cluster", "", "The unique identifier of the metadata Kafka cluster for the Connect Cluster.") - cobra.CheckErr(cmd.MarkFlagRequired("confluent-platform-kafka-cluster")) + cmd.Flags().String("kafka-cluster", "", "The unique identifier of the metadata Kafka cluster for the Connect Cluster.") // Optional flags pcmd.AddCloudFlag(cmd) @@ -41,6 +39,9 @@ func (c *connectClusterCommand) newCreateCommand() *cobra.Command { pcmd.AddContextFlag(cmd, c.CLICommand) pcmd.AddOutputFlag(cmd) + cmd.MarkFlagsOneRequired("confluent-platform-kafka-cluster", "kafka-cluster") + cmd.MarkFlagsMutuallyExclusive("confluent-platform-kafka-cluster", "kafka-cluster") + return cmd } @@ -54,6 +55,12 @@ func (c *connectClusterCommand) create(cmd *cobra.Command, args []string) error if err != nil { return err } + if cmd.Flags().Changed("kafka-cluster") { + kafkaClusterId, err = cmd.Flags().GetString("kafka-cluster") + if err != nil { + return err + } + } createReq.KafkaClusterId = usmv1.PtrString(kafkaClusterId) cloud, err := cmd.Flags().GetString("cloud") @@ -84,5 +91,5 @@ func (c *connectClusterCommand) create(cmd *cobra.Command, args []string) error return errors.CatchCCloudV2Error(err, httpResp) } - return printConnectCluster(cmd, connectCluster) + return printConnectClusterByType(cmd, connectCluster) } diff --git a/internal/usm/command_connect_cluster_describe.go b/internal/usm/command_connect_cluster_describe.go index f45c8141d0..274413a861 100644 --- a/internal/usm/command_connect_cluster_describe.go +++ b/internal/usm/command_connect_cluster_describe.go @@ -1,5 +1,3 @@ -// Code generated by cli-terraform-generator; DO NOT EDIT. - package usm import ( @@ -48,5 +46,5 @@ func (c *connectClusterCommand) describe(cmd *cobra.Command, args []string) erro return errors.CatchCCloudV2Error(err, httpResp) } - return printConnectCluster(cmd, connectCluster) + return printConnectClusterByType(cmd, connectCluster) } diff --git a/test/fixtures/output/usm/connect-cluster/create-help.golden b/test/fixtures/output/usm/connect-cluster/create-help.golden index 9afb1dff5e..fc218237c1 100644 --- a/test/fixtures/output/usm/connect-cluster/create-help.golden +++ b/test/fixtures/output/usm/connect-cluster/create-help.golden @@ -12,7 +12,8 @@ Register a Confluent Platform Connect cluster with the ID connect-group-xyz123. $ confluent usm connect-cluster create connect-group-xyz123 --confluent-platform-kafka-cluster 4k0R9d1GTS5tI9f4Y2xZ0Q --cloud aws --region us-east-1 Flags: - --confluent-platform-kafka-cluster string REQUIRED: The unique identifier of the metadata Kafka cluster for the Connect Cluster. + --confluent-platform-kafka-cluster string The unique identifier of the metadata Kafka cluster for the Connect Cluster. + --kafka-cluster string The unique identifier of the metadata Kafka cluster for the Connect Cluster. --cloud string Specify the cloud provider as "aws", "azure", or "gcp". --region string The home region of the Confluent Platform Connect cluster where the metadata should be stored. This field is optional. If provided, 'cloud' must also be provided. If neither 'cloud' nor 'region' are provided, the home region of the associated metadata Kafka cluster (identified by 'kafka_cluster_id') will be used as a fallback. --environment string Environment ID. diff --git a/test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka-json.golden b/test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka-json.golden new file mode 100644 index 0000000000..f7a3d6766e --- /dev/null +++ b/test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka-json.golden @@ -0,0 +1,9 @@ +{ + "id": "usmcc-f3a90de", + "confluent_platform_connect_cluster_id": "test-name", + "usm_kafka_cluster_id": "usmkc-00000", + "kafka_cluster_id": "lkc-abc123", + "environment": "env-596", + "cloud": "AWS", + "region": "us-east-1" +} diff --git a/test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka.golden b/test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka.golden new file mode 100644 index 0000000000..4c0b0a0f85 --- /dev/null +++ b/test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka.golden @@ -0,0 +1,10 @@ ++--------------------------------+---------------+ +| ID | usmcc-f3a90de | +| Confluent Platform Connect | test-name | +| Cluster ID | | +| USM Kafka Cluster Id | usmkc-00000 | +| Kafka Cluster ID | lkc-abc123 | +| Environment | env-596 | +| Cloud | AWS | +| Region | us-east-1 | ++--------------------------------+---------------+ diff --git a/test/fixtures/output/usm/connect-cluster/create/create-fail-missing-kafka-flag.golden b/test/fixtures/output/usm/connect-cluster/create/create-fail-missing-kafka-flag.golden new file mode 100644 index 0000000000..bc4c3a172c --- /dev/null +++ b/test/fixtures/output/usm/connect-cluster/create/create-fail-missing-kafka-flag.golden @@ -0,0 +1,26 @@ +Error: at least one of the flags in the group [confluent-platform-kafka-cluster kafka-cluster] is required +Usage: + confluent usm connect-cluster create [flags] + +Aliases: + create, register + +Examples: +Register a Confluent Platform Connect cluster with the ID connect-group-xyz123. + + $ confluent usm connect-cluster create connect-group-xyz123 --confluent-platform-kafka-cluster 4k0R9d1GTS5tI9f4Y2xZ0Q --cloud aws --region us-east-1 + +Flags: + --confluent-platform-kafka-cluster string The unique identifier of the metadata Kafka cluster for the Connect Cluster. + --kafka-cluster string The unique identifier of the metadata Kafka cluster for the Connect Cluster. + --cloud string Specify the cloud provider as "aws", "azure", or "gcp". + --region string The home region of the Confluent Platform Connect cluster where the metadata should be stored. This field is optional. If provided, 'cloud' must also be provided. If neither 'cloud' nor 'region' are provided, the home region of the associated metadata Kafka cluster (identified by 'kafka_cluster_id') will be used as a fallback. + --environment string Environment ID. + --context string CLI context name. + -o, --output string Specify the output format as "human", "json", or "yaml". (default "human") + +Global Flags: + -h, --help Show help for this command. + --unsafe-trace Equivalent to -vvvv, but also log HTTP requests and responses which might contain plaintext secrets. + -v, --verbose count Increase verbosity (-v for warn, -vv for info, -vvv for debug, -vvvv for trace). + diff --git a/test/fixtures/output/usm/connect-cluster/create/create-fail-mutually-exclusive-kafka-flags.golden b/test/fixtures/output/usm/connect-cluster/create/create-fail-mutually-exclusive-kafka-flags.golden new file mode 100644 index 0000000000..ea98520d68 --- /dev/null +++ b/test/fixtures/output/usm/connect-cluster/create/create-fail-mutually-exclusive-kafka-flags.golden @@ -0,0 +1,26 @@ +Error: if any flags in the group [confluent-platform-kafka-cluster kafka-cluster] are set none of the others can be; [confluent-platform-kafka-cluster kafka-cluster] were all set +Usage: + confluent usm connect-cluster create [flags] + +Aliases: + create, register + +Examples: +Register a Confluent Platform Connect cluster with the ID connect-group-xyz123. + + $ confluent usm connect-cluster create connect-group-xyz123 --confluent-platform-kafka-cluster 4k0R9d1GTS5tI9f4Y2xZ0Q --cloud aws --region us-east-1 + +Flags: + --confluent-platform-kafka-cluster string The unique identifier of the metadata Kafka cluster for the Connect Cluster. + --kafka-cluster string The unique identifier of the metadata Kafka cluster for the Connect Cluster. + --cloud string Specify the cloud provider as "aws", "azure", or "gcp". + --region string The home region of the Confluent Platform Connect cluster where the metadata should be stored. This field is optional. If provided, 'cloud' must also be provided. If neither 'cloud' nor 'region' are provided, the home region of the associated metadata Kafka cluster (identified by 'kafka_cluster_id') will be used as a fallback. + --environment string Environment ID. + --context string CLI context name. + -o, --output string Specify the output format as "human", "json", or "yaml". (default "human") + +Global Flags: + -h, --help Show help for this command. + --unsafe-trace Equivalent to -vvvv, but also log HTTP requests and responses which might contain plaintext secrets. + -v, --verbose count Increase verbosity (-v for warn, -vv for info, -vvv for debug, -vvvv for trace). + diff --git a/test/usm_connect_cluster_test.go b/test/usm_connect_cluster_test.go index cf22fdc8d1..0378ed4cdf 100644 --- a/test/usm_connect_cluster_test.go +++ b/test/usm_connect_cluster_test.go @@ -1,11 +1,13 @@ -// Code generated by cli-terraform-generator; DO NOT EDIT. - package test func (s *CLITestSuite) TestUsmConnectClusterCreate() { tests := []CLITest{ {args: "usm connect-cluster create test-name --confluent-platform-kafka-cluster 4k0R9d1GTS5tI9f4Y2xZ0Q", fixture: "usm/connect-cluster/create/create.golden"}, {args: "usm connect-cluster create test-name --confluent-platform-kafka-cluster 4k0R9d1GTS5tI9f4Y2xZ0Q --region us-east-1", fixture: "usm/connect-cluster/create/create-region.golden"}, + {args: "usm connect-cluster create test-name --kafka-cluster lkc-abc123", fixture: "usm/connect-cluster/create/create-cloud-kafka.golden"}, + {args: "usm connect-cluster create test-name --kafka-cluster lkc-abc123 -o json", fixture: "usm/connect-cluster/create/create-cloud-kafka-json.golden"}, + {args: "usm connect-cluster create test-name", fixture: "usm/connect-cluster/create/create-fail-missing-kafka-flag.golden", exitCode: 1}, + {args: "usm connect-cluster create test-name --confluent-platform-kafka-cluster 4k0R9d1GTS5tI9f4Y2xZ0Q --kafka-cluster lkc-abc123", fixture: "usm/connect-cluster/create/create-fail-mutually-exclusive-kafka-flags.golden", exitCode: 1}, } for _, test := range tests { From 7d01983ac1dfe14171be35f4e030a7256bb4eb02 Mon Sep 17 00:00:00 2001 From: Arman Garg Date: Mon, 17 Aug 2026 12:38:27 +0530 Subject: [PATCH 2/5] Minor naming fix --- internal/usm/command_connect_cluster_cloud.go | 4 ++-- .../usm/connect-cluster/create/create-cloud-kafka.golden | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/usm/command_connect_cluster_cloud.go b/internal/usm/command_connect_cluster_cloud.go index 211a1e93df..b752e72f5b 100644 --- a/internal/usm/command_connect_cluster_cloud.go +++ b/internal/usm/command_connect_cluster_cloud.go @@ -14,9 +14,9 @@ import ( // kafka_cluster_id as "Kafka Cluster ID" instead of "Confluent Platform Kafka Cluster Id". type connectClusterCloudOut struct { ID string `human:"ID" serialized:"id"` - ConfluentPlatformConnectClusterId string `human:"Confluent Platform Connect Cluster ID" serialized:"confluent_platform_connect_cluster_id"` + ConfluentPlatformConnectClusterId string `human:"Confluent Platform Connect Cluster Id" serialized:"confluent_platform_connect_cluster_id"` UsmKafkaClusterId string `human:"USM Kafka Cluster Id" serialized:"usm_kafka_cluster_id"` - KafkaClusterId string `human:"Kafka Cluster ID" serialized:"kafka_cluster_id"` + KafkaClusterId string `human:"Kafka Cluster Id" serialized:"kafka_cluster_id"` Environment string `human:"Environment" serialized:"environment"` Cloud string `human:"Cloud" serialized:"cloud"` Region string `human:"Region" serialized:"region"` diff --git a/test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka.golden b/test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka.golden index 4c0b0a0f85..a9f4605480 100644 --- a/test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka.golden +++ b/test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka.golden @@ -1,9 +1,9 @@ +--------------------------------+---------------+ | ID | usmcc-f3a90de | | Confluent Platform Connect | test-name | -| Cluster ID | | +| Cluster Id | | | USM Kafka Cluster Id | usmkc-00000 | -| Kafka Cluster ID | lkc-abc123 | +| Kafka Cluster Id | lkc-abc123 | | Environment | env-596 | | Cloud | AWS | | Region | us-east-1 | From 56c482538afa83ff9275762515f20c2a0daf2563 Mon Sep 17 00:00:00 2001 From: Arman Garg Date: Tue, 18 Aug 2026 00:07:56 +0530 Subject: [PATCH 3/5] Use `confluent_platform_connect_cluster` for `--kafka-cluster` --- internal/usm/command_connect_cluster_cloud.go | 28 +++++++++---------- .../create/create-cloud-kafka-json.golden | 2 +- .../create/create-cloud-kafka.golden | 2 +- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/internal/usm/command_connect_cluster_cloud.go b/internal/usm/command_connect_cluster_cloud.go index b752e72f5b..6fb1139b9f 100644 --- a/internal/usm/command_connect_cluster_cloud.go +++ b/internal/usm/command_connect_cluster_cloud.go @@ -13,13 +13,13 @@ import ( // backed by a Confluent Cloud (lkc-) Kafka cluster. It relabels the generic // kafka_cluster_id as "Kafka Cluster ID" instead of "Confluent Platform Kafka Cluster Id". type connectClusterCloudOut struct { - ID string `human:"ID" serialized:"id"` - ConfluentPlatformConnectClusterId string `human:"Confluent Platform Connect Cluster Id" serialized:"confluent_platform_connect_cluster_id"` - UsmKafkaClusterId string `human:"USM Kafka Cluster Id" serialized:"usm_kafka_cluster_id"` - KafkaClusterId string `human:"Kafka Cluster Id" serialized:"kafka_cluster_id"` - Environment string `human:"Environment" serialized:"environment"` - Cloud string `human:"Cloud" serialized:"cloud"` - Region string `human:"Region" serialized:"region"` + ID string `human:"ID" serialized:"id"` + ConfluentPlatformConnectCluster string `human:"Confluent Platform Connect Cluster" serialized:"confluent_platform_connect_cluster"` + UsmKafkaClusterId string `human:"USM Kafka Cluster Id" serialized:"usm_kafka_cluster_id"` + KafkaClusterId string `human:"Kafka Cluster Id" serialized:"kafka_cluster_id"` + Environment string `human:"Environment" serialized:"environment"` + Cloud string `human:"Cloud" serialized:"cloud"` + Region string `human:"Region" serialized:"region"` } // isCloudKafkaCluster reports whether the metadata Kafka cluster id refers to a @@ -37,13 +37,13 @@ func printConnectClusterByType(cmd *cobra.Command, connectCluster usmv1.UsmV1Con table := output.NewTable(cmd) table.Add(&connectClusterCloudOut{ - ID: connectCluster.GetId(), - ConfluentPlatformConnectClusterId: connectCluster.GetConfluentPlatformConnectClusterId(), - UsmKafkaClusterId: connectCluster.GetUsmKafkaClusterId(), - KafkaClusterId: connectCluster.GetKafkaClusterId(), - Environment: connectCluster.Environment.GetId(), - Cloud: connectCluster.GetCloud(), - Region: connectCluster.GetRegion(), + ID: connectCluster.GetId(), + ConfluentPlatformConnectCluster: connectCluster.GetConfluentPlatformConnectClusterId(), + UsmKafkaClusterId: connectCluster.GetUsmKafkaClusterId(), + KafkaClusterId: connectCluster.GetKafkaClusterId(), + Environment: connectCluster.Environment.GetId(), + Cloud: connectCluster.GetCloud(), + Region: connectCluster.GetRegion(), }) return table.Print() } diff --git a/test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka-json.golden b/test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka-json.golden index f7a3d6766e..01f6429ae4 100644 --- a/test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka-json.golden +++ b/test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka-json.golden @@ -1,6 +1,6 @@ { "id": "usmcc-f3a90de", - "confluent_platform_connect_cluster_id": "test-name", + "confluent_platform_connect_cluster": "test-name", "usm_kafka_cluster_id": "usmkc-00000", "kafka_cluster_id": "lkc-abc123", "environment": "env-596", diff --git a/test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka.golden b/test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka.golden index a9f4605480..16181e1dc9 100644 --- a/test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka.golden +++ b/test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka.golden @@ -1,7 +1,7 @@ +--------------------------------+---------------+ | ID | usmcc-f3a90de | | Confluent Platform Connect | test-name | -| Cluster Id | | +| Cluster | | | USM Kafka Cluster Id | usmkc-00000 | | Kafka Cluster Id | lkc-abc123 | | Environment | env-596 | From 900062003da3fc0857a466c62cf852116baee5aa Mon Sep 17 00:00:00 2001 From: Arman Garg Date: Tue, 18 Aug 2026 00:22:28 +0530 Subject: [PATCH 4/5] Added cloud Kafka test for connect describe path --- .../read_cloud_connect_cluster.json | 16 ++++++++++++++++ .../describe/describe-cloud-json.golden | 9 +++++++++ .../describe/describe-cloud-yaml.golden | 7 +++++++ .../describe/describe-cloud.golden | 10 ++++++++++ test/test-server/usm_connect_cluster_handler.go | 7 +++++-- test/usm_connect_cluster_test.go | 3 +++ 6 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 test/fixtures/input/usm/connect-cluster/read_cloud_connect_cluster.json create mode 100644 test/fixtures/output/usm/connect-cluster/describe/describe-cloud-json.golden create mode 100644 test/fixtures/output/usm/connect-cluster/describe/describe-cloud-yaml.golden create mode 100644 test/fixtures/output/usm/connect-cluster/describe/describe-cloud.golden diff --git a/test/fixtures/input/usm/connect-cluster/read_cloud_connect_cluster.json b/test/fixtures/input/usm/connect-cluster/read_cloud_connect_cluster.json new file mode 100644 index 0000000000..0c0040d5a6 --- /dev/null +++ b/test/fixtures/input/usm/connect-cluster/read_cloud_connect_cluster.json @@ -0,0 +1,16 @@ +{ + "api_version": "usm/v1", + "cloud": "AWS", + "confluent_platform_connect_cluster_id": "connect-group-cloud", + "environment": { + "environment": "", + "id": "env-00000", + "related": "https://api.confluent.cloud/v2/environments/env-00000", + "resource_name": "https://api.confluent.cloud/organization=9bb441c4-edef-46ac-8a41-c49e44a3fd9a/environment=env-00000" + }, + "id": "usmcc-cloud", + "kafka_cluster_id": "lkc-abc123", + "kind": "ConnectCluster", + "region": "us-east-1", + "usm_kafka_cluster_id": "" +} diff --git a/test/fixtures/output/usm/connect-cluster/describe/describe-cloud-json.golden b/test/fixtures/output/usm/connect-cluster/describe/describe-cloud-json.golden new file mode 100644 index 0000000000..654122d6d3 --- /dev/null +++ b/test/fixtures/output/usm/connect-cluster/describe/describe-cloud-json.golden @@ -0,0 +1,9 @@ +{ + "id": "usmcc-cloud", + "confluent_platform_connect_cluster": "connect-group-cloud", + "usm_kafka_cluster_id": "", + "kafka_cluster_id": "lkc-abc123", + "environment": "env-00000", + "cloud": "AWS", + "region": "us-east-1" +} diff --git a/test/fixtures/output/usm/connect-cluster/describe/describe-cloud-yaml.golden b/test/fixtures/output/usm/connect-cluster/describe/describe-cloud-yaml.golden new file mode 100644 index 0000000000..59459a9b96 --- /dev/null +++ b/test/fixtures/output/usm/connect-cluster/describe/describe-cloud-yaml.golden @@ -0,0 +1,7 @@ +id: usmcc-cloud +confluent_platform_connect_cluster: connect-group-cloud +usm_kafka_cluster_id: "" +kafka_cluster_id: lkc-abc123 +environment: env-00000 +cloud: AWS +region: us-east-1 diff --git a/test/fixtures/output/usm/connect-cluster/describe/describe-cloud.golden b/test/fixtures/output/usm/connect-cluster/describe/describe-cloud.golden new file mode 100644 index 0000000000..7e4d2724b4 --- /dev/null +++ b/test/fixtures/output/usm/connect-cluster/describe/describe-cloud.golden @@ -0,0 +1,10 @@ ++--------------------------------+---------------------+ +| ID | usmcc-cloud | +| Confluent Platform Connect | connect-group-cloud | +| Cluster | | +| USM Kafka Cluster Id | | +| Kafka Cluster Id | lkc-abc123 | +| Environment | env-00000 | +| Cloud | AWS | +| Region | us-east-1 | ++--------------------------------+---------------------+ diff --git a/test/test-server/usm_connect_cluster_handler.go b/test/test-server/usm_connect_cluster_handler.go index 6f2b5302b5..0ba1a31153 100644 --- a/test/test-server/usm_connect_cluster_handler.go +++ b/test/test-server/usm_connect_cluster_handler.go @@ -1,5 +1,3 @@ -// Code generated by cli-terraform-generator; DO NOT EDIT. - package testserver import ( @@ -50,6 +48,11 @@ func handleUsmV1ConnectClustersId(t *testing.T) http.HandlerFunc { switch id { case "invalid": w.WriteHeader(http.StatusNotFound) + case "usmcc-cloud": + connectCluster := readUsmV1ConnectClusterFile(t, "read_cloud_connect_cluster.json") + + err := json.NewEncoder(w).Encode(&connectCluster) + require.NoError(t, err) default: connectCluster := readUsmV1ConnectClusterFile(t, "read_created_connect_cluster.json") diff --git a/test/usm_connect_cluster_test.go b/test/usm_connect_cluster_test.go index 0378ed4cdf..a1377a15b6 100644 --- a/test/usm_connect_cluster_test.go +++ b/test/usm_connect_cluster_test.go @@ -35,6 +35,9 @@ func (s *CLITestSuite) TestUsmConnectClusterDescribe() { {args: "usm connect-cluster describe usmcc-1", fixture: "usm/connect-cluster/describe/describe.golden"}, {args: "usm connect-cluster describe usmcc-1 -o json", fixture: "usm/connect-cluster/describe/describe-json.golden"}, {args: "usm connect-cluster describe usmcc-1 -o yaml", fixture: "usm/connect-cluster/describe/describe-yaml.golden"}, + {args: "usm connect-cluster describe usmcc-cloud", fixture: "usm/connect-cluster/describe/describe-cloud.golden"}, + {args: "usm connect-cluster describe usmcc-cloud -o json", fixture: "usm/connect-cluster/describe/describe-cloud-json.golden"}, + {args: "usm connect-cluster describe usmcc-cloud -o yaml", fixture: "usm/connect-cluster/describe/describe-cloud-yaml.golden"}, {args: "usm connect-cluster describe invalid", fixture: "usm/connect-cluster/describe/describe-invalid.golden", exitCode: 1}, } From 87dde54aa52c3f377c76f9a404ce08e34882ce7b Mon Sep 17 00:00:00 2001 From: Arman Garg Date: Tue, 18 Aug 2026 17:56:54 +0530 Subject: [PATCH 5/5] Update the original response struct --- internal/usm/command_connect_cluster.go | 8 ++- internal/usm/command_connect_cluster_cloud.go | 49 ------------------- .../usm/command_connect_cluster_create.go | 2 +- .../usm/command_connect_cluster_describe.go | 2 +- internal/usm/command_connect_cluster_list.go | 4 +- .../create/create-cloud-kafka-json.golden | 2 +- .../create/create-cloud-kafka.golden | 2 +- .../create/create-region.golden | 5 +- .../usm/connect-cluster/create/create.golden | 5 +- .../describe/describe-cloud-json.golden | 2 +- .../describe/describe-cloud-yaml.golden | 2 +- .../describe/describe-cloud.golden | 2 +- .../describe/describe-json.golden | 4 +- .../describe/describe-yaml.golden | 4 +- .../connect-cluster/describe/describe.golden | 5 +- .../usm/connect-cluster/list/list-json.golden | 4 +- .../usm/connect-cluster/list/list-yaml.golden | 4 +- .../usm/connect-cluster/list/list.golden | 8 +-- 18 files changed, 29 insertions(+), 85 deletions(-) delete mode 100644 internal/usm/command_connect_cluster_cloud.go diff --git a/internal/usm/command_connect_cluster.go b/internal/usm/command_connect_cluster.go index ce23f72a71..17c835197c 100644 --- a/internal/usm/command_connect_cluster.go +++ b/internal/usm/command_connect_cluster.go @@ -1,5 +1,3 @@ -// Code generated by cli-terraform-generator; DO NOT EDIT. - package usm import ( @@ -19,9 +17,9 @@ type connectClusterCommand struct { type connectClusterOut struct { ID string `human:"ID" serialized:"id"` ConfluentPlatformConnectCluster string `human:"Confluent Platform Connect Cluster" serialized:"confluent_platform_connect_cluster"` - ConfluentPlatformKafkaClusterId string `human:"Confluent Platform Kafka Cluster Id" serialized:"confluent_platform_kafka_cluster_id"` - Environment string `human:"Environment" serialized:"environment"` + KafkaClusterId string `human:"Kafka Cluster Id" serialized:"kafka_cluster_id"` UsmKafkaClusterId string `human:"USM Kafka Cluster Id" serialized:"usm_kafka_cluster_id"` + Environment string `human:"Environment" serialized:"environment"` Cloud string `human:"Cloud" serialized:"cloud"` Region string `human:"Region" serialized:"region"` } @@ -53,7 +51,7 @@ func printConnectCluster(cmd *cobra.Command, connectCluster usmv1.UsmV1ConnectCl out := &connectClusterOut{ ID: connectCluster.GetId(), ConfluentPlatformConnectCluster: connectCluster.GetConfluentPlatformConnectClusterId(), - ConfluentPlatformKafkaClusterId: connectCluster.GetKafkaClusterId(), + KafkaClusterId: connectCluster.GetKafkaClusterId(), Environment: connectCluster.Environment.GetId(), UsmKafkaClusterId: connectCluster.GetUsmKafkaClusterId(), Cloud: connectCluster.GetCloud(), diff --git a/internal/usm/command_connect_cluster_cloud.go b/internal/usm/command_connect_cluster_cloud.go deleted file mode 100644 index 6fb1139b9f..0000000000 --- a/internal/usm/command_connect_cluster_cloud.go +++ /dev/null @@ -1,49 +0,0 @@ -package usm - -import ( - "github.com/spf13/cobra" - - usmv1 "github.com/confluentinc/ccloud-sdk-go-v2/usm/v1" - - "github.com/confluentinc/cli/v4/pkg/output" - "github.com/confluentinc/cli/v4/pkg/resource" -) - -// connectClusterCloudOut is the single-object output shape for a Connect cluster -// backed by a Confluent Cloud (lkc-) Kafka cluster. It relabels the generic -// kafka_cluster_id as "Kafka Cluster ID" instead of "Confluent Platform Kafka Cluster Id". -type connectClusterCloudOut struct { - ID string `human:"ID" serialized:"id"` - ConfluentPlatformConnectCluster string `human:"Confluent Platform Connect Cluster" serialized:"confluent_platform_connect_cluster"` - UsmKafkaClusterId string `human:"USM Kafka Cluster Id" serialized:"usm_kafka_cluster_id"` - KafkaClusterId string `human:"Kafka Cluster Id" serialized:"kafka_cluster_id"` - Environment string `human:"Environment" serialized:"environment"` - Cloud string `human:"Cloud" serialized:"cloud"` - Region string `human:"Region" serialized:"region"` -} - -// isCloudKafkaCluster reports whether the metadata Kafka cluster id refers to a -// Confluent Cloud Kafka cluster (lkc-...), as opposed to a Confluent Platform one. -func isCloudKafkaCluster(kafkaClusterId string) bool { - return resource.LookupType(kafkaClusterId) == resource.KafkaCluster -} - -// printConnectClusterByType prints a single Connect cluster, choosing the output -// shape based on whether its metadata Kafka cluster is Confluent Cloud or Confluent Platform. -func printConnectClusterByType(cmd *cobra.Command, connectCluster usmv1.UsmV1ConnectCluster) error { - if !isCloudKafkaCluster(connectCluster.GetKafkaClusterId()) { - return printConnectCluster(cmd, connectCluster) - } - - table := output.NewTable(cmd) - table.Add(&connectClusterCloudOut{ - ID: connectCluster.GetId(), - ConfluentPlatformConnectCluster: connectCluster.GetConfluentPlatformConnectClusterId(), - UsmKafkaClusterId: connectCluster.GetUsmKafkaClusterId(), - KafkaClusterId: connectCluster.GetKafkaClusterId(), - Environment: connectCluster.Environment.GetId(), - Cloud: connectCluster.GetCloud(), - Region: connectCluster.GetRegion(), - }) - return table.Print() -} diff --git a/internal/usm/command_connect_cluster_create.go b/internal/usm/command_connect_cluster_create.go index 1d73f26264..4206b4e302 100644 --- a/internal/usm/command_connect_cluster_create.go +++ b/internal/usm/command_connect_cluster_create.go @@ -91,5 +91,5 @@ func (c *connectClusterCommand) create(cmd *cobra.Command, args []string) error return errors.CatchCCloudV2Error(err, httpResp) } - return printConnectClusterByType(cmd, connectCluster) + return printConnectCluster(cmd, connectCluster) } diff --git a/internal/usm/command_connect_cluster_describe.go b/internal/usm/command_connect_cluster_describe.go index 274413a861..0da40c168f 100644 --- a/internal/usm/command_connect_cluster_describe.go +++ b/internal/usm/command_connect_cluster_describe.go @@ -46,5 +46,5 @@ func (c *connectClusterCommand) describe(cmd *cobra.Command, args []string) erro return errors.CatchCCloudV2Error(err, httpResp) } - return printConnectClusterByType(cmd, connectCluster) + return printConnectCluster(cmd, connectCluster) } diff --git a/internal/usm/command_connect_cluster_list.go b/internal/usm/command_connect_cluster_list.go index af2d8f887b..01972aaa91 100644 --- a/internal/usm/command_connect_cluster_list.go +++ b/internal/usm/command_connect_cluster_list.go @@ -1,5 +1,3 @@ -// Code generated by cli-terraform-generator; DO NOT EDIT. - package usm import ( @@ -51,7 +49,7 @@ func (c *connectClusterCommand) list(cmd *cobra.Command, _ []string) error { out := &connectClusterOut{ ID: connectCluster.GetId(), ConfluentPlatformConnectCluster: connectCluster.GetConfluentPlatformConnectClusterId(), - ConfluentPlatformKafkaClusterId: connectCluster.GetKafkaClusterId(), + KafkaClusterId: connectCluster.GetKafkaClusterId(), Environment: connectCluster.Environment.GetId(), UsmKafkaClusterId: connectCluster.GetUsmKafkaClusterId(), Cloud: connectCluster.GetCloud(), diff --git a/test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka-json.golden b/test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka-json.golden index 01f6429ae4..ca65f5b71a 100644 --- a/test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka-json.golden +++ b/test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka-json.golden @@ -1,8 +1,8 @@ { "id": "usmcc-f3a90de", "confluent_platform_connect_cluster": "test-name", - "usm_kafka_cluster_id": "usmkc-00000", "kafka_cluster_id": "lkc-abc123", + "usm_kafka_cluster_id": "usmkc-00000", "environment": "env-596", "cloud": "AWS", "region": "us-east-1" diff --git a/test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka.golden b/test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka.golden index 16181e1dc9..c9007c1a00 100644 --- a/test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka.golden +++ b/test/fixtures/output/usm/connect-cluster/create/create-cloud-kafka.golden @@ -2,8 +2,8 @@ | ID | usmcc-f3a90de | | Confluent Platform Connect | test-name | | Cluster | | -| USM Kafka Cluster Id | usmkc-00000 | | Kafka Cluster Id | lkc-abc123 | +| USM Kafka Cluster Id | usmkc-00000 | | Environment | env-596 | | Cloud | AWS | | Region | us-east-1 | diff --git a/test/fixtures/output/usm/connect-cluster/create/create-region.golden b/test/fixtures/output/usm/connect-cluster/create/create-region.golden index 3a7ea1ec68..c56ca80cd8 100644 --- a/test/fixtures/output/usm/connect-cluster/create/create-region.golden +++ b/test/fixtures/output/usm/connect-cluster/create/create-region.golden @@ -2,10 +2,9 @@ | ID | usmcc-f3a90de | | Confluent Platform Connect | test-name | | Cluster | | -| Confluent Platform Kafka | 4k0R9d1GTS5tI9f4Y2xZ0Q | -| Cluster Id | | -| Environment | env-596 | +| Kafka Cluster Id | 4k0R9d1GTS5tI9f4Y2xZ0Q | | USM Kafka Cluster Id | usmkc-00000 | +| Environment | env-596 | | Cloud | AWS | | Region | us-east-1 | +--------------------------------+------------------------+ diff --git a/test/fixtures/output/usm/connect-cluster/create/create.golden b/test/fixtures/output/usm/connect-cluster/create/create.golden index 3a7ea1ec68..c56ca80cd8 100644 --- a/test/fixtures/output/usm/connect-cluster/create/create.golden +++ b/test/fixtures/output/usm/connect-cluster/create/create.golden @@ -2,10 +2,9 @@ | ID | usmcc-f3a90de | | Confluent Platform Connect | test-name | | Cluster | | -| Confluent Platform Kafka | 4k0R9d1GTS5tI9f4Y2xZ0Q | -| Cluster Id | | -| Environment | env-596 | +| Kafka Cluster Id | 4k0R9d1GTS5tI9f4Y2xZ0Q | | USM Kafka Cluster Id | usmkc-00000 | +| Environment | env-596 | | Cloud | AWS | | Region | us-east-1 | +--------------------------------+------------------------+ diff --git a/test/fixtures/output/usm/connect-cluster/describe/describe-cloud-json.golden b/test/fixtures/output/usm/connect-cluster/describe/describe-cloud-json.golden index 654122d6d3..99e9d70f20 100644 --- a/test/fixtures/output/usm/connect-cluster/describe/describe-cloud-json.golden +++ b/test/fixtures/output/usm/connect-cluster/describe/describe-cloud-json.golden @@ -1,8 +1,8 @@ { "id": "usmcc-cloud", "confluent_platform_connect_cluster": "connect-group-cloud", - "usm_kafka_cluster_id": "", "kafka_cluster_id": "lkc-abc123", + "usm_kafka_cluster_id": "", "environment": "env-00000", "cloud": "AWS", "region": "us-east-1" diff --git a/test/fixtures/output/usm/connect-cluster/describe/describe-cloud-yaml.golden b/test/fixtures/output/usm/connect-cluster/describe/describe-cloud-yaml.golden index 59459a9b96..f8cb6bd4b2 100644 --- a/test/fixtures/output/usm/connect-cluster/describe/describe-cloud-yaml.golden +++ b/test/fixtures/output/usm/connect-cluster/describe/describe-cloud-yaml.golden @@ -1,7 +1,7 @@ id: usmcc-cloud confluent_platform_connect_cluster: connect-group-cloud -usm_kafka_cluster_id: "" kafka_cluster_id: lkc-abc123 +usm_kafka_cluster_id: "" environment: env-00000 cloud: AWS region: us-east-1 diff --git a/test/fixtures/output/usm/connect-cluster/describe/describe-cloud.golden b/test/fixtures/output/usm/connect-cluster/describe/describe-cloud.golden index 7e4d2724b4..05c232c364 100644 --- a/test/fixtures/output/usm/connect-cluster/describe/describe-cloud.golden +++ b/test/fixtures/output/usm/connect-cluster/describe/describe-cloud.golden @@ -2,8 +2,8 @@ | ID | usmcc-cloud | | Confluent Platform Connect | connect-group-cloud | | Cluster | | -| USM Kafka Cluster Id | | | Kafka Cluster Id | lkc-abc123 | +| USM Kafka Cluster Id | | | Environment | env-00000 | | Cloud | AWS | | Region | us-east-1 | diff --git a/test/fixtures/output/usm/connect-cluster/describe/describe-json.golden b/test/fixtures/output/usm/connect-cluster/describe/describe-json.golden index b5cb364a94..f6b3e66c43 100644 --- a/test/fixtures/output/usm/connect-cluster/describe/describe-json.golden +++ b/test/fixtures/output/usm/connect-cluster/describe/describe-json.golden @@ -1,9 +1,9 @@ { "id": "usmcc-f3a90de", "confluent_platform_connect_cluster": "connect-group-xyz123", - "confluent_platform_kafka_cluster_id": "4k0R9d1GTS5tI9f4Y2xZ0Q", - "environment": "env-00000", + "kafka_cluster_id": "4k0R9d1GTS5tI9f4Y2xZ0Q", "usm_kafka_cluster_id": "usmkc-00000", + "environment": "env-00000", "cloud": "AWS", "region": "us-east-1" } diff --git a/test/fixtures/output/usm/connect-cluster/describe/describe-yaml.golden b/test/fixtures/output/usm/connect-cluster/describe/describe-yaml.golden index c8ae7da51d..6b9dec2885 100644 --- a/test/fixtures/output/usm/connect-cluster/describe/describe-yaml.golden +++ b/test/fixtures/output/usm/connect-cluster/describe/describe-yaml.golden @@ -1,7 +1,7 @@ id: usmcc-f3a90de confluent_platform_connect_cluster: connect-group-xyz123 -confluent_platform_kafka_cluster_id: 4k0R9d1GTS5tI9f4Y2xZ0Q -environment: env-00000 +kafka_cluster_id: 4k0R9d1GTS5tI9f4Y2xZ0Q usm_kafka_cluster_id: usmkc-00000 +environment: env-00000 cloud: AWS region: us-east-1 diff --git a/test/fixtures/output/usm/connect-cluster/describe/describe.golden b/test/fixtures/output/usm/connect-cluster/describe/describe.golden index 9cb9e603c5..801bc13147 100644 --- a/test/fixtures/output/usm/connect-cluster/describe/describe.golden +++ b/test/fixtures/output/usm/connect-cluster/describe/describe.golden @@ -2,10 +2,9 @@ | ID | usmcc-f3a90de | | Confluent Platform Connect | connect-group-xyz123 | | Cluster | | -| Confluent Platform Kafka | 4k0R9d1GTS5tI9f4Y2xZ0Q | -| Cluster Id | | -| Environment | env-00000 | +| Kafka Cluster Id | 4k0R9d1GTS5tI9f4Y2xZ0Q | | USM Kafka Cluster Id | usmkc-00000 | +| Environment | env-00000 | | Cloud | AWS | | Region | us-east-1 | +--------------------------------+------------------------+ diff --git a/test/fixtures/output/usm/connect-cluster/list/list-json.golden b/test/fixtures/output/usm/connect-cluster/list/list-json.golden index e257962473..73ed4b9d38 100644 --- a/test/fixtures/output/usm/connect-cluster/list/list-json.golden +++ b/test/fixtures/output/usm/connect-cluster/list/list-json.golden @@ -2,9 +2,9 @@ { "id": "usmcc-f3a90de", "confluent_platform_connect_cluster": "connect-group-xyz123", - "confluent_platform_kafka_cluster_id": "4k0R9d1GTS5tI9f4Y2xZ0Q", - "environment": "env-00000", + "kafka_cluster_id": "4k0R9d1GTS5tI9f4Y2xZ0Q", "usm_kafka_cluster_id": "usmkc-00000", + "environment": "env-00000", "cloud": "AWS", "region": "us-east-1" } diff --git a/test/fixtures/output/usm/connect-cluster/list/list-yaml.golden b/test/fixtures/output/usm/connect-cluster/list/list-yaml.golden index 7a9b095dfe..bbadea6838 100644 --- a/test/fixtures/output/usm/connect-cluster/list/list-yaml.golden +++ b/test/fixtures/output/usm/connect-cluster/list/list-yaml.golden @@ -1,7 +1,7 @@ - id: usmcc-f3a90de confluent_platform_connect_cluster: connect-group-xyz123 - confluent_platform_kafka_cluster_id: 4k0R9d1GTS5tI9f4Y2xZ0Q - environment: env-00000 + kafka_cluster_id: 4k0R9d1GTS5tI9f4Y2xZ0Q usm_kafka_cluster_id: usmkc-00000 + environment: env-00000 cloud: AWS region: us-east-1 diff --git a/test/fixtures/output/usm/connect-cluster/list/list.golden b/test/fixtures/output/usm/connect-cluster/list/list.golden index d337b8d750..01f069b0fc 100644 --- a/test/fixtures/output/usm/connect-cluster/list/list.golden +++ b/test/fixtures/output/usm/connect-cluster/list/list.golden @@ -1,4 +1,4 @@ - ID | Confluent Platform Connect | Confluent Platform Kafka | Environment | USM Kafka Cluster Id | Cloud | Region - | Cluster | Cluster Id | | | | -----------------+--------------------------------+--------------------------------+-------------+----------------------+-------+------------ - usmcc-f3a90de | connect-group-xyz123 | 4k0R9d1GTS5tI9f4Y2xZ0Q | env-00000 | usmkc-00000 | AWS | us-east-1 + ID | Confluent Platform Connect | Kafka Cluster Id | USM Kafka Cluster Id | Environment | Cloud | Region + | Cluster | | | | | +----------------+--------------------------------+------------------------+----------------------+-------------+-------+------------ + usmcc-f3a90de | connect-group-xyz123 | 4k0R9d1GTS5tI9f4Y2xZ0Q | usmkc-00000 | env-00000 | AWS | us-east-1