agent/taskengine/taskerrors/error.go (153 lines of code) (raw):

package taskerrors import ( "fmt" "strconv" ) // ErrorCode defines and MUST contain all error codes that will be reported // as failure type ErrorCode int const ( // Positive value is reserved for syscall errno on *nix and API error code // on Windows wrapErrGetScriptPathFailed ErrorCode = -(1 + iota) wrapErrUnknownCommandType WrapErrBase64DecodeFailed wrapErrSaveScriptFileFailed wrapErrSetExecutablePermissionFailed wrapErrSetWindowsPermissionFailed WrapErrExecuteScriptFailed wrapErrNoEnoughSpace wrapErrScriptFileExisted wrapErrPowershellNotFound wrapErrSystemDefaultShellNotFound WrapErrResolveEnvironmentParameterFailed WrapGeneralError wrapErrConnectContainerRuntimeFailed wrapErrNoAvailableContainerRuntime wrapErrContainerRuntimeInternalFailed wrapErrContainerNotFoundById wrapErrManyContainersFoundById wrapErrContainerNotRunning WrapErrCreatePipeFailed // Deprecated, replaced by WrapErrInitOutputBufFailed WrapErrCreateProcessCollectionFailed WrapCommanderError wrapErrLauncherNotFound wrapErrPluginLoadFailed WrapErrServerResponseError // Backend server Response errorCode for api task/xxx WrapErrInitOutputBufFailed ) func (c ErrorCode) String() string { return strconv.Itoa(int(c)) } type baseError struct { categoryCode ErrorCode category string Description string cause error } func (e *baseError) Unwrap() error { return e.cause } func NewGetScriptPathError(cause error) ExecutionError { return &baseError{ categoryCode: wrapErrGetScriptPathFailed, category: "GetScriptPathFailed", cause: cause, } } func NewUnknownCommandTypeError() ExecutionError { return &baseError{ categoryCode: wrapErrUnknownCommandType, category: "UnknownCommandType", cause: nil, } } func NewScriptFileExistedError(savePath string, cause error) ExecutionError { return &baseError{ categoryCode: wrapErrScriptFileExisted, category: "ScriptFileExisted", Description: fmt.Sprintf("Saving script to %s failed", savePath), cause: cause, } } func NewSaveScriptFileError(cause error) ExecutionError { return &baseError{ categoryCode: wrapErrSaveScriptFileFailed, category: "SaveScriptFileFailed", cause: cause, } } func NewSetExecutablePermissionError(cause error) ExecutionError { return &baseError{ categoryCode: wrapErrSetExecutablePermissionFailed, category: "SetExecutablePermissionFailed", Description: "Failed to set executable permission of shell script", cause: cause, } } func NewExecuteScriptError(cause error) ExecutionError { return &baseError{ categoryCode: WrapErrExecuteScriptFailed, category: "ExecuteScriptFailed", cause: cause, } } func NewSetWindowsPermissionError(cause error) ExecutionError { return &baseError{ categoryCode: wrapErrSetWindowsPermissionFailed, category: "SetWindowsPermissionFailed", Description: "Failed to set permission of script on Windows", cause: cause, } } func NewSystemDefaultShellNotFoundError(cause error) ExecutionError { return &baseError{ categoryCode: wrapErrSystemDefaultShellNotFound, category: "SystemDefaultShellNotFound", cause: cause, } } func NewPowershellNotFoundError(cause error) ExecutionError { return &baseError{ categoryCode: wrapErrPowershellNotFound, category: "PowershellNotFound", cause: cause, } } func NewResolvingInstanceNameError(cause error) ExecutionError { return &baseError{ categoryCode: WrapErrResolveEnvironmentParameterFailed, category: "ResolvingInstanceNameFailed", cause: cause, } } func NewCreateProcessCollectionError(cause error) ExecutionError { return &baseError{ categoryCode: WrapGeneralError, category: "CreateProcessCollectionFailed", cause: cause, } } func NewInitOutputBufError(cause error) ExecutionError { return &baseError{ categoryCode: WrapErrInitOutputBufFailed, category: "InitOutputBufFailed", cause: cause, } } func NewLauncherNotFoundError(cause error) ExecutionError { return &baseError{ categoryCode: wrapErrLauncherNotFound, category: "LauncherNotFound", cause: cause, } } func NewServerResponseError(cause error) ExecutionError { return &baseError{ categoryCode: WrapErrServerResponseError, category: "ServerResponseError", } } func NewPluginLoadFailedError(cause error) ExecutionError { return &baseError{ categoryCode: wrapErrPluginLoadFailed, category: "PluginLoadFailed", cause: cause, } }