Skip to content

Commit 96c6345

Browse files
xxx: admin_test.go fixes
Signed-off-by: John Mulligan <[email protected]>
1 parent 5d2b819 commit 96c6345

File tree

1 file changed

+42
-13
lines changed

1 file changed

+42
-13
lines changed

common/admin/smb/admin_test.go

Lines changed: 42 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@
33
package smb
44

55
import (
6+
"strings"
67
"testing"
78
"time"
89

910
"github.com/stretchr/testify/assert"
1011
"github.com/stretchr/testify/require"
1112
tsuite "github.com/stretchr/testify/suite"
1213

14+
fsadmin "github.com/ceph/go-ceph/cephfs/admin"
1315
"github.com/ceph/go-ceph/common/admin/manager"
1416
"github.com/ceph/go-ceph/internal/admintest"
1517
"github.com/ceph/go-ceph/internal/commands"
@@ -33,10 +35,12 @@ func (suite *SMBAdminSuite) SetupSuite() {
3335
suite.vconn = admintest.NewConnector()
3436
suite.disableOrch()
3537
suite.enableSMB()
36-
suite.waitForSMB()
38+
suite.waitForSMBResponsive()
39+
suite.configureSubVolume()
3740
}
3841

3942
func (suite *SMBAdminSuite) TearDownSuite() {
43+
suite.removeSubVolume()
4044
suite.disableSMB()
4145
}
4246

@@ -45,10 +49,13 @@ func (suite *SMBAdminSuite) enableSMB() {
4549
t.Logf("enabling smb module")
4650
mgradmin := manager.NewFromConn(suite.vconn.Get(t))
4751
err := mgradmin.EnableModule(modName, true)
52+
if err != nil && strings.Contains(err.Error(), "already enabled") {
53+
return
54+
}
4855
assert.NoError(t, err)
4956
}
5057

51-
func (suite *SMBAdminSuite) waitForSMB() {
58+
func (suite *SMBAdminSuite) waitForSMBOLD() {
5259
t := suite.T()
5360
t.Logf("waiting for smb module")
5461
time.Sleep(100 * time.Millisecond)
@@ -68,6 +75,19 @@ func (suite *SMBAdminSuite) waitForSMB() {
6875
t.Fatalf("timed out waiting for smb module")
6976
}
7077

78+
func (suite *SMBAdminSuite) waitForSMBResponsive() {
79+
// wait until smb module is responsive
80+
sa := NewFromConn(suite.vconn.Get(suite.T()))
81+
for i := 0; i < 30; i++ {
82+
_, err := sa.Show(nil, nil)
83+
if err == nil {
84+
return
85+
}
86+
time.Sleep(200 * time.Millisecond)
87+
}
88+
suite.T().Fatalf("show command never succeeded - module not ready?")
89+
}
90+
7191
func (suite *SMBAdminSuite) disableSMB() {
7292
suite.T().Logf("disabling smb module")
7393
mgradmin := manager.NewFromConn(suite.vconn.Get(suite.T()))
@@ -92,16 +112,25 @@ func (suite *SMBAdminSuite) disableOrch() {
92112
assert.NoError(suite.T(), err)
93113
}
94114

115+
func (suite *SMBAdminSuite) configureSubVolume() {
116+
// set up a subvolume for use by smb commands
117+
fsa := fsadmin.NewFromConn(suite.vconn.Get(suite.T()))
118+
err := fsa.CreateSubVolumeGroup("cephfs", "smb", nil)
119+
assert.NoError(suite.T(), err)
120+
err = fsa.CreateSubVolume("cephfs", "smb", "v1", nil)
121+
assert.NoError(suite.T(), err)
122+
}
123+
124+
func (suite *SMBAdminSuite) removeSubVolume() {
125+
fsa := fsadmin.NewFromConn(suite.vconn.Get(suite.T()))
126+
err := fsa.RemoveSubVolume("cephfs", "smb", "v1")
127+
assert.NoError(suite.T(), err)
128+
err = fsa.RemoveSubVolumeGroup("cephfs", "smb")
129+
assert.NoError(suite.T(), err)
130+
}
131+
95132
func (suite *SMBAdminSuite) SetupTest() {
96-
// wait until smb module is responsive
97-
sa := NewFromConn(suite.vconn.Get(suite.T()))
98-
for i := 0; i < 30; i++ {
99-
_, err := sa.Show(nil, nil)
100-
if err == nil {
101-
return
102-
}
103-
time.Sleep(200 * time.Millisecond)
104-
}
133+
suite.waitForSMBResponsive()
105134
}
106135

107136
func (suite *SMBAdminSuite) TearDownTest() {
@@ -173,7 +202,7 @@ func (suite *SMBAdminSuite) TestRemoveShare() {
173202

174203
r := []Resource{
175204
NewActiveDirectoryCluster("cc1", "zoid"),
176-
NewShare("cc1", "zap").SetCephFS("cephfs", "", "", "/"),
205+
NewShare("cc1", "zap").SetCephFS("cephfs", "smb", "v1", "/"),
177206
}
178207
rg, err := sa.Apply(r, nil)
179208
assert.NoError(t, err)
@@ -231,7 +260,7 @@ func (suite *SMBAdminSuite) TestShowSelect() {
231260
},
232261
[]GroupInfo{{"clients"}},
233262
)
234-
share := NewShare("cc1", "ss1").SetCephFS("cephfs", "", "", "/")
263+
share := NewShare("cc1", "ss1").SetCephFS("cephfs", "smb", "v1", "/")
235264
rgroup, err := sa.Apply([]Resource{cluster, ug, share}, nil)
236265
assert.NoError(t, err)
237266
assert.True(t, rgroup.Ok())

0 commit comments

Comments
 (0)