func removeMasterReplica(zone string) error { framework.Logf(fmt.Sprintf("Removing an existing master replica, zone: %s", zone)) v, _, err := framework.RunCmd(path.Join(framework.TestContext.RepoRoot, "hack/e2e-internal/e2e-remove-master.sh"), zone, "true") framework.Logf("%s", v) if err != nil { return err } return nil }
func addMasterReplica(zone string) error { framework.Logf(fmt.Sprintf("Adding a new master replica, zone: %s", zone)) v, _, err := framework.RunCmd(path.Join(framework.TestContext.RepoRoot, "hack/e2e-internal/e2e-add-master.sh"), zone) framework.Logf("%s", v) if err != nil { return err } return nil }
func removeWorkerNodes(zone string) error { framework.Logf(fmt.Sprintf("Removing worker nodes, zone: %s", zone)) v, _, err := framework.RunCmd(path.Join(framework.TestContext.RepoRoot, "hack/e2e-internal/e2e-shrink-cluster.sh"), zone, "true", "true", "true") framework.Logf("%s", v) if err != nil { return err } return nil }
// realVersion turns a version constant s into a version string deployable on // GKE. See hack/get-build.sh for more information. func realVersion(s string) (string, error) { framework.Logf(fmt.Sprintf("Getting real version for %q", s)) v, _, err := framework.RunCmd(path.Join(framework.TestContext.RepoRoot, "hack/get-build.sh"), "-v", s) if err != nil { return v, err } framework.Logf("Version for %q is %q", s, v) return strings.TrimPrefix(strings.TrimSpace(v), "v"), nil }
func restartNodes(f *framework.Framework, nodeNames []string) error { // List old boot IDs. oldBootIDs := make(map[string]string) for _, name := range nodeNames { node, err := f.Client.Nodes().Get(name) if err != nil { return fmt.Errorf("error getting node info before reboot: %s", err) } oldBootIDs[name] = node.Status.NodeInfo.BootID } // Reboot the nodes. args := []string{ "compute", fmt.Sprintf("--project=%s", framework.TestContext.CloudConfig.ProjectID), "instances", "reset", } args = append(args, nodeNames...) args = append(args, fmt.Sprintf("--zone=%s", framework.TestContext.CloudConfig.Zone)) stdout, stderr, err := framework.RunCmd("gcloud", args...) if err != nil { return fmt.Errorf("error restarting nodes: %s\nstdout: %s\nstderr: %s", err, stdout, stderr) } // Wait for their boot IDs to change. for _, name := range nodeNames { if err := wait.Poll(30*time.Second, 5*time.Minute, func() (bool, error) { node, err := f.Client.Nodes().Get(name) if err != nil { return false, fmt.Errorf("error getting node info after reboot: %s", err) } return node.Status.NodeInfo.BootID != oldBootIDs[name], nil }); err != nil { return fmt.Errorf("error waiting for node %s boot ID to change: %s", name, err) } } return nil }