Files
my-rook-config/e2e/framework/clients/test_client.go
T

102 lines
2.7 KiB
Go

package clients
import (
"fmt"
"github.com/rook/rook/e2e/framework/contracts"
"github.com/rook/rook/e2e/framework/enums"
"github.com/rook/rook/e2e/framework/transport"
"github.com/rook/rook/pkg/model"
)
var (
VERSION_CMD = []string{"rook", "version"}
)
type TestClient struct {
platform enums.RookPlatformType
transportClient contracts.ITransportClient
blockClient contracts.BlockOperator
fsClient contracts.FileSystemOperator
objectClient contracts.ObjectOperator
poolClient contracts.PoolOperator
restClient contracts.RestAPIOperator
}
const (
unable_to_check_rook_status_msg = "Unable to check rook status - please check of rook is up and running"
)
func CreateTestClient(platform enums.RookPlatformType) (*TestClient, error) {
var transportClient contracts.ITransportClient
var block_client contracts.BlockOperator
var fs_client contracts.FileSystemOperator
var object_client contracts.ObjectOperator
var pool_client contracts.PoolOperator
rookRestClient := CreateRestAPIClient(platform)
switch {
case platform == enums.Kubernetes:
transportClient = transport.CreateNewk8sTransportClient()
block_client = CreateK8BlockOperation(transportClient, rookRestClient)
fs_client = CreateK8sFileSystemOperation(transportClient, rookRestClient)
object_client = CreateObjectOperation(rookRestClient)
pool_client = CreatePoolClient(rookRestClient)
case platform == enums.StandAlone:
transportClient = nil //TODO- Not yet implemented
block_client = nil //TODO- Not yet implemented
fs_client = nil //TODO- Not yet implemented
object_client = nil //TODO- Not yet implemented
pool_client = nil //TODO- Not yet implemented
default:
return &TestClient{}, fmt.Errorf("Unsupported Rook Platform Type")
}
return &TestClient{
platform,
transportClient,
block_client,
fs_client,
object_client,
pool_client,
rookRestClient,
}, nil
}
func (c TestClient) Status() (model.StatusDetails, error) {
return c.restClient.GetStatusDetails()
}
func (c TestClient) Version() (string, error) {
out, err, status := c.transportClient.Execute(VERSION_CMD, nil)
if status == 0 {
return out, nil
} else {
return err, fmt.Errorf(unable_to_check_rook_status_msg)
}
}
func (c TestClient) Node() ([]model.Node, error) {
return c.restClient.GetNodes()
}
func (c TestClient) GetBlockClient() contracts.BlockOperator {
return c.blockClient
}
func (c TestClient) GetFileSystemClient() contracts.FileSystemOperator {
return c.fsClient
}
func (c TestClient) GetObjectClient() contracts.ObjectOperator {
return c.objectClient
}
func (c TestClient) GetPoolClient() contracts.PoolOperator {
return c.poolClient
}
func (c TestClient) GetRestAPIClient() contracts.RestAPIOperator {
return c.restClient
}