go-ceph/cephfs/admin/subvolumegroup_test.go
John Mulligan 55821a9300 cephfs admin: remove subvolumegroup snapshot support
Apparently, this feature is being removed from all active ceph versions
and will not be present in future versions. Since we won't be able to
test it any more, and the api is provisional still, we just remove it
entirely.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2020-10-27 10:06:16 -04:00

122 lines
2.9 KiB
Go

// +build !luminous,!mimic
package admin
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestCreateSubVolumeGroup(t *testing.T) {
fsa := getFSAdmin(t)
volume := "cephfs"
created := []string{}
defer func() {
for _, name := range created {
err := fsa.RemoveSubVolumeGroup(volume, name)
assert.NoError(t, err)
}
}()
t.Run("simple", func(t *testing.T) {
svgroup := "svg1"
err := fsa.CreateSubVolumeGroup(volume, svgroup, nil)
assert.NoError(t, err)
created = append(created, svgroup)
lsvg, err := fsa.ListSubVolumeGroups(volume)
assert.NoError(t, err)
assert.GreaterOrEqual(t, len(lsvg), 1)
assert.Contains(t, lsvg, svgroup)
})
t.Run("options1", func(t *testing.T) {
svgroup := "svg2"
err := fsa.CreateSubVolumeGroup(volume, svgroup, &SubVolumeGroupOptions{
Mode: 0777,
})
assert.NoError(t, err)
created = append(created, svgroup)
lsvg, err := fsa.ListSubVolumeGroups(volume)
assert.NoError(t, err)
assert.GreaterOrEqual(t, len(lsvg), 1)
assert.Contains(t, lsvg, svgroup)
})
t.Run("options2", func(t *testing.T) {
svgroup := "anotherSVG"
err := fsa.CreateSubVolumeGroup(volume, svgroup, &SubVolumeGroupOptions{
Uid: 200,
Gid: 200,
Mode: 0771,
// TODO: test pool_layout... I think its a pool name
})
assert.NoError(t, err)
created = append(created, svgroup)
lsvg, err := fsa.ListSubVolumeGroups(volume)
assert.NoError(t, err)
assert.GreaterOrEqual(t, len(lsvg), 1)
assert.Contains(t, lsvg, svgroup)
})
}
func TestRemoveSubVolumeGroup(t *testing.T) {
fsa := getFSAdmin(t)
volume := "cephfs"
lsvg, err := fsa.ListSubVolumeGroups(volume)
assert.NoError(t, err)
beforeCount := len(lsvg)
removeTest := func(t *testing.T, rm func(string, string) error) {
err = fsa.CreateSubVolumeGroup(volume, "deleteme1", nil)
assert.NoError(t, err)
lsvg, err = fsa.ListSubVolumeGroups(volume)
assert.NoError(t, err)
afterCount := len(lsvg)
assert.Equal(t, beforeCount, afterCount-1)
err = rm(volume, "deleteme1")
assert.NoError(t, err)
lsvg, err = fsa.ListSubVolumeGroups(volume)
assert.NoError(t, err)
nowCount := len(lsvg)
assert.Equal(t, beforeCount, nowCount)
}
t.Run("standard", func(t *testing.T) {
removeTest(t, fsa.RemoveSubVolumeGroup)
})
t.Run("force", func(t *testing.T) {
removeTest(t, fsa.ForceRemoveSubVolumeGroup)
})
}
func TestSubVolumeGroupPath(t *testing.T) {
fsa := getFSAdmin(t)
volume := "cephfs"
group := "grewp"
err := fsa.CreateSubVolumeGroup(volume, group, nil)
assert.NoError(t, err)
defer func() {
err := fsa.RemoveSubVolumeGroup(volume, group)
assert.NoError(t, err)
}()
path, err := fsa.SubVolumeGroupPath(volume, group)
assert.NoError(t, err)
assert.Contains(t, path, "/volumes/"+group)
assert.NotContains(t, path, "\n")
// invalid group name
path, err = fsa.SubVolumeGroupPath(volume, "oops")
assert.Error(t, err)
assert.Equal(t, "", path)
}