From 96ce60827c6e5e077309dd014c0ece00b2634a12 Mon Sep 17 00:00:00 2001 From: Ashwin Hendre Date: Sat, 7 Mar 2026 02:21:46 +0530 Subject: [PATCH] Use short regions and provide a default resource group in survey --- pkg/asset/installconfig/powervs/regions.go | 12 +++++------- pkg/asset/installconfig/powervs/session.go | 8 ++++++-- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/pkg/asset/installconfig/powervs/regions.go b/pkg/asset/installconfig/powervs/regions.go index 48708e73b04..8dcfbedf518 100644 --- a/pkg/asset/installconfig/powervs/regions.go +++ b/pkg/asset/installconfig/powervs/regions.go @@ -54,14 +54,12 @@ func IsKnownZone(region string, zone string) bool { // GetRegion prompts the user to select a region and returns that region. func GetRegion(defaultRegion string) (string, error) { regions := knownRegions() - - longRegions := make([]string, 0, len(regions)) + var idToLocationMappingHelpText string shortRegions := make([]string, 0, len(regions)) for id, location := range regions { - longRegions = append(longRegions, fmt.Sprintf("%s (%s)", id, location)) shortRegions = append(shortRegions, id) + idToLocationMappingHelpText += fmt.Sprintf("%s: %s ", id, location) } - sort.Strings(longRegions) sort.Strings(shortRegions) var regionTransform survey.Transformer = func(ans interface{}) interface{} { @@ -79,16 +77,16 @@ func GetRegion(defaultRegion string) (string, error) { if li == len(shortRegions) || shortRegions[li] != defaultRegion { defaultRegion = "dal" } else { - defaultRegion = longRegions[li] + defaultRegion = shortRegions[li] } err := survey.Ask([]*survey.Question{ { Prompt: &survey.Select{ Message: "Region", - Help: "The Power VS region to be used for installation.", + Help: fmt.Sprintf("The Power VS region to be used for installation. The available regions are: %s", idToLocationMappingHelpText), Default: defaultRegion, - Options: longRegions, + Options: shortRegions, }, Validate: survey.ComposeValidators(survey.Required, func(ans interface{}) error { choice := regionTransform(ans).(core.OptionAnswer).Value diff --git a/pkg/asset/installconfig/powervs/session.go b/pkg/asset/installconfig/powervs/session.go index 92d1ed07f61..98b6ac7d161 100644 --- a/pkg/asset/installconfig/powervs/session.go +++ b/pkg/asset/installconfig/powervs/session.go @@ -375,6 +375,10 @@ func getSecondSessionVarsFromUser(psv *SessionVars, pss *SessionStore) error { return fmt.Errorf("failed to list resourceGroups: %w", err) } + if len(resourceGroups.Resources) == 0 { + return fmt.Errorf("there are no resource groups in the account. Follow https://cloud.ibm.com/docs/account?topic=account-rgs for instructions to create a resource group") + } + resourceGroupsSurvey := make([]string, len(resourceGroups.Resources)) for i, resourceGroup := range resourceGroups.Resources { resourceGroupsSurvey[i] = *resourceGroup.Name @@ -384,8 +388,8 @@ func getSecondSessionVarsFromUser(psv *SessionVars, pss *SessionStore) error { { Prompt: &survey.Select{ Message: "Resource Group", - Help: "The Power VS resource group to be used for installation.", - Default: "", + Help: "The PowerVS resource group to be used for installation.", + Default: resourceGroupsSurvey[0], Options: resourceGroupsSurvey, }, },