Add test for container as gc root
Signed-off-by: Derek McGowan <derek@mcgstyle.net>
This commit is contained in:
parent
2b1c915f82
commit
92d40b9a2d
@ -26,6 +26,8 @@ func TestGCRoots(t *testing.T) {
|
||||
alters := []alterFunc{
|
||||
addImage("ns1", "image1", dgst(1), nil),
|
||||
addImage("ns1", "image2", dgst(2), labelmap(string(labelGCSnapRef)+"overlay", "sn2")),
|
||||
addContainer("ns1", "container1", "overlay", "sn4", nil),
|
||||
addContainer("ns1", "container2", "overlay", "sn5", labelmap(string(labelGCSnapRef)+"overlay", "sn6")),
|
||||
addContent("ns1", dgst(1), nil),
|
||||
addContent("ns1", dgst(2), nil),
|
||||
addContent("ns1", dgst(3), nil),
|
||||
@ -34,6 +36,9 @@ func TestGCRoots(t *testing.T) {
|
||||
addSnapshot("ns1", "overlay", "sn1", "", nil),
|
||||
addSnapshot("ns1", "overlay", "sn2", "", nil),
|
||||
addSnapshot("ns1", "overlay", "sn3", "", labelmap(string(labelGCRoot), "always")),
|
||||
addSnapshot("ns1", "overlay", "sn4", "", nil),
|
||||
addSnapshot("ns1", "overlay", "sn5", "", nil),
|
||||
addSnapshot("ns1", "overlay", "sn6", "", nil),
|
||||
addLeaseSnapshot("ns2", "l1", "overlay", "sn5"),
|
||||
addLeaseSnapshot("ns2", "l2", "overlay", "sn6"),
|
||||
addLeaseContent("ns2", "l1", dgst(4)),
|
||||
@ -48,6 +53,9 @@ func TestGCRoots(t *testing.T) {
|
||||
gcnode(ResourceContent, "ns2", dgst(5).String()),
|
||||
gcnode(ResourceSnapshot, "ns1", "overlay/sn2"),
|
||||
gcnode(ResourceSnapshot, "ns1", "overlay/sn3"),
|
||||
gcnode(ResourceSnapshot, "ns1", "overlay/sn4"),
|
||||
gcnode(ResourceSnapshot, "ns1", "overlay/sn5"),
|
||||
gcnode(ResourceSnapshot, "ns1", "overlay/sn6"),
|
||||
gcnode(ResourceSnapshot, "ns2", "overlay/sn5"),
|
||||
gcnode(ResourceSnapshot, "ns2", "overlay/sn6"),
|
||||
}
|
||||
@ -84,6 +92,7 @@ func TestGCRemove(t *testing.T) {
|
||||
alters := []alterFunc{
|
||||
addImage("ns1", "image1", dgst(1), nil),
|
||||
addImage("ns1", "image2", dgst(2), labelmap(string(labelGCSnapRef)+"overlay", "sn2")),
|
||||
addContainer("ns1", "container1", "overlay", "sn4", nil),
|
||||
addContent("ns1", dgst(1), nil),
|
||||
addContent("ns1", dgst(2), nil),
|
||||
addContent("ns1", dgst(3), nil),
|
||||
@ -92,6 +101,7 @@ func TestGCRemove(t *testing.T) {
|
||||
addSnapshot("ns1", "overlay", "sn1", "", nil),
|
||||
addSnapshot("ns1", "overlay", "sn2", "", nil),
|
||||
addSnapshot("ns1", "overlay", "sn3", "", labelmap(string(labelGCRoot), "always")),
|
||||
addSnapshot("ns1", "overlay", "sn4", "", nil),
|
||||
addSnapshot("ns2", "overlay", "sn1", "", nil),
|
||||
}
|
||||
|
||||
@ -104,6 +114,7 @@ func TestGCRemove(t *testing.T) {
|
||||
gcnode(ResourceSnapshot, "ns1", "overlay/sn1"),
|
||||
gcnode(ResourceSnapshot, "ns1", "overlay/sn2"),
|
||||
gcnode(ResourceSnapshot, "ns1", "overlay/sn3"),
|
||||
gcnode(ResourceSnapshot, "ns1", "overlay/sn4"),
|
||||
gcnode(ResourceSnapshot, "ns2", "overlay/sn1"),
|
||||
}
|
||||
|
||||
@ -402,6 +413,22 @@ func addLeaseContent(ns, lid string, dgst digest.Digest) alterFunc {
|
||||
}
|
||||
}
|
||||
|
||||
func addContainer(ns, name, snapshotter, snapshot string, labels map[string]string) alterFunc {
|
||||
return func(bkt *bolt.Bucket) error {
|
||||
cbkt, err := createBuckets(bkt, ns, string(bucketKeyObjectContainers), name)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if err := cbkt.Put(bucketKeySnapshotter, []byte(snapshotter)); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := cbkt.Put(bucketKeySnapshotKey, []byte(snapshot)); err != nil {
|
||||
return err
|
||||
}
|
||||
return boltutil.WriteLabels(cbkt, labels)
|
||||
}
|
||||
}
|
||||
|
||||
func createBuckets(bkt *bolt.Bucket, names ...string) (*bolt.Bucket, error) {
|
||||
for _, name := range names {
|
||||
nbkt, err := bkt.CreateBucketIfNotExists([]byte(name))
|
||||
|
Loading…
Reference in New Issue
Block a user