@@ -311,6 +311,16 @@ func (cnf *Configurator) AddOrUpdateIngress(ingEx *IngressEx) (Warnings, error)
311
311
return warnings , nil
312
312
}
313
313
314
+ // virtualServerExForHost takes a hostname and returns a VirtualServerEx for the given hostname.
315
+ func (cnf * Configurator ) virtualServerExForHost (hostname string ) * VirtualServerEx {
316
+ for _ , vsEx := range cnf .virtualServers {
317
+ if vsEx .VirtualServer .Spec .Host == hostname {
318
+ return vsEx
319
+ }
320
+ }
321
+ return nil
322
+ }
323
+
314
324
// virtualServerForHost takes a hostname and returns a VS for the given hostname.
315
325
func (cnf * Configurator ) virtualServerForHost (hostname string ) * conf_v1.VirtualServer {
316
326
for _ , vsEx := range cnf .virtualServers {
@@ -321,11 +331,13 @@ func (cnf *Configurator) virtualServerForHost(hostname string) *conf_v1.VirtualS
321
331
return nil
322
332
}
323
333
324
- // upstreamsForVirtualServer takes VirtualServer and returns a list of associated upstreams.
325
- func (cnf * Configurator ) upstreamsForVirtualServer (vs * conf_v1. VirtualServer ) []string {
334
+ // upstreamsForVirtualServer takes a VirtualServerEx and returns a list of associated upstreams.
335
+ func (cnf * Configurator ) upstreamsForVirtualServer (vsex * VirtualServerEx ) []string {
326
336
l := nl .LoggerFromContext (cnf .CfgParams .Context )
337
+ vs := vsex .VirtualServer
338
+ var upstreamNames []string
339
+
327
340
nl .Debugf (l , "Get upstreamName for vs: %s" , vs .Spec .Host )
328
- upstreamNames := make ([]string , 0 , len (vs .Spec .Upstreams ))
329
341
330
342
virtualServerUpstreamNamer := NewUpstreamNamerForVirtualServer (vs )
331
343
@@ -334,16 +346,27 @@ func (cnf *Configurator) upstreamsForVirtualServer(vs *conf_v1.VirtualServer) []
334
346
nl .Debugf (l , "upstream: %s, upstreamName: %s" , u .Name , upstreamName )
335
347
upstreamNames = append (upstreamNames , upstreamName )
336
348
}
349
+
350
+ for _ , vsr := range vsex .VirtualServerRoutes {
351
+ upstreamNamer := NewUpstreamNamerForVirtualServerRoute (vs , vsr )
352
+ for _ , u := range vsr .Spec .Upstreams {
353
+ upstreamName := upstreamNamer .GetNameForUpstream (u .Name )
354
+ nl .Debugf (l , "upstream: %s, upstreamName: %s" , u .Name , upstreamName )
355
+ upstreamNames = append (upstreamNames , upstreamName )
356
+
357
+ }
358
+ }
359
+
337
360
return upstreamNames
338
361
}
339
362
340
363
// UpstreamsForHost takes a hostname and returns upstreams for the given hostname.
341
364
func (cnf * Configurator ) UpstreamsForHost (hostname string ) []string {
342
365
l := nl .LoggerFromContext (cnf .CfgParams .Context )
343
366
nl .Debugf (l , "Get upstream for host: %s" , hostname )
344
- vs := cnf .virtualServerForHost (hostname )
345
- if vs != nil {
346
- return cnf .upstreamsForVirtualServer (vs )
367
+ vsex := cnf .virtualServerExForHost (hostname )
368
+ if vsex != nil {
369
+ return cnf .upstreamsForVirtualServer (vsex )
347
370
}
348
371
return nil
349
372
}
0 commit comments