29
workflowResetter ndc.WorkflowResetter,
30
eventsReapplier ndc.EventsReapplier,
32
>
if shardContext.GetConfig().SkipReapplicationByNamespaceID(namespaceUUID) {
33
return nil
34
}
35
36
>
namespaceEntry, err := api.GetActiveNamespace(shardContext, namespace.ID(namespaceUUID.String()), workflowID)
api.go
37
>
if err != nil {
38
return err
39
}
40
>
namespaceID := namespaceEntry.ID()
api.go
41
>
isGlobalNamespace := namespaceEntry.IsGlobalNamespace()
42
>
43
>
return api.GetAndUpdateWorkflowWithNew(
44
>
ctx,
45
>
nil,
46
>
definition.NewWorkflowKey(
47
>
namespaceID.String(),
48
>
workflowID,
49
>
"",
50
>
),
51
>
func(workflowLease api.WorkflowLease) (*api.UpdateWorkflowAction, error) {
52
>
context := workflowLease.GetContext()
53
>
mutableState := workflowLease.GetMutableState()
54
>
// Filter out reapply event from the same cluster
55
>
toReapplyEvents := make([]*historypb.HistoryEvent, 0, len(reapplyEvents))
56
>
57
>
clusterMetadata := shardContext.GetClusterMetadata()
58
>
currentCluster := clusterMetadata.GetCurrentClusterName()
59
>
60
>
for _, event := range reapplyEvents {
61
>
if clusterMetadata.ClusterNameForFailoverVersion(
62
>
isGlobalNamespace,
63
>
event.GetVersion(),
64
>
) == currentCluster {
65
// The reapply is from the same cluster. Ignoring.
66
continue