Skip to content

Commit 88a638a

Browse files
Merge pull request #190 from HarrisonWAffel/ec2-nil-instance-key-deletion
Graceful deletion of key-pairs
2 parents a468db1 + 500aaa5 commit 88a638a

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

drivers/amazonec2/amazonec2.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1578,14 +1578,22 @@ func (d *Driver) deleteKeyPair() error {
15781578

15791579
log.Debugf("deleting key pair: %s", d.KeyName)
15801580

1581+
var deleteInput ec2.DeleteKeyPairInput
15811582
instance, err := d.getInstance()
15821583
if err != nil {
1583-
return err
1584+
// do not return err as we may have generated a key
1585+
// but failed to create an instance. We still want to
1586+
// delete the key that we have stored locally
1587+
log.Infof("Could not retrieve EC2 instance while attempting key-pair deletion, will attempt to delete locally stored key %s", d.KeyName)
1588+
deleteInput.KeyName = &d.KeyName
1589+
} else {
1590+
// if we get an instance we should delete the
1591+
// returned key pair as it may have been changed
1592+
// outside of machine.
1593+
deleteInput.KeyName = instance.KeyName
15841594
}
15851595

1586-
_, err = d.getClient().DeleteKeyPair(&ec2.DeleteKeyPairInput{
1587-
KeyName: instance.KeyName,
1588-
})
1596+
_, err = d.getClient().DeleteKeyPair(&deleteInput)
15891597
if err != nil {
15901598
return err
15911599
}

0 commit comments

Comments
 (0)