utils

package
v1.2.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 31, 2020 License: Apache-2.0 Imports: 36 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// RetryLoop params for tests.
	RetryLoop = 60
	// RetryInterval param for test - wait time while in RetryLoop
	RetryInterval = 5
	// TestMountPath is the path inside a test pod where storage is mounted
	TestMountPath = "/tmp/testrook"
)

Variables

This section is empty.

Functions

func IsKubectlErrorNotFound added in v0.8.0

func IsKubectlErrorNotFound(output string, err error) bool

Types

type CommandArgs

type CommandArgs struct {
	Command             string
	SubCommand          string
	CmdArgs             []string
	OptionalArgs        []string
	PipeToStdIn         string
	EnvironmentVariable []string
}

CommandArgs is a warpper for cmd args

type CommandOut

type CommandOut struct {
	StdOut   string
	StdErr   string
	ExitCode int
	Err      error
}

CommandOut is a wrapper for cmd out returned after executing command args

func ExecuteCommand

func ExecuteCommand(cmdStruct CommandArgs) CommandOut

ExecuteCommand executes a os command with stdin and returns output

type HelmHelper added in v0.6.0

type HelmHelper struct {
	HelmPath string
	// contains filtered or unexported fields
}

HelmHelper is wrapper for running helm commands

func NewHelmHelper added in v0.6.0

func NewHelmHelper(helmPath string) *HelmHelper

NewHelmHelper creates a instance of HelmHelper

func (*HelmHelper) DeleteLocalRookHelmChart added in v0.6.0

func (h *HelmHelper) DeleteLocalRookHelmChart(deployName string) error

DeleteLocalRookHelmChart uninstalls a give helm deploy

func (*HelmHelper) Execute added in v0.6.0

func (h *HelmHelper) Execute(args ...string) (string, error)

Execute is wrapper for executing helm commands

func (*HelmHelper) GetLocalRookHelmChartVersion added in v0.6.0

func (h *HelmHelper) GetLocalRookHelmChartVersion(chartName string) (string, error)

GetLocalRookHelmChartVersion returns helm chart version for a given chart

func (*HelmHelper) InstallLocalRookHelmChart added in v0.6.0

func (h *HelmHelper) InstallLocalRookHelmChart(chartName string, deployName string, chartVersion string, namespace, chartSettings string) error

InstallLocalRookHelmChart installs a give helm chart

type K8sHelper

type K8sHelper struct {
	Clientset        *kubernetes.Clientset
	RookClientset    *rookclient.Clientset
	RunningInCluster bool
	T                func() *testing.T
	// contains filtered or unexported fields
}

K8sHelper is a helper for common kubectl commads

func CreateK8sHelper added in v0.6.0

func CreateK8sHelper(t func() *testing.T) (*K8sHelper, error)

CreateK8sHelper creates a instance of k8sHelper

func (*K8sHelper) ChangeHostnames added in v0.8.3

func (k8sh *K8sHelper) ChangeHostnames() error

ChangeHostnames modifies the node hostname label to run tests in an environment where the node name is different from the hostname label

func (*K8sHelper) CheckPodCountAndState added in v0.6.0

func (k8sh *K8sHelper) CheckPodCountAndState(podName string, namespace string, minExpected int, expectedPhase string) bool

CheckPodCountAndState returns true if expected number of pods with matching name are found and are in expected state

func (*K8sHelper) CheckPvcCountAndStatus added in v0.7.0

func (k8sh *K8sHelper) CheckPvcCountAndStatus(podName string, namespace string, expectedPvcCount int, expectedStatus string) bool

CheckPvcCount returns True if expected number pvs for a app are found

func (*K8sHelper) CollectPodLogsFromLabel added in v1.1.0

func (k8sh *K8sHelper) CollectPodLogsFromLabel(podLabel, namespace, testName, platformName string)

CollectPodLogsFromLabel collects logs for pods with the given label

func (*K8sHelper) CountPodsWithLabel added in v0.8.0

func (k8sh *K8sHelper) CountPodsWithLabel(label string, namespace string) (int, error)

func (*K8sHelper) CreateAnonSystemClusterBinding added in v0.6.0

func (k8sh *K8sHelper) CreateAnonSystemClusterBinding()

CreateAnonSystemClusterBinding Creates anon-user-access clusterrolebinding for cluster-admin role - used by kubeadm env.

func (*K8sHelper) CreateExternalRGWService added in v0.6.0

func (k8sh *K8sHelper) CreateExternalRGWService(namespace, storeName string) error

CreateExternalRGWService creates a service for rgw access external to the cluster on a node port

func (*K8sHelper) CreateNamespace added in v0.8.0

func (k8sh *K8sHelper) CreateNamespace(namespace string) error

func (*K8sHelper) DeletePod added in v0.9.0

func (k8sh *K8sHelper) DeletePod(namespace, name string) error

DeletePod performs a kubectl delete pod on the given pod

func (*K8sHelper) DeletePods added in v0.9.0

func (k8sh *K8sHelper) DeletePods(pods ...string) (msg string, err error)

DeletePods performs a kubectl delete pod on the given pods

func (*K8sHelper) DeletePvcWithLabel added in v0.7.0

func (k8sh *K8sHelper) DeletePvcWithLabel(namespace string, podName string) bool

func (*K8sHelper) DeleteResource

func (k8sh *K8sHelper) DeleteResource(args ...string) error

DeleteResource performs a kubectl delete on the given args

func (*K8sHelper) DeleteResourceAndWait added in v0.9.0

func (k8sh *K8sHelper) DeleteResourceAndWait(wait bool, args ...string) error

DeleteResource performs a kubectl delete on give args. If wait is false, a flag will be passed to indicate the delete should return immediately

func (*K8sHelper) DeleteRoleAndBindings added in v0.6.0

func (k8sh *K8sHelper) DeleteRoleAndBindings(name, namespace string) error

func (*K8sHelper) DeleteRoleBinding added in v0.8.0

func (k8sh *K8sHelper) DeleteRoleBinding(name, namespace string) error

func (*K8sHelper) Exec added in v0.8.0

func (k8sh *K8sHelper) Exec(namespace, podName, command string, commandArgs []string) (string, error)

func (*K8sHelper) ExecWithRetry added in v1.0.0

func (k8sh *K8sHelper) ExecWithRetry(retries int, namespace, podName, command string, commandArgs []string) (string, error)

ExecWithRetry will attempt to run a command "retries" times, waiting 3s between each call. Upon success, returns the output.

func (*K8sHelper) GetDockerImage added in v0.9.0

func (k8sh *K8sHelper) GetDockerImage(image string) error

func (*K8sHelper) GetExternalRGWServiceURL added in v0.6.0

func (k8sh *K8sHelper) GetExternalRGWServiceURL(storeName string, namespace string) (string, error)

GetRGWServiceURL returns URL of ceph RGW service in the cluster

func (*K8sHelper) GetInternalRGWServiceURL added in v0.6.0

func (k8sh *K8sHelper) GetInternalRGWServiceURL(storeName string, namespace string) (string, error)

GetRGWServiceURL returns URL of ceph RGW service in the cluster

func (*K8sHelper) GetK8sServerVersion

func (k8sh *K8sHelper) GetK8sServerVersion() string

GetK8sServerVersion returns k8s server version under test

func (*K8sHelper) GetLogsFromNamespace added in v1.1.0

func (k8sh *K8sHelper) GetLogsFromNamespace(namespace, testName, platformName string)

GetLogsFromNamespace collects logs for all containers in all pods in the namespace

func (*K8sHelper) GetPV added in v0.9.0

func (k8sh *K8sHelper) GetPV(name string) (*v1.PersistentVolume, error)

GetPV returns PV by name

func (*K8sHelper) GetPVCAccessModes added in v0.7.0

func (k8sh *K8sHelper) GetPVCAccessModes(namespace string, name string) ([]v1.PersistentVolumeAccessMode, error)

GetPVCAccessModes returns AccessModes on PVC

func (*K8sHelper) GetPVCStatus

func (k8sh *K8sHelper) GetPVCStatus(namespace string, name string) (v1.PersistentVolumeClaimPhase, error)

GetPVCStatus returns status of PVC

func (*K8sHelper) GetPVCVolumeName added in v0.9.0

func (k8sh *K8sHelper) GetPVCVolumeName(namespace string, name string) (string, error)

GetPVCVolumeName returns volume name of PVC

func (*K8sHelper) GetPodDescribeFromNamespace added in v1.1.0

func (k8sh *K8sHelper) GetPodDescribeFromNamespace(namespace, testName, platformName string)

func (*K8sHelper) GetPodDetails

func (k8sh *K8sHelper) GetPodDetails(podNamePattern string, namespace string) (string, error)

GetPodDetails returns details about a pod

func (*K8sHelper) GetPodEvents added in v0.6.0

func (k8sh *K8sHelper) GetPodEvents(podNamePattern string, namespace string) (*v1.EventList, error)

GetPodEvents returns events about a pod

func (*K8sHelper) GetPodHostID

func (k8sh *K8sHelper) GetPodHostID(podNamePattern string, namespace string) (string, error)

GetPodHostID returns HostIP address of a pod

func (*K8sHelper) GetPodNamesForApp added in v0.8.0

func (k8sh *K8sHelper) GetPodNamesForApp(appName, namespace string) ([]string, error)

func (*K8sHelper) GetRGWServiceURL

func (k8sh *K8sHelper) GetRGWServiceURL(storeName string, namespace string) (string, error)

func (*K8sHelper) GetResource

func (k8sh *K8sHelper) GetResource(args ...string) (string, error)

GetResource performs a kubectl get on give args

func (*K8sHelper) GetService

func (k8sh *K8sHelper) GetService(servicename string, namespace string) (*v1.Service, error)

GetService returns output from "kubectl get svc $NAME" command

func (*K8sHelper) GetServiceNodePort added in v0.6.0

func (k8sh *K8sHelper) GetServiceNodePort(serviceName string, namespace string) (string, error)

GetServiceNodePort returns nodeProt of service

func (*K8sHelper) GetVolumeResourceName added in v0.8.0

func (k8sh *K8sHelper) GetVolumeResourceName(namespace, pvcName string) (string, error)

GetVolumeResourceName gets the Volume object name from the PVC

func (*K8sHelper) IsCRDPresent

func (k8sh *K8sHelper) IsCRDPresent(crdName string) bool

IsCRDPresent returns true if custom resource definition is present

func (*K8sHelper) IsDefaultStorageClassPresent added in v0.8.0

func (k8sh *K8sHelper) IsDefaultStorageClassPresent() (bool, error)

func (*K8sHelper) IsPodInError added in v0.6.0

func (k8sh *K8sHelper) IsPodInError(podNamePattern, namespace, reason, containingMessage string) bool

IsPodInError returns true if a Pod is in error status with the given reason and contains the given message

func (*K8sHelper) IsPodInExpectedState

func (k8sh *K8sHelper) IsPodInExpectedState(podNamePattern string, namespace string, state string) bool

IsPodInExpectedState waits for 90s for a pod to be an expected state If the pod is in expected state within 90s true is returned, if not false

func (*K8sHelper) IsPodRunning

func (k8sh *K8sHelper) IsPodRunning(name string, namespace string) bool

IsPodRunning returns true if a Pod is running status or goes to Running status within 90s else returns false

func (*K8sHelper) IsPodTerminated

func (k8sh *K8sHelper) IsPodTerminated(name string, namespace string) bool

IsPodTerminated wrapper around IsPodTerminatedWithOpts()

func (*K8sHelper) IsPodTerminatedWithOpts added in v0.9.0

func (k8sh *K8sHelper) IsPodTerminatedWithOpts(name string, namespace string, getOpts metav1.GetOptions) bool

IsPodTerminatedWithOpts returns true if a Pod is terminated status or goes to Terminated status within 90s else returns false\

func (*K8sHelper) IsPodWithLabelPresent added in v0.7.0

func (k8sh *K8sHelper) IsPodWithLabelPresent(label string, namespace string) bool

IsPodWithLabelPresent return true if there is at least one Pod with the label is present.

func (*K8sHelper) IsRookInstalled added in v0.6.0

func (k8sh *K8sHelper) IsRookInstalled(namespace string) bool

IsRookInstalled returns true is rook-ceph-mgr service is running(indicating rook is installed)

func (*K8sHelper) IsServiceUp

func (k8sh *K8sHelper) IsServiceUp(name string, namespace string) bool

IsServiceUp returns true if a service is up or comes up within 150s, else returns false

func (*K8sHelper) IsStorageClassPresent

func (k8sh *K8sHelper) IsStorageClassPresent(name string) error

IsStorageClassPresent returns true if storageClass is present, if not false

func (*K8sHelper) IsVolumeResourceAbsent added in v0.8.0

func (k8sh *K8sHelper) IsVolumeResourceAbsent(namespace, volumeName string) bool

IsVolumeResourceAbsent returns true if the Volume resource is deleted/absent within 90s else returns false

func (*K8sHelper) IsVolumeResourcePresent added in v0.8.0

func (k8sh *K8sHelper) IsVolumeResourcePresent(namespace, volumeName string) bool

IsVolumeResourcePresent returns true if Volume resource is present

func (*K8sHelper) Kubectl

func (k8sh *K8sHelper) Kubectl(args ...string) (string, error)

Kubectl is wrapper for executing kubectl commands

func (*K8sHelper) KubectlWithStdin

func (k8sh *K8sHelper) KubectlWithStdin(stdin string, args ...string) (string, error)

KubectlWithStdin is wrapper for executing kubectl commands in stdin

func (*K8sHelper) MakeContext added in v0.8.0

func (k8sh *K8sHelper) MakeContext() *clusterd.Context

func (*K8sHelper) PrintEventsForNamespace added in v0.8.0

func (k8sh *K8sHelper) PrintEventsForNamespace(namespace string)

func (*K8sHelper) PrintPVCs added in v0.8.0

func (k8sh *K8sHelper) PrintPVCs(namespace string, detailed bool)

func (*K8sHelper) PrintPVs added in v0.8.0

func (k8sh *K8sHelper) PrintPVs(detailed bool)

func (*K8sHelper) PrintPodDescribe added in v0.8.0

func (k8sh *K8sHelper) PrintPodDescribe(namespace string, args ...string)

func (*K8sHelper) PrintPodStatus added in v0.8.0

func (k8sh *K8sHelper) PrintPodStatus(namespace string)

PrintPodStatus log out the status phase of a pod

func (*K8sHelper) PrintStorageClasses added in v0.8.0

func (k8sh *K8sHelper) PrintStorageClasses(detailed bool)

func (*K8sHelper) ReadFromPod added in v0.9.0

func (k8sh *K8sHelper) ReadFromPod(namespace, podName, filename, expectedMessage string) error

func (*K8sHelper) ReadFromPodRetry added in v0.9.0

func (k8sh *K8sHelper) ReadFromPodRetry(namespace, podName, filename, expectedMessage string, retries int) error

func (*K8sHelper) ResourceOperation

func (k8sh *K8sHelper) ResourceOperation(action string, manifest string) error

ResourceOperation performs a kubectl action on a pod definition

func (*K8sHelper) ResourceOperationFromTemplate

func (k8sh *K8sHelper) ResourceOperationFromTemplate(action string, podDefinition string, config map[string]string) (string, error)

ResourceOperationFromTemplate performs a kubectl action from a template file after replacing its context

func (*K8sHelper) RestoreHostnames added in v0.8.3

func (k8sh *K8sHelper) RestoreHostnames() ([]string, error)

RestoreHostnames removes the test suffix from the node hostname labels

func (*K8sHelper) ScaleStatefulSet added in v0.7.0

func (k8sh *K8sHelper) ScaleStatefulSet(statefulSetName, namespace string, replicationSize int) error

func (*K8sHelper) SetDeploymentVersion added in v0.9.0

func (k8sh *K8sHelper) SetDeploymentVersion(namespace, deploymentName, containerName, version string) error

SetDeploymentVersion sets the container version on the deployment. It is assumed to be the rook/ceph image.

func (*K8sHelper) VersionAtLeast added in v0.6.0

func (k8sh *K8sHelper) VersionAtLeast(minVersion string) bool

func (*K8sHelper) VersionMinorMatches added in v1.1.1

func (k8sh *K8sHelper) VersionMinorMatches(minVersion string) (string, bool)

func (*K8sHelper) WaitForCustomResourceDeletion added in v0.9.0

func (k8sh *K8sHelper) WaitForCustomResourceDeletion(namespace string, checkerFunc func() error) error

WaitForCustomResourceDeletion waits for the CRD deletion

func (*K8sHelper) WaitForDeploymentCount added in v1.2.0

func (k8sh *K8sHelper) WaitForDeploymentCount(label, namespace string, count int) error

WaitForDeploymentCount waits until the desired number of deployments with the label exist. The deployments are not guaranteed to be running, only existing.

func (*K8sHelper) WaitForDeploymentCountWithRetries added in v1.2.0

func (k8sh *K8sHelper) WaitForDeploymentCountWithRetries(label, namespace string, count, retries int) error

WaitForDeploymentCountWithRetries waits until the desired number of deployments with the label exist, retrying the specified number of times. The deployments are not guaranteed to be running, only existing.

func (*K8sHelper) WaitForLabeledDeploymentsToBeReady added in v1.2.0

func (k8sh *K8sHelper) WaitForLabeledDeploymentsToBeReady(label, namespace string) error

WaitForLabeledDeploymentsToBeReady waits for all deployments matching the given label selector to be fully ready with a default timeout.

func (*K8sHelper) WaitForLabeledDeploymentsToBeReadyWithRetries added in v1.2.0

func (k8sh *K8sHelper) WaitForLabeledDeploymentsToBeReadyWithRetries(label, namespace string, retries int) error

WaitForLabeledDeploymentsToBeReadyWithRetries waits for all deployments matching the given label selector to be fully ready. Retry the number of times given.

func (*K8sHelper) WaitForLabeledPodsToRun added in v0.9.0

func (k8sh *K8sHelper) WaitForLabeledPodsToRun(label, namespace string) error

WaitForLabeledPodsToRun calls WaitForLabeledPodsToRunWithRetries with the default number of retries

func (*K8sHelper) WaitForLabeledPodsToRunWithRetries added in v0.9.0

func (k8sh *K8sHelper) WaitForLabeledPodsToRunWithRetries(label string, namespace string, retries int) error

WaitForLabeledPodsToRunWithRetries returns true if a Pod is running status or goes to Running status within 90s else returns false

func (*K8sHelper) WaitForPodCount added in v0.8.0

func (k8sh *K8sHelper) WaitForPodCount(label, namespace string, count int) error

WaitForPodCount waits until the desired number of pods with the label are started

func (*K8sHelper) WaitUntilNameSpaceIsDeleted added in v0.6.0

func (k8sh *K8sHelper) WaitUntilNameSpaceIsDeleted(namespace string) bool

WaitUntilNameSpaceIsDeleted waits for namespace to be deleted for 180s. If namespace is deleted True is returned, if not false.

func (*K8sHelper) WaitUntilPVCIsBound

func (k8sh *K8sHelper) WaitUntilPVCIsBound(namespace string, pvcname string) bool

WaitUntilPVCIsBound waits for a PVC to be in bound state for 90 seconds if PVC goes to Bound state within 90s True is returned, if not false

func (*K8sHelper) WaitUntilPVCIsDeleted added in v0.6.0

func (k8sh *K8sHelper) WaitUntilPVCIsDeleted(namespace string, pvcname string) bool

func (*K8sHelper) WaitUntilPVCIsExpanded added in v1.1.0

func (k8sh *K8sHelper) WaitUntilPVCIsExpanded(namespace, pvcname, size string) bool

WaitUntilPVCIsExpanded waits for a PVC to be resized for specified value

func (*K8sHelper) WaitUntilPodInNamespaceIsDeleted

func (k8sh *K8sHelper) WaitUntilPodInNamespaceIsDeleted(podNamePattern string, namespace string) bool

WaitUntilPodInNamespaceIsDeleted waits for 90s for a pod in a namespace to be terminated If the pod disappears within 90s true is returned, if not false

func (*K8sHelper) WaitUntilPodIsDeleted

func (k8sh *K8sHelper) WaitUntilPodIsDeleted(name, namespace string) bool

WaitUntilPodIsDeleted waits for 90s for a pod to be terminated If the pod disappears within 90s true is returned, if not false

func (*K8sHelper) WaitUntilPodWithLabelDeleted added in v0.6.0

func (k8sh *K8sHelper) WaitUntilPodWithLabelDeleted(label string, namespace string) bool

WaitUntilPodWithLabelDeleted returns true if a Pod is deleted within 90s else returns false

func (*K8sHelper) WriteToPod added in v0.9.0

func (k8sh *K8sHelper) WriteToPod(namespace, podName, filename, message string) error

WriteToPod write file in Pod

func (*K8sHelper) WriteToPodRetry added in v0.9.0

func (k8sh *K8sHelper) WriteToPodRetry(namespace, podName, filename, message string, retries int) error

WriteToPodRetry WriteToPod in a retry loop

type MySQLHelper

type MySQLHelper struct {
	DB *sql.DB
}

MySQLHelper contains pointer to MySqlDB and wrappers for basic object on mySql database

func CreateNewMySQLHelper

func CreateNewMySQLHelper(username string, password string, url string, dbname string) *MySQLHelper

CreateNewMySQLHelper creates a s3 client for specified endpoint and creds

func (*MySQLHelper) CloseConnection

func (h *MySQLHelper) CloseConnection()

CloseConnection function closes mysql connection

func (*MySQLHelper) CreateTable

func (h *MySQLHelper) CreateTable() sql.Result

CreateTable func create sample Table

func (*MySQLHelper) DeleteRandomRow

func (h *MySQLHelper) DeleteRandomRow() sql.Result

DeleteRandomRow deletes a random row

func (*MySQLHelper) InsertRandomData

func (h *MySQLHelper) InsertRandomData(dataSize int) sql.Result

InsertRandomData Inserts random Data into the table

func (*MySQLHelper) PingSuccess

func (h *MySQLHelper) PingSuccess() bool

PingSuccess function is used check connection to a database

func (*MySQLHelper) SelectRandomData added in v0.6.0

func (h *MySQLHelper) SelectRandomData(limit int) *sql.Rows

TableRowCount gets row count of table

func (*MySQLHelper) TableExists

func (h *MySQLHelper) TableExists() bool

TableExists checks if a table exists

func (*MySQLHelper) TableRowCount

func (h *MySQLHelper) TableRowCount() (count int)

TableRowCount gets row count of table

type S3Helper

type S3Helper struct {
	// contains filtered or unexported fields
}

S3Helper contains pointer to s3 client and wrappers for basic object store operations

func CreateNewS3Helper

func CreateNewS3Helper(endpoint string, keyID string, keySecret string) *S3Helper

CreateNewS3Helper creates a s3 client for specified endpoint and creds

func (*S3Helper) CreateBucket

func (h *S3Helper) CreateBucket(name string) (bool, error)

CreateBucket function creates bucket using s3 client

func (*S3Helper) DeleteBucket

func (h *S3Helper) DeleteBucket(name string) (bool, error)

DeleteBucket function deletes given bucket using s3 client

func (*S3Helper) DeleteObjectInBucket

func (h *S3Helper) DeleteObjectInBucket(bucketname string, key string) (bool, error)

DeleteObjectInBucket function deletes given bucket using s3 client

func (*S3Helper) GetObjectInBucket

func (h *S3Helper) GetObjectInBucket(bucketname string, key string) (string, error)

GetObjectInBucket function retrieves an object from a bucket using s3 client

func (*S3Helper) IsBucketPresent added in v0.7.0

func (h *S3Helper) IsBucketPresent(bucketname string) (bool, error)

IsBucketPresent function returns true if a bucket is present and false if it's not present

func (*S3Helper) PutObjectInBucket

func (h *S3Helper) PutObjectInBucket(bucketname string, body string, key string,
	contentType string) (bool, error)

PutObjectInBucket function puts an object in a bucket using s3 client

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL