From d6831a4de30b7640e0bf928d3cbb2cd60693622a Mon Sep 17 00:00:00 2001 From: Gareth Rees Date: Wed, 2 Dec 2020 13:55:00 +0000 Subject: [PATCH] Amend commit author for license pass --- builder/googlecompute/driver.go | 2 +- builder/googlecompute/driver_gce.go | 15 ++++++++++----- builder/googlecompute/driver_mock.go | 4 ++-- builder/googlecompute/step_create_instance.go | 12 +++++++----- 4 files changed, 20 insertions(+), 13 deletions(-) diff --git a/builder/googlecompute/driver.go b/builder/googlecompute/driver.go index 96fef6574..0c8afbda5 100644 --- a/builder/googlecompute/driver.go +++ b/builder/googlecompute/driver.go @@ -71,7 +71,7 @@ type Driver interface { DeleteOSLoginSSHKey(user, fingerprint string) error // Add to the instance metadata for the existing instance - AddToInstanceMetadata(zone string, name string, metadata map[string]string) (<-chan error, error) + AddToInstanceMetadata(zone string, name string, metadata map[string]string) error } type InstanceConfig struct { diff --git a/builder/googlecompute/driver_gce.go b/builder/googlecompute/driver_gce.go index 4766c6260..b63c293ad 100644 --- a/builder/googlecompute/driver_gce.go +++ b/builder/googlecompute/driver_gce.go @@ -728,11 +728,11 @@ func waitForState(errCh chan<- error, target string, refresh stateRefreshFunc) e return err } -func (d *driverGCE) AddToInstanceMetadata(zone string, name string, metadata map[string]string) (<-chan error, error) { +func (d *driverGCE) AddToInstanceMetadata(zone string, name string, metadata map[string]string) error { instance, err := d.service.Instances.Get(d.projectId, zone, name).Do() if err != nil { - return nil, err + return err } // Build up the metadata @@ -753,7 +753,7 @@ func (d *driverGCE) AddToInstanceMetadata(zone string, name string, metadata map }).Do() if err != nil { - return nil, err + return err } newErrCh := make(chan error, 1) @@ -762,8 +762,13 @@ func (d *driverGCE) AddToInstanceMetadata(zone string, name string, metadata map select { case err = <-newErrCh: case <-time.After(time.Second * 30): - err = errors.New("time out while waiting for SSH keys to be added to instance") + err = errors.New("time out while waiting for instance to create") } - return newErrCh, err + if err != nil { + newErrCh <- err + return err + } + + return nil } diff --git a/builder/googlecompute/driver_mock.go b/builder/googlecompute/driver_mock.go index 38179d53f..cbe89dd76 100644 --- a/builder/googlecompute/driver_mock.go +++ b/builder/googlecompute/driver_mock.go @@ -295,7 +295,7 @@ func (d *DriverMock) DeleteOSLoginSSHKey(user, fingerprint string) error { return nil } -func (d *DriverMock) AddToInstanceMetadata(zone string, name string, metadata map[string]string) (<-chan error, error) { +func (d *DriverMock) AddToInstanceMetadata(zone string, name string, metadata map[string]string) error { d.AddToInstanceMetadataZone = zone d.AddToInstanceMetadataName = name d.AddToInstanceMetadataKVPairs = metadata @@ -307,5 +307,5 @@ func (d *DriverMock) AddToInstanceMetadata(zone string, name string, metadata ma resultCh = ch } - return resultCh, d.AddToInstanceMetadataErr + return nil } diff --git a/builder/googlecompute/step_create_instance.go b/builder/googlecompute/step_create_instance.go index f895a1058..4ae4892f9 100644 --- a/builder/googlecompute/step_create_instance.go +++ b/builder/googlecompute/step_create_instance.go @@ -141,8 +141,8 @@ func (s *StepCreateInstance) Run(ctx context.Context, state multistep.StateBag) name := c.InstanceName var errCh <-chan error - metadataNoSSHKeys := make(map[string]string) - metadataSSHKeys := make(map[string]string) + var metadataNoSSHKeys map[string]string + var metadataSSHKeys map[string]string metadataForInstance := make(map[string]string) metadataNoSSHKeys, metadataSSHKeys, errs := c.createInstanceMetadata(sourceImage, string(c.Comm.SSHPublicKey)) @@ -233,11 +233,12 @@ func (s *StepCreateInstance) Run(ctx context.Context, state multistep.StateBag) log.Printf("[DEBUG] %s wait is over. Adding SSH keys to existing instance...", c.WaitToAddSSHKeys.String()) - errCh, err = d.AddToInstanceMetadata(c.Zone, name, metadataSSHKeys) + err = d.AddToInstanceMetadata(c.Zone, name, metadataSSHKeys) if err != nil { - state.Put("error", errs.Error()) - ui.Error(errs.Error()) + err := fmt.Errorf("Error adding SSH keys to existing instance: %s", err) + state.Put("error", err) + ui.Error(err.Error()) return multistep.ActionHalt } } @@ -316,6 +317,7 @@ func (s *StepCreateInstance) Cleanup(state multistep.StateBag) { } func addmap(a map[string]string, b map[string]string) { + for k, v := range b { a[k] = v }