-
Notifications
You must be signed in to change notification settings - Fork 137
/
capability.go
26 lines (20 loc) · 908 Bytes
/
capability.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package activegate
import dynatracev1beta1 "github.com/Dynatrace/dynatrace-operator/pkg/api/v1beta1/dynakube"
func SwitchCapability(instance *dynatracev1beta1.DynaKube, capability dynatracev1beta1.ActiveGateCapability, wantEnabled bool) {
hasEnabled := instance.IsActiveGateMode(capability.DisplayName)
capabilities := &instance.Spec.ActiveGate.Capabilities
if wantEnabled && !hasEnabled {
*capabilities = append(*capabilities, capability.DisplayName)
}
if !wantEnabled && hasEnabled {
*capabilities = removeCapability(*capabilities, capability.DisplayName)
}
}
func removeCapability(capabilities []dynatracev1beta1.CapabilityDisplayName, removeMe dynatracev1beta1.CapabilityDisplayName) []dynatracev1beta1.CapabilityDisplayName {
for i, capability := range capabilities {
if capability == removeMe {
return append(capabilities[:i], capabilities[i+1:]...)
}
}
return capabilities
}