mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
container: Handle failed memdb lookups
If a container doesn't exist in the memdb, First will return nil, not an error. This should be checked for before using the result. Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
This commit is contained in:
parent
56ad9bb1b4
commit
c26b0cdfd1
1 changed files with 14 additions and 0 deletions
|
@ -73,6 +73,17 @@ type memDB struct {
|
||||||
store *memdb.MemDB
|
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
|
// NewViewDB provides the default implementation, with the default schema
|
||||||
func NewViewDB() (ViewDB, error) {
|
func NewViewDB() (ViewDB, error) {
|
||||||
store, err := memdb.NewMemDB(schema)
|
store, err := memdb.NewMemDB(schema)
|
||||||
|
@ -134,6 +145,9 @@ func (v *memdbView) Get(id string) (*Snapshot, error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
if s == nil {
|
||||||
|
return nil, NoSuchContainerError{id: id}
|
||||||
|
}
|
||||||
return v.transform(s.(*Container)), nil
|
return v.transform(s.(*Container)), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue