@@ -70,10 +70,23 @@ func (a *App) Use(ctx context.Context, input *UseInput) error {
70
70
return fmt .Errorf ("using identity provider %s: %w" , input .IdentityProvider , ErrUnsuportedIdpProtocol )
71
71
}
72
72
73
+ err = identityProvider .CheckPreReqs ()
74
+ if err != nil {
75
+ fmt .Fprintf (os .Stderr , "\033 [33m%s\033 [0m\n " , err .Error ())
76
+ return fmt .Errorf ("checking identity provider pre-reqs: %w" , err )
77
+ }
78
+
73
79
err = clusterProvider .CheckPreReqs ()
74
80
if err != nil {
75
- //TODO: how to report this???
76
81
fmt .Fprintf (os .Stderr , "\033 [33m%s\033 [0m\n " , err .Error ())
82
+ return fmt .Errorf ("checking discovery provider pre-reqs: %w" , err )
83
+ }
84
+
85
+ if err := identityProvider .Resolve (input .ConfigSet , nil ); err != nil {
86
+ return fmt .Errorf ("resolving identity config items: %w" , err )
87
+ }
88
+ if err := identityProvider .Validate (input .ConfigSet ); err != nil {
89
+ return fmt .Errorf ("validating identity config items: %w" , err )
77
90
}
78
91
79
92
authOutput , err := identityProvider .Authenticate (ctx , & identity.AuthenticateInput {
@@ -84,7 +97,10 @@ func (a *App) Use(ctx context.Context, input *UseInput) error {
84
97
}
85
98
86
99
if err := clusterProvider .Resolve (input .ConfigSet , authOutput .Identity ); err != nil {
87
- return fmt .Errorf ("resolving config items: %w" , err )
100
+ return fmt .Errorf ("resolving discovery config items: %w" , err )
101
+ }
102
+ if err := clusterProvider .Validate (input .ConfigSet ); err != nil {
103
+ return fmt .Errorf ("validating discovery config items: %w" , err )
88
104
}
89
105
90
106
if ! input .IgnoreAlias {
@@ -153,7 +169,7 @@ func (a *App) Use(ctx context.Context, input *UseInput) error {
153
169
return nil
154
170
}
155
171
156
- func (a * App ) discoverCluster (ctx context.Context , clusterProvider discovery.Provider , identity identity .Identity , params * UseInput ) (* discovery.Cluster , error ) {
172
+ func (a * App ) discoverCluster (ctx context.Context , clusterProvider discovery.Provider , identity provider .Identity , params * UseInput ) (* discovery.Cluster , error ) {
157
173
a .logger .Infow ("discovering clusters" , "provider" , params .DiscoveryProvider )
158
174
159
175
discoverOutput , err := clusterProvider .Discover (ctx , & discovery.DiscoverInput {
@@ -177,7 +193,7 @@ func (a *App) discoverCluster(ctx context.Context, clusterProvider discovery.Pro
177
193
return cluster , nil
178
194
}
179
195
180
- func (a * App ) getCluster (ctx context.Context , clusterProvider discovery.Provider , identity identity .Identity , params * UseInput ) (* discovery.Cluster , error ) {
196
+ func (a * App ) getCluster (ctx context.Context , clusterProvider discovery.Provider , identity provider .Identity , params * UseInput ) (* discovery.Cluster , error ) {
181
197
a .logger .Infow ("getting cluster details" , "id" , * params .ClusterID , "provider" , params .DiscoveryProvider )
182
198
183
199
output , err := clusterProvider .GetCluster (ctx , & discovery.GetClusterInput {
0 commit comments