746
}
747
748
>
func (d *WorkflowRunner) validateStateBeforeAcceptingRampingUpdate(args *deploymentspb.SetRampingVersionArgs) error {
workflow.go
749
>
//nolint:staticcheck // SA1019: worker versioning v0.31
750
>
if args.Version == d.State.GetRoutingConfig().GetRampingVersion() &&
751
>
args.Percentage == d.State.GetRoutingConfig().GetRampingVersionPercentage() &&
752
>
args.Identity == d.State.GetLastModifierIdentity() {
753
return temporal.NewApplicationError("version already ramping, no change", errNoChangeType, d.State.GetConflictToken())
754
}
755
756
>
if args.ConflictToken != nil && !bytes.Equal(args.ConflictToken, d.State.GetConflictToken()) {
workflow.go
757
return temporal.NewApplicationError("conflict token mismatch", errFailedPrecondition)
758
}
759
760
//nolint:staticcheck // SA1019: worker versioning v0.31
761
>
if args.Version == d.State.GetRoutingConfig().GetCurrentVersion() &&
workflow.go
762
>
!(args.Version == worker_versioning.UnversionedVersionId && args.Percentage == 0) {
763
d.logger.Info("version can't be set to ramping since it is already current")
764
return temporal.NewApplicationError(fmt.Sprintf("requested ramping version %s is already current", args.Version), errFailedPrecondition)
765
}
766
767
>
if _, ok := d.State.GetVersions()[args.Version]; !ok &&
workflow.go
768
>
args.Version != worker_versioning.UnversionedVersionId &&
769
>
args.Version != "" &&
770
>
!args.GetAllowNoPollers() {
771
d.logger.Info("version not found in deployment")
772
return temporal.NewApplicationError(fmt.Sprintf("requested ramping version %s not found in deployment", args.Version), errVersionNotFound)
773
}
774
775
>
if d.State.ManagerIdentity != "" && d.State.ManagerIdentity != args.Identity {
workflow.go
776
return serviceerror.NewFailedPrecondition(fmt.Sprintf(ErrManagerIdentityMismatch, d.State.ManagerIdentity, args.Identity))
777
}
779
}
780