mirror of
https://github.com/aptly-dev/aptly.git
synced 2026-06-04 05:10:40 +00:00
Snapshot dropping.
This commit is contained in:
Vendored
+26
@@ -224,3 +224,29 @@ func (collection *SnapshotCollection) ForEach(handler func(*Snapshot) error) err
|
|||||||
func (collection *SnapshotCollection) Len() int {
|
func (collection *SnapshotCollection) Len() int {
|
||||||
return len(collection.list)
|
return len(collection.list)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Drop removes snapshot from collection
|
||||||
|
func (collection *SnapshotCollection) Drop(snapshot *Snapshot) error {
|
||||||
|
snapshotPosition := -1
|
||||||
|
|
||||||
|
for i, s := range collection.list {
|
||||||
|
if s == snapshot {
|
||||||
|
snapshotPosition = i
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if snapshotPosition == -1 {
|
||||||
|
panic("snapshot not found!")
|
||||||
|
}
|
||||||
|
|
||||||
|
collection.list[len(collection.list)-1], collection.list[snapshotPosition], collection.list =
|
||||||
|
nil, collection.list[len(collection.list)-1], collection.list[:len(collection.list)-1]
|
||||||
|
|
||||||
|
err := collection.db.Delete(snapshot.Key())
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return collection.db.Delete(snapshot.RefKey())
|
||||||
|
}
|
||||||
|
|||||||
Vendored
+21
@@ -170,3 +170,24 @@ func (s *SnapshotCollectionSuite) TestFindByRemoteRepoSource(c *C) {
|
|||||||
|
|
||||||
c.Check(s.collection.ByRemoteRepoSource(repo3), DeepEquals, []*Snapshot{})
|
c.Check(s.collection.ByRemoteRepoSource(repo3), DeepEquals, []*Snapshot{})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *SnapshotCollectionSuite) TestDrop(c *C) {
|
||||||
|
s.collection.Add(s.snapshot1)
|
||||||
|
s.collection.Add(s.snapshot2)
|
||||||
|
|
||||||
|
snap, _ := s.collection.ByUUID(s.snapshot1.UUID)
|
||||||
|
c.Check(snap, Equals, s.snapshot1)
|
||||||
|
|
||||||
|
err := s.collection.Drop(s.snapshot1)
|
||||||
|
c.Check(err, IsNil)
|
||||||
|
|
||||||
|
_, err = s.collection.ByUUID(s.snapshot1.UUID)
|
||||||
|
c.Check(err, ErrorMatches, "snapshot .* not found")
|
||||||
|
|
||||||
|
collection := NewSnapshotCollection(s.db)
|
||||||
|
|
||||||
|
_, err = collection.ByUUID(s.snapshot1.UUID)
|
||||||
|
c.Check(err, ErrorMatches, "snapshot .* not found")
|
||||||
|
|
||||||
|
c.Check(func() { s.collection.Drop(s.snapshot1) }, Panics, "snapshot not found!")
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user