in pkg/brownfield/listeners.go [57:86]
func MergeListeners(listenerBuckets ...[]n.ApplicationGatewayHTTPListener) []n.ApplicationGatewayHTTPListener {
uniq := make(map[uniqueListenerConfig]n.ApplicationGatewayHTTPListener)
for _, bucket := range listenerBuckets {
for _, listener := range bucket {
listenerConfig := uniqueListenerConfig{
Protocol: listener.Protocol,
}
if listener.HostName != nil {
listenerConfig.setHostNames([]string{*listener.HostName})
}
if listener.HostNames != nil && len(*listener.HostNames) > 0 {
listenerConfig.setHostNames(*listener.HostNames)
}
if listener.FrontendIPConfiguration != nil && listener.FrontendIPConfiguration.ID != nil {
listenerConfig.FrontendIPConfiguration = *listener.FrontendIPConfiguration.ID
}
if listener.FrontendPort != nil && listener.FrontendPort.ID != nil {
listenerConfig.FrontendPortID = *listener.FrontendPort.ID
}
if _, exists := uniq[listenerConfig]; !exists {
uniq[listenerConfig] = listener
}
}
}
var merged []n.ApplicationGatewayHTTPListener
for _, listener := range uniq {
merged = append(merged, listener)
}
return merged
}