-
Notifications
You must be signed in to change notification settings - Fork 9
/
store.go
34 lines (27 loc) · 869 Bytes
/
store.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// Copyright 2022 Namespace Labs Inc; All rights reserved.
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
package tasks
import (
"path/filepath"
"namespacelabs.dev/foundation/schema/storage"
)
func Retain(af *RunningAction) *storage.Command {
actionId := af.Data.ActionID
r := &storage.Command{
ActionLog: []*storage.StoredTask{MakeStoreProto(&af.Data, af.attachments)},
}
if af.attachments != nil {
af.attachments.mu.Lock()
for _, name := range af.attachments.insertionOrder {
buf := af.attachments.buffers[name.computed]
contents := buf.buffer.Snapshot(true)
r.AttachedLog = append(r.AttachedLog, &storage.Command_Log{
Id: filepath.Join(actionId.String(), buf.id),
Content: contents,
})
}
af.attachments.mu.Unlock()
}
return r
}