in controllers/autoneg.go [63:101]
func (s AutonegStatus) Backend(name string, port string, group string) compute.Backend {
cfg := s.AutonegConfig.BackendServices[port][name]
// Extract initial_capacity setting, if set
var capacityScaler float64 = 1
if capacity := cfg.InitialCapacity; capacity != nil {
// This case should not be possible since validateNewConfig checks
// it, but leave the default setting of 100% if capacity is less
// than 0 or greater than 100
if *capacity >= int32(0) && *capacity <= int32(100) {
capacityScaler = float64(*capacity) / 100
}
}
if capacity := cfg.CapacityScaler; capacity != nil {
// This case should not be possible since validateNewConfig checks
// it, but leave the default setting of 100% if capacity is less
// than 0 or greater than 100
if *capacity >= int32(0) && *capacity <= int32(100) {
capacityScaler = float64(*capacity) / 100
}
}
// Prefer the rate balancing mode if set
if cfg.Rate > 0 {
return compute.Backend{
Group: group,
BalancingMode: "RATE",
MaxRatePerEndpoint: cfg.Rate,
CapacityScaler: capacityScaler,
}
} else {
return compute.Backend{
Group: group,
BalancingMode: "CONNECTION",
MaxConnectionsPerEndpoint: int64(cfg.Connections),
CapacityScaler: capacityScaler,
}
}
}