@@ -47,8 +47,7 @@ var _ = Describe("Graceful Recovery test", Ordered, Label("nfr", "graceful-recov
47
47
Expect (resourceManager .ApplyFromFiles (files , ns .Name )).To (Succeed ())
48
48
Expect (resourceManager .WaitForAppsToBeReady (ns .Name )).To (Succeed ())
49
49
50
- err := waitForWorkingTraffic ()
51
- Expect (err ).ToNot (HaveOccurred ())
50
+ Expect (waitForWorkingTraffic ()).ToNot (HaveOccurred ())
52
51
})
53
52
54
53
AfterAll (func () {
@@ -64,26 +63,22 @@ var _ = Describe("Graceful Recovery test", Ordered, Label("nfr", "graceful-recov
64
63
leaseName , err := getLeaderElectionLeaseHolderName ()
65
64
Expect (err ).ToNot (HaveOccurred ())
66
65
67
- restartNGFProcess ( )
66
+ restartContainer ( ngfContainerName )
68
67
69
68
checkContainerLogsForErrors (podNames [0 ])
70
69
71
- err = waitForLeaderLeaseToChange (leaseName )
72
- Expect (err ).ToNot (HaveOccurred ())
70
+ Expect (waitForLeaderLeaseToChange (leaseName )).ToNot (HaveOccurred ())
73
71
74
- err = waitForWorkingTraffic ()
75
- Expect (err ).ToNot (HaveOccurred ())
72
+ Expect (waitForWorkingTraffic ()).ToNot (HaveOccurred ())
76
73
77
74
Expect (resourceManager .DeleteFromFiles (files , ns .Name )).To (Succeed ())
78
75
79
- err = waitForFailingTraffic ()
80
- Expect (err ).ToNot (HaveOccurred ())
76
+ Expect (waitForFailingTraffic ()).ToNot (HaveOccurred ())
81
77
82
78
Expect (resourceManager .ApplyFromFiles (files , ns .Name )).To (Succeed ())
83
79
Expect (resourceManager .WaitForAppsToBeReady (ns .Name )).To (Succeed ())
84
80
85
- err = waitForWorkingTraffic ()
86
- Expect (err ).ToNot (HaveOccurred ())
81
+ Expect (waitForWorkingTraffic ()).ToNot (HaveOccurred ())
87
82
})
88
83
89
84
It ("recovers when nginx container is restarted" , func () {
@@ -94,68 +89,53 @@ var _ = Describe("Graceful Recovery test", Ordered, Label("nfr", "graceful-recov
94
89
leaseName , err := getLeaderElectionLeaseHolderName ()
95
90
Expect (err ).ToNot (HaveOccurred ())
96
91
97
- restartNginxContainer ( )
92
+ restartContainer ( nginxContainerName )
98
93
99
94
checkContainerLogsForErrors (podNames [0 ])
100
95
101
- err = waitForLeaderLeaseToChange (leaseName )
102
- Expect (err ).ToNot (HaveOccurred ())
96
+ Expect (waitForLeaderLeaseToChange (leaseName )).ToNot (HaveOccurred ())
103
97
104
- err = waitForWorkingTraffic ()
105
- Expect (err ).ToNot (HaveOccurred ())
98
+ Expect (waitForWorkingTraffic ()).ToNot (HaveOccurred ())
106
99
107
100
Expect (resourceManager .DeleteFromFiles (files , ns .Name )).To (Succeed ())
108
101
109
- err = waitForFailingTraffic ()
110
- Expect (err ).ToNot (HaveOccurred ())
102
+ Expect (waitForFailingTraffic ()).ToNot (HaveOccurred ())
111
103
112
104
Expect (resourceManager .ApplyFromFiles (files , ns .Name )).To (Succeed ())
113
105
Expect (resourceManager .WaitForAppsToBeReady (ns .Name )).To (Succeed ())
114
106
115
- err = waitForWorkingTraffic ()
116
- Expect (err ).ToNot (HaveOccurred ())
107
+ Expect (waitForWorkingTraffic ()).ToNot (HaveOccurred ())
117
108
})
118
109
})
119
110
120
- func restartNginxContainer () {
121
- podNames , err := framework .GetReadyNGFPodNames (k8sClient , ngfNamespace , releaseName , timeoutConfig .GetTimeout )
122
- Expect (err ).ToNot (HaveOccurred ())
123
- Expect (podNames ).ToNot (BeEmpty ())
124
-
125
- restartCount , err := getContainerRestartCount (nginxContainerName , podNames [0 ])
126
- Expect (err ).ToNot (HaveOccurred ())
127
-
128
- job , err := runNodeDebuggerJob (podNames [0 ], "PID=$(pgrep -f \" [n]ginx: master process\" ) && kill -9 $PID" )
129
- Expect (err ).ToNot (HaveOccurred ())
130
-
131
- err = waitForContainerRestart (podNames [0 ], nginxContainerName , restartCount )
132
- Expect (err ).ToNot (HaveOccurred ())
133
-
134
- // propagation policy is set to delete underlying pod created through job
135
- err = resourceManager .Delete ([]client.Object {job }, client .PropagationPolicy (metav1 .DeletePropagationBackground ))
136
- Expect (err ).ToNot (HaveOccurred ())
137
- }
111
+ func restartContainer (containerName string ) {
112
+ var jobScript string
113
+ if containerName == "nginx" {
114
+ jobScript = "PID=$(pgrep -f \" [n]ginx: master process\" ) && kill -9 $PID"
115
+ } else {
116
+ jobScript = "PID=$(pgrep -f \" /[u]sr/bin/gateway\" ) && kill -9 $PID"
117
+ }
138
118
139
- func restartNGFProcess () {
140
119
podNames , err := framework .GetReadyNGFPodNames (k8sClient , ngfNamespace , releaseName , timeoutConfig .GetTimeout )
141
120
Expect (err ).ToNot (HaveOccurred ())
142
121
Expect (podNames ).ToNot (BeEmpty ())
143
122
144
- restartCount , err := getContainerRestartCount (ngfContainerName , podNames [0 ])
123
+ restartCount , err := getContainerRestartCount (containerName , podNames [0 ])
145
124
Expect (err ).ToNot (HaveOccurred ())
146
125
147
- job , err := runNodeDebuggerJob (podNames [0 ], "PID=$(pgrep -f \" /[u]sr/bin/gateway \" ) && kill -9 $PID" )
126
+ job , err := runNodeDebuggerJob (podNames [0 ], jobScript )
148
127
Expect (err ).ToNot (HaveOccurred ())
149
128
150
- err = waitForContainerRestart (podNames [0 ], ngfContainerName , restartCount )
151
- Expect (err ).ToNot (HaveOccurred ())
129
+ Expect (waitForContainerRestart (podNames [0 ], containerName , restartCount )).ToNot (HaveOccurred ())
152
130
153
131
// propagation policy is set to delete underlying pod created through job
154
- err = resourceManager .Delete ([]client.Object {job }, client .PropagationPolicy (metav1 .DeletePropagationBackground ))
155
- Expect (err ).ToNot (HaveOccurred ())
132
+ Expect (resourceManager .Delete (
133
+ []client.Object {job },
134
+ client .PropagationPolicy (metav1 .DeletePropagationBackground ),
135
+ )).ToNot (HaveOccurred ())
156
136
}
157
137
158
- func waitForContainerRestart (ngfPodName string , containerName string , currentRestartCount int ) error {
138
+ func waitForContainerRestart (ngfPodName , containerName string , currentRestartCount int ) error {
159
139
ctx , cancel := context .WithTimeout (context .Background (), timeoutConfig .RequestTimeout )
160
140
defer cancel ()
161
141
@@ -217,7 +197,7 @@ func waitForFailingTraffic() error {
217
197
)
218
198
}
219
199
220
- func expectRequestToSucceed (appURL string , address string , responseBodyMessage string ) error {
200
+ func expectRequestToSucceed (appURL , address string , responseBodyMessage string ) error {
221
201
status , body , err := framework .Get (appURL , address , timeoutConfig .RequestTimeout )
222
202
if status != http .StatusOK {
223
203
return errors .New ("http status was not 200" )
@@ -230,7 +210,7 @@ func expectRequestToSucceed(appURL string, address string, responseBodyMessage s
230
210
return err
231
211
}
232
212
233
- func expectRequestToFail (appURL string , address string , responseBodyMessage string ) error {
213
+ func expectRequestToFail (appURL , address string , responseBodyMessage string ) error {
234
214
status , body , err := framework .Get (appURL , address , timeoutConfig .RequestTimeout )
235
215
if status != 0 {
236
216
return errors .New ("expected http status to be 0" )
0 commit comments