diff --git a/builder/amazon/common/step_key_pair.go b/builder/amazon/common/step_key_pair.go index ed3890374..c5e3ff13a 100644 --- a/builder/amazon/common/step_key_pair.go +++ b/builder/amazon/common/step_key_pair.go @@ -107,7 +107,7 @@ func (s *StepKeyPair) Cleanup(state multistep.StateBag) { // If no key name is set, then we never created it, so just return // If we used an SSH private key file, do not go about deleting // keypairs - if s.PrivateKeyFile != "" || s.KeyPairName != "" { + if s.PrivateKeyFile != "" || (s.KeyPairName == "" && s.keyName == "") { return } diff --git a/builder/amazon/common/step_run_source_instance.go b/builder/amazon/common/step_run_source_instance.go index e9b1f5216..040cb351c 100644 --- a/builder/amazon/common/step_run_source_instance.go +++ b/builder/amazon/common/step_run_source_instance.go @@ -41,7 +41,10 @@ type StepRunSourceInstance struct { func (s *StepRunSourceInstance) Run(state multistep.StateBag) multistep.StepAction { ec2conn := state.Get("ec2").(*ec2.EC2) - keyName := state.Get("keyPair").(string) + var keyName string + if name, ok := state.GetOk("keyPair"); ok { + keyName = name.(string) + } securityGroupIds := aws.StringSlice(state.Get("securityGroupIds").([]string)) ui := state.Get("ui").(packer.Ui)