@@ -107,58 +107,55 @@ func (r CreateOrUpdateRouterRequest) BuildRouter(projectID models.ID) *models.Ro
107
107
}
108
108
109
109
// BuildRouterVersion builds the router version model from the entire request payload
110
- func (r CreateOrUpdateRouterRequest ) BuildRouterVersion (
110
+ func (r RouterConfig ) BuildRouterVersion (
111
111
router * models.Router ,
112
112
defaults * config.RouterDefaults ,
113
113
cryptoSvc service.CryptoService ,
114
114
expSvc service.ExperimentsService ,
115
115
ensemblersSvc service.EnsemblersService ,
116
116
) (rv * models.RouterVersion , err error ) {
117
- if r .Config == nil {
118
- return nil , errors .New ("router config is empty" )
119
- }
120
117
rv = & models.RouterVersion {
121
118
RouterID : router .ID ,
122
119
Router : router ,
123
120
Image : defaults .Image ,
124
121
Status : models .RouterVersionStatusPending ,
125
- Routes : r .Config . Routes ,
126
- DefaultRouteID : r .Config . DefaultRouteID ,
127
- TrafficRules : r .Config . TrafficRules ,
122
+ Routes : r .Routes ,
123
+ DefaultRouteID : r .DefaultRouteID ,
124
+ TrafficRules : r .TrafficRules ,
128
125
ExperimentEngine : & models.ExperimentEngine {
129
- Type : r .Config . ExperimentEngine .Type ,
126
+ Type : r .ExperimentEngine .Type ,
130
127
},
131
- ResourceRequest : r .Config . ResourceRequest ,
132
- Timeout : r .Config . Timeout ,
128
+ ResourceRequest : r .ResourceRequest ,
129
+ Timeout : r .Timeout ,
133
130
LogConfig : & models.LogConfig {
134
131
LogLevel : routercfg .LogLevel (defaults .LogLevel ),
135
132
CustomMetricsEnabled : defaults .CustomMetricsEnabled ,
136
133
FiberDebugLogEnabled : defaults .FiberDebugLogEnabled ,
137
134
JaegerEnabled : defaults .JaegerEnabled ,
138
- ResultLoggerType : r .Config . LogConfig .ResultLoggerType ,
135
+ ResultLoggerType : r .LogConfig .ResultLoggerType ,
139
136
},
140
137
}
141
- if r .Config . Enricher != nil {
142
- rv .Enricher = r .Config . Enricher .BuildEnricher ()
138
+ if r .Enricher != nil {
139
+ rv .Enricher = r .Enricher .BuildEnricher ()
143
140
}
144
- if r .Config . Ensembler != nil {
141
+ if r .Ensembler != nil {
145
142
// Ensure ensembler config is set based on the ensembler type
146
- if r .Config . Ensembler .Type == models .EnsemblerDockerType && r . Config .Ensembler .DockerConfig == nil {
143
+ if r .Ensembler .Type == models .EnsemblerDockerType && r .Ensembler .DockerConfig == nil {
147
144
return nil , errors .New ("missing ensembler docker config" )
148
145
}
149
- if r .Config . Ensembler .Type == models .EnsemblerStandardType && r . Config .Ensembler .StandardConfig == nil {
146
+ if r .Ensembler .Type == models .EnsemblerStandardType && r .Ensembler .StandardConfig == nil {
150
147
return nil , errors .New ("missing ensembler standard config" )
151
148
}
152
- if r .Config . Ensembler .Type == models .EnsemblerPyFuncType {
153
- if r .Config . Ensembler .PyfuncConfig == nil {
149
+ if r .Ensembler .Type == models .EnsemblerPyFuncType {
150
+ if r .Ensembler .PyfuncConfig == nil {
154
151
return nil , errors .New ("missing ensembler pyfunc reference config" )
155
152
}
156
153
157
154
// Verify if the ensembler given by its ProjectID and EnsemblerID exist
158
155
ensembler , err := ensemblersSvc .FindByID (
159
- * r .Config . Ensembler .PyfuncConfig .EnsemblerID ,
156
+ * r .Ensembler .PyfuncConfig .EnsemblerID ,
160
157
service.EnsemblersFindByIDOptions {
161
- ProjectID : r .Config . Ensembler .PyfuncConfig .ProjectID ,
158
+ ProjectID : r .Ensembler .PyfuncConfig .ProjectID ,
162
159
})
163
160
if err != nil {
164
161
return nil , fmt .Errorf ("failed to find specified ensembler: %w" , err )
@@ -172,20 +169,20 @@ func (r CreateOrUpdateRouterRequest) BuildRouterVersion(
172
169
return nil , fmt .Errorf ("only pyfunc ensemblers allowed; ensembler type given: %T" , v )
173
170
}
174
171
}
175
- rv .Ensembler = r .Config . Ensembler
172
+ rv .Ensembler = r .Ensembler
176
173
}
177
174
switch rv .LogConfig .ResultLoggerType {
178
175
case models .BigQueryLogger :
179
176
rv .LogConfig .BigQueryConfig = & models.BigQueryConfig {
180
- Table : r .Config . LogConfig .BigQueryConfig .Table ,
181
- ServiceAccountSecret : r .Config . LogConfig .BigQueryConfig .ServiceAccountSecret ,
177
+ Table : r .LogConfig .BigQueryConfig .Table ,
178
+ ServiceAccountSecret : r .LogConfig .BigQueryConfig .ServiceAccountSecret ,
182
179
BatchLoad : true , // default for now
183
180
}
184
181
case models .KafkaLogger :
185
182
rv .LogConfig .KafkaConfig = & models.KafkaConfig {
186
- Brokers : r .Config . LogConfig .KafkaConfig .Brokers ,
187
- Topic : r .Config . LogConfig .KafkaConfig .Topic ,
188
- SerializationFormat : r .Config . LogConfig .KafkaConfig .SerializationFormat ,
183
+ Brokers : r .LogConfig .KafkaConfig .Brokers ,
184
+ Topic : r .LogConfig .KafkaConfig .Topic ,
185
+ SerializationFormat : r .LogConfig .KafkaConfig .SerializationFormat ,
189
186
}
190
187
}
191
188
if rv .ExperimentEngine .Type != models .ExperimentEngineTypeNop {
@@ -203,15 +200,15 @@ func (r CreateOrUpdateRouterRequest) BuildRouterVersion(
203
200
}
204
201
205
202
// BuildExperimentEngineConfig creates the Experiment config from the given input properties
206
- func (r CreateOrUpdateRouterRequest ) BuildExperimentEngineConfig (
203
+ func (r RouterConfig ) BuildExperimentEngineConfig (
207
204
router * models.Router ,
208
205
cryptoSvc service.CryptoService ,
209
206
expSvc service.ExperimentsService ,
210
207
) (json.RawMessage , error ) {
211
- rawExpConfig := r .Config . ExperimentEngine .Config
208
+ rawExpConfig := r .ExperimentEngine .Config
212
209
213
210
// Handle missing passkey / encrypt it in Standard experiment config
214
- if expSvc .IsStandardExperimentManager (r .Config . ExperimentEngine .Type ) {
211
+ if expSvc .IsStandardExperimentManager (r .ExperimentEngine .Type ) {
215
212
// Convert the new config to the standard type
216
213
expConfig , err := manager .ParseStandardExperimentConfig (rawExpConfig )
217
214
if err != nil {
@@ -221,7 +218,7 @@ func (r CreateOrUpdateRouterRequest) BuildExperimentEngineConfig(
221
218
if expConfig .Client .Passkey == "" {
222
219
// Extract existing router version config
223
220
if router .CurrRouterVersion != nil &&
224
- router .CurrRouterVersion .ExperimentEngine .Type == r .Config . ExperimentEngine .Type {
221
+ router .CurrRouterVersion .ExperimentEngine .Type == r .ExperimentEngine .Type {
225
222
currVerExpConfig , err := manager .ParseStandardExperimentConfig (router .CurrRouterVersion .ExperimentEngine .Config )
226
223
if err != nil {
227
224
return nil , fmt .Errorf ("Error parsing existing experiment config: %v" , err )
0 commit comments