8
8
"sort"
9
9
"strings"
10
10
11
+ "github.com/aws/aws-sdk-go/aws/session"
11
12
"github.com/pkg/errors"
13
+ "github.com/sirupsen/logrus"
12
14
survey "gopkg.in/AlecAivazis/survey.v1"
13
15
14
16
"github.com/openshift/installer/pkg/asset"
@@ -53,6 +55,26 @@ func Platform() (*aws.Platform, error) {
53
55
regionTransform := survey .TransformString (func (s string ) string {
54
56
return strings .SplitN (s , " " , 2 )[0 ]
55
57
})
58
+
59
+ defaultRegion := "us-east-1"
60
+ _ , ok := validAWSRegions [defaultRegion ]
61
+ if ! ok {
62
+ panic (fmt .Sprintf ("installer bug: invalid default AWS region %q" , defaultRegion ))
63
+ }
64
+
65
+ ssn := session .Must (session .NewSessionWithOptions (session.Options {
66
+ SharedConfigState : session .SharedConfigEnable ,
67
+ }))
68
+ defaultRegionPointer := ssn .Config .Region
69
+ if defaultRegionPointer != nil {
70
+ _ , ok := validAWSRegions [* defaultRegionPointer ]
71
+ if ok {
72
+ defaultRegion = * defaultRegionPointer
73
+ } else {
74
+ logrus .Warnf ("Unrecognized AWS region %q, defaulting to %s" , * defaultRegionPointer , defaultRegion )
75
+ }
76
+ }
77
+
56
78
sort .Strings (longRegions )
57
79
sort .Strings (shortRegions )
58
80
region , err := asset .GenerateUserProvidedAsset (
@@ -61,7 +83,7 @@ func Platform() (*aws.Platform, error) {
61
83
Prompt : & survey.Select {
62
84
Message : "Region" ,
63
85
Help : "The AWS region to be used for installation." ,
64
- Default : "us-east-1 (N. Virginia)" ,
86
+ Default : fmt . Sprintf ( "%s (%s)" , defaultRegion , validAWSRegions [ defaultRegion ]) ,
65
87
Options : longRegions ,
66
88
},
67
89
Validate : survey .ComposeValidators (survey .Required , func (ans interface {}) error {
0 commit comments