Skip to content

Commit f809715

Browse files
fp-enhancer: apply functional improvements to pkg/agentdrain (#26177)
1 parent da4a0dc commit f809715

3 files changed

Lines changed: 17 additions & 19 deletions

File tree

pkg/agentdrain/cluster.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
package agentdrain
22

3-
import "github.com/github/gh-aw/pkg/logger"
3+
import (
4+
"slices"
5+
6+
"github.com/github/gh-aw/pkg/logger"
7+
)
48

59
var clusterLog = logger.New("agentdrain:cluster")
610

@@ -21,16 +25,14 @@ func newClusterStore() *clusterStore {
2125
func (s *clusterStore) add(template []string, stage string) *Cluster {
2226
id := s.nextID
2327
s.nextID++
24-
tmpl := make([]string, len(template))
25-
copy(tmpl, template)
2628
c := &Cluster{
2729
ID: id,
28-
Template: tmpl,
30+
Template: slices.Clone(template),
2931
Size: 1,
3032
Stage: stage,
3133
}
3234
s.clusters[id] = c
33-
clusterLog.Printf("Created new cluster: id=%d, stage=%s, template_length=%d", id, stage, len(tmpl))
35+
clusterLog.Printf("Created new cluster: id=%d, stage=%s, template_length=%d", id, stage, len(c.Template))
3436
return c
3537
}
3638

pkg/agentdrain/mask.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"strings"
88

99
"github.com/github/gh-aw/pkg/logger"
10+
"github.com/github/gh-aw/pkg/sliceutil"
1011
)
1112

1213
var maskLog = logger.New("agentdrain:mask")
@@ -63,12 +64,9 @@ func FlattenEvent(evt AgentEvent, excludeFields []string) string {
6364
excluded[f] = true
6465
}
6566

66-
keys := make([]string, 0, len(evt.Fields))
67-
for k := range evt.Fields {
68-
if !excluded[k] {
69-
keys = append(keys, k)
70-
}
71-
}
67+
keys := sliceutil.FilterMapKeys(evt.Fields, func(k string, _ string) bool {
68+
return !excluded[k]
69+
})
7270
sort.Strings(keys)
7371

7472
parts := make([]string, 0, len(keys)+1)

pkg/agentdrain/persist.go

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package agentdrain
33
import (
44
"encoding/json"
55
"fmt"
6+
"slices"
67

78
"github.com/github/gh-aw/pkg/logger"
89
)
@@ -31,15 +32,14 @@ func (m *Miner) SaveJSON() ([]byte, error) {
3132

3233
persistLog.Printf("Saving miner state: clusters=%d", len(m.store.clusters))
3334
snap := Snapshot{
34-
Config: m.cfg,
35-
NextID: m.store.nextID,
35+
Config: m.cfg,
36+
NextID: m.store.nextID,
37+
Clusters: make([]SnapshotCluster, 0, len(m.store.clusters)),
3638
}
3739
for _, c := range m.store.clusters {
38-
tmpl := make([]string, len(c.Template))
39-
copy(tmpl, c.Template)
4040
snap.Clusters = append(snap.Clusters, SnapshotCluster{
4141
ID: c.ID,
42-
Template: tmpl,
42+
Template: slices.Clone(c.Template),
4343
Size: c.Size,
4444
Stage: c.Stage,
4545
})
@@ -71,11 +71,9 @@ func (m *Miner) LoadJSON(data []byte) error {
7171
m.store.nextID = snap.NextID
7272

7373
for _, sc := range snap.Clusters {
74-
tmpl := make([]string, len(sc.Template))
75-
copy(tmpl, sc.Template)
7674
c := &Cluster{
7775
ID: sc.ID,
78-
Template: tmpl,
76+
Template: slices.Clone(sc.Template),
7977
Size: sc.Size,
8078
Stage: sc.Stage,
8179
}

0 commit comments

Comments
 (0)