errors/builder.go
628b9a41
 package errors
 
 // This file contains all of the errors that can be generated from the
 // docker/builder component.
 
 import (
 	"net/http"
 
 	"github.com/docker/distribution/registry/api/errcode"
 )
 
 var (
 	// ErrorCodeAtLeastOneArg is generated when the parser comes across a
 	// Dockerfile command that doesn't have any args.
 	ErrorCodeAtLeastOneArg = errcode.Register(errGroup, errcode.ErrorDescriptor{
 		Value:          "ATLEASTONEARG",
 		Message:        "%s requires at least one argument",
 		Description:    "The specified command requires at least one argument",
 		HTTPStatusCode: http.StatusInternalServerError,
 	})
 
 	// ErrorCodeExactlyOneArg is generated when the parser comes across a
 	// Dockerfile command that requires exactly one arg but got less/more.
 	ErrorCodeExactlyOneArg = errcode.Register(errGroup, errcode.ErrorDescriptor{
 		Value:          "EXACTLYONEARG",
 		Message:        "%s requires exactly one argument",
 		Description:    "The specified command requires exactly one argument",
 		HTTPStatusCode: http.StatusInternalServerError,
 	})
 
 	// ErrorCodeAtLeastTwoArgs is generated when the parser comes across a
 	// Dockerfile command that requires at least two args but got less.
 	ErrorCodeAtLeastTwoArgs = errcode.Register(errGroup, errcode.ErrorDescriptor{
 		Value:          "ATLEASTTWOARGS",
 		Message:        "%s requires at least two arguments",
 		Description:    "The specified command requires at least two arguments",
 		HTTPStatusCode: http.StatusInternalServerError,
 	})
 
 	// ErrorCodeTooManyArgs is generated when the parser comes across a
 	// Dockerfile command that has more args than it should
 	ErrorCodeTooManyArgs = errcode.Register(errGroup, errcode.ErrorDescriptor{
 		Value:          "TOOMANYARGS",
 		Message:        "Bad input to %s, too many args",
 		Description:    "The specified command was passed too many arguments",
 		HTTPStatusCode: http.StatusInternalServerError,
 	})
 
 	// ErrorCodeChainOnBuild is generated when the parser comes across a
 	// Dockerfile command that is trying to chain ONBUILD commands.
 	ErrorCodeChainOnBuild = errcode.Register(errGroup, errcode.ErrorDescriptor{
 		Value:          "CHAINONBUILD",
 		Message:        "Chaining ONBUILD via `ONBUILD ONBUILD` isn't allowed",
 		Description:    "ONBUILD Dockerfile commands aren't allow on ONBUILD commands",
 		HTTPStatusCode: http.StatusInternalServerError,
 	})
 
 	// ErrorCodeBadOnBuildCmd is generated when the parser comes across a
 	// an ONBUILD Dockerfile command with an invalid trigger/command.
 	ErrorCodeBadOnBuildCmd = errcode.Register(errGroup, errcode.ErrorDescriptor{
 		Value:          "BADONBUILDCMD",
 		Message:        "%s isn't allowed as an ONBUILD trigger",
 		Description:    "The specified ONBUILD command isn't allowed",
 		HTTPStatusCode: http.StatusInternalServerError,
 	})
 
 	// ErrorCodeMissingFrom is generated when the Dockerfile is missing
 	// a FROM command.
 	ErrorCodeMissingFrom = errcode.Register(errGroup, errcode.ErrorDescriptor{
 		Value:          "MISSINGFROM",
 		Message:        "Please provide a source image with `from` prior to run",
 		Description:    "The Dockerfile is missing a FROM command",
 		HTTPStatusCode: http.StatusInternalServerError,
 	})
 
 	// ErrorCodeNotOnWindows is generated when the specified Dockerfile
 	// command is not supported on Windows.
 	ErrorCodeNotOnWindows = errcode.Register(errGroup, errcode.ErrorDescriptor{
 		Value:          "NOTONWINDOWS",
 		Message:        "%s is not supported on Windows",
 		Description:    "The specified Dockerfile command is not supported on Windows",
 		HTTPStatusCode: http.StatusInternalServerError,
 	})
 
 	// ErrorCodeVolumeEmpty is generated when the specified Volume string
 	// is empty.
 	ErrorCodeVolumeEmpty = errcode.Register(errGroup, errcode.ErrorDescriptor{
 		Value:          "VOLUMEEMPTY",
 		Message:        "Volume specified can not be an empty string",
 		Description:    "The specified volume can not be an empty string",
 		HTTPStatusCode: http.StatusInternalServerError,
 	})
 )