519
}
520
521
>
func (o *Operation) buildExecutionInfo(ctx chasm.Context) *nexuspb.NexusOperationExecutionInfo {
operation.go
522
>
requestData := o.RequestData.Get(ctx)
523
>
key := ctx.ExecutionKey()
524
>
info := &nexuspb.NexusOperationExecutionInfo{
525
>
OperationId: key.BusinessID,
526
>
RunId: key.RunID,
527
>
Endpoint: o.Endpoint,
528
>
Service: o.Service,
529
>
Operation: o.Operation,
530
>
Status: operationExecutionStatus(o.Status),
531
>
State: PendingOperationState(o.Status),
532
>
ScheduleToCloseTimeout: o.ScheduleToCloseTimeout,
533
>
ScheduleToStartTimeout: o.ScheduleToStartTimeout,
534
>
StartToCloseTimeout: o.StartToCloseTimeout,
535
>
Attempt: o.Attempt,
536
>
ScheduleTime: o.ScheduledTime,
537
>
LastAttemptCompleteTime: o.LastAttemptCompleteTime,
538
>
LastAttemptFailure: o.LastAttemptFailure,
539
>
NextAttemptScheduleTime: o.NextAttemptScheduleTime,
540
>
RequestId: o.RequestId,
541
>
OperationToken: o.OperationToken,
542
>
StateTransitionCount: ctx.ExecutionInfo().StateTransitionCount,
543
>
StateSizeBytes: int64(ctx.ExecutionInfo().ApproximateStateSize),
544
>
SearchAttributes: &commonpb.SearchAttributes{
545
>
IndexedFields: o.Visibility.Get(ctx).CustomSearchAttributes(ctx),
546
>
},
547
>
NexusHeader: requestData.GetNexusHeader(),
548
>
UserMetadata: requestData.GetUserMetadata(),
549
>
Links: o.Links,
550
>
Identity: requestData.GetIdentity(),
551
>
}
552
>
553
>
if cancellation, ok := o.Cancellation.TryGet(ctx); ok {
554
info.CancellationInfo = &nexuspb.NexusOperationExecutionCancellationInfo{
555
RequestedTime: cancellation.RequestedTime,