go-ceph/rgw/admin/info_test.go

58 lines
1.4 KiB
Go
Raw Normal View History

//go:build !(nautilus || octopus || pacific)
// +build !nautilus,!octopus,!pacific
package admin
import (
"context"
"fmt"
"net/http"
"testing"
"time"
"github.com/ceph/go-ceph/rados"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func radosConnect(t *testing.T) *rados.Conn {
conn, err := rados.NewConn()
require.NoError(t, err)
err = conn.ReadDefaultConfigFile()
require.NoError(t, err)
waitForRadosConn(t, conn)
return conn
}
func waitForRadosConn(t *testing.T, conn *rados.Conn) {
var err error
timeout := time.After(time.Second * 15)
ch := make(chan error)
go func(conn *rados.Conn) {
ch <- conn.Connect()
}(conn)
select {
case err = <-ch:
case <-timeout:
err = fmt.Errorf("timed out waiting for connect")
}
require.NoError(t, err)
}
func (suite *RadosGWTestSuite) TestGetInfo() {
suite.SetupConnection()
co, err := New(suite.endpoint, suite.accessKey, suite.secretKey, newDebugHTTPClient(http.DefaultClient))
assert.NoError(suite.T(), err)
suite.T().Run("test get rgw cluster/endpoint information", func(_ *testing.T) {
info, err := co.GetInfo(context.Background())
assert.NoError(suite.T(), err)
assert.Equal(suite.T(), "rados", info.InfoSpec.StorageBackends[0].Name)
conn := radosConnect(suite.T())
fsid, err := conn.GetFSID()
assert.NoError(suite.T(), err)
assert.Equal(suite.T(), fsid, info.InfoSpec.StorageBackends[0].ClusterID)
conn.Shutdown()
})
}