Documentation ¶
Index ¶
- Variables
- func ArtifactDirPath() string
- func ArtifactPath(elem ...string) string
- func BuildAuthConfiguration(credKey string, oc *CLI) (*dockerClient.AuthConfiguration, error)
- func CleanupHostPathVolumes(c kclient.PersistentVolumeInterface, prefix string) error
- func CorruptImage(corruptee, corruptor string)
- func CreatePersistentVolume(name, capacity, hostPath string) *kapi.PersistentVolume
- func CreateResource(jsonFilePath string, oc *CLI) error
- func DumpAndReturnTagging(tags []string) []string
- func ExecuteTest(t *testing.T, suite string)
- func ExtendedTestPath() string
- func FatalErr(msg interface{})
- func FetchURL(url string, retryTimeout time.Duration) (response string, err error)
- func FixturePath(elem ...string) string
- func GetDockerImageReference(c client.ImageStreamInterface, name, tag string) (string, error)
- func GetEndpointAddress(oc *CLI, name string) (string, error)
- func GetImageIDForTags(comps []string) ([]string, error)
- func GetPodForContainer(container kapi.Container) *kapi.Pod
- func GetPodForImage(dockerImageReference string) *kapi.Pod
- func GetPodNamesByFilter(c kclient.PodInterface, label labels.Selector, predicate func(kapi.Pod) bool) (podNames []string, err error)
- func InitTest()
- func KubeConfigPath() string
- func ParseLabelsOrDie(str string) labels.Selector
- func PullImage(name string, authCfg dockerClient.AuthConfiguration) error
- func PushImage(name string, authCfg dockerClient.AuthConfiguration) error
- func ResetImage(tags map[string]string)
- func SetupHostPathVolumes(c kclient.PersistentVolumeInterface, prefix, capacity string, count int) (volumes []*kapi.PersistentVolume, err error)
- func StartBuild(buildPrefix string, oc *CLI)
- func StartBuildFromJSON(jsonFile, buildPrefix string, oc *CLI)
- func TagImage(tagee, tagor string) error
- func VarSubOnFile(srcFile, destFile, varToSub, val string) error
- func VerifyImagesDifferent(comp1, comp2, strategy string)
- func VerifyImagesSame(comp1, comp2, strategy string)
- func WaitForABuild(c client.BuildInterface, name string, ...) error
- func WaitForADeployment(client kclient.ReplicationControllerInterface, name string, ...) error
- func WaitForAnImageStream(client client.ImageStreamInterface, name string, ...) error
- func WaitForBuild(context, buildName string, oc *CLI)
- func WaitForBuilderAccount(c kclient.ServiceAccountsInterface) error
- func WaitForPods(c kclient.PodInterface, label labels.Selector, predicate func(kapi.Pod) bool, ...) ([]string, error)
- func WaitForQueryOutput(oc *CLI, d Database, timeout time.Duration, admin bool, ...) error
- func WaitForResourceQuotaSync(client kclient.ResourceQuotaInterface, name string, ...) (kapi.ResourceList, error)
- func WaitUntilAllHelpersAreUp(oc *CLI, helpers []Database) error
- func WaitUntilPodIsGone(c kclient.PodInterface, podName string, timeout time.Duration) error
- func WaitUntilUp(oc *CLI, d Database, timeout time.Duration) error
- func WriteObjectToFile(obj runtime.Object, filename string) error
- type CLI
- func (c *CLI) AdminKubeREST() *kclient.Client
- func (c *CLI) AdminREST() *client.Client
- func (c *CLI) Args(args ...string) *CLI
- func (c *CLI) AsAdmin() *CLI
- func (c *CLI) ChangeUser(name string) *CLI
- func (c *CLI) Execute() error
- func (c *CLI) InputString(input string) *CLI
- func (c *CLI) KubeFramework() *e2e.Framework
- func (c *CLI) KubeREST() *kclient.Client
- func (c *CLI) Namespace() string
- func (c *CLI) Output() (string, error)
- func (c *CLI) OutputToFile(filename string) (string, error)
- func (c *CLI) REST() *client.Client
- func (c *CLI) Run(verb string) *CLI
- func (c *CLI) SetNamespace(ns string) *CLI
- func (c *CLI) SetOutputDir(dir string) *CLI
- func (c *CLI) SetupProject(name string, kubeClient *kclient.Client, _ map[string]string) (*kapi.Namespace, error)
- func (c *CLI) Stdout() io.Writer
- func (c *CLI) Template(t string) *CLI
- func (c *CLI) Username() string
- func (c *CLI) Verbose() *CLI
- type Database
- type MissingTagError
- type SimpleReporter
- func (r *SimpleReporter) AfterSuiteDidRun(setupSummary *types.SetupSummary)
- func (r *SimpleReporter) BeforeSuiteDidRun(*types.SetupSummary)
- func (r *SimpleReporter) SpecDidComplete(spec *types.SpecSummary)
- func (r *SimpleReporter) SpecSuiteDidEnd(summary *types.SuiteSummary)
- func (r *SimpleReporter) SpecSuiteWillBegin(config config.GinkgoConfigType, summary *types.SuiteSummary)
- func (r *SimpleReporter) SpecWillRun(spec *types.SpecSummary)
Constants ¶
This section is empty.
Variables ¶
var CheckBuildFailedFn = func(b *buildapi.Build) bool { return b.Status.Phase == buildapi.BuildPhaseFailed || b.Status.Phase == buildapi.BuildPhaseError }
CheckBuildFailedFn return true if the build failed
var CheckBuildSuccessFn = func(b *buildapi.Build) bool { return b.Status.Phase == buildapi.BuildPhaseComplete }
CheckBuildSuccessFn returns true if the build succeeded
var CheckDeploymentCompletedFn = func(d *kapi.ReplicationController) bool { return d.Annotations[deployapi.DeploymentStatusAnnotation] == string(deployapi.DeploymentStatusComplete) }
CheckDeploymentCompletedFn returns true if the deployment completed
var CheckDeploymentFailedFn = func(d *kapi.ReplicationController) bool { return d.Annotations[deployapi.DeploymentStatusAnnotation] == string(deployapi.DeploymentStatusFailed) }
CheckDeploymentFailedFn returns true if the deployment failed
var CheckImageStreamLatestTagPopulatedFn = func(i *imageapi.ImageStream) bool {
_, ok := i.Status.Tags["latest"]
return ok
}
CheckImageStreamLatestTagPopulatedFn returns true if the imagestream has a ':latest' tag filed
var CheckImageStreamTagNotFoundFn = func(i *imageapi.ImageStream) bool { return strings.Contains(i.Annotations[imageapi.DockerImageRepositoryCheckAnnotation], "not") || strings.Contains(i.Annotations[imageapi.DockerImageRepositoryCheckAnnotation], "error") }
CheckImageStreamTagNotFoundFn return true if the imagestream update was not successful
var CheckPodIsRunningFn = func(pod kapi.Pod) bool { return pod.Status.Phase == kapi.PodRunning }
CheckPodIsRunningFn returns true if the pod is running
var CheckPodIsSucceededFn = func(pod kapi.Pod) bool { return pod.Status.Phase == kapi.PodSucceeded }
CheckPodIsSucceededFn returns true if the pod status is "Succdeded"
var TestContext e2e.TestContextType
Functions ¶
func ArtifactDirPath ¶ added in v1.0.7
func ArtifactDirPath() string
ArtifactDirPath returns the value of ARTIFACT_DIR environment variable
func ArtifactPath ¶ added in v1.0.7
ArtifactPath returns the absolute path to the fix artifact file The path is relative to ARTIFACT_DIR
func BuildAuthConfiguration ¶ added in v1.0.7
func BuildAuthConfiguration(credKey string, oc *CLI) (*dockerClient.AuthConfiguration, error)
BuildAuthConfiguration constructs a non-standard dockerClient.AuthConfiguration that can be used to communicate with the openshift internal docker registry
func CleanupHostPathVolumes ¶ added in v1.0.7
func CleanupHostPathVolumes(c kclient.PersistentVolumeInterface, prefix string) error
CleanupHostPathVolumes removes all PersistentVolumes created by SetupHostPathVolumes, with a given prefix
func CorruptImage ¶
func CorruptImage(corruptee, corruptor string)
CorruptImage is a helper that tags the image to be corrupted, the corruptee, as the corruptor string, resulting in the wrong image being used when corruptee is referenced later on; strategy is for ginkgo debug; ginkgo error checking leveraged
func CreatePersistentVolume ¶ added in v1.0.7
func CreatePersistentVolume(name, capacity, hostPath string) *kapi.PersistentVolume
CreatePersistentVolume creates a HostPath Persistent Volume.
func CreateResource ¶ added in v1.0.7
CreateResource creates the resources from the supplied json file (not a template); ginkgo error checking included
func DumpAndReturnTagging ¶ added in v1.0.7
DumpAndReturnTagging takes and array of tags and obtains the hex image IDs, dumps them to ginkgo for printing, and then returns them
func ExecuteTest ¶ added in v1.0.7
func ExtendedTestPath ¶
func ExtendedTestPath() string
ExtendedTestPath returns absolute path to extended tests directory
func FatalErr ¶
func FatalErr(msg interface{})
FatalErr exits the test in case a fatal error has occurred.
func FetchURL ¶ added in v1.0.7
FetchURL grabs the output from the specified url and returns it. It will retry once per second for duration retryTimeout if an error occurs during the request.
func FixturePath ¶
FixturePath returns absolute path to given fixture file The path is relative to EXTENDED_TEST_PATH (./test/extended/*)
func GetDockerImageReference ¶
func GetDockerImageReference(c client.ImageStreamInterface, name, tag string) (string, error)
GetDockerImageReference retrieves the full Docker pull spec from the given ImageStream and tag
func GetEndpointAddress ¶ added in v1.0.7
GetEndpointAddress will return an "ip:port" string for the endpoint.
func GetImageIDForTags ¶
GetImageIDForTags will obtain the hexadecimal IDs for the array of human readible image tags IDs provided
func GetPodForContainer ¶ added in v1.0.7
GetPodForContainer creates a new Pod that runs specified container
func GetPodForImage ¶ added in v1.0.7
GetPodForImage creates a new Pod that runs the containers from specified Docker image reference
func GetPodNamesByFilter ¶ added in v1.0.7
func GetPodNamesByFilter(c kclient.PodInterface, label labels.Selector, predicate func(kapi.Pod) bool) (podNames []string, err error)
GetPodNamesByFilter looks up pods that satisfy the predicate and returns their names.
func InitTest ¶ added in v1.0.7
func InitTest()
init initialize the extended testing suite. You can set these environment variables to configure extended tests: KUBECONFIG - Path to kubeconfig containing embedded authinfo TEST_REPORT_DIR - If set, JUnit output will be written to this directory for each test TEST_REPORT_FILE_NAME - If set, will determine the name of the file that JUnit output is written to
func KubeConfigPath ¶
func KubeConfigPath() string
KubeConfigPath returns the value of KUBECONFIG environment variable
func ParseLabelsOrDie ¶ added in v1.0.7
ParseLabelsOrDie turns the given string into a label selector or panics; for tests or other cases where you know the string is valid. TODO: Move this to the upstream labels package.
func PullImage ¶
func PullImage(name string, authCfg dockerClient.AuthConfiguration) error
PullImage initiates the equivalent of a `docker pull` for the "name" parameter
func PushImage ¶ added in v1.0.7
func PushImage(name string, authCfg dockerClient.AuthConfiguration) error
PushImage initiates the equivalent of a `docker push` for the "name" parameter to the local registry
func ResetImage ¶
ResetImage is a helper the allows the programmer to undo any corruption performed by CorruptImage; ginkgo error checking leveraged
func SetupHostPathVolumes ¶ added in v1.0.7
func SetupHostPathVolumes(c kclient.PersistentVolumeInterface, prefix, capacity string, count int) (volumes []*kapi.PersistentVolume, err error)
SetupHostPathVolumes will create multiple PersistentVolumes with given capacity
func StartBuild ¶
StartBuild starts a build, with the assumption that the build config was previously created
func StartBuildFromJSON ¶ added in v1.0.7
StartBuildFromJSON creates a build config from the supplied json file (not a template) and then starts a build, using the supplied oc/cli client for both operations; ginkgo error checking included
func VarSubOnFile ¶ added in v1.0.7
VarSubOnFile reads in srcFile, finds instances inf varToSub, changes it to var, and writes out to destFile
func VerifyImagesDifferent ¶
func VerifyImagesDifferent(comp1, comp2, strategy string)
VerifyImagesDifferent will that the two supplied image tags and see if they reference different hexadecimal image IDs; strategy is for ginkgo debug, also leverage ginkgo error checking
func VerifyImagesSame ¶
func VerifyImagesSame(comp1, comp2, strategy string)
VerifyImagesSame will take the two supplied image tags and see if they reference the same hexadecimal image ID; strategy is for debug
func WaitForABuild ¶
func WaitForABuild(c client.BuildInterface, name string, isOK, isFailed func(*buildapi.Build) bool) error
WaitForABuild waits for a Build object to match either isOK or isFailed conditions.
func WaitForADeployment ¶ added in v1.0.6
func WaitForADeployment(client kclient.ReplicationControllerInterface, name string, isOK, isFailed func(*kapi.ReplicationController) bool) error
WaitForADeployment waits for a deployment to fulfill either isOK or isFailed. When isOK returns true, WaitForADeployment returns nil, when isFailed returns true, WaitForADeployment returns an error including the deployment status. WaitForADeployment waits for at most a certain timeout (non-configurable).
func WaitForAnImageStream ¶ added in v1.0.6
func WaitForAnImageStream(client client.ImageStreamInterface, name string, isOK, isFailed func(*imageapi.ImageStream) bool) error
WaitForAnImageStream waits for an ImageStream to fulfill the isOK function
func WaitForBuild ¶
WaitForBuild is a wrapper for WaitForABuild in this package that takes in an oc/cli client; some ginkgo based debug along with ginkgo error checking
func WaitForBuilderAccount ¶ added in v1.0.6
func WaitForBuilderAccount(c kclient.ServiceAccountsInterface) error
WaitForBuilderAccount waits until the builder service account gets fully provisioned
func WaitForPods ¶ added in v1.0.7
func WaitForPods(c kclient.PodInterface, label labels.Selector, predicate func(kapi.Pod) bool, count int, timeout time.Duration) ([]string, error)
WaitForPods waits until given number of pods that match the label selector and satisfy the predicate are found
func WaitForQueryOutput ¶ added in v1.0.7
func WaitForQueryOutput(oc *CLI, d Database, timeout time.Duration, admin bool, query, resultSubstr string) error
WaitForQueryOutput will execute the query multiple times, until the specified substring is found in the results. This function should be used for testing replication, since it might take some time untill the data is propagated to slaves.
func WaitForResourceQuotaSync ¶ added in v1.1.4
func WaitForResourceQuotaSync( client kclient.ResourceQuotaInterface, name string, expectedUsage kapi.ResourceList, expectedIsUpperLimit bool, timeout time.Duration) (kapi.ResourceList, error)
WaitForResourceQuotaSync watches given resource quota until its usage is updated to desired level or a timeout occurs. If successful, used quota values will be returned for expected resources. Otherwise an ErrWaitTimeout will be returned. If expectedIsUpperLimit is true, given expected usage must compare greater or equal to quota's usage, which is useful for expected usage increment. Otherwise expected usage must compare lower or equal to quota's usage, which is useful for expected usage decrement.
func WaitUntilAllHelpersAreUp ¶ added in v1.0.7
WaitUntilAllHelpersAreUp waits until all helpers are ready to serve requests.
func WaitUntilPodIsGone ¶ added in v1.0.7
WaitUntilPodIsGone waits until the named Pod will disappear
func WaitUntilUp ¶ added in v1.0.7
WaitUntilUp continuously waits for the server to become ready, up until timeout.
Types ¶
type CLI ¶
type CLI struct {
// contains filtered or unexported fields
}
CLI provides function to call the OpenShift CLI and Kubernetes and OpenShift REST clients.
func NewCLI ¶
NewCLI initialize the upstream E2E framework and set the namespace to match with the project name. Note that this function does not initialize the project role bindings for the namespace.
func (*CLI) AdminKubeREST ¶ added in v1.0.7
AdminKubeREST provides a Kubernetes REST client for the cluster admin user.
func (*CLI) ChangeUser ¶
ChangeUser changes the user used by the current CLI session.
func (*CLI) Execute ¶
Execute executes the current command and return error if the execution failed This function will set the default output to Ginkgo writer.
func (*CLI) InputString ¶ added in v1.0.7
InputString adds expected input to the command
func (*CLI) KubeFramework ¶
KubeFramework returns Kubernetes framework which contains helper functions specific for Kubernetes resources
func (*CLI) Namespace ¶
Namespace returns the name of the namespace used in the current test case. If the namespace is not set, an empty string is returned.
func (*CLI) OutputToFile ¶
OutputToFile executes the command and store output to a file
func (*CLI) REST ¶
REST provides an OpenShift REST client for the current user. If the user is not set, then it provides REST client for the cluster admin user
func (*CLI) Run ¶
Run executes given OpenShift CLI command verb (iow. "oc <verb>"). This function also override the default 'stdout' to redirect all output to a buffer and prepare the global flags such as namespace and config path.
func (*CLI) SetNamespace ¶
SetNamespace sets a new namespace
func (*CLI) SetOutputDir ¶
SetOutputDir change the default output directory for temporary files
func (*CLI) SetupProject ¶
func (c *CLI) SetupProject(name string, kubeClient *kclient.Client, _ map[string]string) (*kapi.Namespace, error)
SetupProject creates a new project and assign a random user to the project. All resources will be then created within this project and Kubernetes E2E suite will destroy the project after test case finish.
func (*CLI) Template ¶
Template sets a Go template for the OpenShift CLI command. This is equivalent of running "oc get foo -o template --template='{{ .spec }}'"
type Database ¶ added in v1.0.7
type Database interface { // PodName returns the name of the Pod this helper is bound to. PodName() string // IsReady indicates whether the underlying Pod is ready for queries. IsReady(oc *CLI) (bool, error) // Query queries the database as a regular user. Query(oc *CLI, query string) (string, error) // QueryPrivileged queries the database as a privileged user. QueryPrivileged(oc *CLI, query string) (string, error) // TestRemoteLogin tests wheather it is possible to remote login to hostAddress. TestRemoteLogin(oc *CLI, hostAddress string) error }
Database interface allows testing database images.
type MissingTagError ¶
type MissingTagError struct {
Tags []string
}
func (MissingTagError) Error ¶
func (mte MissingTagError) Error() string
type SimpleReporter ¶ added in v1.0.7
func NewSimpleReporter ¶ added in v1.0.7
func NewSimpleReporter() *SimpleReporter
func (*SimpleReporter) AfterSuiteDidRun ¶ added in v1.0.7
func (r *SimpleReporter) AfterSuiteDidRun(setupSummary *types.SetupSummary)
func (*SimpleReporter) BeforeSuiteDidRun ¶ added in v1.0.7
func (r *SimpleReporter) BeforeSuiteDidRun(*types.SetupSummary)
func (*SimpleReporter) SpecDidComplete ¶ added in v1.0.7
func (r *SimpleReporter) SpecDidComplete(spec *types.SpecSummary)
func (*SimpleReporter) SpecSuiteDidEnd ¶ added in v1.0.7
func (r *SimpleReporter) SpecSuiteDidEnd(summary *types.SuiteSummary)
func (*SimpleReporter) SpecSuiteWillBegin ¶ added in v1.0.7
func (r *SimpleReporter) SpecSuiteWillBegin(config config.GinkgoConfigType, summary *types.SuiteSummary)
func (*SimpleReporter) SpecWillRun ¶ added in v1.0.7
func (r *SimpleReporter) SpecWillRun(spec *types.SpecSummary)