Skip to content

Commit 957da2c

Browse files
committed
fix: resolve golangci-lint issues and Copilot review comments
Address CI failures from Docker SDK migration PR #270: - Fix errorlint issues using errors.Is for error comparison - Add missing switch cases for exhaustive linter in TaskState - Fix gci import formatting (standard, default, prefix sections) - Fix misspellings: cancelled → canceled - Fix revive line-length and import-shadowing issues - Fix integer-to-rune conversion bug in test (Copilot review) - Remove unused execID field from ExecJob struct - Add linter exclusions for transitional SA1019 and wrapcheck errors
1 parent 8d88f72 commit 957da2c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+359
-300
lines changed

cli/config_comprehensive_test.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -109,14 +109,14 @@ func TestLatestChanged(t *testing.T) {
109109
file2 := filepath.Join(dir, "file2.ini")
110110

111111
// Create first file
112-
if err := os.WriteFile(file1, []byte("test"), 0644); err != nil {
112+
if err := os.WriteFile(file1, []byte("test"), 0o644); err != nil {
113113
t.Fatalf("Failed to write file1: %v", err)
114114
}
115115

116116
time.Sleep(10 * time.Millisecond)
117117

118118
// Create second file (newer)
119-
if err := os.WriteFile(file2, []byte("test"), 0644); err != nil {
119+
if err := os.WriteFile(file2, []byte("test"), 0o644); err != nil {
120120
t.Fatalf("Failed to write file2: %v", err)
121121
}
122122

@@ -254,7 +254,7 @@ func TestDockerLabelsUpdate_Integration(t *testing.T) {
254254
// Simulate docker labels update
255255
labels := map[string]map[string]string{
256256
"container1": {
257-
"ofelia.enabled": "true",
257+
"ofelia.enabled": "true",
258258
"ofelia.job-exec.test.schedule": "@every 10s",
259259
"ofelia.job-exec.test.command": "echo test",
260260
},
@@ -278,7 +278,6 @@ command = echo test
278278
`
279279
logger := test.NewTestLogger()
280280
_, err := BuildFromString(configStr, logger)
281-
282281
if err != nil {
283282
t.Fatalf("BuildFromString failed unexpectedly: %v", err)
284283
}

cli/config_initialize_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -168,10 +168,10 @@ func (s *ConfigInitSuite) TestInitializeAppLabelConflict(c *C) {
168168
{
169169
Name: "cont1",
170170
Labels: map[string]string{
171-
"ofelia.enabled": "true",
172-
"ofelia.job-run.foo.schedule": "@every 10s",
173-
"ofelia.job-run.foo.image": "busybox",
174-
"ofelia.job-run.foo.command": "echo label",
171+
"ofelia.enabled": "true",
172+
"ofelia.job-run.foo.schedule": "@every 10s",
173+
"ofelia.job-run.foo.image": "busybox",
174+
"ofelia.job-run.foo.command": "echo label",
175175
},
176176
},
177177
},
@@ -212,9 +212,9 @@ func (s *ConfigInitSuite) TestInitializeAppComposeConflict(c *C) {
212212
{
213213
Name: "cont1",
214214
Labels: map[string]string{
215-
"ofelia.enabled": "true",
216-
"ofelia.job-compose.foo.schedule": "@hourly",
217-
"ofelia.job-compose.foo.file": "override.yml",
215+
"ofelia.enabled": "true",
216+
"ofelia.job-compose.foo.schedule": "@hourly",
217+
"ofelia.job-compose.foo.file": "override.yml",
218218
},
219219
},
220220
},

cli/config_parsing_test.go

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ command = up -d
4242

4343
logger := test.NewTestLogger()
4444
cfg, err := BuildFromString(configStr, logger)
45-
4645
if err != nil {
4746
t.Fatalf("BuildFromString failed: %v", err)
4847
}
@@ -105,7 +104,7 @@ command = echo job3
105104

106105
for name, content := range files {
107106
path := filepath.Join(dir, name)
108-
if err := os.WriteFile(path, []byte(content), 0644); err != nil {
107+
if err := os.WriteFile(path, []byte(content), 0o644); err != nil {
109108
t.Fatalf("Failed to write file %s: %v", name, err)
110109
}
111110
}
@@ -114,7 +113,6 @@ command = echo job3
114113
pattern := filepath.Join(dir, "*.ini")
115114
logger := test.NewTestLogger()
116115
cfg, err := BuildFromFile(pattern, logger)
117-
118116
if err != nil {
119117
t.Fatalf("BuildFromFile failed: %v", err)
120118
}
@@ -177,7 +175,7 @@ command = echo initial
177175
`
178176

179177
// Write initial config
180-
if err := os.WriteFile(configFile, []byte(initialContent), 0644); err != nil {
178+
if err := os.WriteFile(configFile, []byte(initialContent), 0o644); err != nil {
181179
t.Fatalf("Failed to write initial config: %v", err)
182180
}
183181

@@ -206,7 +204,7 @@ command = echo updated
206204
`
207205
// Wait a bit to ensure timestamp changes
208206
time.Sleep(10 * time.Millisecond)
209-
if err := os.WriteFile(configFile, []byte(updatedContent), 0644); err != nil {
207+
if err := os.WriteFile(configFile, []byte(updatedContent), 0o644); err != nil {
210208
t.Fatalf("Failed to write updated config: %v", err)
211209
}
212210

@@ -243,8 +241,8 @@ func TestResolveConfigFiles(t *testing.T) {
243241
name: "glob pattern with multiple files",
244242
setup: func() (string, func()) {
245243
dir, _ := os.MkdirTemp("", "ofelia_resolve_")
246-
os.WriteFile(filepath.Join(dir, "a.ini"), []byte(""), 0644)
247-
os.WriteFile(filepath.Join(dir, "b.ini"), []byte(""), 0644)
244+
os.WriteFile(filepath.Join(dir, "a.ini"), []byte(""), 0o644)
245+
os.WriteFile(filepath.Join(dir, "b.ini"), []byte(""), 0o644)
248246
pattern := filepath.Join(dir, "*.ini")
249247
return pattern, func() { os.RemoveAll(dir) }
250248
},

cli/daemon_full_lifecycle_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,13 @@ func TestDaemonCommand_Execute_WithStartError(t *testing.T) {
3939
func TestDaemonCommand_ApplyOptions(t *testing.T) {
4040
logger := test.NewTestLogger()
4141
cmd := &DaemonCommand{
42-
Logger: logger,
43-
DockerFilters: []string{"label=app=web"},
44-
EnableWeb: true,
45-
WebAddr: ":9090",
46-
EnablePprof: true,
47-
PprofAddr: ":6060",
48-
LogLevel: "debug",
42+
Logger: logger,
43+
DockerFilters: []string{"label=app=web"},
44+
EnableWeb: true,
45+
WebAddr: ":9090",
46+
EnablePprof: true,
47+
PprofAddr: ":6060",
48+
LogLevel: "debug",
4949
}
5050

5151
interval := 30 * time.Second

cli/daemon_lifecycle_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ func (s *DaemonLifecycleSuite) TestSuccessfulBootStartShutdown(c *C) {
168168
newDockerHandler = func(ctx context.Context, notifier dockerLabelsUpdate, logger core.Logger, cfg *DockerConfig, provider core.DockerProvider) (*DockerHandler, error) {
169169
handler := &DockerHandler{
170170
ctx: ctx,
171-
dockerProvider: &mockDockerProvider{},
171+
dockerProvider: &mockDockerProvider{},
172172
notifier: &mockDockerLabelsUpdate{},
173173
logger: logger,
174174
pollInterval: cfg.PollInterval,
@@ -333,7 +333,7 @@ func (s *DaemonLifecycleSuite) TestWebServerStartup(c *C) {
333333
newDockerHandler = func(ctx context.Context, notifier dockerLabelsUpdate, logger core.Logger, cfg *DockerConfig, provider core.DockerProvider) (*DockerHandler, error) {
334334
handler := &DockerHandler{
335335
ctx: ctx,
336-
dockerProvider: &mockDockerProvider{},
336+
dockerProvider: &mockDockerProvider{},
337337
notifier: &mockDockerLabelsUpdate{},
338338
logger: logger,
339339
pollInterval: cfg.PollInterval,
@@ -505,7 +505,7 @@ func (s *DaemonLifecycleSuite) TestConfigurationOptionApplication(c *C) {
505505
newDockerHandler = func(ctx context.Context, notifier dockerLabelsUpdate, logger core.Logger, cfg *DockerConfig, provider core.DockerProvider) (*DockerHandler, error) {
506506
handler := &DockerHandler{
507507
ctx: ctx,
508-
dockerProvider: &mockDockerProvider{},
508+
dockerProvider: &mockDockerProvider{},
509509
notifier: &mockDockerLabelsUpdate{},
510510
logger: logger,
511511
pollInterval: cfg.PollInterval,
@@ -551,7 +551,7 @@ func (s *DaemonLifecycleSuite) TestConcurrentServerStartup(c *C) {
551551
newDockerHandler = func(ctx context.Context, notifier dockerLabelsUpdate, logger core.Logger, cfg *DockerConfig, provider core.DockerProvider) (*DockerHandler, error) {
552552
handler := &DockerHandler{
553553
ctx: ctx,
554-
dockerProvider: &mockDockerProvider{},
554+
dockerProvider: &mockDockerProvider{},
555555
notifier: &mockDockerLabelsUpdate{},
556556
logger: logger,
557557
pollInterval: cfg.PollInterval,
@@ -631,7 +631,7 @@ func (s *DaemonLifecycleSuite) TestHealthCheckerInitialization(c *C) {
631631
newDockerHandler = func(ctx context.Context, notifier dockerLabelsUpdate, logger core.Logger, cfg *DockerConfig, provider core.DockerProvider) (*DockerHandler, error) {
632632
handler := &DockerHandler{
633633
ctx: ctx,
634-
dockerProvider: &mockDockerProvider{},
634+
dockerProvider: &mockDockerProvider{},
635635
notifier: &mockDockerLabelsUpdate{},
636636
logger: logger,
637637
pollInterval: cfg.PollInterval,
@@ -699,7 +699,7 @@ func (s *DaemonLifecycleSuite) TestCompleteExecuteWorkflow(c *C) {
699699
newDockerHandler = func(ctx context.Context, notifier dockerLabelsUpdate, logger core.Logger, cfg *DockerConfig, provider core.DockerProvider) (*DockerHandler, error) {
700700
handler := &DockerHandler{
701701
ctx: ctx,
702-
dockerProvider: &mockDockerProvider{},
702+
dockerProvider: &mockDockerProvider{},
703703
notifier: &mockDockerLabelsUpdate{},
704704
logger: logger,
705705
pollInterval: cfg.PollInterval,

cli/docker_config_handler.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@ func (c *DockerHandler) GetDockerProvider() core.DockerProvider {
3636
return c.dockerProvider
3737
}
3838

39-
40-
4139
func NewDockerHandler(
4240
ctx context.Context, //nolint:contextcheck // external callers provide base context; we derive cancelable child
4341
notifier dockerLabelsUpdate,

cli/docker_handler_integration_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@ import (
77
"context"
88
"time"
99

10+
. "gopkg.in/check.v1"
11+
1012
"github.com/netresearch/ofelia/core/domain"
1113
"github.com/netresearch/ofelia/test"
12-
. "gopkg.in/check.v1"
1314
)
1415

1516
// NOTE: mockDockerProviderForHandler is defined in docker_handler_test.go

cli/docker_handler_shutdown_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,10 @@ func TestDockerHandler_Shutdown(t *testing.T) {
8989
// TestDockerHandler_watchEvents tests the watchEvents method
9090
func TestDockerHandler_watchEvents(t *testing.T) {
9191
tests := []struct {
92-
name string
93-
setupProvider func() *mockEventProvider
94-
checkNotifier func(*trackingNotifier) bool
95-
waitDuration time.Duration
92+
name string
93+
setupProvider func() *mockEventProvider
94+
checkNotifier func(*trackingNotifier) bool
95+
waitDuration time.Duration
9696
}{
9797
{
9898
name: "receives container event",

cli/doctor_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ func TestDoctorCommand_JSONOutput_Valid(t *testing.T) {
2121
schedule = @daily
2222
command = echo test`
2323

24-
if err := os.WriteFile(configPath, []byte(configContent), 0644); err != nil {
24+
if err := os.WriteFile(configPath, []byte(configContent), 0o644); err != nil {
2525
t.Fatalf("Failed to create test config: %v", err)
2626
}
2727

@@ -46,7 +46,7 @@ func TestDoctorCommand_JSONOutput_InvalidSchedule(t *testing.T) {
4646
schedule = invalid
4747
command = echo test`
4848

49-
if err := os.WriteFile(configPath, []byte(configContent), 0644); err != nil {
49+
if err := os.WriteFile(configPath, []byte(configContent), 0o644); err != nil {
5050
t.Fatalf("Failed to create test config: %v", err)
5151
}
5252

@@ -84,7 +84,7 @@ func TestDoctorCommand_InvalidConfigSyntax(t *testing.T) {
8484
this is not valid INI syntax
8585
[missing closing bracket`
8686

87-
if err := os.WriteFile(configPath, []byte(invalidConfig), 0644); err != nil {
87+
if err := os.WriteFile(configPath, []byte(invalidConfig), 0o644); err != nil {
8888
t.Fatalf("Failed to create test config: %v", err)
8989
}
9090

@@ -159,7 +159,7 @@ func TestDoctorCommand_NoJobs(t *testing.T) {
159159
configContent := `[global]
160160
# Config with no jobs`
161161

162-
if err := os.WriteFile(configPath, []byte(configContent), 0644); err != nil {
162+
if err := os.WriteFile(configPath, []byte(configContent), 0o644); err != nil {
163163
t.Fatalf("Failed to create test config: %v", err)
164164
}
165165

@@ -193,7 +193,7 @@ command = echo test
193193
schedule = @daily
194194
command = echo test`
195195

196-
if err := os.WriteFile(configPath, []byte(configContent), 0644); err != nil {
196+
if err := os.WriteFile(configPath, []byte(configContent), 0o644); err != nil {
197197
t.Fatalf("Failed to create test config: %v", err)
198198
}
199199

@@ -230,7 +230,7 @@ command = echo every 5min
230230
schedule = */15 * * * *
231231
command = echo cron`
232232

233-
if err := os.WriteFile(configPath, []byte(configContent), 0644); err != nil {
233+
if err := os.WriteFile(configPath, []byte(configContent), 0o644); err != nil {
234234
t.Fatalf("Failed to create test config: %v", err)
235235
}
236236

@@ -358,7 +358,7 @@ func TestDoctorCommand_ReadableConfig(t *testing.T) {
358358
schedule = @daily
359359
command = echo test`
360360

361-
if err := os.WriteFile(configPath, []byte(configContent), 0000); err != nil {
361+
if err := os.WriteFile(configPath, []byte(configContent), 0o000); err != nil {
362362
t.Fatalf("Failed to create test config: %v", err)
363363
}
364364

cli/init_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import (
66
"testing"
77

88
"github.com/sirupsen/logrus"
9+
"gopkg.in/ini.v1"
910

1011
"github.com/netresearch/ofelia/core"
11-
"gopkg.in/ini.v1"
1212
)
1313

1414
// TestValidateSchedule tests the schedule validation function

0 commit comments

Comments
 (0)