diff --git a/container/view.go b/container/view.go index 13c7161852..f605b4f483 100644 --- a/container/view.go +++ b/container/view.go @@ -73,6 +73,17 @@ type memDB struct { store *memdb.MemDB } +// NoSuchContainerError indicates that the container wasn't found in the +// database. +type NoSuchContainerError struct { + id string +} + +// Error satisfies the error interface. +func (e NoSuchContainerError) Error() string { + return "no such container " + e.id +} + // NewViewDB provides the default implementation, with the default schema func NewViewDB() (ViewDB, error) { store, err := memdb.NewMemDB(schema) @@ -134,6 +145,9 @@ func (v *memdbView) Get(id string) (*Snapshot, error) { if err != nil { return nil, err } + if s == nil { + return nil, NoSuchContainerError{id: id} + } return v.transform(s.(*Container)), nil }