Skip to content

Commit fc34ff0

Browse files
authored
Feat: sink the use of backend into statemanager (#230)
Signed-off-by: Daniel Hu <[email protected]>
1 parent 4dcdd4f commit fc34ff0

File tree

6 files changed

+24
-47
lines changed

6 files changed

+24
-47
lines changed

internal/pkg/pluginengine/cmd_apply.go

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,8 @@ import (
55
"fmt"
66
"os"
77

8-
"github.com/merico-dev/stream/internal/pkg/log"
9-
10-
"github.com/merico-dev/stream/internal/pkg/backend"
118
"github.com/merico-dev/stream/internal/pkg/configloader"
9+
"github.com/merico-dev/stream/internal/pkg/log"
1210
"github.com/merico-dev/stream/internal/pkg/pluginmanager"
1311
"github.com/merico-dev/stream/internal/pkg/statemanager"
1412
)
@@ -25,21 +23,15 @@ func Apply(configFile string, continueDirectly bool) error {
2523
return err
2624
}
2725

28-
// use default local backend for now.
29-
b, err := backend.GetBackend(backend.BackendLocal)
30-
if err != nil {
31-
return err
32-
}
33-
// create a state manager using the default local backend
34-
smgr, err := statemanager.NewManager(b)
26+
smgr, err := statemanager.NewManager()
3527
if err != nil {
36-
log.Debugf("Failed to get the manager. %s", err)
28+
log.Debugf("Failed to get the manager: %s.", err)
3729
return err
3830
}
3931

4032
changes, err := GetChangesForApply(smgr, cfg)
4133
if err != nil {
42-
log.Debugf("Get changes for apply failed: %s", err)
34+
log.Debugf("Get changes for apply failed: %s.", err)
4335
return err
4436
}
4537
if len(changes) == 0 {

internal/pkg/pluginengine/cmd_delete.go

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,8 @@ import (
55
"fmt"
66
"os"
77

8-
"github.com/merico-dev/stream/internal/pkg/log"
9-
10-
"github.com/merico-dev/stream/internal/pkg/backend"
118
"github.com/merico-dev/stream/internal/pkg/configloader"
9+
"github.com/merico-dev/stream/internal/pkg/log"
1210
"github.com/merico-dev/stream/internal/pkg/pluginmanager"
1311
"github.com/merico-dev/stream/internal/pkg/statemanager"
1412
)
@@ -25,13 +23,7 @@ func Remove(configFile string, continueDirectly bool) error {
2523
return err
2624
}
2725

28-
// use default local backend for now.
29-
b, err := backend.GetBackend(backend.BackendLocal)
30-
if err != nil {
31-
return err
32-
}
33-
// create a state manager using the default local backend
34-
smgr, err := statemanager.NewManager(b)
26+
smgr, err := statemanager.NewManager()
3527
if err != nil {
3628
log.Debugf("Failed to get the manager: %s.", err)
3729
return err

internal/pkg/pluginengine/cmd_verify.go

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package pluginengine
33
import (
44
"fmt"
55

6-
"github.com/merico-dev/stream/internal/pkg/backend"
76
"github.com/merico-dev/stream/internal/pkg/configloader"
87
"github.com/merico-dev/stream/internal/pkg/log"
98
"github.com/merico-dev/stream/internal/pkg/pluginmanager"
@@ -23,13 +22,7 @@ func Verify(configFile string) (bool, error) {
2322
return false, err
2423
}
2524

26-
// use default local backend for now.
27-
b, err := backend.GetBackend(backend.BackendLocal)
28-
if err != nil {
29-
return false, err
30-
}
31-
32-
smgr, err := statemanager.NewManager(b)
25+
smgr, err := statemanager.NewManager()
3326
if err != nil {
3427
log.Debugf("Failed to get the manager: %s.", err)
3528
return false, err

internal/pkg/pluginengine/pluginengine_test.go

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import (
77
. "github.com/onsi/ginkgo/v2"
88
. "github.com/onsi/gomega"
99

10-
"github.com/merico-dev/stream/internal/pkg/backend"
1110
"github.com/merico-dev/stream/internal/pkg/backend/local"
1211
"github.com/merico-dev/stream/internal/pkg/configloader"
1312
"github.com/merico-dev/stream/internal/pkg/pluginengine"
@@ -17,15 +16,13 @@ import (
1716
var _ = Describe("Pluginengine", func() {
1817
var (
1918
smgr statemanager.Manager
19+
err error
2020
)
2121

2222
BeforeEach(func() {
2323
defer GinkgoRecover()
2424

25-
b, err := backend.GetBackend(backend.BackendLocal)
26-
Expect(err).NotTo(HaveOccurred())
27-
28-
smgr, err = statemanager.NewManager(b)
25+
smgr, err = statemanager.NewManager()
2926
Expect(err).ToNot(HaveOccurred())
3027
Expect(smgr).NotTo(BeNil())
3128
_, _ = GinkgoWriter.Write([]byte("new a statemanager"))
@@ -85,7 +82,7 @@ var _ = Describe("Pluginengine", func() {
8582
Tools: []configloader.Tool{*getTool(name, kind, version)},
8683
}
8784

88-
err := smgr.AddState(fmt.Sprintf("%s_%s", name, kind), statemanager.State{})
85+
err = smgr.AddState(fmt.Sprintf("%s_%s", name, kind), statemanager.State{})
8986
Expect(err).NotTo(HaveOccurred())
9087
changes, _ := pluginengine.GetChangesForDelete(smgr, cfg)
9188

internal/pkg/statemanager/manager.go

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,20 +38,27 @@ type manager struct {
3838

3939
var m *manager
4040

41-
func NewManager(backend backend.Backend) (Manager, error) {
41+
func NewManager() (Manager, error) {
4242
if m != nil {
4343
return m, nil
4444
}
4545

4646
log.Debugf("The global manager m is not initialized.")
4747

48+
// use default local backend for now.
49+
b, err := backend.GetBackend(backend.BackendLocal)
50+
if err != nil {
51+
log.Errorf("Failed to get the Backend: %s.", err)
52+
return nil, err
53+
}
54+
4855
m = &manager{
49-
Backend: backend,
56+
Backend: b,
5057
statesMap: NewStatesMap(),
5158
}
5259

5360
// Read the initial states data
54-
data, err := backend.Read()
61+
data, err := b.Read()
5562
if err != nil {
5663
log.Debugf("Failed to read data from backend: %s.", err)
5764
return nil, err

internal/pkg/statemanager/manager_test.go

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,18 @@ import (
66
. "github.com/onsi/ginkgo/v2"
77
. "github.com/onsi/gomega"
88

9-
"github.com/merico-dev/stream/internal/pkg/backend"
109
"github.com/merico-dev/stream/internal/pkg/backend/local"
1110
"github.com/merico-dev/stream/internal/pkg/configloader"
1211
"github.com/merico-dev/stream/internal/pkg/statemanager"
1312
)
1413

1514
var _ = Describe("Statemanager", func() {
1615
var smgr statemanager.Manager
16+
var err error
1717

1818
Context("States", func() {
1919
BeforeEach(func() {
20-
b, err := backend.GetBackend(backend.BackendLocal)
21-
Expect(err).NotTo(HaveOccurred())
22-
Expect(b).NotTo(BeNil())
23-
24-
smgr, err = statemanager.NewManager(b)
20+
smgr, err = statemanager.NewManager()
2521
Expect(err).NotTo(HaveOccurred())
2622
Expect(smgr).NotTo(BeNil())
2723
})
@@ -35,7 +31,7 @@ var _ = Describe("Statemanager", func() {
3531
Resource: map[string]interface{}{"a": "value"},
3632
}
3733

38-
err := smgr.AddState(key, stateA)
34+
err = smgr.AddState(key, stateA)
3935
Expect(err).NotTo(HaveOccurred())
4036

4137
stateB := smgr.GetState(key)
@@ -49,7 +45,7 @@ var _ = Describe("Statemanager", func() {
4945
})
5046

5147
AfterEach(func() {
52-
err := os.RemoveAll(local.DefaultStateFile)
48+
err = os.RemoveAll(local.DefaultStateFile)
5349
Expect(err).NotTo(HaveOccurred())
5450
})
5551
})

0 commit comments

Comments
 (0)