From 0e25b4b10089b816e8787a0f597f297e1a0f4657 Mon Sep 17 00:00:00 2001 From: Ingo Gottwald Date: Mon, 12 Jul 2021 10:52:05 +0200 Subject: [PATCH] Refactor metadata service access Only pull the metadata that is needed. --- CHANGELOG.md | 2 ++ driver/driver.go | 15 +++++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a2d984e0..6e48a5122 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ * Update Kubernetes dependency to 1.20.2 [[GH-374]](https://github.com/digitalocean/csi-digitalocean/pull/374) +* Refactor metadata service access + [[GH-385]](https://github.com/digitalocean/csi-digitalocean/pull/385) ## v2.1.1 - 2020.10.30 diff --git a/driver/driver.go b/driver/driver.go index 2e1a66f87..09b588389 100644 --- a/driver/driver.go +++ b/driver/driver.go @@ -104,16 +104,19 @@ func NewDriver(ep, token, url, region, doTag, driverName, debugAddr string) (*Dr }) oauthClient := oauth2.NewClient(context.Background(), tokenSource) - var hostID string + mdClient := metadata.NewClient() if region == "" { - all, err := metadata.NewClient().Metadata() + var err error + region, err = mdClient.Region() if err != nil { - return nil, fmt.Errorf("couldn't get metadata: %s (are you running outside of a DigitalOcean droplet and possibly forgot to specify the 'region' flag?)", err) + return nil, fmt.Errorf("couldn't get region from metadata: %s (are you running outside of a DigitalOcean droplet and possibly forgot to specify the 'region' flag?)", err) } - - region = all.Region - hostID = strconv.Itoa(all.DropletID) } + hostIDInt, err := mdClient.DropletID() + if err != nil { + return nil, fmt.Errorf("couldn't get droplet ID from metadata: %s (are you running outside of a DigitalOcean droplet?)", err) + } + hostID := strconv.Itoa(hostIDInt) opts := []godo.ClientOpt{} opts = append(opts, godo.SetBaseURL(url))