| 78 | } |
| 79 | |
| 80 | func parseDropPolicy(dropPolicy *v3endpointpb.ClusterLoadAssignment_Policy_DropOverload) OverloadDropConfig { |
| 81 | percentage := dropPolicy.GetDropPercentage() |
| 82 | var ( |
| 83 | numerator = percentage.GetNumerator() |
| 84 | denominator uint32 |
| 85 | ) |
| 86 | switch percentage.GetDenominator() { |
| 87 | case v3typepb.FractionalPercent_HUNDRED: |
| 88 | denominator = 100 |
| 89 | case v3typepb.FractionalPercent_TEN_THOUSAND: |
| 90 | denominator = 10000 |
| 91 | case v3typepb.FractionalPercent_MILLION: |
| 92 | denominator = 1000000 |
| 93 | } |
| 94 | return OverloadDropConfig{ |
| 95 | Category: dropPolicy.GetCategory(), |
| 96 | Numerator: numerator, |
| 97 | Denominator: denominator, |
| 98 | } |
| 99 | } |
| 100 | |
| 101 | func parseEndpoints(lbEndpoints []*v3endpointpb.LbEndpoint, uniqueEndpointAddrs map[string]bool) ([]Endpoint, error) { |
| 102 | endpoints := make([]Endpoint, 0, len(lbEndpoints)) |