func TestActionReboot(t *testing.T) { t.Parallel() client, err := newClient() if err != nil { t.Fatalf("Unable to create a compute client: %v", err) } choices, err := ComputeChoicesFromEnv() if err != nil { t.Fatal(err) } server, err := createServer(t, client, choices) if err != nil { t.Fatal(err) } defer servers.Delete(client, server.ID) if err = waitForStatus(client, server, "ACTIVE"); err != nil { t.Fatal(err) } res := servers.Reboot(client, server.ID, "aldhjflaskhjf") if res.Err == nil { t.Fatal("Expected the SDK to provide an ArgumentError here") } t.Logf("Attempting reboot of server %s", server.ID) res = servers.Reboot(client, server.ID, servers.OSReboot) if res.Err != nil { t.Fatalf("Unable to reboot server: %v", err) } if err = waitForStatus(client, server, "REBOOT"); err != nil { t.Fatal(err) } if err = waitForStatus(client, server, "ACTIVE"); err != nil { t.Fatal(err) } }
func (c *GenericClient) RestartInstance(d *Driver) error { if result := servers.Reboot(c.Compute, d.MachineId, servers.SoftReboot); result.Err != nil { return result.Err } return nil }
// Reboot requests that a given server reboot. Two methods exist for rebooting a server: // // os.HardReboot (aka PowerCycle) restarts the server instance by physically cutting power to the // machine, or if a VM, terminating it at the hypervisor level. It's done. Caput. Full stop. Then, // after a brief wait, power is restored or the VM instance restarted. // // os.SoftReboot (aka OSReboot) simply tells the OS to restart under its own procedures. E.g., in // Linux, asking it to enter runlevel 6, or executing "sudo shutdown -r now", or by asking Windows to restart the machine. func Reboot(client *gophercloud.ServiceClient, id string, how os.RebootMethod) os.ActionResult { return os.Reboot(client, id, how) }