Skip to content

Commit b387555

Browse files
authored
Merge pull request kubernetes#77336 from johnSchnake/refactorFrameworkSSH
Move ssh code to new package
2 parents 09c4e10 + 338bc3c commit b387555

32 files changed

+259
-119
lines changed

test/e2e/apimachinery/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ go_library(
8282
"//test/e2e/framework:go_default_library",
8383
"//test/e2e/framework/deployment:go_default_library",
8484
"//test/e2e/framework/metrics:go_default_library",
85+
"//test/e2e/framework/ssh:go_default_library",
8586
"//test/utils:go_default_library",
8687
"//test/utils/crd:go_default_library",
8788
"//test/utils/image:go_default_library",

test/e2e/apimachinery/etcd_failure.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
podutil "k8s.io/kubernetes/pkg/api/v1/pod"
2626
"k8s.io/kubernetes/test/e2e/apps"
2727
"k8s.io/kubernetes/test/e2e/framework"
28+
e2essh "k8s.io/kubernetes/test/e2e/framework/ssh"
2829
testutils "k8s.io/kubernetes/test/utils"
2930
imageutils "k8s.io/kubernetes/test/utils/image"
3031

@@ -95,10 +96,10 @@ func doEtcdFailure(failCommand, fixCommand string) {
9596

9697
func masterExec(cmd string) {
9798
host := framework.GetMasterHost() + ":22"
98-
result, err := framework.SSH(cmd, host, framework.TestContext.Provider)
99+
result, err := e2essh.SSH(cmd, host, framework.TestContext.Provider)
99100
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to SSH to host %s on provider %s and run command: %q", host, framework.TestContext.Provider, cmd)
100101
if result.Code != 0 {
101-
framework.LogSSHResult(result)
102+
e2essh.LogResult(result)
102103
framework.Failf("master exec command returned non-zero")
103104
}
104105
}

test/e2e/apps/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ go_library(
6464
"//test/e2e/framework/deployment:go_default_library",
6565
"//test/e2e/framework/job:go_default_library",
6666
"//test/e2e/framework/replicaset:go_default_library",
67+
"//test/e2e/framework/ssh:go_default_library",
6768
"//test/utils:go_default_library",
6869
"//test/utils/image:go_default_library",
6970
"//vendor/github.com/davecgh/go-spew/spew:go_default_library",

test/e2e/apps/daemon_restart.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import (
2121
"strconv"
2222
"time"
2323

24-
"k8s.io/api/core/v1"
24+
v1 "k8s.io/api/core/v1"
2525
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2626
"k8s.io/apimachinery/pkg/labels"
2727
"k8s.io/apimachinery/pkg/runtime"
@@ -33,6 +33,7 @@ import (
3333
"k8s.io/client-go/tools/cache"
3434
"k8s.io/kubernetes/pkg/master/ports"
3535
"k8s.io/kubernetes/test/e2e/framework"
36+
e2essh "k8s.io/kubernetes/test/e2e/framework/ssh"
3637
testutils "k8s.io/kubernetes/test/utils"
3738
imageutils "k8s.io/kubernetes/test/utils/image"
3839

@@ -93,7 +94,7 @@ func (r *RestartDaemonConfig) waitUp() {
9394
"curl -s -o /dev/null -I -w \"%%{http_code}\" http://localhost:%v/healthz", r.healthzPort)
9495

9596
err := wait.Poll(r.pollInterval, r.pollTimeout, func() (bool, error) {
96-
result, err := framework.NodeExec(r.nodeName, healthzCheck)
97+
result, err := e2essh.NodeExec(r.nodeName, healthzCheck, framework.TestContext.Provider)
9798
framework.ExpectNoError(err)
9899
if result.Code == 0 {
99100
httpCode, err := strconv.Atoi(result.Stdout)
@@ -113,7 +114,7 @@ func (r *RestartDaemonConfig) waitUp() {
113114
// kill sends a SIGTERM to the daemon
114115
func (r *RestartDaemonConfig) kill() {
115116
framework.Logf("Killing %v", r)
116-
_, err := framework.NodeExec(r.nodeName, fmt.Sprintf("pgrep %v | xargs -I {} sudo kill {}", r.daemonName))
117+
_, err := e2essh.NodeExec(r.nodeName, fmt.Sprintf("pgrep %v | xargs -I {} sudo kill {}", r.daemonName), framework.TestContext.Provider)
117118
framework.ExpectNoError(err)
118119
}
119120

test/e2e/framework/BUILD

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ go_library(
2727
"resource_usage_gatherer.go",
2828
"service_util.go",
2929
"size.go",
30-
"ssh.go",
3130
"statefulset_utils.go",
3231
"test_context.go",
3332
"util.go",
@@ -59,7 +58,6 @@ go_library(
5958
"//pkg/scheduler/metrics:go_default_library",
6059
"//pkg/scheduler/nodeinfo:go_default_library",
6160
"//pkg/security/podsecuritypolicy/seccomp:go_default_library",
62-
"//pkg/ssh:go_default_library",
6361
"//pkg/util/system:go_default_library",
6462
"//pkg/util/taints:go_default_library",
6563
"//pkg/volume/util:go_default_library",
@@ -113,6 +111,7 @@ go_library(
113111
"//test/e2e/framework/auth:go_default_library",
114112
"//test/e2e/framework/ginkgowrapper:go_default_library",
115113
"//test/e2e/framework/metrics:go_default_library",
114+
"//test/e2e/framework/ssh:go_default_library",
116115
"//test/e2e/framework/testfiles:go_default_library",
117116
"//test/e2e/manifest:go_default_library",
118117
"//test/e2e/perftype:go_default_library",
@@ -125,7 +124,6 @@ go_library(
125124
"//vendor/github.com/pkg/errors:go_default_library",
126125
"//vendor/github.com/prometheus/common/expfmt:go_default_library",
127126
"//vendor/github.com/prometheus/common/model:go_default_library",
128-
"//vendor/golang.org/x/crypto/ssh:go_default_library",
129127
"//vendor/golang.org/x/net/websocket:go_default_library",
130128
"//vendor/k8s.io/klog:go_default_library",
131129
"//vendor/k8s.io/utils/exec:go_default_library",
@@ -162,6 +160,7 @@ filegroup(
162160
"//test/e2e/framework/providers/openstack:all-srcs",
163161
"//test/e2e/framework/providers/vsphere:all-srcs",
164162
"//test/e2e/framework/replicaset:all-srcs",
163+
"//test/e2e/framework/ssh:all-srcs",
165164
"//test/e2e/framework/testfiles:all-srcs",
166165
"//test/e2e/framework/timer:all-srcs",
167166
"//test/e2e/framework/viperconfig:all-srcs",

test/e2e/framework/get-kubemark-resource-usage.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ import (
2020
"bufio"
2121
"fmt"
2222
"strings"
23+
24+
e2essh "k8s.io/kubernetes/test/e2e/framework/ssh"
2325
)
2426

2527
// KubemarkResourceUsage is a struct for tracking the resource usage of kubemark.
@@ -30,7 +32,7 @@ type KubemarkResourceUsage struct {
3032
}
3133

3234
func getMasterUsageByPrefix(prefix string) (string, error) {
33-
sshResult, err := SSH(fmt.Sprintf("ps ax -o %%cpu,rss,command | tail -n +2 | grep %v | sed 's/\\s+/ /g'", prefix), GetMasterHost()+":22", TestContext.Provider)
35+
sshResult, err := e2essh.SSH(fmt.Sprintf("ps ax -o %%cpu,rss,command | tail -n +2 | grep %v | sed 's/\\s+/ /g'", prefix), GetMasterHost()+":22", TestContext.Provider)
3436
if err != nil {
3537
return "", err
3638
}

test/e2e/framework/log_size_monitoring.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"time"
2727

2828
clientset "k8s.io/client-go/kubernetes"
29+
e2essh "k8s.io/kubernetes/test/e2e/framework/ssh"
2930
)
3031

3132
const (
@@ -154,7 +155,7 @@ func (d *LogsSizeData) addNewData(ip, path string, timestamp time.Time, size int
154155

155156
// NewLogsVerifier creates a new LogsSizeVerifier which will stop when stopChannel is closed
156157
func NewLogsVerifier(c clientset.Interface, stopChannel chan bool) *LogsSizeVerifier {
157-
nodeAddresses, err := NodeSSHHosts(c)
158+
nodeAddresses, err := e2essh.NodeSSHHosts(c)
158159
ExpectNoError(err)
159160
masterAddress := GetMasterHost() + ":22"
160161

@@ -250,7 +251,7 @@ func (g *LogSizeGatherer) Work() bool {
250251
return false
251252
case workItem = <-g.workChannel:
252253
}
253-
sshResult, err := SSH(
254+
sshResult, err := e2essh.SSH(
254255
fmt.Sprintf("ls -l %v | awk '{print $9, $5}' | tr '\n' ' '", strings.Join(workItem.paths, " ")),
255256
workItem.ip,
256257
TestContext.Provider,

test/e2e/framework/metrics_util.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import (
3737
schedulermetric "k8s.io/kubernetes/pkg/scheduler/metrics"
3838
"k8s.io/kubernetes/pkg/util/system"
3939
"k8s.io/kubernetes/test/e2e/framework/metrics"
40+
e2essh "k8s.io/kubernetes/test/e2e/framework/ssh"
4041

4142
"github.com/prometheus/common/expfmt"
4243
"github.com/prometheus/common/model"
@@ -329,7 +330,7 @@ func getEtcdMetrics() ([]*model.Sample, error) {
329330
}
330331

331332
cmd := "curl http://localhost:2379/metrics"
332-
sshResult, err := SSH(cmd, GetMasterHost()+":22", TestContext.Provider)
333+
sshResult, err := e2essh.SSH(cmd, GetMasterHost()+":22", TestContext.Provider)
333334
if err != nil || sshResult.Code != 0 {
334335
return nil, fmt.Errorf("unexpected error (code: %d) in ssh connection to master: %#v", sshResult.Code, err)
335336
}
@@ -656,7 +657,7 @@ func sendRestRequestToScheduler(c clientset.Interface, op string) (string, error
656657
}
657658

658659
cmd := "curl -X " + opUpper + " http://localhost:10251/metrics"
659-
sshResult, err := SSH(cmd, GetMasterHost()+":22", TestContext.Provider)
660+
sshResult, err := e2essh.SSH(cmd, GetMasterHost()+":22", TestContext.Provider)
660661
if err != nil || sshResult.Code != 0 {
661662
return "", fmt.Errorf("unexpected error (code: %d) in ssh connection to master: %#v", sshResult.Code, err)
662663
}

test/e2e/framework/nodes_util.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,10 @@ import (
2525
"sync"
2626
"time"
2727

28-
"k8s.io/api/core/v1"
28+
v1 "k8s.io/api/core/v1"
2929
"k8s.io/apimachinery/pkg/util/wait"
3030
clientset "k8s.io/client-go/kubernetes"
31+
e2essh "k8s.io/kubernetes/test/e2e/framework/ssh"
3132
)
3233

3334
// EtcdUpgrade upgrades etcd on GCE.
@@ -351,7 +352,7 @@ func (k *NodeKiller) kill(nodes []v1.Node) {
351352
defer wg.Done()
352353

353354
Logf("Stopping docker and kubelet on %q to simulate failure", node.Name)
354-
err := IssueSSHCommand("sudo systemctl stop docker kubelet", k.provider, &node)
355+
err := e2essh.IssueSSHCommand("sudo systemctl stop docker kubelet", k.provider, &node)
355356
if err != nil {
356357
Logf("ERROR while stopping node %q: %v", node.Name, err)
357358
return
@@ -360,7 +361,7 @@ func (k *NodeKiller) kill(nodes []v1.Node) {
360361
time.Sleep(k.config.SimulatedDowntime)
361362

362363
Logf("Rebooting %q to repair the node", node.Name)
363-
err = IssueSSHCommand("sudo reboot", k.provider, &node)
364+
err = e2essh.IssueSSHCommand("sudo reboot", k.provider, &node)
364365
if err != nil {
365366
Logf("ERROR while rebooting node %q: %v", node.Name, err)
366367
return

test/e2e/framework/profile_gatherer.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ import (
2525
"strings"
2626
"sync"
2727
"time"
28+
29+
e2essh "k8s.io/kubernetes/test/e2e/framework/ssh"
2830
)
2931

3032
const (
@@ -93,7 +95,7 @@ func gatherProfile(componentName, profileBaseName, profileKind string) error {
9395

9496
// Get the profile data over SSH.
9597
getCommand := fmt.Sprintf("curl -s localhost:%v/debug/pprof/%s", profilePort, profileKind)
96-
sshResult, err := SSH(getCommand, GetMasterHost()+":22", TestContext.Provider)
98+
sshResult, err := e2essh.SSH(getCommand, GetMasterHost()+":22", TestContext.Provider)
9799
if err != nil {
98100
return fmt.Errorf("Failed to execute curl command on master through SSH: %v", err)
99101
}

0 commit comments

Comments
 (0)