diff --git a/builder/common/step_update_omi.go b/builder/common/step_update_omi.go index 905b277..7481770 100644 --- a/builder/common/step_update_omi.go +++ b/builder/common/step_update_omi.go @@ -34,9 +34,34 @@ func (s *StepUpdateOMIAttributes) Run(_ context.Context, state multistep.StateBa valid := false valid = valid || (s.AccountIds != nil && len(s.AccountIds) > 0) valid = valid || (s.SnapshotAccountIds != nil && len(s.SnapshotAccountIds) > 0) - valid = valid || (s.GlobalPermission != false) if !valid { + if s.GlobalPermission { + updateImageRequest := oscgo.UpdateImageRequest{ + PermissionsToLaunch: oscgo.PermissionsOnResourceCreation{ + Additions: &oscgo.PermissionsOnResource{ + GlobalPermission: &s.GlobalPermission, + }, + }, + } + + // Updating image attributes + for region, omi := range omis { + ui.Say(fmt.Sprintf("Updating attributes on OMI (%s)...", omi)) + regionconn := config.NewOSCClientByRegion(region) + + ui.Message(fmt.Sprintf("Updating: %s", omi)) + updateImageRequest.ImageId = omi + _, _, err := regionconn.Api.ImageApi.UpdateImage(regionconn.Auth).UpdateImageRequest(updateImageRequest).Execute() + if err != nil { + err := fmt.Errorf("Error updating OMI: %s", err) + state.Put("error", err) + ui.Error(err.Error()) + return multistep.ActionHalt + } + } + + } return multistep.ActionContinue }