...

Source file src/sigs.k8s.io/cli-utils/pkg/object/graph/error.go

Documentation: sigs.k8s.io/cli-utils/pkg/object/graph

     1  // Copyright 2022 The Kubernetes Authors.
     2  // SPDX-License-Identifier: Apache-2.0
     3  
     4  package graph
     5  
     6  import (
     7  	"bytes"
     8  	"fmt"
     9  
    10  	"sigs.k8s.io/cli-utils/pkg/multierror"
    11  	"sigs.k8s.io/cli-utils/pkg/object/mutation"
    12  )
    13  
    14  // ExternalDependencyError represents an invalid graph edge caused by an
    15  // object that is not in the object set.
    16  type ExternalDependencyError struct {
    17  	Edge Edge
    18  }
    19  
    20  func (ede ExternalDependencyError) Error() string {
    21  	return fmt.Sprintf("external dependency: %s -> %s",
    22  		mutation.ResourceReferenceFromObjMetadata(ede.Edge.From),
    23  		mutation.ResourceReferenceFromObjMetadata(ede.Edge.To))
    24  }
    25  
    26  // CyclicDependencyError represents a cycle in the graph, making topological
    27  // sort impossible.
    28  type CyclicDependencyError struct {
    29  	Edges []Edge
    30  }
    31  
    32  func (cde CyclicDependencyError) Error() string {
    33  	var errorBuf bytes.Buffer
    34  	errorBuf.WriteString("cyclic dependency:")
    35  	for _, edge := range cde.Edges {
    36  		errorBuf.WriteString(fmt.Sprintf("\n%s%s -> %s", multierror.Prefix,
    37  			mutation.ResourceReferenceFromObjMetadata(edge.From),
    38  			mutation.ResourceReferenceFromObjMetadata(edge.To)))
    39  	}
    40  	return errorBuf.String()
    41  }
    42  
    43  // DuplicateDependencyError represents an invalid depends-on annotation with
    44  // duplicate references.
    45  type DuplicateDependencyError struct {
    46  	Edge Edge
    47  }
    48  
    49  func (dde DuplicateDependencyError) Error() string {
    50  	return fmt.Sprintf("duplicate dependency: %s -> %s",
    51  		mutation.ResourceReferenceFromObjMetadata(dde.Edge.From),
    52  		mutation.ResourceReferenceFromObjMetadata(dde.Edge.To))
    53  }
    54  

View as plain text