421
shardID int32,
422
workflowSnapshot *p.InternalWorkflowSnapshot,
424
>
425
>
lastWriteVersion := workflowSnapshot.LastWriteVersion
426
>
workflowID := workflowSnapshot.WorkflowID
427
>
namespaceID := workflowSnapshot.NamespaceID
428
>
runID := workflowSnapshot.ExecutionState.RunId
429
>
namespaceIDBytes, err := primitives.ParseUUID(namespaceID)
430
>
if err != nil {
431
return err
432
}
434
>
if err != nil {
435
return err
436
}
437
439
>
tx,
440
>
namespaceID,
441
>
workflowID,
442
>
workflowSnapshot.ExecutionInfoBlob,
443
>
workflowSnapshot.ExecutionState,
444
>
workflowSnapshot.NextEventID,
445
>
lastWriteVersion,
446
>
workflowSnapshot.DBRecordVersion,
447
>
shardID,
448
>
); err != nil {
449
return err
450
}
451
453
>
tx,
454
>
shardID,
455
>
workflowSnapshot.Tasks,
456
>
); err != nil {
457
return err
458
}
459
461
>
tx,
462
>
workflowSnapshot.ActivityInfos,
463
>
nil,
464
>
shardID,
465
>
namespaceIDBytes,
466
>
workflowID,
467
>
runIDBytes,
468
>
); err != nil {
469
return serviceerror.NewUnavailablef("applyWorkflowSnapshotTxAsNew failed. Failed to insert into activity info map after clearing. Error: %v", err)
470
}
471
473
>
tx,
474
>
workflowSnapshot.TimerInfos,
475
>
nil,
476
>
shardID,
477
>
namespaceIDBytes,
478
>
workflowID,
479
>
runIDBytes,
480
>
); err != nil {
481
return serviceerror.NewUnavailablef("applyWorkflowSnapshotTxAsNew failed. Failed to insert into timer info map after clearing. Error: %v", err)
482
}
483
485
>
tx,
486
>
workflowSnapshot.ChildExecutionInfos,
487
>
nil,
488
>
shardID,
489
>
namespaceIDBytes,
490
>
workflowID,
491
>
runIDBytes,
492
>
); err != nil {
493
return serviceerror.NewUnavailablef("applyWorkflowSnapshotTxAsNew failed. Failed to insert into activity info map after clearing. Error: %v", err)
494
}
495
497
>
tx,
498
>
workflowSnapshot.RequestCancelInfos,
499
>
nil,
500
>
shardID,
501
>
namespaceIDBytes,
502
>
workflowID,
503
>
runIDBytes,
504
>
); err != nil {
505
return serviceerror.NewUnavailablef("applyWorkflowSnapshotTxAsNew failed. Failed to insert into request cancel info map after clearing. Error: %v", err)
506
}
507
509
>
tx,
510
>
workflowSnapshot.SignalInfos,
511
>
nil,
512
>
shardID,
513
>
namespaceIDBytes,
514
>
workflowID,
515
>
runIDBytes,
516
>
); err != nil {
517
return serviceerror.NewUnavailablef("applyWorkflowSnapshotTxAsNew failed. Failed to insert into signal info map after clearing. Error: %v", err)
518
}
519
521
>
tx,
522
>
workflowSnapshot.SignalRequestedIDs,
523
>
nil,
524
>
shardID,
525
>
namespaceIDBytes,
526
>
workflowID,
527
>
runIDBytes,
528
>
); err != nil {
529
return serviceerror.NewUnavailablef("applyWorkflowSnapshotTxAsNew failed. Failed to insert into signals requested set after clearing. Error: %v", err)
530
}
531
533
>
tx,
534
>
workflowSnapshot.ChasmNodes,
535
>
nil,
536
>
shardID,
537
>
namespaceIDBytes,
538
>
workflowID,
539
>
runIDBytes,
540
>
); err != nil {
541
return serviceerror.NewUnavailablef("applyWorkflowSnapshotTxAsNew failed. Failed to update CHASM nodes. Error: %v", err)
542
}
543
545
}
546