mirror of
https://github.com/grafana/grafana.git
synced 2025-07-30 13:22:17 +08:00
55 lines
2.4 KiB
Go
55 lines
2.4 KiB
Go
// SPDX-License-Identifier: AGPL-3.0-only
|
|
// Provenance-includes-location: https://github.com/kubernetes/kube-aggregator/blob/master/pkg/apis/apiregistration/v1/helper/helpers.go
|
|
// Provenance-includes-license: Apache-2.0
|
|
// Provenance-includes-copyright: The Kubernetes Authors.
|
|
|
|
package helper
|
|
|
|
import (
|
|
"strings"
|
|
|
|
v0alpha1 "github.com/grafana/grafana/pkg/aggregator/apis/aggregation/v0alpha1"
|
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
|
)
|
|
|
|
// DataPlaneServiceNameToGroupVersion returns the GroupVersion for a given dataplaneServiceNam. The name
|
|
// must be valid, but any object you get back from an informer will be valid.
|
|
func DataPlaneServiceNameToGroupVersion(dataplaneServiceName string) schema.GroupVersion {
|
|
tokens := strings.SplitN(dataplaneServiceName, ".", 2)
|
|
return schema.GroupVersion{Group: tokens[1], Version: tokens[0]}
|
|
}
|
|
|
|
// SetDataPlaneServiceCondition sets the status condition. It either overwrites the existing one or
|
|
// creates a new one
|
|
func SetDataPlaneServiceCondition(dataplaneService *v0alpha1.DataPlaneService, newCondition v0alpha1.DataPlaneServiceCondition) {
|
|
existingCondition := GetDataPlaneServiceConditionByType(dataplaneService, newCondition.Type)
|
|
if existingCondition == nil {
|
|
dataplaneService.Status.Conditions = append(dataplaneService.Status.Conditions, newCondition)
|
|
return
|
|
}
|
|
|
|
if existingCondition.Status != newCondition.Status {
|
|
existingCondition.Status = newCondition.Status
|
|
existingCondition.LastTransitionTime = newCondition.LastTransitionTime
|
|
}
|
|
|
|
existingCondition.Reason = newCondition.Reason
|
|
existingCondition.Message = newCondition.Message
|
|
}
|
|
|
|
// IsDataPlaneServiceConditionTrue indicates if the condition is present and strictly true
|
|
func IsDataPlaneServiceConditionTrue(dataplaneService *v0alpha1.DataPlaneService, conditionType v0alpha1.DataPlaneServiceConditionType) bool {
|
|
condition := GetDataPlaneServiceConditionByType(dataplaneService, conditionType)
|
|
return condition != nil && condition.Status == v0alpha1.ConditionTrue
|
|
}
|
|
|
|
// GetDataPlaneServiceConditionByType gets an *DataPlaneServiceCondition by DataPlaneServiceConditionType if present
|
|
func GetDataPlaneServiceConditionByType(dataplaneService *v0alpha1.DataPlaneService, conditionType v0alpha1.DataPlaneServiceConditionType) *v0alpha1.DataPlaneServiceCondition {
|
|
for i := range dataplaneService.Status.Conditions {
|
|
if dataplaneService.Status.Conditions[i].Type == conditionType {
|
|
return &dataplaneService.Status.Conditions[i]
|
|
}
|
|
}
|
|
return nil
|
|
}
|