pkg: truncindex: provide more info in error

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
This commit is contained in:
Antonio Murdaca 2016-03-17 15:53:12 +01:00
parent a4b96d76f7
commit 0726d285f8

View file

@ -16,10 +16,6 @@ var (
// ErrEmptyPrefix is an error returned if the prefix was empty. // ErrEmptyPrefix is an error returned if the prefix was empty.
ErrEmptyPrefix = errors.New("Prefix can't be empty") ErrEmptyPrefix = errors.New("Prefix can't be empty")
// ErrAmbiguousPrefix is returned if the prefix was ambiguous
// (multiple ids for the prefix).
ErrAmbiguousPrefix = errors.New("Multiple IDs found with provided prefix")
// ErrIllegalChar is returned when a space is in the ID // ErrIllegalChar is returned when a space is in the ID
ErrIllegalChar = errors.New("illegal character: ' '") ErrIllegalChar = errors.New("illegal character: ' '")
@ -27,6 +23,16 @@ var (
ErrNotExist = errors.New("ID does not exist") ErrNotExist = errors.New("ID does not exist")
) )
// ErrAmbiguousPrefix is returned if the prefix was ambiguous
// (multiple ids for the prefix).
type ErrAmbiguousPrefix struct {
prefix string
}
func (e ErrAmbiguousPrefix) Error() string {
return fmt.Sprintf("Multiple IDs found with provided prefix: %s", e.prefix)
}
// TruncIndex allows the retrieval of string identifiers by any of their unique prefixes. // TruncIndex allows the retrieval of string identifiers by any of their unique prefixes.
// This is used to retrieve image and container IDs by more convenient shorthand prefixes. // This is used to retrieve image and container IDs by more convenient shorthand prefixes.
type TruncIndex struct { type TruncIndex struct {
@ -105,7 +111,7 @@ func (idx *TruncIndex) Get(s string) (string, error) {
if id != "" { if id != "" {
// we haven't found the ID if there are two or more IDs // we haven't found the ID if there are two or more IDs
id = "" id = ""
return ErrAmbiguousPrefix return ErrAmbiguousPrefix{prefix: string(prefix)}
} }
id = string(prefix) id = string(prefix)
return nil return nil