本文整理汇总了Golang中k8s/io/minikube/test/integration/util.MinikubeRunner.RunCommand方法的典型用法代码示例。如果您正苦于以下问题:Golang MinikubeRunner.RunCommand方法的具体用法?Golang MinikubeRunner.RunCommand怎么用?Golang MinikubeRunner.RunCommand使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类k8s/io/minikube/test/integration/util.MinikubeRunner
的用法示例。
在下文中一共展示了MinikubeRunner.RunCommand方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: TestClusterLogs
func TestClusterLogs(t *testing.T) {
minikubeRunner := util.MinikubeRunner{BinaryPath: *binaryPath, T: t}
minikubeRunner.EnsureRunning()
logsCmdOutput := minikubeRunner.RunCommand("logs", true)
//check for # of lines or check for strings
logFiles := []string{constants.RemoteLocalKubeErrPath, constants.RemoteLocalKubeOutPath}
for _, logFile := range logFiles {
if !strings.Contains(logsCmdOutput, logFile) {
t.Fatalf("Error in logsCmdOutput, expected to find: %s. Output: %s", logFile, logsCmdOutput)
}
}
}
示例2: TestClusterSSH
func TestClusterSSH(t *testing.T) {
minikubeRunner := util.MinikubeRunner{
Args: *args,
BinaryPath: *binaryPath,
T: t}
minikubeRunner.EnsureRunning()
expectedStr := "hello"
sshCmdOutput := minikubeRunner.RunCommand("ssh echo "+expectedStr, true)
if !strings.Contains(sshCmdOutput, expectedStr) {
t.Fatalf("ExpectedStr sshCmdOutput to be: %s. Output was: %s", expectedStr, sshCmdOutput)
}
}
示例3: TestStartStop
func TestStartStop(t *testing.T) {
runner := util.MinikubeRunner{
Args: *args,
BinaryPath: *binaryPath,
T: t}
runner.RunCommand("delete", false)
runner.CheckStatus("Does Not Exist")
runner.Start()
runner.CheckStatus("Running")
ip := runner.RunCommand("ip", true)
ip = strings.TrimRight(ip, "\n")
if net.ParseIP(ip) == nil {
t.Fatalf("IP command returned an invalid address: %s", ip)
}
runner.RunCommand("stop", true)
runner.CheckStatus("Stopped")
runner.Start()
runner.CheckStatus("Running")
runner.RunCommand("delete", true)
runner.CheckStatus("Does Not Exist")
}
示例4: TestClusterEnv
func TestClusterEnv(t *testing.T) {
minikubeRunner := util.MinikubeRunner{
Args: *args,
BinaryPath: *binaryPath,
T: t}
minikubeRunner.EnsureRunning()
dockerEnvVars := minikubeRunner.RunCommand("docker-env", true)
if err := minikubeRunner.SetEnvFromEnvCmdOutput(dockerEnvVars); err != nil {
t.Fatalf("Error parsing output: %s", err)
}
path, err := exec.LookPath("docker")
var output []byte
dockerPs := func() error {
cmd := exec.Command(path, "ps")
output, err = cmd.CombinedOutput()
return err
}
if err := commonutil.RetryAfter(5, dockerPs, 3*time.Second); err != nil {
t.Fatalf("Error running command: %s. Error: %s Output: %s", "docker ps", err, output)
}
}
示例5: TestDockerEnv
func TestDockerEnv(t *testing.T) {
minikubeRunner := util.MinikubeRunner{
Args: *args,
BinaryPath: *binaryPath,
T: t}
minikubeRunner.RunCommand("delete", true)
minikubeRunner.RunCommand("start --docker-env=FOO=BAR --docker-env=BAZ=BAT", true)
minikubeRunner.EnsureRunning()
profileContents := minikubeRunner.RunCommand("ssh cat /var/lib/boot2docker/profile", true)
fmt.Println(profileContents)
for _, envVar := range []string{"FOO=BAR", "BAZ=BAT"} {
if !strings.Contains(profileContents, fmt.Sprintf("export \"%s\"", envVar)) {
t.Fatalf("Env var %s missing from file: %s.", envVar, profileContents)
}
}
}
示例6: TestPersistence
func TestPersistence(t *testing.T) {
minikubeRunner := util.MinikubeRunner{BinaryPath: *binaryPath, T: t}
minikubeRunner.EnsureRunning()
kubectlRunner := util.NewKubectlRunner(t)
podName := "busybox"
podPath, _ := filepath.Abs("testdata/busybox.yaml")
podNamespace := kubectlRunner.CreateRandomNamespace()
defer kubectlRunner.DeleteNamespace(podNamespace)
// Create a pod and wait for it to be running.
if _, err := kubectlRunner.RunCommand([]string{"create", "-f", podPath, "--namespace=" + podNamespace}); err != nil {
t.Fatalf("Error creating test pod: %s", err)
}
checkPod := func() error {
p := kubectlRunner.GetPod(podName, podNamespace)
if util.IsPodReady(p) {
return nil
}
return fmt.Errorf("Pod %s is not ready yet.", podName)
}
if err := commonutil.RetryAfter(20, checkPod, 6*time.Second); err != nil {
t.Fatalf("Error checking the status of pod %s. Err: %s", podName, err)
}
checkDashboard := func() error {
pods := api.PodList{}
cmd := []string{"get", "pods", "--namespace=kube-system", "--selector=app=kubernetes-dashboard"}
if err := kubectlRunner.RunCommandParseOutput(cmd, &pods); err != nil {
return err
}
if len(pods.Items) < 1 {
return fmt.Errorf("No pods found matching query: %v", cmd)
}
db := pods.Items[0]
if util.IsPodReady(&db) {
return nil
}
return fmt.Errorf("Dashboard pod is not ready yet.")
}
// Make sure the dashboard is running before we stop the VM.
// On slow networks it can take several minutes to pull the addon-manager then the dashboard image.
if err := commonutil.RetryAfter(20, checkDashboard, 6*time.Second); err != nil {
t.Fatalf("Dashboard pod is not healthy: %s", err)
}
// Now restart minikube and make sure the pod is still there.
minikubeRunner.RunCommand("stop", true)
minikubeRunner.CheckStatus("Stopped")
minikubeRunner.RunCommand("start", true)
minikubeRunner.CheckStatus("Running")
if err := commonutil.RetryAfter(5, checkPod, 3*time.Second); err != nil {
t.Fatalf("Error checking the status of pod %s. Err: %s", podName, err)
}
// Now make sure it's still running after.
if err := commonutil.RetryAfter(5, checkDashboard, 3*time.Second); err != nil {
t.Fatalf("Dashboard pod is not healthy: %s", err)
}
}