Skip to content

Commit 322de38

Browse files
authored
Fix addon create to pass app name for confirmation (#335)
1 parent f6877e1 commit 322de38

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

heroku/resource_heroku_addon.go

+13-7
Original file line numberDiff line numberDiff line change
@@ -115,10 +115,16 @@ func resourceHerokuAddonCreate(d *schema.ResourceData, meta interface{}) error {
115115
config := meta.(*Config)
116116
client := config.Api
117117

118-
app := d.Get("app_id").(string)
118+
plan := d.Get("plan").(string)
119+
appID := d.Get("app_id").(string)
120+
app, err := client.AppInfo(context.TODO(), appID)
121+
if err != nil {
122+
return fmt.Errorf("Error reading app for addon: %w", err)
123+
}
124+
119125
opts := heroku.AddOnCreateOpts{
120-
Plan: d.Get("plan").(string),
121-
Confirm: &app,
126+
Plan: plan,
127+
Confirm: &app.Name,
122128
}
123129

124130
if c, ok := d.GetOk("config"); ok {
@@ -132,18 +138,18 @@ func resourceHerokuAddonCreate(d *schema.ResourceData, meta interface{}) error {
132138
opts.Name = &v
133139
}
134140

135-
log.Printf("[DEBUG] Addon create configuration: %#v, %#v", app, opts)
136-
addon, err := client.AddOnCreate(context.TODO(), app, opts)
141+
log.Printf("[DEBUG] Addon create configuration: %#v, %#v", appID, opts)
142+
addon, err := client.AddOnCreate(context.TODO(), appID, opts)
137143
if err != nil {
138-
return err
144+
return fmt.Errorf("Error creating addon %s for app %s (%s): %w", plan, app.Name, appID, err)
139145
}
140146

141147
// Wait for the Addon to be provisioned
142148
log.Printf("[DEBUG] Waiting for Addon (%s) to be provisioned", addon.ID)
143149
stateConf := &resource.StateChangeConf{
144150
Pending: []string{"provisioning"},
145151
Target: []string{"provisioned"},
146-
Refresh: AddOnStateRefreshFunc(client, app, addon.ID),
152+
Refresh: AddOnStateRefreshFunc(client, appID, addon.ID),
147153
Timeout: time.Duration(config.AddonCreateTimeout) * time.Minute,
148154
}
149155

0 commit comments

Comments
 (0)