From d3e8e84e53aac97e4d74516f65ae045ed4df66c8 Mon Sep 17 00:00:00 2001 From: Ben Tranter Date: Tue, 14 Jun 2022 16:56:23 -0400 Subject: [PATCH 1/2] util: update droplet create example --- util/droplet_test.go | 42 ++++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/util/droplet_test.go b/util/droplet_test.go index 12272e02..acacdf1c 100644 --- a/util/droplet_test.go +++ b/util/droplet_test.go @@ -2,28 +2,38 @@ package util import ( "context" - - "golang.org/x/oauth2" + "fmt" + "log" "github.com/digitalocean/godo" ) func ExampleWaitForActive() { - // build client - pat := "mytoken" - token := &oauth2.Token{AccessToken: pat} - t := oauth2.StaticTokenSource(token) - - ctx := context.TODO() - oauthClient := oauth2.NewClient(ctx, t) - client := godo.NewClient(oauthClient) - - // create your droplet and retrieve the create action uri - uri := "https://api.digitalocean.com/v2/actions/xxxxxxxx" + // Create a godo client.) + client := godo.NewFromToken("dop_v1_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") - // block until the action is complete - err := WaitForActive(ctx, client, uri) + // Create a Droplet. + droplet, resp, err := client.Droplets.Create(context.Background(), &godo.DropletCreateRequest{ + Name: "test-droplet", + Region: "nyc3", + Size: "s-1vcpu-1gb", + Image: godo.DropletCreateImage{ + Slug: "ubuntu-20-04-x64", + }, + }) if err != nil { - panic(err) + log.Fatalf("failed to create droplet: %v\n", err) } + + // Find the Droplet create action, then wait for it to complete. + for _, action := range resp.Links.Actions { + if action.Rel == "create" { + // Block until the action is complete. + if err := WaitForActive(context.Background(), client, action.HREF); err != nil { + log.Fatalf("error waiting for droplet to become active: %v\n", err) + } + } + } + + fmt.Println(droplet.Name) } From e4e8748411a2aa96437c8608bc204f9984402f25 Mon Sep 17 00:00:00 2001 From: Ben Tranter Date: Tue, 14 Jun 2022 16:59:42 -0400 Subject: [PATCH 2/2] util: fix typo in comment --- util/droplet_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/droplet_test.go b/util/droplet_test.go index acacdf1c..9c30cc3a 100644 --- a/util/droplet_test.go +++ b/util/droplet_test.go @@ -9,7 +9,7 @@ import ( ) func ExampleWaitForActive() { - // Create a godo client.) + // Create a godo client. client := godo.NewFromToken("dop_v1_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") // Create a Droplet.