512
}
513
515
>
if err != nil {
516
return nil, serviceerror.NewUnavailablef("GetWorkflowExecution operation failed. Error: %v", err)
517
}
518
520
>
aMap := result["activity_map"].(map[int64][]byte)
521
>
aMapEncoding := result["activity_map_encoding"].(string)
522
>
for key, value := range aMap {
523
>
activityInfos[key] = p.NewDataBlob(value, aMapEncoding)
524
>
}
525
>
state.ActivityInfos = activityInfos
526
>
527
>
timerInfos := make(map[string]*commonpb.DataBlob)
528
>
tMapEncoding := result["timer_map_encoding"].(string)
529
>
tMap := result["timer_map"].(map[string][]byte)
530
>
for key, value := range tMap {
531
>
timerInfos[key] = p.NewDataBlob(value, tMapEncoding)
532
>
}
533
>
state.TimerInfos = timerInfos
534
>
535
>
childExecutionInfos := make(map[int64]*commonpb.DataBlob)
536
>
cMap := result["child_executions_map"].(map[int64][]byte)
537
>
cMapEncoding := result["child_executions_map_encoding"].(string)
538
>
for key, value := range cMap {
539
>
childExecutionInfos[key] = p.NewDataBlob(value, cMapEncoding)
540
>
}
541
>
state.ChildExecutionInfos = childExecutionInfos
542
>
543
>
requestCancelInfos := make(map[int64]*commonpb.DataBlob)
544
>
rMapEncoding := result["request_cancel_map_encoding"].(string)
545
>
rMap := result["request_cancel_map"].(map[int64][]byte)
546
>
for key, value := range rMap {
547
>
requestCancelInfos[key] = p.NewDataBlob(value, rMapEncoding)
548
>
}
549
>
state.RequestCancelInfos = requestCancelInfos
550
>
551
>
signalInfos := make(map[int64]*commonpb.DataBlob)
552
>
sMapEncoding := result["signal_map_encoding"].(string)
553
>
sMap := result["signal_map"].(map[int64][]byte)
554
>
for key, value := range sMap {
555
>
signalInfos[key] = p.NewDataBlob(value, sMapEncoding)
556
>
}
557
>
state.SignalInfos = signalInfos
558
>
state.SignalRequestedIDs = gocql.UUIDsToStringSlice(result["signal_requested"])
559
>
560
>
chasmNodeBlobs := make(map[string]p.InternalChasmNode)
561
>
chasmNodeEncoding, ok := result["chasm_node_map_encoding"].(string)
562
>
if !ok {
563
return nil, serviceerror.NewInternal("GetWorkflowExecution failed: unknown chasm_node_map_encoding type")
564
}
566
>
if !ok {
567
return nil, serviceerror.NewInternal("GetWorkflowExecution failed: unknown chasm_node_map type")
568
}
570
>
chasmNodeBlobs[key] = p.InternalChasmNode{
571
>
CassandraBlob: p.NewDataBlob(value, chasmNodeEncoding),
572
>
}
573
>
}
574
>
state.ChasmNodes = chasmNodeBlobs
575
>
576
>
eList := result["buffered_events_list"].([]map[string]any) //nolint:revive // unchecked-type-assertion: consistent with surrounding Cassandra result parsing
577
>
bufferedEventsBlobs := make([]*commonpb.DataBlob, 0, len(eList))
578
>
for _, v := range eList {
579
blob := createHistoryEventBatchBlob(v)
580
bufferedEventsBlobs = append(bufferedEventsBlobs, blob)
581
}
583
>
584
>
state.Checksum = p.NewDataBlob(result["checksum"].([]byte), result["checksum_encoding"].(string))
585
>
586
>
dbVersion := int64(0)
587
>
if dbRecordVersion, ok := result["db_record_version"]; ok {
588
>
dbVersion = dbRecordVersion.(int64)
589
>
} else {
590
dbVersion = 0
591
}
592
594
>
State: state,
595
>
DBRecordVersion: dbVersion,
596
>
}, nil
597
}
598