32 lines
		
	
	
		
			612 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			612 B
		
	
	
	
		
			Go
		
	
	
	
package state
 | 
						|
 | 
						|
import (
 | 
						|
	"fmt"
 | 
						|
)
 | 
						|
 | 
						|
const ReleaseErrorCodeFailure = 1
 | 
						|
 | 
						|
type ReleaseError struct {
 | 
						|
	*ReleaseSpec
 | 
						|
	err  error
 | 
						|
	Code int
 | 
						|
}
 | 
						|
 | 
						|
func (e *ReleaseError) Error() string {
 | 
						|
	return e.err.Error()
 | 
						|
}
 | 
						|
 | 
						|
func NewReleaseError(release *ReleaseSpec, err error, code int) *ReleaseError {
 | 
						|
	return &ReleaseError{
 | 
						|
		ReleaseSpec: release,
 | 
						|
		err:         err,
 | 
						|
		Code:        code,
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func newReleaseFailedError(release *ReleaseSpec, err error) *ReleaseError {
 | 
						|
	wrappedErr := fmt.Errorf("failed processing release %s: %v", release.Name, err.Error())
 | 
						|
 | 
						|
	return NewReleaseError(release, wrappedErr, ReleaseErrorCodeFailure)
 | 
						|
}
 |