diff --git a/builtin/providers/heroku/config.go b/builtin/providers/heroku/config.go index 614c3831f..e9674aaa7 100644 --- a/builtin/providers/heroku/config.go +++ b/builtin/providers/heroku/config.go @@ -4,7 +4,7 @@ import ( "log" "os" - "github.com/bgentry/heroku-go" + "github.com/cyberdelia/heroku-go/v3" ) type Config struct { @@ -12,9 +12,9 @@ type Config struct { Email string `mapstructure:"email"` } -// Client() returns a new client for accessing heroku. +// Client() returns a new Service for accessing Heroku. // -func (c *Config) Client() (*heroku.Client, error) { +func (c *Config) Client() (*heroku.Service, error) { // If we have env vars set (like in the acc) tests, // we need to override the values passed in here. @@ -25,9 +25,12 @@ func (c *Config) Client() (*heroku.Client, error) { c.APIKey = v } - client := heroku.Client{Username: c.Email, Password: c.APIKey} + heroku.DefaultTransport.Username = c.Email + heroku.DefaultTransport.Password = c.APIKey + + client := heroku.NewService(heroku.DefaultClient) log.Printf("[INFO] Heroku Client configured for user: %s", c.Email) - return &client, nil + return client, nil } diff --git a/builtin/providers/heroku/provider_test.go b/builtin/providers/heroku/provider_test.go index f30843e11..06b4dbbc6 100644 --- a/builtin/providers/heroku/provider_test.go +++ b/builtin/providers/heroku/provider_test.go @@ -4,7 +4,7 @@ import ( "os" "testing" - "github.com/bgentry/heroku-go" + "github.com/cyberdelia/heroku-go/v3" "github.com/hashicorp/terraform/config" "github.com/hashicorp/terraform/helper/schema" "github.com/hashicorp/terraform/terraform" @@ -62,12 +62,11 @@ func TestProviderConfigure(t *testing.T) { t.Fatalf("err: %s", err) } - config := rp.Meta().(*heroku.Client) - if config.Username != expectedEmail { - t.Fatalf("bad: %#v", config) + if heroku.DefaultTransport.Username != expectedEmail { + t.Fatalf("bad: %#v", heroku.DefaultTransport) } - if config.Password != expectedKey { - t.Fatalf("bad: %#v", config) + if heroku.DefaultTransport.Password != expectedKey { + t.Fatalf("bad: %#v", heroku.DefaultTransport) } } diff --git a/builtin/providers/heroku/resource_heroku_addon.go b/builtin/providers/heroku/resource_heroku_addon.go index 4c0f14f30..7a0544cb1 100644 --- a/builtin/providers/heroku/resource_heroku_addon.go +++ b/builtin/providers/heroku/resource_heroku_addon.go @@ -5,7 +5,7 @@ import ( "log" "sync" - "github.com/bgentry/heroku-go" + "github.com/cyberdelia/heroku-go/v3" "github.com/hashicorp/terraform/helper/schema" "github.com/hashicorp/terraform/terraform" ) @@ -61,11 +61,10 @@ func resourceHerokuAddonCreate(d *schema.ResourceData, meta interface{}) error { addonLock.Lock() defer addonLock.Unlock() - client := meta.(*heroku.Client) + client := meta.(*heroku.Service) app := d.Get("app").(string) - plan := d.Get("plan").(string) - opts := heroku.AddonCreateOpts{} + opts := heroku.AddonCreateOpts{Plan: d.Get("plan").(string)} if v := d.Get("config"); v != nil { config := make(map[string]string) @@ -78,20 +77,20 @@ func resourceHerokuAddonCreate(d *schema.ResourceData, meta interface{}) error { opts.Config = &config } - log.Printf("[DEBUG] Addon create configuration: %#v, %#v, %#v", app, plan, opts) - a, err := client.AddonCreate(app, plan, &opts) + log.Printf("[DEBUG] Addon create configuration: %#v, %#v", app, opts) + a, err := client.AddonCreate(app, opts) if err != nil { return err } - d.SetId(a.Id) + d.SetId(a.ID) log.Printf("[INFO] Addon ID: %s", d.Id()) return resourceHerokuAddonRead(d, meta) } func resourceHerokuAddonRead(d *schema.ResourceData, meta interface{}) error { - client := meta.(*heroku.Client) + client := meta.(*heroku.Service) addon, err := resource_heroku_addon_retrieve( d.Get("app").(string), d.Id(), client) @@ -101,7 +100,7 @@ func resourceHerokuAddonRead(d *schema.ResourceData, meta interface{}) error { d.Set("name", addon.Name) d.Set("plan", addon.Plan.Name) - d.Set("provider_id", addon.ProviderId) + d.Set("provider_id", addon.ProviderID) d.Set("config_vars", []interface{}{addon.ConfigVars}) d.SetDependencies([]terraform.ResourceDependency{ terraform.ResourceDependency{ID: d.Get("app").(string)}, @@ -111,26 +110,26 @@ func resourceHerokuAddonRead(d *schema.ResourceData, meta interface{}) error { } func resourceHerokuAddonUpdate(d *schema.ResourceData, meta interface{}) error { - client := meta.(*heroku.Client) + client := meta.(*heroku.Service) app := d.Get("app").(string) if d.HasChange("plan") { ad, err := client.AddonUpdate( - app, d.Id(), d.Get("plan").(string)) + app, d.Id(), heroku.AddonUpdateOpts{Plan: d.Get("plan").(string)}) if err != nil { return err } // Store the new ID - d.SetId(ad.Id) + d.SetId(ad.ID) } return resourceHerokuAddonRead(d, meta) } func resourceHerokuAddonDelete(d *schema.ResourceData, meta interface{}) error { - client := meta.(*heroku.Client) + client := meta.(*heroku.Service) log.Printf("[INFO] Deleting Addon: %s", d.Id()) @@ -144,7 +143,7 @@ func resourceHerokuAddonDelete(d *schema.ResourceData, meta interface{}) error { return nil } -func resource_heroku_addon_retrieve(app string, id string, client *heroku.Client) (*heroku.Addon, error) { +func resource_heroku_addon_retrieve(app string, id string, client *heroku.Service) (*heroku.Addon, error) { addon, err := client.AddonInfo(app, id) if err != nil { diff --git a/builtin/providers/heroku/resource_heroku_addon_test.go b/builtin/providers/heroku/resource_heroku_addon_test.go index 9765c6e19..bc40f4559 100644 --- a/builtin/providers/heroku/resource_heroku_addon_test.go +++ b/builtin/providers/heroku/resource_heroku_addon_test.go @@ -4,7 +4,7 @@ import ( "fmt" "testing" - "github.com/bgentry/heroku-go" + "github.com/cyberdelia/heroku-go/v3" "github.com/hashicorp/terraform/helper/resource" "github.com/hashicorp/terraform/terraform" ) @@ -35,7 +35,7 @@ func TestAccHerokuAddon_Basic(t *testing.T) { } func testAccCheckHerokuAddonDestroy(s *terraform.State) error { - client := testAccProvider.Meta().(*heroku.Client) + client := testAccProvider.Meta().(*heroku.Service) for _, rs := range s.Resources { if rs.Type != "heroku_addon" { @@ -75,7 +75,7 @@ func testAccCheckHerokuAddonExists(n string, addon *heroku.Addon) resource.TestC return fmt.Errorf("No Addon ID is set") } - client := testAccProvider.Meta().(*heroku.Client) + client := testAccProvider.Meta().(*heroku.Service) foundAddon, err := client.AddonInfo(rs.Attributes["app"], rs.ID) @@ -83,7 +83,7 @@ func testAccCheckHerokuAddonExists(n string, addon *heroku.Addon) resource.TestC return err } - if foundAddon.Id != rs.ID { + if foundAddon.ID != rs.ID { return fmt.Errorf("Addon not found") } diff --git a/builtin/providers/heroku/resource_heroku_app.go b/builtin/providers/heroku/resource_heroku_app.go index 10b73ef81..ad1ca187c 100644 --- a/builtin/providers/heroku/resource_heroku_app.go +++ b/builtin/providers/heroku/resource_heroku_app.go @@ -4,7 +4,7 @@ import ( "fmt" "log" - "github.com/bgentry/heroku-go" + "github.com/cyberdelia/heroku-go/v3" "github.com/hashicorp/terraform/helper/multierror" "github.com/hashicorp/terraform/helper/schema" ) @@ -14,7 +14,7 @@ type application struct { Id string // Id of the resource App *heroku.App // The heroku application - Client *heroku.Client // Client to interact with the heroku API + Client *heroku.Service // Client to interact with the heroku API Vars map[string]string // The vars on the application } @@ -95,7 +95,7 @@ func resourceHerokuApp() *schema.Resource { } func resourceHerokuAppCreate(d *schema.ResourceData, meta interface{}) error { - client := meta.(*heroku.Client) + client := meta.(*heroku.Service) // Build up our creation options opts := heroku.AppCreateOpts{} @@ -117,7 +117,7 @@ func resourceHerokuAppCreate(d *schema.ResourceData, meta interface{}) error { } log.Printf("[DEBUG] Creating Heroku app...") - a, err := client.AppCreate(&opts) + a, err := client.AppCreate(opts) if err != nil { return err } @@ -136,7 +136,7 @@ func resourceHerokuAppCreate(d *schema.ResourceData, meta interface{}) error { } func resourceHerokuAppRead(d *schema.ResourceData, meta interface{}) error { - client := meta.(*heroku.Client) + client := meta.(*heroku.Service) app, err := resource_heroku_app_retrieve(d.Id(), client) if err != nil { return err @@ -157,7 +157,7 @@ func resourceHerokuAppRead(d *schema.ResourceData, meta interface{}) error { } func resourceHerokuAppUpdate(d *schema.ResourceData, meta interface{}) error { - client := meta.(*heroku.Client) + client := meta.(*heroku.Service) // If name changed, update it if d.HasChange("name") { @@ -166,7 +166,7 @@ func resourceHerokuAppUpdate(d *schema.ResourceData, meta interface{}) error { Name: &v, } - renamedApp, err := client.AppUpdate(d.Id(), &opts) + renamedApp, err := client.AppUpdate(d.Id(), opts) if err != nil { return err } @@ -196,7 +196,7 @@ func resourceHerokuAppUpdate(d *schema.ResourceData, meta interface{}) error { } func resourceHerokuAppDelete(d *schema.ResourceData, meta interface{}) error { - client := meta.(*heroku.Client) + client := meta.(*heroku.Service) log.Printf("[INFO] Deleting App: %s", d.Id()) err := client.AppDelete(d.Id()) @@ -208,7 +208,7 @@ func resourceHerokuAppDelete(d *schema.ResourceData, meta interface{}) error { return nil } -func resource_heroku_app_retrieve(id string, client *heroku.Client) (*application, error) { +func resource_heroku_app_retrieve(id string, client *heroku.Service) (*application, error) { app := application{Id: id, Client: client} err := app.Update() @@ -220,7 +220,7 @@ func resource_heroku_app_retrieve(id string, client *heroku.Client) (*applicatio return &app, nil } -func retrieve_config_vars(id string, client *heroku.Client) (map[string]string, error) { +func retrieve_config_vars(id string, client *heroku.Service) (map[string]string, error) { vars, err := client.ConfigVarInfo(id) if err != nil { @@ -233,7 +233,7 @@ func retrieve_config_vars(id string, client *heroku.Client) (map[string]string, // Updates the config vars for from an expanded configuration. func update_config_vars( id string, - client *heroku.Client, + client *heroku.Service, o []interface{}, n []interface{}) error { vars := make(map[string]*string) diff --git a/builtin/providers/heroku/resource_heroku_app_test.go b/builtin/providers/heroku/resource_heroku_app_test.go index ba0a08b71..f2c7f15f8 100644 --- a/builtin/providers/heroku/resource_heroku_app_test.go +++ b/builtin/providers/heroku/resource_heroku_app_test.go @@ -4,7 +4,7 @@ import ( "fmt" "testing" - "github.com/bgentry/heroku-go" + "github.com/cyberdelia/heroku-go/v3" "github.com/hashicorp/terraform/helper/resource" "github.com/hashicorp/terraform/terraform" ) @@ -103,7 +103,7 @@ func TestAccHerokuApp_NukeVars(t *testing.T) { } func testAccCheckHerokuAppDestroy(s *terraform.State) error { - client := testAccProvider.Meta().(*heroku.Client) + client := testAccProvider.Meta().(*heroku.Service) for _, rs := range s.Resources { if rs.Type != "heroku_app" { @@ -122,7 +122,7 @@ func testAccCheckHerokuAppDestroy(s *terraform.State) error { func testAccCheckHerokuAppAttributes(app *heroku.App) resource.TestCheckFunc { return func(s *terraform.State) error { - client := testAccProvider.Meta().(*heroku.Client) + client := testAccProvider.Meta().(*heroku.Service) if app.Region.Name != "us" { return fmt.Errorf("Bad region: %s", app.Region.Name) @@ -151,7 +151,7 @@ func testAccCheckHerokuAppAttributes(app *heroku.App) resource.TestCheckFunc { func testAccCheckHerokuAppAttributesUpdated(app *heroku.App) resource.TestCheckFunc { return func(s *terraform.State) error { - client := testAccProvider.Meta().(*heroku.Client) + client := testAccProvider.Meta().(*heroku.Service) if app.Name != "terraform-test-renamed" { return fmt.Errorf("Bad name: %s", app.Name) @@ -178,7 +178,7 @@ func testAccCheckHerokuAppAttributesUpdated(app *heroku.App) resource.TestCheckF func testAccCheckHerokuAppAttributesNoVars(app *heroku.App) resource.TestCheckFunc { return func(s *terraform.State) error { - client := testAccProvider.Meta().(*heroku.Client) + client := testAccProvider.Meta().(*heroku.Service) if app.Name != "terraform-test-app" { return fmt.Errorf("Bad name: %s", app.Name) @@ -209,7 +209,7 @@ func testAccCheckHerokuAppExists(n string, app *heroku.App) resource.TestCheckFu return fmt.Errorf("No App Name is set") } - client := testAccProvider.Meta().(*heroku.Client) + client := testAccProvider.Meta().(*heroku.Service) foundApp, err := client.AppInfo(rs.ID) diff --git a/builtin/providers/heroku/resource_heroku_domain.go b/builtin/providers/heroku/resource_heroku_domain.go index 619d15d06..f70c7c5cc 100644 --- a/builtin/providers/heroku/resource_heroku_domain.go +++ b/builtin/providers/heroku/resource_heroku_domain.go @@ -4,7 +4,7 @@ import ( "fmt" "log" - "github.com/bgentry/heroku-go" + "github.com/cyberdelia/heroku-go/v3" "github.com/hashicorp/terraform/helper/schema" "github.com/hashicorp/terraform/terraform" ) @@ -37,19 +37,19 @@ func resourceHerokuDomain() *schema.Resource { } func resourceHerokuDomainCreate(d *schema.ResourceData, meta interface{}) error { - client := meta.(*heroku.Client) + client := meta.(*heroku.Service) app := d.Get("app").(string) hostname := d.Get("hostname").(string) log.Printf("[DEBUG] Domain create configuration: %#v, %#v", app, hostname) - do, err := client.DomainCreate(app, hostname) + do, err := client.DomainCreate(app, heroku.DomainCreateOpts{hostname}) if err != nil { return err } - d.SetId(do.Id) + d.SetId(do.ID) d.Set("hostname", do.Hostname) d.Set("cname", fmt.Sprintf("%s.herokuapp.com", app)) d.SetDependencies([]terraform.ResourceDependency{ @@ -61,7 +61,7 @@ func resourceHerokuDomainCreate(d *schema.ResourceData, meta interface{}) error } func resourceHerokuDomainDelete(d *schema.ResourceData, meta interface{}) error { - client := meta.(*heroku.Client) + client := meta.(*heroku.Service) log.Printf("[INFO] Deleting Domain: %s", d.Id()) @@ -75,7 +75,7 @@ func resourceHerokuDomainDelete(d *schema.ResourceData, meta interface{}) error } func resourceHerokuDomainRead(d *schema.ResourceData, meta interface{}) error { - client := meta.(*heroku.Client) + client := meta.(*heroku.Service) app := d.Get("app").(string) do, err := client.DomainInfo(app, d.Id()) diff --git a/builtin/providers/heroku/resource_heroku_domain_test.go b/builtin/providers/heroku/resource_heroku_domain_test.go index 4b34b91ab..40c7ef1b5 100644 --- a/builtin/providers/heroku/resource_heroku_domain_test.go +++ b/builtin/providers/heroku/resource_heroku_domain_test.go @@ -4,7 +4,7 @@ import ( "fmt" "testing" - "github.com/bgentry/heroku-go" + "github.com/cyberdelia/heroku-go/v3" "github.com/hashicorp/terraform/helper/resource" "github.com/hashicorp/terraform/terraform" ) @@ -35,7 +35,7 @@ func TestAccHerokuDomain_Basic(t *testing.T) { } func testAccCheckHerokuDomainDestroy(s *terraform.State) error { - client := testAccProvider.Meta().(*heroku.Client) + client := testAccProvider.Meta().(*heroku.Service) for _, rs := range s.Resources { if rs.Type != "heroku_domain" { @@ -75,7 +75,7 @@ func testAccCheckHerokuDomainExists(n string, Domain *heroku.Domain) resource.Te return fmt.Errorf("No Domain ID is set") } - client := testAccProvider.Meta().(*heroku.Client) + client := testAccProvider.Meta().(*heroku.Service) foundDomain, err := client.DomainInfo(rs.Attributes["app"], rs.ID) @@ -83,7 +83,7 @@ func testAccCheckHerokuDomainExists(n string, Domain *heroku.Domain) resource.Te return err } - if foundDomain.Id != rs.ID { + if foundDomain.ID != rs.ID { return fmt.Errorf("Domain not found") } diff --git a/builtin/providers/heroku/resource_heroku_drain.go b/builtin/providers/heroku/resource_heroku_drain.go index 77087c591..cd9012e2f 100644 --- a/builtin/providers/heroku/resource_heroku_drain.go +++ b/builtin/providers/heroku/resource_heroku_drain.go @@ -4,7 +4,7 @@ import ( "fmt" "log" - "github.com/bgentry/heroku-go" + "github.com/cyberdelia/heroku-go/v3" "github.com/hashicorp/terraform/helper/schema" "github.com/hashicorp/terraform/terraform" ) @@ -37,19 +37,19 @@ func resourceHerokuDrain() *schema.Resource { } func resourceHerokuDrainCreate(d *schema.ResourceData, meta interface{}) error { - client := meta.(*heroku.Client) + client := meta.(*heroku.Service) app := d.Get("app").(string) url := d.Get("url").(string) log.Printf("[DEBUG] Drain create configuration: %#v, %#v", app, url) - dr, err := client.LogDrainCreate(app, url) + dr, err := client.LogDrainCreate(app, heroku.LogDrainCreateOpts{url}) if err != nil { return err } - d.SetId(dr.Id) + d.SetId(dr.ID) d.Set("url", dr.URL) d.Set("token", dr.Token) d.SetDependencies([]terraform.ResourceDependency{ @@ -61,7 +61,7 @@ func resourceHerokuDrainCreate(d *schema.ResourceData, meta interface{}) error { } func resourceHerokuDrainDelete(d *schema.ResourceData, meta interface{}) error { - client := meta.(*heroku.Client) + client := meta.(*heroku.Service) log.Printf("[INFO] Deleting drain: %s", d.Id()) @@ -75,7 +75,7 @@ func resourceHerokuDrainDelete(d *schema.ResourceData, meta interface{}) error { } func resourceHerokuDrainRead(d *schema.ResourceData, meta interface{}) error { - client := meta.(*heroku.Client) + client := meta.(*heroku.Service) dr, err := client.LogDrainInfo(d.Get("app").(string), d.Id()) if err != nil { diff --git a/builtin/providers/heroku/resource_heroku_drain_test.go b/builtin/providers/heroku/resource_heroku_drain_test.go index beaf83625..b9c698e53 100644 --- a/builtin/providers/heroku/resource_heroku_drain_test.go +++ b/builtin/providers/heroku/resource_heroku_drain_test.go @@ -4,7 +4,7 @@ import ( "fmt" "testing" - "github.com/bgentry/heroku-go" + "github.com/cyberdelia/heroku-go/v3" "github.com/hashicorp/terraform/helper/resource" "github.com/hashicorp/terraform/terraform" ) @@ -33,7 +33,7 @@ func TestAccHerokuDrain_Basic(t *testing.T) { } func testAccCheckHerokuDrainDestroy(s *terraform.State) error { - client := testAccProvider.Meta().(*heroku.Client) + client := testAccProvider.Meta().(*heroku.Service) for _, rs := range s.Resources { if rs.Type != "heroku_drain" { @@ -77,7 +77,7 @@ func testAccCheckHerokuDrainExists(n string, Drain *heroku.LogDrain) resource.Te return fmt.Errorf("No Drain ID is set") } - client := testAccProvider.Meta().(*heroku.Client) + client := testAccProvider.Meta().(*heroku.Service) foundDrain, err := client.LogDrainInfo(rs.Attributes["app"], rs.ID) @@ -85,7 +85,7 @@ func testAccCheckHerokuDrainExists(n string, Drain *heroku.LogDrain) resource.Te return err } - if foundDrain.Id != rs.ID { + if foundDrain.ID != rs.ID { return fmt.Errorf("Drain not found") }