From eab3a7824e2c984179a968e92eeeff5dabba565f Mon Sep 17 00:00:00 2001 From: Mikulas Dite Date: Thu, 16 Aug 2018 09:08:29 +0200 Subject: [PATCH 1/2] fix cloudonly rolling-update ignores interactive --- pkg/instancegroups/instancegroups.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/pkg/instancegroups/instancegroups.go b/pkg/instancegroups/instancegroups.go index b5ad63a2b3441..9d51362114310 100644 --- a/pkg/instancegroups/instancegroups.go +++ b/pkg/instancegroups/instancegroups.go @@ -182,7 +182,6 @@ func (r *RollingUpdateInstanceGroup) RollingUpdate(rollingUpdateData *RollingUpd continue } else if rollingUpdateData.CloudOnly { glog.Warningf("Not validating cluster as cloudonly flag is set.") - continue } else if featureflag.DrainAndValidateRollingUpdate.Enabled() { glog.Infof("Validating the cluster.") @@ -196,15 +195,16 @@ func (r *RollingUpdateInstanceGroup) RollingUpdate(rollingUpdateData *RollingUpd glog.Warningf("Cluster validation failed after removing instance, proceeding since fail-on-validate is set to false: %v", err) } - if rollingUpdateData.Interactive { - stopPrompting, err := promptInteractive(nodeName) - if err != nil { - return err - } - if stopPrompting { - // Is a pointer to a struct, changes here push back into the original - rollingUpdateData.Interactive = false - } + } + + if rollingUpdateData.Interactive { + stopPrompting, err := promptInteractive(nodeName) + if err != nil { + return err + } + if stopPrompting { + // Is a pointer to a struct, changes here push back into the original + rollingUpdateData.Interactive = false } } } From 525c0a9bc876d284ab46e3e439a2034a25e3d343 Mon Sep 17 00:00:00 2001 From: Mikulas Dite Date: Thu, 16 Aug 2018 09:25:12 +0200 Subject: [PATCH 2/2] fix rolling-update prompt when nodeName is unset Updated to use same logic as DeleteInstance does: print at least the host id as that is always available and only include node name if set. --- pkg/instancegroups/instancegroups.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pkg/instancegroups/instancegroups.go b/pkg/instancegroups/instancegroups.go index 9d51362114310..5123d1c131a77 100644 --- a/pkg/instancegroups/instancegroups.go +++ b/pkg/instancegroups/instancegroups.go @@ -67,10 +67,14 @@ func NewRollingUpdateInstanceGroup(cloud fi.Cloud, cloudGroup *cloudinstances.Cl } // promptInteractive asks the user to continue, mostly copied from vendor/google.golang.org/api/examples/gmail.go. -func promptInteractive(upgradedHost string) (stopPrompting bool, err error) { +func promptInteractive(upgradedHostId, upgradedHostName string) (stopPrompting bool, err error) { stopPrompting = false scanner := bufio.NewScanner(os.Stdin) - glog.Infof("Pausing after finished %q", upgradedHost) + if upgradedHostName != "" { + glog.Infof("Pausing after finished %q, node %q", upgradedHostId, upgradedHostName) + } else { + glog.Infof("Pausing after finished %q", upgradedHostId) + } fmt.Print("Continue? (Y)es, (N)o, (A)lwaysYes: [Y] ") scanner.Scan() err = scanner.Err() @@ -198,7 +202,7 @@ func (r *RollingUpdateInstanceGroup) RollingUpdate(rollingUpdateData *RollingUpd } if rollingUpdateData.Interactive { - stopPrompting, err := promptInteractive(nodeName) + stopPrompting, err := promptInteractive(u.ID, nodeName) if err != nil { return err }