From 837181cb942bc32515c741fdbb0b70440927695e Mon Sep 17 00:00:00 2001 From: Daniel Swarbrick Date: Mon, 17 Sep 2018 23:07:18 +0200 Subject: [PATCH] Add unit test for rbd_trash functionality Signed-off-by: Daniel Swarbrick --- rbd/rbd_test.go | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/rbd/rbd_test.go b/rbd/rbd_test.go index 18f6121..6161b39 100644 --- a/rbd/rbd_test.go +++ b/rbd/rbd_test.go @@ -9,6 +9,7 @@ import ( "os/exec" "sort" "testing" + "time" ) //Rdb feature @@ -316,3 +317,45 @@ func TestNotFound(t *testing.T) { conn.DeletePool(poolname) conn.Shutdown() } + +func TestTrashImage(t *testing.T) { + conn, _ := rados.NewConn() + conn.ReadDefaultConfigFile() + conn.Connect() + + poolname := GetUUID() + err := conn.MakePool(poolname) + assert.NoError(t, err) + + ioctx, err := conn.OpenIOContext(poolname) + assert.NoError(t, err) + + name := GetUUID() + image, err := rbd.Create(ioctx, name, 1<<22, 22) + assert.NoError(t, err) + + err = image.Trash(time.Hour) + assert.NoError(t, err) + + trashList, err := rbd.GetTrashList(ioctx) + assert.NoError(t, err) + assert.Equal(t, len(trashList), 1, "trashList length equal") + + err = rbd.TrashRestore(ioctx, trashList[0].Id, name+"_restored") + assert.NoError(t, err) + + image2 := rbd.GetImage(ioctx, name+"_restored") + err = image2.Trash(time.Hour) + assert.NoError(t, err) + + trashList, err = rbd.GetTrashList(ioctx) + assert.NoError(t, err) + assert.Equal(t, len(trashList), 1, "trashList length equal") + + err = rbd.TrashRemove(ioctx, trashList[0].Id, false) + assert.NoError(t, err) + + ioctx.Destroy() + conn.DeletePool(poolname) + conn.Shutdown() +}