github.com/helmwave/helmwave@v0.36.4-0.20240509190856-b35563eba4c6/pkg/release/errors.go (about)

     1  package release
     2  
     3  import (
     4  	"errors"
     5  	"fmt"
     6  
     7  	"github.com/helmwave/helmwave/pkg/release/uniqname"
     8  	"helm.sh/helm/v3/pkg/storage/driver"
     9  )
    10  
    11  var (
    12  	ErrNameEmpty = errors.New("release name is empty")
    13  
    14  	// ErrPendingRelease is an error for fail strategy that release is in pending status.
    15  	ErrPendingRelease = errors.New("release is in pending status")
    16  
    17  	// ErrValuesNotExist is returned when values can't be used and are skipped.
    18  	ErrValuesNotExist = errors.New("values file doesn't exist")
    19  
    20  	// ErrNotFound is an error for not found release.
    21  	ErrNotFound = driver.ErrReleaseNotFound
    22  
    23  	// ErrFoundMultiple is an error for multiple releases found by name.
    24  	ErrFoundMultiple = errors.New("found multiple releases o_0")
    25  
    26  	// ErrDepFailed is an error thrown when dependency release fails.
    27  	ErrDepFailed = errors.New("dependency failed")
    28  
    29  	ErrUnknownFormat = errors.New("unknown format")
    30  
    31  	ErrDigestNotMatch = errors.New("chart digest doesn't match")
    32  )
    33  
    34  type DuplicateError struct {
    35  	Uniq uniqname.UniqName
    36  }
    37  
    38  func NewDuplicateError(uniq uniqname.UniqName) error {
    39  	return &DuplicateError{Uniq: uniq}
    40  }
    41  
    42  func (err DuplicateError) Error() string {
    43  	return fmt.Sprintf("release duplicate: %s", err.Uniq.String())
    44  }
    45  
    46  type InvalidNamespaceError struct {
    47  	Namespace string
    48  }
    49  
    50  func NewInvalidNamespaceError(namespace string) error {
    51  	return &InvalidNamespaceError{Namespace: namespace}
    52  }
    53  
    54  func (err InvalidNamespaceError) Error() string {
    55  	return fmt.Sprintf("invalid namespace: %s", err.Namespace)
    56  }
    57  
    58  type YAMLDecodeDependsOnError struct {
    59  	Err       error
    60  	DependsOn string
    61  }
    62  
    63  func NewYAMLDecodeDependsOnError(dependsOn string, err error) error {
    64  	return &YAMLDecodeDependsOnError{DependsOn: dependsOn, Err: err}
    65  }
    66  
    67  func (err YAMLDecodeDependsOnError) Error() string {
    68  	return fmt.Sprintf("failed to decode depends_on reference %q from YAML: %s", err.DependsOn, err.Err)
    69  }
    70  
    71  func (err YAMLDecodeDependsOnError) Unwrap() error {
    72  	return err.Err
    73  }
    74  
    75  type ChartCacheError struct {
    76  	Err error
    77  }
    78  
    79  func NewChartCacheError(err error) error {
    80  	return &ChartCacheError{Err: err}
    81  }
    82  
    83  func (err ChartCacheError) Error() string {
    84  	return fmt.Sprintf("failed to find chart in helm cache: %s", err.Err)
    85  }
    86  
    87  func (err ChartCacheError) Unwrap() error {
    88  	return err.Err
    89  }
    90  
    91  type HelmTestsError struct {
    92  	Err error
    93  }
    94  
    95  func NewHelmTestsError(err error) error {
    96  	return &HelmTestsError{Err: err}
    97  }
    98  
    99  func (err HelmTestsError) Error() string {
   100  	return fmt.Sprintf("helm tests failed: %s", err.Err)
   101  }
   102  
   103  func (err HelmTestsError) Unwrap() error {
   104  	return err.Err
   105  }