From d13370f89e5b949f1f73b700ad69244ad381ee9f Mon Sep 17 00:00:00 2001 From: Mike Holloway Date: Mon, 5 Jul 2021 00:42:23 -0400 Subject: [PATCH] On branch golang-http-package Changes to be committed: new file: curl_droplets-by-tag dumb bash script to test API query new file: do_2-node-cluster.tkn Add a token file - THIS SHOULD BE REGENERATED IN PRODUCTION modified: main.go --- curl_droplets-by-tag | 1 + do_2-node-cluster.tkn | 1 + main.go | 17 ++++++++++++++++- 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100755 curl_droplets-by-tag create mode 100644 do_2-node-cluster.tkn diff --git a/curl_droplets-by-tag b/curl_droplets-by-tag new file mode 100755 index 0000000..87f1619 --- /dev/null +++ b/curl_droplets-by-tag @@ -0,0 +1 @@ +curl -X GET -H "Content-Type: application/json" -H "Authorization: Bearer 72a0ec632d0834dd3e1b72ec096f4644f527853a747875ca387a0269a625597a" "https://api.digitalocean.com/v2/droplets?tag_name=pacemaker-project" diff --git a/do_2-node-cluster.tkn b/do_2-node-cluster.tkn new file mode 100644 index 0000000..2415ab8 --- /dev/null +++ b/do_2-node-cluster.tkn @@ -0,0 +1 @@ +72a0ec632d0834dd3e1b72ec096f4644f527853a747875ca387a0269a625597a diff --git a/main.go b/main.go index 183fe2c..ed5348e 100644 --- a/main.go +++ b/main.go @@ -17,15 +17,30 @@ func main() { url_slice := []string{"https://api.digitalocean.com/v2/droplets/", get_droplet_id("foo"), "/actions"} // Construct the string from the slice droplet_actions_url := strings.Join(url_slice, "") +/* ---- Old ------ Using http.Get // Create the json object to be posted post_body, _ := json.Marshal(map[string]string{"type": "power_off"}) // Open a buffer for the post response body response_body := bytes.NewBuffer(post_body) // instantiate the POST object http_response, err := http.Post(droplet_actions_url, "application/json", response_body) +*/ + do_client := &http.Client{ + CheckRedirect: redirectPolicyFunc, + } + http_response, err := do_client.Get(droplet_actions_url)) if err != nil { - log.Fatalf("Respones Error: %v", err) + log.Fatalf("Responese Error: %v", err) } + // Create an http.Request object to store the request data + // Is 'nil' the correct parameter? Check the docs + // How is the response body cached? Is the 'nil' parameter the actual POST body? + // Is the post_body to be fashioned with json.Marshal as above? Where is it + // used as a parameter? + http_request, err := http.Request("POST", droplet_actions_url, nil) + // Add the Authorization header with the OAuth token to the request data + http_request.Header.Add("Authorization", "Bearer 72a0ec632d0834dd3e1b72ec096f4644f527853a747875ca387a0269a625597a") + http_response, err := client.Post(droplet_actions_url, "application/json", response_body) // Pause thread until response is read and http connection closes (I think?) defer http_response.Body.Close() body, err := ioutil.ReadAll(response_body)