Skip to content
11 changes: 11 additions & 0 deletions service/frontend/workflow_handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -4647,6 +4647,17 @@ func (wh *WorkflowHandler) StartBatchOperation(
operationType = batcher.BatchTypeUpdateOptions
updateOptionsParams.WorkflowExecutionOptions = op.UpdateWorkflowOptionsOperation.GetWorkflowExecutionOptions()
updateOptionsParams.UpdateMask = op.UpdateWorkflowOptionsOperation.GetUpdateMask()
// TODO(carlydf): remove hacky usage of deprecated fields later, after adding support for oneof in BatchParams encoder
if o := updateOptionsParams.WorkflowExecutionOptions.VersioningOverride; o.GetOverride() != nil {
deprecatedOverride := &workflowpb.VersioningOverride{}
if o.GetAutoUpgrade() {
deprecatedOverride.Behavior = enumspb.VERSIONING_BEHAVIOR_AUTO_UPGRADE //nolint:staticcheck // SA1019: worker versioning v0.31
} else if o.GetPinned().GetBehavior() == workflowpb.VersioningOverride_PINNED_OVERRIDE_BEHAVIOR_PINNED {
deprecatedOverride.Behavior = enumspb.VERSIONING_BEHAVIOR_PINNED //nolint:staticcheck // SA1019: worker versioning v0.31
deprecatedOverride.PinnedVersion = worker_versioning.ExternalWorkerDeploymentVersionToStringV31(o.GetPinned().GetVersion()) //nolint:staticcheck // SA1019: worker versioning v0.31
}
updateOptionsParams.WorkflowExecutionOptions.VersioningOverride = deprecatedOverride
}
case *workflowservice.StartBatchOperationRequest_UnpauseActivitiesOperation:
operationType = batcher.BatchTypeUnpauseActivities
if op.UnpauseActivitiesOperation == nil {
Expand Down
12 changes: 11 additions & 1 deletion service/history/workflow/mutable_state_impl.go
Original file line number Diff line number Diff line change
Expand Up @@ -2708,6 +2708,9 @@ func (ms *MutableStateImpl) ApplyWorkflowExecutionStartedEvent(
}
}

// This will include override and inheritance, but not transition, because WF never starts with a transition
ms.executionInfo.WorkerDeploymentName = ms.GetEffectiveDeployment().GetSeriesName()

if inheritedBuildId := event.InheritedBuildId; inheritedBuildId != "" {
ms.executionInfo.InheritedBuildId = inheritedBuildId
if err := ms.UpdateBuildIdAssignment(inheritedBuildId); err != nil {
Expand Down Expand Up @@ -4951,8 +4954,15 @@ func (ms *MutableStateImpl) updateVersioningOverride(
}
}

} else if ms.GetExecutionInfo().GetVersioningInfo() != nil {
if o := ms.GetExecutionInfo().VersioningInfo.VersioningOverride; worker_versioning.OverrideIsPinned(o) {
ms.GetExecutionInfo().WorkerDeploymentName = o.GetPinned().GetVersion().GetDeploymentName()
}

} else if vi := ms.GetExecutionInfo().GetVersioningInfo(); vi != nil {
ms.GetExecutionInfo().VersioningInfo.VersioningOverride = nil
ms.GetExecutionInfo().WorkerDeploymentName = vi.GetDeploymentVersion().GetDeploymentName()
} else {
ms.GetExecutionInfo().WorkerDeploymentName = ""
}

if !proto.Equal(ms.GetEffectiveDeployment(), previousEffectiveDeployment) ||
Expand Down
15 changes: 9 additions & 6 deletions tests/versioning_3_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,14 +68,10 @@ type Versioning3Suite struct {
useV32 bool
}

func NewVersioning3Suite(useV32 bool) *Versioning3Suite {
return &Versioning3Suite{useV32: useV32}
}

func TestVersioning3FunctionalSuite(t *testing.T) {
t.Parallel()
suite.Run(t, NewVersioning3Suite(true))
suite.Run(t, NewVersioning3Suite(false))
suite.Run(t, &Versioning3Suite{useV32: true})
suite.Run(t, &Versioning3Suite{useV32: false})
}

func (s *Versioning3Suite) SetupSuite() {
Expand Down Expand Up @@ -2072,6 +2068,9 @@ func (s *Versioning3Suite) verifyWorkflowVersioning(
s.Equal(override.GetPinned().GetVersion().GetBuildId(), versioningInfo.GetVersioningOverride().GetPinned().GetVersion().GetBuildId())
s.Equal(override.GetPinned().GetVersion().GetDeploymentName(), versioningInfo.GetVersioningOverride().GetPinned().GetVersion().GetDeploymentName())
s.Equal(override.GetPinned().GetBehavior(), versioningInfo.GetVersioningOverride().GetPinned().GetBehavior())
if worker_versioning.OverrideIsPinned(override) {
s.Equal(override.GetPinned().GetVersion().GetDeploymentName(), dwf.WorkflowExecutionInfo.GetWorkerDeploymentName())
}
} else {
// v0.31 override
s.Equal(override.GetBehavior().String(), versioningInfo.GetVersioningOverride().GetBehavior().String()) //nolint:staticcheck // SA1019: worker versioning v0.31
Expand All @@ -2081,6 +2080,10 @@ func (s *Versioning3Suite) verifyWorkflowVersioning(
actualOverrideDeployment,
))
}
if worker_versioning.OverrideIsPinned(override) {
d, _ := worker_versioning.WorkerDeploymentVersionFromStringV31(override.GetPinnedVersion()) //nolint:staticcheck // SA1019: worker versioning v0.31
s.Equal(d.GetDeploymentName(), dwf.WorkflowExecutionInfo.GetWorkerDeploymentName())
}
}

if !versioningInfo.GetVersionTransition().Equal(transition) {
Expand Down
Loading
Loading