From e1e646dc3ef5bff36b3fa489aee1304ad5d0dc44 Mon Sep 17 00:00:00 2001 From: Colton Voege <6777709+cvoege@users.noreply.github.com> Date: Sat, 3 Oct 2026 13:49:53 -0400 Subject: [PATCH 1/2] Add status to worker deployment verion describe command --- .../temporalcli/commands.worker.deployment.go | 8 ++++++++ .../commands.worker.deployment_test.go | 20 +++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/internal/temporalcli/commands.worker.deployment.go b/internal/temporalcli/commands.worker.deployment.go index 6dece0b35..b432fdaf5 100644 --- a/internal/temporalcli/commands.worker.deployment.go +++ b/internal/temporalcli/commands.worker.deployment.go @@ -111,6 +111,7 @@ type priorityStatsDisplayRow struct { type formattedWorkerDeploymentVersionInfoType struct { DeploymentName string `json:"deploymentName"` BuildID string `json:"BuildID"` + Status string `json:"status"` CreateTime time.Time `json:"createTime"` RoutingChangedTime time.Time `json:"routingChangedTime"` CurrentSinceTime time.Time `json:"currentSinceTime"` @@ -308,6 +309,10 @@ func drainageStatusProtoToStr(status enumspb.VersionDrainageStatus) (string, err } } +func versionStatusProtoToStr(status enumspb.WorkerDeploymentVersionStatus) string { + return strings.ToLower(strings.TrimPrefix(status.String(), "WORKER_DEPLOYMENT_VERSION_STATUS_")) +} + func taskQueueTypeProtoToStr(taskQueueType enumspb.TaskQueueType) (string, error) { switch taskQueueType { case enumspb.TASK_QUEUE_TYPE_UNSPECIFIED: @@ -528,6 +533,7 @@ func workerDeploymentVersionInfoProtoToRows(deploymentInfo *deploymentpb.WorkerD return formattedWorkerDeploymentVersionInfoType{ DeploymentName: deploymentInfo.GetDeploymentVersion().GetDeploymentName(), BuildID: deploymentInfo.GetDeploymentVersion().GetBuildId(), + Status: versionStatusProtoToStr(deploymentInfo.GetStatus()), CreateTime: deploymentInfo.GetCreateTime().AsTime(), RoutingChangedTime: deploymentInfo.GetRoutingChangedTime().AsTime(), CurrentSinceTime: deploymentInfo.GetCurrentSinceTime().AsTime(), @@ -606,6 +612,7 @@ func printWorkerDeploymentVersionInfoProto(cctx *CommandContext, deploymentInfo printMe := struct { DeploymentName string BuildID string + Status string CreateTime time.Time RoutingChangedTime time.Time `cli:",cardOmitEmpty"` CurrentSinceTime time.Time `cli:",cardOmitEmpty"` @@ -619,6 +626,7 @@ func printWorkerDeploymentVersionInfoProto(cctx *CommandContext, deploymentInfo }{ DeploymentName: deploymentInfo.GetDeploymentVersion().GetDeploymentName(), BuildID: deploymentInfo.GetDeploymentVersion().GetBuildId(), + Status: fDeploymentInfo.Status, CreateTime: deploymentInfo.GetCreateTime().AsTime(), RoutingChangedTime: deploymentInfo.GetRoutingChangedTime().AsTime(), CurrentSinceTime: deploymentInfo.GetCurrentSinceTime().AsTime(), diff --git a/internal/temporalcli/commands.worker.deployment_test.go b/internal/temporalcli/commands.worker.deployment_test.go index db9c62661..461e2181d 100644 --- a/internal/temporalcli/commands.worker.deployment_test.go +++ b/internal/temporalcli/commands.worker.deployment_test.go @@ -83,6 +83,7 @@ type jsonComputeConfig struct { type jsonDeploymentVersionInfoType struct { Version string `json:"version"` + Status string `json:"status"` CreateTime time.Time `json:"createTime"` RoutingChangedTime time.Time `json:"routingChangedTime"` CurrentSinceTime time.Time `json:"currentSinceTime"` @@ -582,6 +583,25 @@ func (s *SharedServerSuite) TestDeployment_Describe_Drainage() { s.Equal(version1.BuildID, jsonOut.VersionSummaries[0].BuildID) s.Equal("unspecified", jsonOut.VersionSummaries[1].DrainageStatus) s.Equal(version2.BuildID, jsonOut.VersionSummaries[1].BuildID) + + res = s.Execute( + "worker", "deployment", "describe-version", + "--address", s.Address(), + "--deployment-name", version1.DeploymentName, "--build-id", version1.BuildID, + ) + s.NoError(res.Err) + s.ContainsOnSameLine(res.Stdout.String(), "Status", "draining") + + res = s.Execute( + "worker", "deployment", "describe-version", + "--address", s.Address(), + "--deployment-name", version2.DeploymentName, "--build-id", version2.BuildID, + "--output", "json", + ) + s.NoError(res.Err) + var jsonVersionOut jsonDeploymentVersionInfoType + s.NoError(json.Unmarshal(res.Stdout.Bytes(), &jsonVersionOut)) + s.Equal("current", jsonVersionOut.Status) } func (s *SharedServerSuite) TestDeployment_Ramping() { From 5bff56cffa570b43c47f6218a20640726791ad30 Mon Sep 17 00:00:00 2001 From: Colton Voege <6777709+cvoege@users.noreply.github.com> Date: Sat, 3 Oct 2026 14:25:20 -0400 Subject: [PATCH 2/2] add inactive check --- internal/temporalcli/commands.worker.deployment_test.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/internal/temporalcli/commands.worker.deployment_test.go b/internal/temporalcli/commands.worker.deployment_test.go index 461e2181d..67fdf096f 100644 --- a/internal/temporalcli/commands.worker.deployment_test.go +++ b/internal/temporalcli/commands.worker.deployment_test.go @@ -525,6 +525,14 @@ func (s *SharedServerSuite) TestDeployment_Describe_Drainage() { }, 30*time.Second, 100*time.Millisecond) res := s.Execute( + "worker", "deployment", "describe-version", + "--address", s.Address(), + "--deployment-name", version1.DeploymentName, "--build-id", version1.BuildID, + ) + s.NoError(res.Err) + s.ContainsOnSameLine(res.Stdout.String(), "Status", "inactive") + + res = s.Execute( "worker", "deployment", "set-current-version", "--address", s.Address(), "--deployment-name", version1.DeploymentName, "--build-id", version1.BuildID,