package resolver import ( "context" "fmt" "slices" "edge-infra.dev/pkg/edge/api/graph/model" "edge-infra.dev/pkg/edge/api/utils" "edge-infra.dev/pkg/edge/capabilities" "edge-infra.dev/pkg/lib/uuid" v1ien "edge-infra.dev/pkg/sds/ien/k8s/apis/v1" ) func (r *Resolver) getTerminalCustomLabels(ctx context.Context, terminalID string) (map[string]string, error) { customLabels := make(map[string]string, 0) terminalLabels, err := r.TerminalLabelService.GetTerminalLabels(ctx, model.SearchTerminalLabelInput{ TerminalID: &terminalID, }) if err != nil { return customLabels, err } for _, terminalLabel := range terminalLabels { label, err := r.LabelService.GetLabel(ctx, terminalLabel.LabelEdgeID) if err != nil { return customLabels, err } labelDescription := uuid.FromUUID(terminalLabel.Label.Description).Hash() if err = utils.ValuesValidation([]string{labelDescription}); err != nil { return customLabels, err } // avoid prefixing labels automatically added by Edge key := label.Key if !slices.Contains(capabilities.EdgeAutomatedCapabilityLabelTypes, label.Type) { key = fmt.Sprintf(v1ien.CustomNodeLabel, label.Key) } customLabels[key] = labelDescription } return customLabels, nil }