diff --git a/deb/local.go b/deb/local.go index f7f89999..2a15c734 100644 --- a/deb/local.go +++ b/deb/local.go @@ -237,12 +237,13 @@ func (collection *LocalRepoCollection) Len() int { // Drop removes remote repo from collection func (collection *LocalRepoCollection) Drop(repo *LocalRepo) error { - transaction, err := collection.db.OpenTransaction() - if err != nil { + if _, err := collection.db.Get(repo.Key()); err != nil { + if err == database.ErrNotFound { + return errors.New("local repo not found") + } + return err } - defer transaction.Discard() - delete(collection.cache, repo.UUID) batch := collection.db.CreateBatch() diff --git a/deb/local_test.go b/deb/local_test.go index 80087edb..c9072b7d 100644 --- a/deb/local_test.go +++ b/deb/local_test.go @@ -201,3 +201,13 @@ func (s *LocalRepoCollectionSuite) TestDrop(c *C) { c.Check(s.collection.Drop(repo1), ErrorMatches, "local repo not found") } + +func (s *LocalRepoCollectionSuite) TestDropNonExisting(c *C) { + repo := NewLocalRepo("local3", "Comment 3") + + _, err := s.collection.ByUUID(repo.UUID) + c.Check(err, ErrorMatches, "local repo .* not found") + + err = s.collection.Drop(repo) + c.Check(s.collection.Drop(repo), ErrorMatches, "local repo not found") +} diff --git a/deb/remote.go b/deb/remote.go index 8164b0a2..6d30e999 100644 --- a/deb/remote.go +++ b/deb/remote.go @@ -898,13 +898,7 @@ func (collection *RemoteRepoCollection) Len() int { // Drop removes remote repo from collection func (collection *RemoteRepoCollection) Drop(repo *RemoteRepo) error { - transaction, err := collection.db.OpenTransaction() - if err != nil { - return err - } - defer transaction.Discard() - - if _, err = transaction.Get(repo.Key()); err != nil { + if _, err := collection.db.Get(repo.Key()); err != nil { if err == database.ErrNotFound { return errors.New("repo not found") } diff --git a/deb/snapshot.go b/deb/snapshot.go index 657999db..f351b87f 100644 --- a/deb/snapshot.go +++ b/deb/snapshot.go @@ -389,13 +389,7 @@ func (collection *SnapshotCollection) Len() int { // Drop removes snapshot from collection func (collection *SnapshotCollection) Drop(snapshot *Snapshot) error { - transaction, err := collection.db.OpenTransaction() - if err != nil { - return err - } - defer transaction.Discard() - - if _, err = transaction.Get(snapshot.Key()); err != nil { + if _, err := collection.db.Get(snapshot.Key()); err != nil { if err == database.ErrNotFound { return errors.New("snapshot not found") }