110
// Resend parent workflow from source cluster
111
112
>
clusterMetadata := shardContext.GetClusterMetadata()
api.go
113
>
targetClusterInfo := clusterMetadata.GetAllClusterInfo()[clusterMetadata.GetCurrentClusterName()]
114
>
115
>
namespaceEntry, err := shardContext.GetNamespaceRegistry().GetNamespaceByID(namespaceID)
116
>
if err != nil {
117
return nil, err
118
}
119
120
>
activeClusterName := namespaceEntry.ActiveClusterName(namespace.RoutingKey{ID: request.ParentExecution.WorkflowId})
api.go
121
>
if activeClusterName == clusterMetadata.GetCurrentClusterName() {
122
return nil, errors.New("namespace becomes active when processing task as standby")
123
}
124
125
>
remoteAdminClient, err := shardContext.GetRemoteAdminClient(activeClusterName)
api.go
126
>
if err != nil {
127
return nil, err
128
}
129
130
>
resp, err := remoteAdminClient.SyncWorkflowState(ctx, &adminservice.SyncWorkflowStateRequest{
api.go
131
>
NamespaceId: request.NamespaceId,
132
>
Execution: &commonpb.WorkflowExecution{
133
>
WorkflowId: request.ParentExecution.WorkflowId,
134
>
RunId: request.ParentExecution.RunId,
135
>
},
136
>
ArchetypeId: chasm.WorkflowArchetypeID,
137
>
VersionedTransition: versionedTransition,
138
>
VersionHistories: versionHistories,
139
>
TargetClusterId: int32(targetClusterInfo.InitialFailoverVersion),
140
>
})
141
>
142
>
if err != nil {
143
if common.IsNotFoundError(err) {
144
// parent workflow is not found on source cluster,