@@ -70,10 +70,23 @@ func (a *App) Use(ctx context.Context, input *UseInput) error {
7070 return fmt .Errorf ("using identity provider %s: %w" , input .IdentityProvider , ErrUnsuportedIdpProtocol )
7171 }
7272
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+
7379 err = clusterProvider .CheckPreReqs ()
7480 if err != nil {
75- //TODO: how to report this???
7681 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 )
7790 }
7891
7992 authOutput , err := identityProvider .Authenticate (ctx , & identity.AuthenticateInput {
@@ -84,7 +97,10 @@ func (a *App) Use(ctx context.Context, input *UseInput) error {
8497 }
8598
8699 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 )
88104 }
89105
90106 if ! input .IgnoreAlias {
@@ -153,7 +169,7 @@ func (a *App) Use(ctx context.Context, input *UseInput) error {
153169 return nil
154170}
155171
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 ) {
157173 a .logger .Infow ("discovering clusters" , "provider" , params .DiscoveryProvider )
158174
159175 discoverOutput , err := clusterProvider .Discover (ctx , & discovery.DiscoverInput {
@@ -177,7 +193,7 @@ func (a *App) discoverCluster(ctx context.Context, clusterProvider discovery.Pro
177193 return cluster , nil
178194}
179195
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 ) {
181197 a .logger .Infow ("getting cluster details" , "id" , * params .ClusterID , "provider" , params .DiscoveryProvider )
182198
183199 output , err := clusterProvider .GetCluster (ctx , & discovery.GetClusterInput {
0 commit comments