From fd66e74116b15c52cd546bffc155c90ee30fac29 Mon Sep 17 00:00:00 2001 From: Jerome Quere Date: Mon, 2 Sep 2019 17:05:56 +0200 Subject: [PATCH 1/2] doc: add reboot all server example --- example_test.go | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/example_test.go b/example_test.go index 19df070e4..8693040c3 100644 --- a/example_test.go +++ b/example_test.go @@ -2,6 +2,7 @@ package scalewaysdkgo import ( "fmt" + "time" "github.com/scaleway/scaleway-sdk-go/api/instance/v1" "github.com/scaleway/scaleway-sdk-go/api/lb/v1" @@ -84,6 +85,44 @@ func Example_listServers() { fmt.Println(response) } +func Example_rebootAllServers() { + + // Create a Scaleway client + client, err := scw.NewClient( + scw.WithAuth("ACCESS_KEY", "SECRET_KEY"), // Get your credentials at https://console.scaleway.com/account/credentials + scw.WithDefaultZone(scw.ZoneFrPar1), + ) + if err != nil { + panic(err) + } + + // Create SDK objects for Scaleway Instance product + instanceAPI := instance.NewAPI(client) + + // Call the ListServers method on the Instance SDK + response, err := instanceAPI.ListServers(&instance.ListServersRequest{}) + if err != nil { + panic(err) + } + + // For each server if they are running we reboot them using ServerActionAndWait + for _, server := range response.Servers { + if server.State == instance.ServerStateRunning { + fmt.Println("Rebooting server with ID", server.ID) + err = instanceAPI.ServerActionAndWait(&instance.ServerActionAndWaitRequest{ + ServerID: server.ID, + Zone: scw.ZoneFrPar1, + Action: instance.ServerActionReboot, + Timeout: 3 * time.Minute, + }) + if err != nil { + panic(err) + } + } + } + fmt.Println("All servers were successfully rebooted") +} + func Example_createLoadBalancer() { // Create a Scaleway client From 934148089ab5c3e21e10d7ed2100c8c37c6e8129 Mon Sep 17 00:00:00 2001 From: Jerome Quere Date: Tue, 3 Sep 2019 12:14:28 +0200 Subject: [PATCH 2/2] address comments --- example_test.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/example_test.go b/example_test.go index 8693040c3..da0cef458 100644 --- a/example_test.go +++ b/example_test.go @@ -99,7 +99,7 @@ func Example_rebootAllServers() { // Create SDK objects for Scaleway Instance product instanceAPI := instance.NewAPI(client) - // Call the ListServers method on the Instance SDK + // Call the ListServers method of the Instance SDK response, err := instanceAPI.ListServers(&instance.ListServersRequest{}) if err != nil { panic(err) @@ -111,9 +111,8 @@ func Example_rebootAllServers() { fmt.Println("Rebooting server with ID", server.ID) err = instanceAPI.ServerActionAndWait(&instance.ServerActionAndWaitRequest{ ServerID: server.ID, - Zone: scw.ZoneFrPar1, Action: instance.ServerActionReboot, - Timeout: 3 * time.Minute, + Timeout: 5 * time.Minute, }) if err != nil { panic(err)