Skip to content

Commit 80af239

Browse files
derekbitshuo-wu
authored andcommitted
fix: fix validation errors
Longhorn 10653 Signed-off-by: Derek Su <[email protected]>
1 parent 4df50ad commit 80af239

File tree

14 files changed

+577
-91
lines changed

14 files changed

+577
-91
lines changed

app/cmd/process.go

+31-11
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,13 @@ func createProcess(c *cli.Context) error {
5757

5858
cli, err := getProcessManagerClient(c, ctx, cancel)
5959
if err != nil {
60-
return errors.Wrap(err, "failed to initialize client")
60+
return errors.Wrap(err, "failed to initialize ProcessManager client")
6161
}
62-
defer cli.Close()
62+
defer func() {
63+
if closeErr := cli.Close(); closeErr != nil {
64+
logrus.WithError(closeErr).Warn("Failed to close ProcessManager client")
65+
}
66+
}()
6367

6468
process, err := cli.ProcessCreate(c.String("name"), c.String("binary"),
6569
c.Int("port-count"), c.Args(), c.StringSlice("port-args"))
@@ -91,9 +95,13 @@ func deleteProcess(c *cli.Context) error {
9195

9296
cli, err := getProcessManagerClient(c, ctx, cancel)
9397
if err != nil {
94-
return errors.Wrap(err, "failed to initialize client")
98+
return errors.Wrap(err, "failed to initialize ProcessManager client")
9599
}
96-
defer cli.Close()
100+
defer func() {
101+
if closeErr := cli.Close(); closeErr != nil {
102+
logrus.WithError(closeErr).Warn("Failed to close ProcessManager client")
103+
}
104+
}()
97105

98106
process, err := cli.ProcessDelete(c.String("name"))
99107
if err != nil {
@@ -123,9 +131,13 @@ func getProcess(c *cli.Context) error {
123131
defer cancel()
124132
cli, err := getProcessManagerClient(c, ctx, cancel)
125133
if err != nil {
126-
return errors.Wrap(err, "failed to initialize client")
134+
return errors.Wrap(err, "failed to initialize ProcessManager client")
127135
}
128-
defer cli.Close()
136+
defer func() {
137+
if closeErr := cli.Close(); closeErr != nil {
138+
logrus.WithError(closeErr).Warn("Failed to close ProcessManager client")
139+
}
140+
}()
129141

130142
process, err := cli.ProcessGet(c.String("name"))
131143
if err != nil {
@@ -151,9 +163,13 @@ func listProcess(c *cli.Context) error {
151163
defer cancel()
152164
cli, err := getProcessManagerClient(c, ctx, cancel)
153165
if err != nil {
154-
return errors.Wrap(err, "failed to initialize client")
166+
return errors.Wrap(err, "failed to initialize ProcessManager client")
155167
}
156-
defer cli.Close()
168+
defer func() {
169+
if closeErr := cli.Close(); closeErr != nil {
170+
logrus.WithError(closeErr).Warn("Failed to close ProcessManager client")
171+
}
172+
}()
157173

158174
processes, err := cli.ProcessList()
159175
if err != nil {
@@ -198,9 +214,13 @@ func replaceProcess(c *cli.Context) error {
198214
defer cancel()
199215
cli, err := getProcessManagerClient(c, ctx, cancel)
200216
if err != nil {
201-
return errors.Wrap(err, "failed to initialize client")
217+
return errors.Wrap(err, "failed to initialize ProcessManager client")
202218
}
203-
defer cli.Close()
219+
defer func() {
220+
if closeErr := cli.Close(); closeErr != nil {
221+
logrus.WithError(closeErr).Warn("Failed to close ProcessManager client")
222+
}
223+
}()
204224

205225
process, err := cli.ProcessReplace(c.String("name"), c.String("binary"),
206226
c.Int("port-count"), c.Args(), c.StringSlice("port-args"), c.String("terminate-signal"))
@@ -223,7 +243,7 @@ func getProcessManagerClient(c *cli.Context, ctx context.Context, ctxCancel cont
223243
if err == nil {
224244
return imClient, err
225245
}
226-
logrus.WithError(err).Info("Falling back to non tls client")
246+
logrus.WithError(err).Info("Falling back to non tls ProcessManager client")
227247
}
228248

229249
return client.NewProcessManagerClient(ctx, ctxCancel, url, nil)

app/cmd/version.go

+6-2
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,13 @@ func version(c *cli.Context) error {
4343
if !c.Bool("client-only") {
4444
cli, err := getProcessManagerClient(c, ctx, cancel)
4545
if err != nil {
46-
return errors.Wrap(err, "failed to initialize client")
46+
return errors.Wrap(err, "failed to initialize ProcessManagerClient")
4747
}
48-
defer cli.Close()
48+
defer func() {
49+
if closeErr := cli.Close(); closeErr != nil {
50+
logrus.WithError(closeErr).Warn("Failed to close ProcessManagerClient")
51+
}
52+
}()
4953

5054
version, err := cli.VersionGet()
5155
if err != nil {

pkg/health/health_probe.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ func (hc *CheckServer) Check(context.Context, *healthpb.HealthCheckRequest) (*he
3030

3131
return &healthpb.HealthCheckResponse{
3232
Status: healthpb.HealthCheckResponse_NOT_SERVING,
33-
}, fmt.Errorf("Engine Manager or Process Manager or Instance Manager is not running")
33+
}, fmt.Errorf("engine Manager or Process Manager or Instance Manager is not running")
3434
}
3535

3636
func (hc *CheckServer) Watch(req *healthpb.HealthCheckRequest, ws healthpb.Health_WatchServer) error {

pkg/instance/instance.go

+132-16
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,17 @@ func (ops V1DataEngineInstanceOps) InstanceCreate(req *rpc.InstanceCreateRequest
133133
if err != nil {
134134
return nil, grpcstatus.Error(grpccodes.Internal, errors.Wrapf(err, "failed to create ProcessManagerClient").Error())
135135
}
136-
defer pmClient.Close()
136+
137+
defer func() {
138+
if closeErr := pmClient.Close(); closeErr != nil {
139+
logrus.WithFields(logrus.Fields{
140+
"name": req.Spec.Name,
141+
"type": req.Spec.Type,
142+
"dataEngine": req.Spec.DataEngine,
143+
"upgradeRequired": req.Spec.UpgradeRequired,
144+
}).WithError(closeErr).Warn("Failed to close ProcessManager client")
145+
}
146+
}()
137147

138148
process, err := pmClient.ProcessCreate(req.Spec.Name, req.Spec.ProcessInstanceSpec.Binary, int(req.Spec.PortCount), req.Spec.ProcessInstanceSpec.Args, req.Spec.PortArgs)
139149
if err != nil {
@@ -147,7 +157,16 @@ func (ops V2DataEngineInstanceOps) InstanceCreate(req *rpc.InstanceCreateRequest
147157
if err != nil {
148158
return nil, grpcstatus.Error(grpccodes.Internal, errors.Wrapf(err, "failed to create SPDK client").Error())
149159
}
150-
defer c.Close()
160+
defer func() {
161+
if closeErr := c.Close(); closeErr != nil {
162+
logrus.WithFields(logrus.Fields{
163+
"name": req.Spec.Name,
164+
"type": req.Spec.Type,
165+
"dataEngine": req.Spec.DataEngine,
166+
"upgradeRequired": req.Spec.UpgradeRequired,
167+
}).WithError(closeErr).Warn("Failed to close SPDK client")
168+
}
169+
}()
151170

152171
switch req.Spec.Type {
153172
case types.InstanceTypeEngine:
@@ -191,7 +210,17 @@ func (ops V1DataEngineInstanceOps) InstanceDelete(req *rpc.InstanceDeleteRequest
191210
if err != nil {
192211
return nil, grpcstatus.Error(grpccodes.Internal, errors.Wrapf(err, "failed to create ProcessManagerClient").Error())
193212
}
194-
defer pmClient.Close()
213+
defer func() {
214+
if closeErr := pmClient.Close(); closeErr != nil {
215+
logrus.WithFields(logrus.Fields{
216+
"name": req.Name,
217+
"type": req.Type,
218+
"dataEngine": req.DataEngine,
219+
"diskUuid": req.DiskUuid,
220+
"cleanupRequired": req.CleanupRequired,
221+
}).WithError(closeErr).Warn("Failed to close SPDK client")
222+
}
223+
}()
195224

196225
process, err := pmClient.ProcessDelete(req.Name)
197226
if err != nil {
@@ -205,7 +234,17 @@ func (ops V2DataEngineInstanceOps) InstanceDelete(req *rpc.InstanceDeleteRequest
205234
if err != nil {
206235
return nil, grpcstatus.Error(grpccodes.Internal, errors.Wrapf(err, "failed to create SPDK client").Error())
207236
}
208-
defer c.Close()
237+
defer func() {
238+
if closeErr := c.Close(); closeErr != nil {
239+
logrus.WithFields(logrus.Fields{
240+
"name": req.Name,
241+
"type": req.Type,
242+
"dataEngine": req.DataEngine,
243+
"diskUuid": req.DiskUuid,
244+
"cleanupRequired": req.CleanupRequired,
245+
}).WithError(closeErr).Warn("Failed to close SPDK Client")
246+
}
247+
}()
209248

210249
switch req.Type {
211250
case types.InstanceTypeEngine:
@@ -253,7 +292,15 @@ func (ops V1DataEngineInstanceOps) InstanceGet(req *rpc.InstanceGetRequest) (*rp
253292
if err != nil {
254293
return nil, grpcstatus.Error(grpccodes.Internal, errors.Wrapf(err, "failed to create ProcessManagerClient").Error())
255294
}
256-
defer pmClient.Close()
295+
defer func() {
296+
if closeErr := pmClient.Close(); closeErr != nil {
297+
logrus.WithFields(logrus.Fields{
298+
"name": req.Name,
299+
"type": req.Type,
300+
"dataEngine": req.DataEngine,
301+
}).WithError(closeErr).Warn("Failed to ProcessManager client")
302+
}
303+
}()
257304

258305
process, err := pmClient.ProcessGet(req.Name)
259306
if err != nil {
@@ -267,7 +314,15 @@ func (ops V2DataEngineInstanceOps) InstanceGet(req *rpc.InstanceGetRequest) (*rp
267314
if err != nil {
268315
return nil, grpcstatus.Error(grpccodes.Internal, errors.Wrapf(err, "failed to create SPDK client").Error())
269316
}
270-
defer c.Close()
317+
defer func() {
318+
if closeErr := c.Close(); closeErr != nil {
319+
logrus.WithFields(logrus.Fields{
320+
"name": req.Name,
321+
"type": req.Type,
322+
"dataEngine": req.DataEngine,
323+
}).WithError(closeErr).Warn("Failed to close SPDK client")
324+
}
325+
}()
271326

272327
switch req.Type {
273328
case types.InstanceTypeEngine:
@@ -316,7 +371,11 @@ func (ops V1DataEngineInstanceOps) InstanceList(instances map[string]*rpc.Instan
316371
if err != nil {
317372
return grpcstatus.Error(grpccodes.Internal, errors.Wrapf(err, "failed to create ProcessManagerClient").Error())
318373
}
319-
defer pmClient.Close()
374+
defer func() {
375+
if closeErr := pmClient.Close(); closeErr != nil {
376+
logrus.WithError(closeErr).Warn("Failed to close ProcessManager client")
377+
}
378+
}()
320379

321380
processes, err := pmClient.ProcessList()
322381
if err != nil {
@@ -337,7 +396,11 @@ func (ops V2DataEngineInstanceOps) InstanceList(instances map[string]*rpc.Instan
337396
if err != nil {
338397
return grpcstatus.Error(grpccodes.Internal, errors.Wrapf(err, "failed to create SPDK client").Error())
339398
}
340-
defer c.Close()
399+
defer func() {
400+
if closeErr := c.Close(); closeErr != nil {
401+
logrus.WithError(closeErr).Warn("Failed to close SPDK client")
402+
}
403+
}()
341404

342405
replicas, err := c.ReplicaList()
343406
if err != nil {
@@ -382,7 +445,15 @@ func (ops V1DataEngineInstanceOps) InstanceReplace(req *rpc.InstanceReplaceReque
382445
if err != nil {
383446
return nil, grpcstatus.Error(grpccodes.Internal, errors.Wrapf(err, "failed to create ProcessManagerClient").Error())
384447
}
385-
defer pmClient.Close()
448+
defer func() {
449+
if closeErr := pmClient.Close(); closeErr != nil {
450+
logrus.WithFields(logrus.Fields{
451+
"name": req.Spec.Name,
452+
"type": req.Spec.Type,
453+
"dataEngine": req.Spec.DataEngine,
454+
}).WithError(closeErr).Warn("Failed to close ProcessManager client")
455+
}
456+
}()
386457

387458
process, err := pmClient.ProcessReplace(req.Spec.Name,
388459
req.Spec.ProcessInstanceSpec.Binary, int(req.Spec.PortCount), req.Spec.ProcessInstanceSpec.Args, req.Spec.PortArgs, req.TerminateSignal)
@@ -418,7 +489,15 @@ func (ops V1DataEngineInstanceOps) InstanceLog(req *rpc.InstanceLogRequest, srv
418489
if err != nil {
419490
return grpcstatus.Error(grpccodes.Internal, errors.Wrapf(err, "failed to create ProcessManagerClient").Error())
420491
}
421-
defer pmClient.Close()
492+
defer func() {
493+
if closeErr := pmClient.Close(); closeErr != nil {
494+
logrus.WithFields(logrus.Fields{
495+
"name": req.Name,
496+
"type": req.Type,
497+
"dataEngine": req.DataEngine,
498+
}).WithError(closeErr).Warn("Failed to close ProcessManager client")
499+
}
500+
}()
422501

423502
stream, err := pmClient.ProcessLog(context.Background(), req.Name)
424503
if err != nil {
@@ -473,9 +552,13 @@ func (s *Server) InstanceWatch(req *emptypb.Empty, srv rpc.InstanceService_Insta
473552
for name, c := range clients {
474553
switch c := c.(type) {
475554
case *client.ProcessManagerClient:
476-
c.Close()
555+
if closeErr := c.Close(); closeErr != nil {
556+
logrus.WithError(closeErr).Warn("Failed to close ProcessManager client")
557+
}
477558
case *spdkclient.SPDKClient:
478-
c.Close()
559+
if closeErr := c.Close(); closeErr != nil {
560+
logrus.WithError(closeErr).Warn("Failed to close SPDK client")
561+
}
479562
}
480563
delete(clients, name)
481564
}
@@ -756,7 +839,15 @@ func (ops V2DataEngineInstanceOps) InstanceSuspend(req *rpc.InstanceSuspendReque
756839
if err != nil {
757840
return nil, grpcstatus.Error(grpccodes.Internal, errors.Wrapf(err, "failed to create SPDK client").Error())
758841
}
759-
defer c.Close()
842+
defer func() {
843+
if closeErr := c.Close(); closeErr != nil {
844+
logrus.WithFields(logrus.Fields{
845+
"name": req.Name,
846+
"type": req.Type,
847+
"dataEngine": req.DataEngine,
848+
}).WithError(closeErr).Warn("Failed to close SPDK client")
849+
}
850+
}()
760851

761852
switch req.Type {
762853
case types.InstanceTypeEngine:
@@ -795,7 +886,15 @@ func (ops V2DataEngineInstanceOps) InstanceResume(req *rpc.InstanceResumeRequest
795886
if err != nil {
796887
return nil, grpcstatus.Error(grpccodes.Internal, errors.Wrapf(err, "failed to create SPDK client").Error())
797888
}
798-
defer c.Close()
889+
defer func() {
890+
if closeErr := c.Close(); closeErr != nil {
891+
logrus.WithFields(logrus.Fields{
892+
"name": req.Name,
893+
"type": req.Type,
894+
"dataEngine": req.DataEngine,
895+
}).WithError(closeErr).Warn("Failed to close SPDK client")
896+
}
897+
}()
799898

800899
switch req.Type {
801900
case types.InstanceTypeEngine:
@@ -835,7 +934,16 @@ func (ops V2DataEngineInstanceOps) InstanceSwitchOverTarget(req *rpc.InstanceSwi
835934
if err != nil {
836935
return nil, grpcstatus.Error(grpccodes.Internal, errors.Wrapf(err, "failed to create SPDK client").Error())
837936
}
838-
defer c.Close()
937+
defer func() {
938+
if closeErr := c.Close(); closeErr != nil {
939+
logrus.WithFields(logrus.Fields{
940+
"name": req.Name,
941+
"type": req.Type,
942+
"dataEngine": req.DataEngine,
943+
"targetAddress": req.TargetAddress,
944+
}).WithError(closeErr).Warn("Failed to close SPDK client")
945+
}
946+
}()
839947

840948
switch req.Type {
841949
case types.InstanceTypeEngine:
@@ -874,7 +982,15 @@ func (ops V2DataEngineInstanceOps) InstanceDeleteTarget(req *rpc.InstanceDeleteT
874982
if err != nil {
875983
return nil, grpcstatus.Error(grpccodes.Internal, errors.Wrapf(err, "failed to create SPDK client").Error())
876984
}
877-
defer c.Close()
985+
defer func() {
986+
if closeErr := c.Close(); closeErr != nil {
987+
logrus.WithFields(logrus.Fields{
988+
"name": req.Name,
989+
"type": req.Type,
990+
"dataEngine": req.DataEngine,
991+
}).WithError(closeErr).Warn("Failed to close SPDK client")
992+
}
993+
}()
878994

879995
switch req.Type {
880996
case types.InstanceTypeEngine:

0 commit comments

Comments
 (0)