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