// upgradeStatusMessage generates a user facing status string about upgrade progress and status func (l *List) upgradeStatusMessage(ctx context.Context, vch *vm.VirtualMachine, installerVer *version.Build, vchVer *version.Build) string { if sameVer := installerVer.Equal(vchVer); sameVer { return "Up to date" } upgrading, _, err := vch.UpgradeInProgress(ctx, management.UpgradePrefix) if err != nil { return fmt.Sprintf("Unknown: %s", err) } if upgrading { return "Upgrade in progress" } canUpgrade, err := installerVer.IsNewer(vchVer) if err != nil { return fmt.Sprintf("Unknown: %s", err) } if canUpgrade { return fmt.Sprintf("Upgradeable to %s", installerVer.ShortVersion()) } oldInstaller, err := installerVer.IsOlder(vchVer) if err != nil { return fmt.Sprintf("Unknown: %s", err) } if oldInstaller { return fmt.Sprintf("VCH has newer version") } // can't get here return "Invalid upgrade status" }