Skip to content

Commit b5ccf05

Browse files
committed
adding additional fix updates
1 parent e8bc9ef commit b5ccf05

File tree

4 files changed

+47
-26
lines changed

4 files changed

+47
-26
lines changed

internal/mode/static/nginx/runtime/manager.go

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,29 @@ var childProcPathFmt = "/proc/%[1]v/task/%[1]v/children"
3232
//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . nginxPlusClient
3333

3434
type nginxPlusClient interface {
35-
UpdateHTTPServers(upstream string, servers []ngxclient.UpstreamServer) (added []ngxclient.UpstreamServer, deleted []ngxclient.UpstreamServer, updated []ngxclient.UpstreamServer, err error)
35+
UpdateHTTPServers(
36+
upstream string,
37+
servers []ngxclient.UpstreamServer,
38+
) (
39+
added []ngxclient.UpstreamServer,
40+
deleted []ngxclient.UpstreamServer,
41+
updated []ngxclient.UpstreamServer,
42+
err error,
43+
)
3644
GetUpstreams() (*ngxclient.Upstreams, error)
3745
}
3846

3947
//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . ProcessHandler
4048

4149
type ProcessHandler interface {
42-
FindMainProcess(ctx context.Context, checkFile CheckFileFunc, readFile ReadFileFunc, timeout time.Duration) (int, error)
50+
FindMainProcess(
51+
ctx context.Context,
52+
checkFile CheckFileFunc,
53+
readFile ReadFileFunc,
54+
timeout time.Duration,
55+
) (int, error)
4356
ReadFile(file string) ([]byte, error)
44-
Kill(pid int, signum syscall.Signal) error
57+
Kill(pid int) error
4558
EnsureNginxRunning(ctx context.Context) error
4659
}
4760

@@ -74,11 +87,11 @@ type MetricsCollector interface {
7487

7588
// ManagerImpl implements Manager.
7689
type ManagerImpl struct {
77-
verifyClient verifyClient
90+
processHandler ProcessHandler
7891
metricsCollector MetricsCollector
92+
verifyClient verifyClient
7993
ngxPlusClient nginxPlusClient
8094
logger logr.Logger
81-
processHandler ProcessHandler
8295
}
8396

8497
// NewManagerImpl creates a new ManagerImpl.
@@ -90,11 +103,11 @@ func NewManagerImpl(
90103
verifyClient verifyClient,
91104
) *ManagerImpl {
92105
return &ManagerImpl{
93-
verifyClient: verifyClient,
106+
processHandler: processHandler,
94107
metricsCollector: collector,
108+
verifyClient: verifyClient,
95109
ngxPlusClient: ngxPlusClient,
96110
logger: logger,
97-
processHandler: processHandler,
98111
}
99112
}
100113

@@ -119,7 +132,7 @@ func (m *ManagerImpl) Reload(ctx context.Context, configVersion int) error {
119132

120133
// send HUP signal to the NGINX main process reload configuration
121134
// See https://nginx.org/en/docs/control.html
122-
if err := m.processHandler.Kill(pid, syscall.SIGHUP); err != nil {
135+
if err := m.processHandler.Kill(pid); err != nil {
123136
m.metricsCollector.IncReloadErrors()
124137
return fmt.Errorf("failed to send the HUP signal to NGINX main: %w", err)
125138
}
@@ -227,6 +240,6 @@ func (p *ProcessHandlerImpl) ReadFile(file string) ([]byte, error) {
227240
return os.ReadFile(file)
228241
}
229242

230-
func (p *ProcessHandlerImpl) Kill(pid int, signum syscall.Signal) error {
243+
func (p *ProcessHandlerImpl) Kill(pid int) error {
231244
return syscall.Kill(pid, syscall.SIGHUP)
232245
}

internal/mode/static/nginx/runtime/manager_test.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ var _ = Describe("NGINX Runtime Manager", func() {
2626
})
2727

2828
var (
29+
err error
2930
manager runtime.Manager
3031
upstreamServers []ngxclient.UpstreamServer
3132
ngxPlusClient *runtimefakes.FakeNginxPlusClient
@@ -67,10 +68,11 @@ var _ = Describe("NGINX Runtime Manager", func() {
6768
manager = runtime.NewManagerImpl(ngxPlusClient, metrics, zap.New(), process, verifyClient)
6869

6970
reload := func() {
70-
manager.Reload(context.Background(), 0)
71+
err = manager.Reload(context.Background(), 0)
7172
}
7273

7374
Expect(reload).To(Panic())
75+
Expect(err).ToNot(HaveOccurred())
7476
})
7577

7678
It("should panic if VerifyClient not enabled", func() {
@@ -79,10 +81,11 @@ var _ = Describe("NGINX Runtime Manager", func() {
7981
manager = runtime.NewManagerImpl(ngxPlusClient, metrics, zap.New(), process, verifyClient)
8082

8183
reload := func() {
82-
manager.Reload(context.Background(), 0)
84+
err = manager.Reload(context.Background(), 0)
8385
}
8486

8587
Expect(reload).To(Panic())
88+
Expect(err).ToNot(HaveOccurred())
8689
})
8790
})
8891
})
@@ -93,7 +96,7 @@ var _ = Describe("NGINX Runtime Manager", func() {
9396
manager = runtime.NewManagerImpl(ngxPlusClient, nil, zap.New(), nil, nil)
9497
})
9598

96-
It("sucessfully updates HTTP server upstream", func() {
99+
It("successfully updates HTTP server upstream", func() {
97100
Expect(manager.UpdateHTTPServers("test", upstreamServers)).To(Succeed())
98101
})
99102

@@ -113,18 +116,20 @@ var _ = Describe("NGINX Runtime Manager", func() {
113116

114117
It("should panic when updating HTTP upstream servers", func() {
115118
updateServers := func() {
116-
manager.UpdateHTTPServers("test", upstreamServers)
119+
err = manager.UpdateHTTPServers("test", upstreamServers)
117120
}
118121

119122
Expect(updateServers).To(Panic())
123+
Expect(err).ToNot(HaveOccurred())
120124
})
121125

122126
It("should panic when fetching HTTP upstream servers", func() {
123127
upstreams := func() {
124-
manager.GetUpstreams()
128+
_, err = manager.GetUpstreams()
125129
}
126130

127131
Expect(upstreams).To(Panic())
132+
Expect(err).ToNot(HaveOccurred())
128133
})
129134
})
130135
})

internal/mode/static/nginx/runtime/runtimefakes/fake_process_handler.go

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

internal/mode/static/nginx/runtime/verify.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,13 @@ var noNewWorkersErrFmt = "reload unsuccessful: no new NGINX worker processes sta
2323

2424
type verifyClient interface {
2525
GetConfigVersion() (int, error)
26-
WaitForCorrectVersion(ctx context.Context, expectedVersion int, childProcFile string, previousChildProcesses []byte, readFile ReadFileFunc) error
26+
WaitForCorrectVersion(
27+
ctx context.Context,
28+
expectedVersion int,
29+
childProcFile string,
30+
previousChildProcesses []byte,
31+
readFile ReadFileFunc,
32+
) error
2733
EnsureConfigVersion(ctx context.Context, expectedVersion int) error
2834
}
2935

0 commit comments

Comments
 (0)