@@ -100,12 +100,17 @@ var createContainerCommand = cli.Command{
100
100
return cli .ShowSubcommandHelp (context )
101
101
}
102
102
103
- if err := getRuntimeClient (context ); err != nil {
103
+ runtimeClient , runtimeConn , err := getRuntimeClient (context )
104
+ if err != nil {
104
105
return err
105
106
}
106
- if err := getImageClient (context ); err != nil {
107
+ defer closeConnection (context , runtimeConn )
108
+
109
+ imageClient , imageConn , err := getImageClient (context )
110
+ if err != nil {
107
111
return err
108
112
}
113
+ defer closeConnection (context , imageConn )
109
114
110
115
opts := createOptions {
111
116
podID : context .Args ().Get (0 ),
@@ -137,9 +142,11 @@ var startContainerCommand = cli.Command{
137
142
if context .NArg () == 0 {
138
143
return cli .ShowSubcommandHelp (context )
139
144
}
140
- if err := getRuntimeClient (context ); err != nil {
145
+ runtimeClient , runtimeConn , err := getRuntimeClient (context )
146
+ if err != nil {
141
147
return err
142
148
}
149
+ defer closeConnection (context , runtimeConn )
143
150
144
151
for i := 0 ; i < context .NArg (); i ++ {
145
152
containerID := context .Args ().Get (i )
@@ -186,9 +193,11 @@ var updateContainerCommand = cli.Command{
186
193
if context .NArg () == 0 {
187
194
return cli .ShowSubcommandHelp (context )
188
195
}
189
- if err := getRuntimeClient (context ); err != nil {
196
+ runtimeClient , runtimeConn , err := getRuntimeClient (context )
197
+ if err != nil {
190
198
return err
191
199
}
200
+ defer closeConnection (context , runtimeConn )
192
201
193
202
options := updateOptions {
194
203
CPUPeriod : context .Int64 ("cpu-period" ),
@@ -227,9 +236,11 @@ var stopContainerCommand = cli.Command{
227
236
if context .NArg () == 0 {
228
237
return cli .ShowSubcommandHelp (context )
229
238
}
230
- if err := getRuntimeClient (context ); err != nil {
239
+ runtimeClient , runtimeConn , err := getRuntimeClient (context )
240
+ if err != nil {
231
241
return err
232
242
}
243
+ defer closeConnection (context , runtimeConn )
233
244
234
245
for i := 0 ; i < context .NArg (); i ++ {
235
246
containerID := context .Args ().Get (i )
@@ -250,9 +261,11 @@ var removeContainerCommand = cli.Command{
250
261
if context .NArg () == 0 {
251
262
return cli .ShowSubcommandHelp (context )
252
263
}
253
- if err := getRuntimeClient (context ); err != nil {
264
+ runtimeClient , runtimeConn , err := getRuntimeClient (context )
265
+ if err != nil {
254
266
return err
255
267
}
268
+ defer closeConnection (context , runtimeConn )
256
269
257
270
for i := 0 ; i < context .NArg (); i ++ {
258
271
containerID := context .Args ().Get (i )
@@ -283,9 +296,11 @@ var containerStatusCommand = cli.Command{
283
296
if context .NArg () == 0 {
284
297
return cli .ShowSubcommandHelp (context )
285
298
}
286
- if err := getRuntimeClient (context ); err != nil {
299
+ runtimeClient , runtimeConn , err := getRuntimeClient (context )
300
+ if err != nil {
287
301
return err
288
302
}
303
+ defer closeConnection (context , runtimeConn )
289
304
290
305
for i := 0 ; i < context .NArg (); i ++ {
291
306
containerID := context .Args ().Get (i )
@@ -363,13 +378,17 @@ var listContainersCommand = cli.Command{
363
378
},
364
379
},
365
380
Action : func (context * cli.Context ) error {
366
- var err error
367
- if err = getRuntimeClient ( context ); err != nil {
381
+ runtimeClient , runtimeConn , err := getRuntimeClient ( context )
382
+ if err != nil {
368
383
return err
369
384
}
370
- if err = getImageClient (context ); err != nil {
385
+ defer closeConnection (context , runtimeConn )
386
+
387
+ imageClient , imageConn , err := getImageClient (context )
388
+ if err != nil {
371
389
return err
372
390
}
391
+ defer closeConnection (context , imageConn )
373
392
374
393
opts := listOptions {
375
394
id : context .String ("id" ),
@@ -390,7 +409,7 @@ var listContainersCommand = cli.Command{
390
409
return err
391
410
}
392
411
393
- if err = ListContainers (runtimeClient , opts ); err != nil {
412
+ if err = ListContainers (runtimeClient , imageClient , opts ); err != nil {
394
413
return fmt .Errorf ("listing containers failed: %v" , err )
395
414
}
396
415
return nil
@@ -411,12 +430,17 @@ var runContainerCommand = cli.Command{
411
430
return cli .ShowSubcommandHelp (context )
412
431
}
413
432
414
- if err := getRuntimeClient (context ); err != nil {
433
+ runtimeClient , runtimeConn , err := getRuntimeClient (context )
434
+ if err != nil {
415
435
return err
416
436
}
417
- if err := getImageClient (context ); err != nil {
437
+ defer closeConnection (context , runtimeConn )
438
+
439
+ imageClient , imageConn , err := getImageClient (context )
440
+ if err != nil {
418
441
return err
419
442
}
443
+ defer closeConnection (context , imageConn )
420
444
421
445
opts := runOptions {
422
446
configPath : context .Args ().Get (0 ),
@@ -428,7 +452,7 @@ var runContainerCommand = cli.Command{
428
452
},
429
453
}
430
454
431
- err : = RunContainer (imageClient , runtimeClient , opts , context .String ("runtime" ))
455
+ err = RunContainer (imageClient , runtimeClient , opts , context .String ("runtime" ))
432
456
if err != nil {
433
457
return fmt .Errorf ("Running container failed: %v" , err )
434
458
}
@@ -715,7 +739,7 @@ func ContainerStatus(client pb.RuntimeServiceClient, ID, output string, quiet bo
715
739
716
740
// ListContainers sends a ListContainerRequest to the server, and parses
717
741
// the returned ListContainerResponse.
718
- func ListContainers (client pb.RuntimeServiceClient , opts listOptions ) error {
742
+ func ListContainers (runtimeClient pb.RuntimeServiceClient , imageClient pb. ImageServiceClient , opts listOptions ) error {
719
743
filter := & pb.ContainerFilter {}
720
744
if opts .id != "" {
721
745
filter .Id = opts .id
@@ -758,7 +782,7 @@ func ListContainers(client pb.RuntimeServiceClient, opts listOptions) error {
758
782
Filter : filter ,
759
783
}
760
784
logrus .Debugf ("ListContainerRequest: %v" , request )
761
- r , err := client .ListContainers (context .Background (), request )
785
+ r , err := runtimeClient .ListContainers (context .Background (), request )
762
786
logrus .Debugf ("ListContainerResponse: %v" , r )
763
787
if err != nil {
764
788
return err
@@ -785,7 +809,7 @@ func ListContainers(client pb.RuntimeServiceClient, opts listOptions) error {
785
809
if ! matchesRegex (opts .nameRegexp , c .Metadata .Name ) {
786
810
continue
787
811
}
788
- if match , err := matchesImage (opts .image , c .GetImage ().GetImage ()); err != nil {
812
+ if match , err := matchesImage (imageClient , opts .image , c .GetImage ().GetImage ()); err != nil {
789
813
return fmt .Errorf ("failed to check image match %v" , err )
790
814
} else if ! match {
791
815
continue
0 commit comments