provider/digitalocean: fix issue #3628 by accepting SSH fingerprints

This commit is contained in:
Antoine Grondin 2015-10-25 16:29:01 -04:00
parent b171d75adb
commit 1262afa6a8
1 changed files with 9 additions and 6 deletions

View File

@ -140,14 +140,17 @@ func resourceDigitalOceanDropletCreate(d *schema.ResourceData, meta interface{})
opts.SSHKeys = make([]godo.DropletCreateSSHKey, 0, sshKeys)
for i := 0; i < sshKeys; i++ {
key := fmt.Sprintf("ssh_keys.%d", i)
id, err := strconv.Atoi(d.Get(key).(string))
if err != nil {
return err
sshKeyRef := d.Get(key).(string)
var sshKey godo.DropletCreateSSHKey
// sshKeyRef can be either an ID or a fingerprint
if id, err := strconv.Atoi(sshKeyRef); err == nil {
sshKey.ID = id
} else {
sshKey.Fingerprint = sshKeyRef
}
opts.SSHKeys = append(opts.SSHKeys, godo.DropletCreateSSHKey{
ID: id,
})
opts.SSHKeys = append(opts.SSHKeys, sshKey)
}
}