Skip to content

Commit 98e53a6

Browse files
committed
refact: make cgmon public
Signed-off-by: ComixHe <self@comix.he.cn>
1 parent 18e6256 commit 98e53a6

File tree

8 files changed

+43
-23
lines changed

8 files changed

+43
-23
lines changed

internal/cgmon/error.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package cgmon
33
import (
44
"errors"
55
"fmt"
6+
67
"golang.org/x/sys/unix"
78
)
89

internal/cgmon/monitor_test.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ package cgmon_test
33
import (
44
"context"
55
"fmt"
6+
"os"
7+
"testing"
8+
69
. "github.com/black-desk/cgtproxy/internal/cgmon"
710
"github.com/black-desk/cgtproxy/internal/fswatcher"
811
"github.com/black-desk/cgtproxy/internal/types"
@@ -14,15 +17,13 @@ import (
1417
"github.com/sourcegraph/conc/pool"
1518
"github.com/tywkeene/go-fsevents"
1619
"golang.org/x/sys/unix"
17-
"os"
18-
"testing"
1920
)
2021

2122
var _ = Describe("Cgroup monitor create with fake fsevents.Watcher", Ordered, func() {
2223
var (
2324
w *fswatcher.Watcher
2425
cgroupEventChan chan *types.CgroupEvent
25-
monitor *Monitor
26+
monitor *FSMonitor
2627
tmpDir string
2728
err error
2829
)

internal/cgmon/new.go

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,26 @@ import (
44
"github.com/black-desk/cgtproxy/internal/fswatcher"
55
"github.com/black-desk/cgtproxy/internal/types"
66
"github.com/black-desk/cgtproxy/pkg/cgtproxy/config"
7+
"github.com/black-desk/cgtproxy/pkg/interfaces"
78
. "github.com/black-desk/lib/go/errwrap"
9+
810
"go.uber.org/zap"
911
)
1012

11-
type Monitor struct {
13+
type FSMonitor struct {
1214
watcher *fswatcher.Watcher
1315
output chan<- *types.CgroupEvent
1416
root config.CgroupRoot
1517
log *zap.SugaredLogger
1618
}
1719

18-
func New(opts ...Opt) (ret *Monitor, err error) {
20+
//go:generate go run github.com/rjeczalik/interfaces/cmd/interfacer@latest -for github.com/black-desk/cgtproxy/internal/cgmon.FSMonitor -as interfaces.CgroupMonitor -o ../../pkg/interfaces/cgmon.go
21+
var _ interfaces.CgroupMonitor = &FSMonitor{}
22+
23+
func New(opts ...Opt) (ret *FSMonitor, err error) {
1924
defer Wrap(&err, "create cgroup monitor")
2025

21-
m := &Monitor{}
26+
m := &FSMonitor{}
2227
for i := range opts {
2328
m, err = opts[i](m)
2429
if err != nil {
@@ -54,10 +59,10 @@ func New(opts ...Opt) (ret *Monitor, err error) {
5459
return
5560
}
5661

57-
type Opt func(mon *Monitor) (ret *Monitor, err error)
62+
type Opt func(mon *FSMonitor) (ret *FSMonitor, err error)
5863

5964
func WithWatcher(w *fswatcher.Watcher) Opt {
60-
return func(mon *Monitor) (ret *Monitor, err error) {
65+
return func(mon *FSMonitor) (ret *FSMonitor, err error) {
6166
if w == nil {
6267
err = ErrWatcherMissing
6368
return
@@ -69,7 +74,7 @@ func WithWatcher(w *fswatcher.Watcher) Opt {
6974
}
7075

7176
func WithOutput(ch chan<- *types.CgroupEvent) Opt {
72-
return func(mon *Monitor) (ret *Monitor, err error) {
77+
return func(mon *FSMonitor) (ret *FSMonitor, err error) {
7378
if ch == nil {
7479
err = ErrOutputMissing
7580
return
@@ -81,7 +86,7 @@ func WithOutput(ch chan<- *types.CgroupEvent) Opt {
8186
}
8287

8388
func WithCgroupRoot(root config.CgroupRoot) Opt {
84-
return func(mon *Monitor) (ret *Monitor, err error) {
89+
return func(mon *FSMonitor) (ret *FSMonitor, err error) {
8590
if root == "" {
8691
err = ErrCgroupRootMissing
8792
return
@@ -93,7 +98,7 @@ func WithCgroupRoot(root config.CgroupRoot) Opt {
9398
}
9499

95100
func WithLogger(logger *zap.SugaredLogger) Opt {
96-
return func(mon *Monitor) (ret *Monitor, err error) {
101+
return func(mon *FSMonitor) (ret *FSMonitor, err error) {
97102
mon.log = logger
98103
ret = mon
99104
return

internal/cgmon/run.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
. "github.com/black-desk/lib/go/errwrap"
1212
)
1313

14-
func (m *Monitor) walkFn(ctx context.Context) func(path string, d fs.DirEntry, err error) error {
14+
func (m *FSMonitor) walkFn(ctx context.Context) func(path string, d fs.DirEntry, err error) error {
1515
return func(path string, d fs.DirEntry, err error) error {
1616
if err != nil {
1717
return err
@@ -35,7 +35,7 @@ func (m *Monitor) walkFn(ctx context.Context) func(path string, d fs.DirEntry, e
3535
}
3636
}
3737

38-
func (m *Monitor) walk(ctx context.Context, path string) {
38+
func (m *FSMonitor) walk(ctx context.Context, path string) {
3939
err := m.doWalk(ctx, path)
4040
if err == nil {
4141
return
@@ -55,12 +55,12 @@ func (m *Monitor) walk(ctx context.Context, path string) {
5555
return
5656
}
5757

58-
func (m *Monitor) doWalk(ctx context.Context, path string) (err error) {
58+
func (m *FSMonitor) doWalk(ctx context.Context, path string) (err error) {
5959
err = filepath.WalkDir(path, m.walkFn(ctx))
6060
return
6161
}
6262

63-
func (m *Monitor) Run(ctx context.Context) (err error) {
63+
func (m *FSMonitor) Run(ctx context.Context) (err error) {
6464
defer close(m.output)
6565
defer Wrap(&err, "running cgroup monitor.")
6666

@@ -120,7 +120,7 @@ func (m *Monitor) Run(ctx context.Context) (err error) {
120120
}
121121
}
122122

123-
func (m *Monitor) send(ctx context.Context, cgEvent *types.CgroupEvent) (err error) {
123+
func (m *FSMonitor) send(ctx context.Context, cgEvent *types.CgroupEvent) (err error) {
124124
path := strings.TrimRight(cgEvent.Path, "/")
125125
cgEvent.Path = path
126126

pkg/cgtproxy/new.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ package cgtproxy
33
import (
44
"context"
55

6-
"github.com/black-desk/cgtproxy/internal/cgmon"
76
"github.com/black-desk/cgtproxy/internal/fswatcher"
87
"github.com/black-desk/cgtproxy/internal/routeman"
98
"github.com/black-desk/cgtproxy/pkg/cgtproxy/config"
9+
"github.com/black-desk/cgtproxy/pkg/interfaces"
1010
. "github.com/black-desk/lib/go/errwrap"
1111
"github.com/sourcegraph/conc/pool"
1212
"go.uber.org/zap"
@@ -24,7 +24,7 @@ type Core struct {
2424

2525
type components struct {
2626
w *fswatcher.Watcher
27-
m *cgmon.Monitor
27+
m interfaces.CgroupMonitor
2828
r *routeman.RouteManager
2929
}
3030

pkg/cgtproxy/providers.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"github.com/black-desk/cgtproxy/internal/routeman"
88
"github.com/black-desk/cgtproxy/internal/types"
99
"github.com/black-desk/cgtproxy/pkg/cgtproxy/config"
10+
"github.com/black-desk/cgtproxy/pkg/interfaces"
1011
"github.com/google/nftables"
1112
"github.com/google/wire"
1213
"go.uber.org/zap"
@@ -116,9 +117,9 @@ func provideMonitor(
116117
root config.CgroupRoot,
117118
logger *zap.SugaredLogger,
118119
) (
119-
ret *cgmon.Monitor, err error,
120+
ret interfaces.CgroupMonitor, err error,
120121
) {
121-
var m *cgmon.Monitor
122+
var m *cgmon.FSMonitor
122123

123124
m, err = cgmon.New(
124125
cgmon.WithOutput(ch),
@@ -143,7 +144,7 @@ func provideBypass(cfg *config.Config) config.Bypass {
143144
}
144145

145146
func provideComponents(
146-
w *fswatcher.Watcher, m *cgmon.Monitor, r *routeman.RouteManager,
147+
w *fswatcher.Watcher, m interfaces.CgroupMonitor, r *routeman.RouteManager,
147148
) *components {
148149
return &components{w: w, m: m, r: r}
149150
}

pkg/cgtproxy/wire_gen.go

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/interfaces/cgmon.go

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)