@@ -58,7 +58,7 @@ var legacyRouteGroupKind = routeapi.LegacySchemeGroupVersion.WithKind(routeKind)
58
58
type saOAuthClientAdapter struct {
59
59
saClient kcoreclient.ServiceAccountsGetter
60
60
secretClient kcoreclient.SecretsGetter
61
- eventsClient kcoreclient. EventsGetter
61
+ recorder record. EventRecorder
62
62
routeClient osclient.RoutesNamespacer
63
63
// TODO add ingress support
64
64
//ingressClient ??
@@ -185,8 +185,26 @@ func (uri *redirectURI) merge(m *model) {
185
185
186
186
var _ oauthclient.Getter = & saOAuthClientAdapter {}
187
187
188
- func NewServiceAccountOAuthClientGetter (saClient kcoreclient.ServiceAccountsGetter , secretClient kcoreclient.SecretsGetter , eventClient kcoreclient.EventsGetter , routeClient osclient.RoutesNamespacer , delegate oauthclient.Getter , grantMethod oauthapi.GrantHandlerType ) oauthclient.Getter {
189
- return & saOAuthClientAdapter {saClient : saClient , secretClient : secretClient , eventsClient : eventClient , routeClient : routeClient , delegate : delegate , grantMethod : grantMethod , decoder : kapi .Codecs .UniversalDecoder ()}
188
+ func NewServiceAccountOAuthClientGetter (
189
+ saClient kcoreclient.ServiceAccountsGetter ,
190
+ secretClient kcoreclient.SecretsGetter ,
191
+ eventClient kcoreclient.EventsGetter ,
192
+ routeClient osclient.RoutesNamespacer ,
193
+ delegate oauthclient.Getter ,
194
+ grantMethod oauthapi.GrantHandlerType ,
195
+ ) oauthclient.Getter {
196
+ eventBroadcaster := record .NewBroadcaster ()
197
+ eventBroadcaster .StartRecordingToSink (& kcoreclient.EventSinkImpl {Interface : eventClient .Events ("" )})
198
+ recorder := eventBroadcaster .NewRecorder (kapi.EventSource {Component : "service-account-oauth-client-getter" })
199
+ return & saOAuthClientAdapter {
200
+ saClient : saClient ,
201
+ secretClient : secretClient ,
202
+ recorder : recorder ,
203
+ routeClient : routeClient ,
204
+ delegate : delegate ,
205
+ grantMethod : grantMethod ,
206
+ decoder : kapi .Codecs .UniversalDecoder (),
207
+ }
190
208
}
191
209
192
210
func (a * saOAuthClientAdapter ) GetClient (ctx kapi.Context , name string ) (* oauthapi.OAuthClient , error ) {
@@ -200,16 +218,14 @@ func (a *saOAuthClientAdapter) GetClient(ctx kapi.Context, name string) (*oautha
200
218
return nil , err
201
219
}
202
220
203
- recorder := a .getEventRecorder (saNamespace )
204
-
205
221
redirectURIs := []string {}
206
- if modelsMap := parseModelsMap (sa , a .decoder , recorder ); len (modelsMap ) > 0 {
222
+ if modelsMap := parseModelsMap (sa , a .decoder , a . recorder ); len (modelsMap ) > 0 {
207
223
if uris := a .extractRedirectURIs (modelsMap , saNamespace ); len (uris ) > 0 {
208
224
redirectURIs = append (redirectURIs , uris .extractValidRedirectURIStrings ()... )
209
225
}
210
226
}
211
227
if len (redirectURIs ) == 0 {
212
- recorder .Event (sa , kapi .EventTypeWarning , "OAuthNoRedirectURIs" , "Has no redirectURIs" )
228
+ a . recorder .Event (sa , kapi .EventTypeWarning , "OAuthNoRedirectURIs" , "Has no redirectURIs" )
213
229
return nil , fmt .Errorf (
214
230
"%v has no redirectURIs; set %v<some-value>=<redirect> or create a dynamic URI using %v<some-value>=<reference>" ,
215
231
name , OAuthRedirectModelAnnotationURIPrefix , OAuthRedirectModelAnnotationReferencePrefix ,
@@ -241,18 +257,11 @@ func (a *saOAuthClientAdapter) GetClient(ctx kapi.Context, name string) (*oautha
241
257
}
242
258
243
259
// TODO: is this safe to tell - could leak Route info?
244
- recorder .Eventf (sa , kapi .EventTypeNormal , "OAuthAllRedirectURIs" , "Has the following redirectURIs: %v" , saClient .RedirectURIs )
260
+ a . recorder .Eventf (sa , kapi .EventTypeNormal , "OAuthAllRedirectURIs" , "Has the following redirectURIs: %v" , saClient .RedirectURIs )
245
261
246
262
return saClient , nil
247
263
}
248
264
249
- // TODO this is super naive and inefficient
250
- func (a * saOAuthClientAdapter ) getEventRecorder (namespace string ) record.EventRecorder {
251
- eventBroadcaster := record .NewBroadcaster ()
252
- eventBroadcaster .StartRecordingToSink (& kcoreclient.EventSinkImpl {Interface : a .eventsClient .Events (namespace )})
253
- return eventBroadcaster .NewRecorder (kapi.EventSource {Component : "service-account-oauth-client-getter" })
254
- }
255
-
256
265
// parseModelsMap builds a map of model name to model using a service account's annotations.
257
266
// The model name is only used for building the map (it ties together the uri and reference annotations)
258
267
// and serves no functional purpose other than making testing easier.
0 commit comments