@@ -109,30 +109,21 @@ func New(config *rest.Config, options Options) (Manager, error) {
109
109
cm .scheme = scheme .Scheme
110
110
}
111
111
112
- // Create a new RESTMapper for mapping GroupVersionKinds to Resources
113
- if options .MapperProvider == nil {
114
- options .MapperProvider = apiutil .NewDiscoveryRESTMapper
115
- }
112
+ // Set default values for options fields
113
+ options = setOptionsDefaults (options )
114
+
116
115
mapper , err := options .MapperProvider (cm .config )
117
116
if err != nil {
118
117
log .Error (err , "Failed to get API Group-Resources" )
119
118
return nil , err
120
119
}
121
120
122
- // Allow newClient to be mocked
123
- if options .newClient == nil {
124
- options .newClient = client .New
125
- }
126
121
// Create the Client for Write operations.
127
122
writeObj , err := options .newClient (cm .config , client.Options {Scheme : cm .scheme , Mapper : mapper })
128
123
if err != nil {
129
124
return nil , err
130
125
}
131
126
132
- // TODO(directxman12): Figure out how to allow users to request a client without requesting a watch
133
- if options .newCache == nil {
134
- options .newCache = cache .New
135
- }
136
127
cm .cache , err = options .newCache (cm .config , cache.Options {Scheme : cm .scheme , Mapper : mapper })
137
128
if err != nil {
138
129
return nil , err
@@ -141,9 +132,6 @@ func New(config *rest.Config, options Options) (Manager, error) {
141
132
cm .fieldIndexes = cm .cache
142
133
cm .client = client.DelegatingClient {Reader : cm .cache , Writer : writeObj }
143
134
144
- if options .newRecorderProvider == nil {
145
- options .newRecorderProvider = internalrecorder .NewProvider
146
- }
147
135
// Create the recorder provider to inject event recorders for the components.
148
136
cm .recorderProvider , err = options .newRecorderProvider (cm .config , cm .scheme )
149
137
if err != nil {
@@ -152,3 +140,28 @@ func New(config *rest.Config, options Options) (Manager, error) {
152
140
153
141
return cm , nil
154
142
}
143
+
144
+ // setOptionsDefaults set default values for Options fields.
145
+ func setOptionsDefaults (options Options ) Options {
146
+ if options .MapperProvider == nil {
147
+ options .MapperProvider = apiutil .NewDiscoveryRESTMapper
148
+ }
149
+
150
+ // Allow newClient to be mocked.
151
+ if options .newClient == nil {
152
+ options .newClient = client .New
153
+ }
154
+
155
+ // Allow newCache to be mocked.
156
+ // TODO(directxman12): Figure out how to allow users to request a client without requesting a watch.
157
+ if options .newCache == nil {
158
+ options .newCache = cache .New
159
+ }
160
+
161
+ // Allow newRecorderProvider to be mocked.
162
+ if options .newRecorderProvider == nil {
163
+ options .newRecorderProvider = internalrecorder .NewProvider
164
+ }
165
+
166
+ return options
167
+ }
0 commit comments