...

Source file src/edge-infra.dev/pkg/edge/api/graph/resolver/terminal_labels_orchestration.go

Documentation: edge-infra.dev/pkg/edge/api/graph/resolver

     1  package resolver
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  	"slices"
     7  
     8  	"edge-infra.dev/pkg/edge/api/graph/model"
     9  	"edge-infra.dev/pkg/edge/api/utils"
    10  	"edge-infra.dev/pkg/edge/capabilities"
    11  	"edge-infra.dev/pkg/lib/uuid"
    12  	v1ien "edge-infra.dev/pkg/sds/ien/k8s/apis/v1"
    13  )
    14  
    15  func (r *Resolver) getTerminalCustomLabels(ctx context.Context, terminalID string) (map[string]string, error) {
    16  	customLabels := make(map[string]string, 0)
    17  	terminalLabels, err := r.TerminalLabelService.GetTerminalLabels(ctx, model.SearchTerminalLabelInput{
    18  		TerminalID: &terminalID,
    19  	})
    20  	if err != nil {
    21  		return customLabels, err
    22  	}
    23  	for _, terminalLabel := range terminalLabels {
    24  		label, err := r.LabelService.GetLabel(ctx, terminalLabel.LabelEdgeID)
    25  		if err != nil {
    26  			return customLabels, err
    27  		}
    28  		labelDescription := uuid.FromUUID(terminalLabel.Label.Description).Hash()
    29  		if err = utils.ValuesValidation([]string{labelDescription}); err != nil {
    30  			return customLabels, err
    31  		}
    32  
    33  		// avoid prefixing labels automatically added by Edge
    34  		key := label.Key
    35  		if !slices.Contains(capabilities.EdgeAutomatedCapabilityLabelTypes, label.Type) {
    36  			key = fmt.Sprintf(v1ien.CustomNodeLabel, label.Key)
    37  		}
    38  		customLabels[key] = labelDescription
    39  	}
    40  	return customLabels, nil
    41  }
    42  

View as plain text