@@ -399,9 +399,9 @@ func (a *HostAgent) startHostAgentRoutines(ctx context.Context) error {
399
399
}
400
400
return nil
401
401
})
402
- var mErr error
402
+ var errs [] error
403
403
if err := a .waitForRequirements ("essential" , a .essentialRequirements ()); err != nil {
404
- mErr = errors . Join ( mErr , err )
404
+ errs = append ( errs , err )
405
405
}
406
406
if * a .y .SSH .ForwardAgent {
407
407
faScript := `#!/bin/bash
@@ -413,79 +413,79 @@ sudo chown -R "${USER}" /run/host-services`
413
413
stdout , stderr , err := ssh .ExecuteScript ("127.0.0.1" , a .sshLocalPort , a .sshConfig , faScript , faDesc )
414
414
logrus .Debugf ("stdout=%q, stderr=%q, err=%v" , stdout , stderr , err )
415
415
if err != nil {
416
- mErr = errors . Join ( mErr , fmt .Errorf ("stdout=%q, stderr=%q: %w" , stdout , stderr , err ))
416
+ errs = append ( errs , fmt .Errorf ("stdout=%q, stderr=%q: %w" , stdout , stderr , err ))
417
417
}
418
418
}
419
419
if * a .y .MountType == limayaml .REVSSHFS {
420
420
mounts , err := a .setupMounts ()
421
421
if err != nil {
422
- mErr = errors . Join ( mErr , err )
422
+ errs = append ( errs , err )
423
423
}
424
424
a .onClose = append (a .onClose , func () error {
425
- var unmountMErr error
425
+ var unmountErrs [] error
426
426
for _ , m := range mounts {
427
427
if unmountErr := m .close (); unmountErr != nil {
428
- unmountMErr = errors . Join ( unmountMErr , unmountErr )
428
+ unmountErrs = append ( unmountErrs , unmountErr )
429
429
}
430
430
}
431
- return unmountMErr
431
+ return errors . Join ( unmountErrs ... )
432
432
})
433
433
}
434
434
if len (a .y .AdditionalDisks ) > 0 {
435
435
a .onClose = append (a .onClose , func () error {
436
- var unlockMErr error
436
+ var unlockErrs [] error
437
437
for _ , d := range a .y .AdditionalDisks {
438
438
disk , inspectErr := store .InspectDisk (d .Name )
439
439
if inspectErr != nil {
440
- unlockMErr = errors . Join ( unlockMErr , inspectErr )
440
+ unlockErrs = append ( unlockErrs , inspectErr )
441
441
continue
442
442
}
443
443
logrus .Infof ("Unmounting disk %q" , disk .Name )
444
444
if unlockErr := disk .Unlock (); unlockErr != nil {
445
- unlockMErr = errors . Join ( unlockMErr , unlockErr )
445
+ unlockErrs = append ( unlockErrs , unlockErr )
446
446
}
447
447
}
448
- return unlockMErr
448
+ return errors . Join ( unlockErrs ... )
449
449
})
450
450
}
451
451
go a .watchGuestAgentEvents (ctx )
452
452
if err := a .waitForRequirements ("optional" , a .optionalRequirements ()); err != nil {
453
- mErr = errors . Join ( mErr , err )
453
+ errs = append ( errs , err )
454
454
}
455
455
if err := a .waitForRequirements ("final" , a .finalRequirements ()); err != nil {
456
- mErr = errors . Join ( mErr , err )
456
+ errs = append ( errs , err )
457
457
}
458
458
// Copy all config files _after_ the requirements are done
459
459
for _ , rule := range a .y .CopyToHost {
460
460
if err := copyToHost (ctx , a .sshConfig , a .sshLocalPort , rule .HostFile , rule .GuestFile ); err != nil {
461
- mErr = errors . Join ( mErr , err )
461
+ errs = append ( errs , err )
462
462
}
463
463
}
464
464
a .onClose = append (a .onClose , func () error {
465
- var mErr error
465
+ var rmErrs [] error
466
466
for _ , rule := range a .y .CopyToHost {
467
467
if rule .DeleteOnStop {
468
468
logrus .Infof ("Deleting %s" , rule .HostFile )
469
469
if err := os .RemoveAll (rule .HostFile ); err != nil {
470
- mErr = errors . Join ( mErr , err )
470
+ rmErrs = append ( rmErrs , err )
471
471
}
472
472
}
473
473
}
474
- return mErr
474
+ return errors . Join ( rmErrs ... )
475
475
})
476
- return mErr
476
+ return errors . Join ( errs ... )
477
477
}
478
478
479
479
func (a * HostAgent ) close () error {
480
480
logrus .Infof ("Shutting down the host agent" )
481
- var mErr error
481
+ var errs [] error
482
482
for i := len (a .onClose ) - 1 ; i >= 0 ; i -- {
483
483
f := a .onClose [i ]
484
484
if err := f (); err != nil {
485
- mErr = errors . Join ( mErr , err )
485
+ errs = append ( errs , err )
486
486
}
487
487
}
488
- return mErr
488
+ return errors . Join ( errs ... )
489
489
}
490
490
491
491
func (a * HostAgent ) watchGuestAgentEvents (ctx context.Context ) {
@@ -505,20 +505,20 @@ func (a *HostAgent) watchGuestAgentEvents(ctx context.Context) {
505
505
506
506
a .onClose = append (a .onClose , func () error {
507
507
logrus .Debugf ("Stop forwarding unix sockets" )
508
- var mErr error
508
+ var errs [] error
509
509
for _ , rule := range a .y .PortForwards {
510
510
if rule .GuestSocket != "" {
511
511
local := hostAddress (rule , guestagentapi.IPPort {})
512
512
// using ctx.Background() because ctx has already been cancelled
513
513
if err := forwardSSH (context .Background (), a .sshConfig , a .sshLocalPort , local , rule .GuestSocket , verbCancel , rule .Reverse ); err != nil {
514
- mErr = errors . Join ( mErr , err )
514
+ errs = append ( errs , err )
515
515
}
516
516
}
517
517
}
518
518
if err := forwardSSH (context .Background (), a .sshConfig , a .sshLocalPort , localUnix , remoteUnix , verbCancel , false ); err != nil {
519
- mErr = errors . Join ( mErr , err )
519
+ errs = append ( errs , err )
520
520
}
521
- return mErr
521
+ return errors . Join ( errs ... )
522
522
})
523
523
524
524
for {
0 commit comments