Skip to content

Commit 6491dde

Browse files
committed
refactor: inject default service manager
1 parent 050d7e8 commit 6491dde

17 files changed

+165
-96
lines changed

cmd/agent_smith/config.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ func runConfig(params *configContext) {
109109
name := agent.GetServiceName(params.OrgId)
110110

111111
// Stop and delete the service if it already exists
112-
existingService, err := service.Open(name)
112+
existingService, err := params.ServiceManager.Open(name)
113113
if err == nil {
114114
if existingService.IsActive() {
115115
logger.Info("Stopping service", "service", name)
@@ -172,7 +172,7 @@ func runConfig(params *configContext) {
172172
// Create the service
173173
logger.Info("Creating service", "service", name)
174174

175-
svc, err := service.Create(service.AgentParams{
175+
svc, err := params.ServiceManager.Create(service.AgentParams{
176176
Name: name,
177177
AgentExecutablePath: agentExecutablePath,
178178
OrgId: params.OrgId,

cmd/agent_smith/config_context.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"fmt"
77

88
"github.com/RewstApp/agent-smith-go/internal/agent"
9+
"github.com/RewstApp/agent-smith-go/internal/service"
910
"github.com/RewstApp/agent-smith-go/internal/utils"
1011
)
1112

@@ -21,10 +22,11 @@ type configContext struct {
2122
Sys agent.SystemInfoProvider
2223
Domain agent.DomainInfoProvider
2324

24-
FS utils.FileSystem
25+
FS utils.FileSystem
26+
ServiceManager service.ServiceManager
2527
}
2628

27-
func newConfigContext(args []string, sys agent.SystemInfoProvider, domain agent.DomainInfoProvider, fsys utils.FileSystem) (*configContext, error) {
29+
func newConfigContext(args []string, sys agent.SystemInfoProvider, domain agent.DomainInfoProvider, fsys utils.FileSystem, svcMgr service.ServiceManager) (*configContext, error) {
2830
var params configContext
2931

3032
fs := flag.NewFlagSet("config", flag.ContinueOnError)
@@ -61,6 +63,7 @@ func newConfigContext(args []string, sys agent.SystemInfoProvider, domain agent.
6163
params.Sys = sys
6264
params.Domain = domain
6365
params.FS = fsys
66+
params.ServiceManager = svcMgr
6467

6568
return &params, nil
6669
}

cmd/agent_smith/config_context_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ func TestNewConfigContext(t *testing.T) {
1010
configUrl := "https://config.url/"
1111
configSecret := "secret123"
1212

13-
result, _ := newConfigContext([]string{"--org-id", orgId, "--config-url", configUrl, "--config-secret", configSecret}, nil, nil, nil)
13+
result, _ := newConfigContext([]string{"--org-id", orgId, "--config-url", configUrl, "--config-secret", configSecret}, nil, nil, nil, nil)
1414

1515
if result.OrgId != orgId {
1616
t.Errorf("expected %v, got %v", orgId, result.OrgId)
@@ -44,7 +44,7 @@ func TestNewConfigContext(t *testing.T) {
4444
}
4545

4646
for _, errorTest := range errorTests {
47-
_, err := newConfigContext(errorTest.args, nil, nil, nil)
47+
_, err := newConfigContext(errorTest.args, nil, nil, nil, nil)
4848

4949
if err == nil || !strings.Contains(err.Error(), errorTest.message) {
5050
t.Errorf("expected error %s, got %v", errorTest.message, err.Error())

cmd/agent_smith/main.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77

88
"github.com/RewstApp/agent-smith-go/internal/agent"
99
"github.com/RewstApp/agent-smith-go/internal/interpreter"
10+
"github.com/RewstApp/agent-smith-go/internal/service"
1011
"github.com/RewstApp/agent-smith-go/internal/utils"
1112
)
1213

@@ -39,15 +40,16 @@ func main() {
3940
domain := agent.NewDomainInfoProvider()
4041
executor := interpreter.NewExecutor()
4142
fs := utils.NewFileSystem()
43+
svcMgr := service.NewServiceManager()
4244

43-
uninstallContext, err := newUninstallContext(os.Args[1:])
45+
uninstallContext, err := newUninstallContext(os.Args[1:], svcMgr)
4446
if err == nil {
4547
// Run uninstall routine
4648
runUninstall(uninstallContext)
4749
return
4850
}
4951

50-
configContext, err := newConfigContext(os.Args[1:], sys, domain, fs)
52+
configContext, err := newConfigContext(os.Args[1:], sys, domain, fs, svcMgr)
5153
if err == nil {
5254
// Run config routine
5355
runConfig(configContext)
@@ -61,7 +63,7 @@ func main() {
6163
return
6264
}
6365

64-
updateContext, err := newUpdateContext(os.Args[1:], sys, domain)
66+
updateContext, err := newUpdateContext(os.Args[1:], sys, domain, svcMgr)
6567
if err == nil {
6668
// Run update routine
6769
runUpdate(updateContext)

cmd/agent_smith/uninstall.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import (
66
"time"
77

88
"github.com/RewstApp/agent-smith-go/internal/agent"
9-
"github.com/RewstApp/agent-smith-go/internal/service"
109
"github.com/RewstApp/agent-smith-go/internal/utils"
1110
"github.com/RewstApp/agent-smith-go/internal/version"
1211
)
@@ -21,7 +20,7 @@ func runUninstall(params *uninstallContext) {
2120

2221
name := agent.GetServiceName(params.OrgId)
2322

24-
service, err := service.Open(name)
23+
service, err := params.ServiceManager.Open(name)
2524
if err != nil {
2625
logger.Error("Failed to open service", "service", name, "error", err)
2726
return

cmd/agent_smith/uninstall_context.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,18 @@ import (
44
"bytes"
55
"flag"
66
"fmt"
7+
8+
"github.com/RewstApp/agent-smith-go/internal/service"
79
)
810

911
type uninstallContext struct {
1012
OrgId string
1113
Uninstall bool
14+
15+
ServiceManager service.ServiceManager
1216
}
1317

14-
func newUninstallContext(args []string) (*uninstallContext, error) {
18+
func newUninstallContext(args []string, svcMgr service.ServiceManager) (*uninstallContext, error) {
1519
var params uninstallContext
1620

1721
fs := flag.NewFlagSet("uninstall", flag.ContinueOnError)
@@ -32,5 +36,7 @@ func newUninstallContext(args []string) (*uninstallContext, error) {
3236
return nil, fmt.Errorf("missing uninstall")
3337
}
3438

39+
params.ServiceManager = svcMgr
40+
3541
return &params, nil
3642
}

cmd/agent_smith/uninstall_context_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77

88
func TestNewUninstallContext(t *testing.T) {
99
orgId := "test123"
10-
result, _ := newUninstallContext([]string{"--org-id", orgId, "--uninstall"})
10+
result, _ := newUninstallContext([]string{"--org-id", orgId, "--uninstall"}, nil)
1111

1212
if result.OrgId != orgId {
1313
t.Errorf("expected %v, got %v", orgId, result.OrgId)
@@ -27,7 +27,7 @@ func TestNewUninstallContext(t *testing.T) {
2727
}
2828

2929
for _, errorTest := range errorTests {
30-
_, err := newUninstallContext(errorTest.args)
30+
_, err := newUninstallContext(errorTest.args, nil)
3131

3232
if err == nil || !strings.Contains(err.Error(), errorTest.message) {
3333
t.Errorf("expected error %s, got %v", errorTest.message, err.Error())

cmd/agent_smith/update.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88
"time"
99

1010
"github.com/RewstApp/agent-smith-go/internal/agent"
11-
"github.com/RewstApp/agent-smith-go/internal/service"
1211
"github.com/RewstApp/agent-smith-go/internal/utils"
1312
"github.com/RewstApp/agent-smith-go/internal/version"
1413
)
@@ -21,7 +20,7 @@ func runUpdate(params *updateContext) {
2120

2221
// Open the service
2322
name := agent.GetServiceName(params.OrgId)
24-
svc, err := service.Open(name)
23+
svc, err := params.ServiceManager.Open(name)
2524
if err != nil {
2625
logger.Error("Failed to open service", "name", name, "error", err)
2726
return

cmd/agent_smith/update_context.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"fmt"
77

88
"github.com/RewstApp/agent-smith-go/internal/agent"
9+
"github.com/RewstApp/agent-smith-go/internal/service"
910
"github.com/RewstApp/agent-smith-go/internal/utils"
1011
)
1112

@@ -19,9 +20,11 @@ type updateContext struct {
1920

2021
Sys agent.SystemInfoProvider
2122
Domain agent.DomainInfoProvider
23+
24+
ServiceManager service.ServiceManager
2225
}
2326

24-
func newUpdateContext(args []string, sys agent.SystemInfoProvider, domain agent.DomainInfoProvider) (*updateContext, error) {
27+
func newUpdateContext(args []string, sys agent.SystemInfoProvider, domain agent.DomainInfoProvider, svcMgr service.ServiceManager) (*updateContext, error) {
2528
var params updateContext
2629

2730
fs := flag.NewFlagSet("config", flag.ContinueOnError)
@@ -52,6 +55,7 @@ func newUpdateContext(args []string, sys agent.SystemInfoProvider, domain agent.
5255

5356
params.Sys = sys
5457
params.Domain = domain
58+
params.ServiceManager = svcMgr
5559

5660
return &params, nil
5761
}

cmd/agent_smith/update_context_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
func TestNewUpdateContext(t *testing.T) {
99
orgId := "test123"
1010

11-
result, _ := newUpdateContext([]string{"--org-id", orgId, "--update"}, nil, nil)
11+
result, _ := newUpdateContext([]string{"--org-id", orgId, "--update"}, nil, nil, nil)
1212

1313
if result.OrgId != orgId {
1414
t.Errorf("expected %v, got %v", orgId, result.OrgId)
@@ -37,7 +37,7 @@ func TestNewUpdateContext(t *testing.T) {
3737
}
3838

3939
for _, errorTest := range errorTests {
40-
_, err := newUpdateContext(errorTest.args, nil, nil)
40+
_, err := newUpdateContext(errorTest.args, nil, nil, nil)
4141

4242
if err == nil || !strings.Contains(err.Error(), errorTest.message) {
4343
t.Errorf("expected error %s, got %v", errorTest.message, err.Error())

0 commit comments

Comments
 (0)