func catLogHook(logPath string) terminationHook { return func(provider string, nodes *v1.NodeList) { for _, n := range nodes.Items { cmd := fmt.Sprintf("cat %v && rm %v", logPath, logPath) if _, err := framework.IssueSSHCommandWithResult(cmd, provider, &n); err != nil { framework.Logf("Error while issuing ssh command: %v", err) } } } }
jsonBytes, err := json.Marshal(options) cmd := fmt.Sprintf( `curl -X POST http://localhost:%v/run/nat-closewait-client -d `+ `'%v' 2>/dev/null`, testDaemonHttpPort, string(jsonBytes)) framework.RunHostCmdOrDie(fr.Namespace.Name, "e2e-net-client", cmd) <-time.After(time.Duration(1) * time.Second) By("Checking /proc/net/nf_conntrack for the timeout") // If test flakes occur here, then this check should be performed // in a loop as there may be a race with the client connecting. framework.IssueSSHCommandWithResult( fmt.Sprintf("sudo cat /proc/net/ip_conntrack | grep 'dport=%v'", testDaemonTcpPort), framework.TestContext.Provider, clientNodeInfo.node) // Timeout in seconds is available as the third column from // /proc/net/ip_conntrack. result, err := framework.IssueSSHCommandWithResult( fmt.Sprintf( "sudo cat /proc/net/ip_conntrack "+ "| grep 'CLOSE_WAIT.*dst=%v.*dport=%v' "+ "| awk '{print $3}'", serverNodeInfo.nodeIp, testDaemonTcpPort), framework.TestContext.Provider, clientNodeInfo.node) framework.ExpectNoError(err)