mirror of
https://github.com/projectcapsule/capsule.git
synced 2026-08-19 20:46:42 +00:00
* chore * perfromance improvements Signed-off-by: Oliver Baehler <oliver@sudo-i.net> * perfromance improvements Signed-off-by: Oliver Baehler <oliver@sudo-i.net> * feat(performance): removed duplicate client calls from all admission paths Signed-off-by: Oliver Baehler <oliver@sudo-i.net> * feat(performance): removed duplicate client calls from all admission paths Signed-off-by: Oliver Baehler <oliver@sudo-i.net> * feat(performance): removed duplicate client calls from all admission paths Signed-off-by: Oliver Baehler <oliver@sudo-i.net> * feat(performance): removed duplicate client calls from all admission paths Signed-off-by: Oliver Baehler <oliver@sudo-i.net> * feat(performance): removed duplicate client calls from all admission paths Signed-off-by: Oliver Baehler <oliver@sudo-i.net> * feat(performance): removed duplicate client calls from all admission paths Signed-off-by: Oliver Baehler <oliver@sudo-i.net> * feat(performance): removed duplicate client calls from all admission paths Signed-off-by: Oliver Baehler <oliver@sudo-i.net> --------- Signed-off-by: Oliver Baehler <oliver@sudo-i.net>
53 lines
1.0 KiB
Go
53 lines
1.0 KiB
Go
// Copyright 2020-2026 Project Capsule Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package v1beta2
|
|
|
|
func (c *CustomQuotaSpec) CollectJSONPathExpressions() (expressions []string) {
|
|
set := map[string]struct{}{}
|
|
|
|
for _, source := range c.Sources {
|
|
if source.Path != "" {
|
|
set[source.Path] = struct{}{}
|
|
}
|
|
|
|
for _, sel := range source.Selectors {
|
|
for _, fs := range sel.FieldSelectors {
|
|
if fs != "" {
|
|
set[fs] = struct{}{}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
for e := range set {
|
|
expressions = append(expressions, e)
|
|
}
|
|
|
|
return expressions
|
|
}
|
|
|
|
func (c *CustomQuotaSpec) CollectCELExpressions() (expressions []string) {
|
|
set := map[string]struct{}{}
|
|
|
|
for _, source := range c.Sources {
|
|
if source.CEL != "" {
|
|
set[source.CEL] = struct{}{}
|
|
}
|
|
|
|
for _, sel := range source.Selectors {
|
|
for _, expression := range sel.CELExpressions {
|
|
if expression != "" {
|
|
set[expression] = struct{}{}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
for expression := range set {
|
|
expressions = append(expressions, expression)
|
|
}
|
|
|
|
return expressions
|
|
}
|