diff --git a/tests/e2e/e2e_common.go b/tests/e2e/e2e_common.go index b6d90c3e00..818c8c1c5b 100644 --- a/tests/e2e/e2e_common.go +++ b/tests/e2e/e2e_common.go @@ -664,6 +664,9 @@ var ( envMasterIP1SshdPortNum = "MASTER_IP1_SSHD_PORT_NUM" envMasterIP2SshdPortNum = "MASTER_IP2_SSHD_PORT_NUM" envMasterIP3SshdPortNum = "MASTER_IP3_SSHD_PORT_NUM" + envWorkerIP1SshdPortNum = "WORKER_IP1_SSHD_PORT_NUM" + envWorkerIP2SshdPortNum = "WORKER_IP2_SSHD_PORT_NUM" + envWorkerIP3SshdPortNum = "WORKER_IP3_SSHD_PORT_NUM" envEsx1PortNum = "ESX1_SSHD_PORT_NUM" envEsx2PortNum = "ESX2_SSHD_PORT_NUM" envEsx3PortNum = "ESX3_SSHD_PORT_NUM" @@ -682,6 +685,9 @@ var ( envMasterIP1 = "MASTER_IP1" envMasterIP2 = "MASTER_IP2" envMasterIP3 = "MASTER_IP3" + envWorkerIP1 = "WORKER_IP1" + envWorkerIP2 = "WORKER_IP2" + envWorkerIP3 = "WORKER_IP3" envEsxIp1 = "ESX1_IP" envEsxIp2 = "ESX2_IP" envEsxIp3 = "ESX3_IP" @@ -710,6 +716,9 @@ var ( k8sMasterIp1PortNum = sshdPort k8sMasterIp2PortNum = sshdPort k8sMasterIp3PortNum = sshdPort + k8sWorkerIp1PortNum = sshdPort + k8sWorkerIp2PortNum = sshdPort + k8sWorkerIp3PortNum = sshdPort defaultVcAdminPortNum = "443" // global variables declared @@ -729,6 +738,9 @@ var ( masterIP1 = "" masterIP2 = "" masterIP3 = "" + workerIP1 = "" + workerIP2 = "" + workerIP3 = "" ipPortMap = make(map[string]string) missingEnvVars []string defaultlocalhostIP = "127.0.0.1" @@ -767,10 +779,15 @@ func setSShdPort() { masterIP1 = GetorIgnoreStringEnvVar(envMasterIP1) masterIP2 = GetorIgnoreStringEnvVar(envMasterIP2) masterIP3 = GetorIgnoreStringEnvVar(envMasterIP3) + workerIP1 = GetorIgnoreStringEnvVar(envWorkerIP1) + workerIP2 = GetorIgnoreStringEnvVar(envWorkerIP2) + workerIP3 = GetorIgnoreStringEnvVar(envWorkerIP3) k8sMasterIp1PortNum = GetorIgnoreStringEnvVar(envMasterIP1SshdPortNum) k8sMasterIp2PortNum = GetorIgnoreStringEnvVar(envMasterIP2SshdPortNum) k8sMasterIp3PortNum = GetorIgnoreStringEnvVar(envMasterIP3SshdPortNum) - + k8sWorkerIp1PortNum = GetorIgnoreStringEnvVar(envWorkerIP1SshdPortNum) + k8sWorkerIp2PortNum = GetorIgnoreStringEnvVar(envWorkerIP2SshdPortNum) + k8sWorkerIp3PortNum = GetorIgnoreStringEnvVar(envWorkerIP3SshdPortNum) vcIp1SshPortNum = GetorIgnoreStringEnvVar(envVc1SshdPortNum) // reading esxi ip and its port @@ -800,6 +817,9 @@ func setSShdPort() { safeInsertToMap(masterIP1, k8sMasterIp1PortNum) safeInsertToMap(masterIP2, k8sMasterIp2PortNum) safeInsertToMap(masterIP3, k8sMasterIp3PortNum) + safeInsertToMap(workerIP1, k8sWorkerIp1PortNum) + safeInsertToMap(workerIP2, k8sWorkerIp2PortNum) + safeInsertToMap(workerIP3, k8sWorkerIp3PortNum) safeInsertToMap(esxIp1, esxIp1PortNum) safeInsertToMap(esxIp2, esxIp2PortNum) safeInsertToMap(esxIp3, esxIp3PortNum) diff --git a/tests/e2e/util.go b/tests/e2e/util.go index f9aeb63c41..ecbd56b26f 100644 --- a/tests/e2e/util.go +++ b/tests/e2e/util.go @@ -8157,6 +8157,10 @@ func createtWcpNsWithZonesAndPolicies( // Make the API request _, statusCode := invokeVCRestAPIPostRequest(vcRestSessionId, nsCreationUrl, reqBody) + ginkgo.By("Wait for namespace to get created and listed under " + + "supervisor cluster") + time.Sleep(2 * time.Minute) + return namespace, statusCode, nil } diff --git a/tests/e2e/vsan_stretched_cluster.go b/tests/e2e/vsan_stretched_cluster.go index 89cac9fcb1..cd7b2a2150 100644 --- a/tests/e2e/vsan_stretched_cluster.go +++ b/tests/e2e/vsan_stretched_cluster.go @@ -128,8 +128,7 @@ var _ = ginkgo.Describe("[vsan-stretch-vanilla] vsan stretched cluster tests", f ginkgo.Skip(envStoragePolicyNameWithThickProvision + " env variable not set") } sc, err := client.StorageV1().StorageClasses().Get(ctx, defaultNginxStorageClassName, metav1.GetOptions{}) - framework.Logf("Storageclass is %v and err is %v", sc, err) - if (!strings.Contains(err.Error(), "not found")) && sc != nil { + if err != nil && (!strings.Contains(err.Error(), "not found")) && sc != nil { framework.ExpectNoError(client.StorageV1().StorageClasses().Delete(ctx, defaultNginxStorageClassName, *metav1.NewDeleteOptions(0)), "Unable to delete storage class "+defaultNginxStorageClassName) } diff --git a/tests/e2e/vsan_stretched_cluster_utils.go b/tests/e2e/vsan_stretched_cluster_utils.go index 387da2c132..0184dfccb0 100644 --- a/tests/e2e/vsan_stretched_cluster_utils.go +++ b/tests/e2e/vsan_stretched_cluster_utils.go @@ -220,19 +220,44 @@ func createFaultDomainMap(ctx context.Context, vs *vSphere) map[string]string { return fdMap } +func isSSHReachable(ip string, timeout time.Duration) error { + nimbusGeneratedK8sVmPwd := GetAndExpectStringEnvVar(nimbusK8sVmPwd) + sshClientConfig := &ssh.ClientConfig{ + User: "root", + Auth: []ssh.AuthMethod{ + ssh.Password(nimbusGeneratedK8sVmPwd), + }, + HostKeyCallback: ssh.InsecureIgnoreHostKey(), + } + // Read hosts sshd port number + ip, portNum, err := getPortNumAndIP(ip) + gomega.Expect(err).NotTo(gomega.HaveOccurred()) + addr := ip + ":" + portNum + _, err = ssh.Dial("tcp", addr, sshClientConfig) + if err != nil { + if strings.Contains(err.Error(), "connection reset by peer") || + strings.Contains(err.Error(), "no route to host") || + strings.Contains(err.Error(), "handshake failed") { + return err // unreachable + } + } + return nil +} + // waitForHostToBeDown wait for host to be down func waitForHostToBeDown(ctx context.Context, ip string) error { framework.Logf("checking host status of %s", ip) gomega.Expect(ip).NotTo(gomega.BeNil()) gomega.Expect(ip).NotTo(gomega.BeEmpty()) - // Read hosts sshd port number + /* Read hosts sshd port number ip, portNum, err := getPortNumAndIP(ip) gomega.Expect(err).NotTo(gomega.HaveOccurred()) - addr := ip + ":" + portNum + addr := ip + ":" + portNum*/ waitErr := wait.PollUntilContextTimeout(ctx, poll*2, pollTimeoutShort*2, true, func(ctx context.Context) (bool, error) { - _, err := net.DialTimeout("tcp", addr, poll) + //_, err := net.DialTimeout("tcp", addr, poll) + err := isSSHReachable(ip, poll) if err == nil { framework.Logf("host is reachable") return false, nil