106
}
107
108
>
baseVersionHistories := mutableState.GetExecutionInfo().GetVersionHistories()
api.go
109
>
baseCurrentVersionHistory, err := versionhistory.GetCurrentVersionHistory(baseVersionHistories)
110
>
if err != nil {
111
return nil, err
112
}
113
>
baseRebuildLastEventVersion, err := versionhistory.GetVersionHistoryEventVersion(baseCurrentVersionHistory, baseRebuildLastEventID)
api.go
114
>
if err != nil {
115
return nil, err
116
}
117
>
baseCurrentBranchToken := baseCurrentVersionHistory.GetBranchToken()
api.go
118
>
baseNextEventID := mutableState.GetNextEventID()
119
>
baseWorkflow := ndc.NewWorkflow(
120
>
shardContext.GetClusterMetadata(),
121
>
context,
122
>
mutableState,
123
>
wcache.NoopReleaseFn,
124
>
)
125
>
126
>
err = workflowResetter.ResetWorkflow(
127
>
ctx,
128
>
namespaceID,
129
>
workflowID,
130
>
baseRunID,
131
>
baseCurrentBranchToken,
132
>
baseRebuildLastEventID,
133
>
baseRebuildLastEventVersion,
134
>
baseNextEventID,
135
>
resetRunID.String(),
136
>
baseWorkflow,
137
>
baseWorkflow,
138
>
ndc.EventsReapplicationResetWorkflowReason,
139
>
toReapplyEvents,
140
>
nil,
141
>
false, // allowResetWithPendingChildren
142
>
nil,
143
>
)
144
>
switch err.(type) {
145
case *serviceerror.InvalidArgument:
146
// no-op. Usually this is due to reset workflow with pending child workflows
147
shardContext.GetLogger().Warn("Cannot reset workflow. Ignoring reapply events.", tag.Error(err))
149
// no-op
150
default:
151
return nil, err
152
}
153
>
return &api.UpdateWorkflowAction{
api.go
154
>
Noop: true,
155
>
CreateWorkflowTask: false,
156
>
}, nil
157
}
158