@ -130,6 +130,46 @@ func testAccCheckAWSKeyPairExists(n string, res *ec2.KeyPairInfo) resource.TestC
}
}
func testAccCheckAWSKeyPair_namePrefix ( t * testing . T ) {
var conf ec2 . KeyPairInfo
resource . Test ( t , resource . TestCase {
PreCheck : func ( ) { testAccPreCheck ( t ) } ,
IDRefreshName : "aws_key_pair.a_key_pair" ,
IDRefreshIgnore : [ ] string { "key_name_prefix" } ,
Providers : testAccProviders ,
CheckDestroy : testAccCheckAWSKeyPairDestroy ,
Steps : [ ] resource . TestStep {
resource . TestStep {
Config : testAccCheckAWSKeyPairPrefixNameConfig ,
Check : resource . ComposeTestCheckFunc (
testAccCheckAWSKeyPairExists ( "aws_key_pair.a_key_pair" , & conf ) ,
testAccCheckAWSKeyPairGeneratedNamePrefix (
"aws_key_pair.a_key_pair" , "baz-" ) ,
) ,
} ,
} ,
} )
}
func testAccCheckAWSKeyPairGeneratedNamePrefix (
resource , prefix string ) resource . TestCheckFunc {
return func ( s * terraform . State ) error {
r , ok := s . RootModule ( ) . Resources [ resource ]
if ! ok {
return fmt . Errorf ( "Resource not found" )
}
name , ok := r . Primary . Attributes [ "name" ]
if ! ok {
return fmt . Errorf ( "Name attr not found: %#v" , r . Primary . Attributes )
}
if ! strings . HasPrefix ( name , prefix ) {
return fmt . Errorf ( "Name: %q, does not have prefix: %q" , name , prefix )
}
return nil
}
}
const testAccAWSKeyPairConfig = `
resource "aws_key_pair" "a_key_pair" {
key_name = "tf-acc-key-pair"
@ -142,3 +182,10 @@ resource "aws_key_pair" "a_key_pair" {
public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD3F6tyPEFEzV0LX3X8BsXdMsQz1x2cEikKDEY0aIj41qgxMCP/iteneqXSIFZBp5vizPvaoIR3Um9xK7PGoW8giupGn+EPuxIA4cDM4vzOqOkiMPhz5XK0whEjkVzTo4+S0puvDZuwIsdiW9mxhJc7tgBNL0cYlWSYVkz4G/fslNfRPW5mYAM49f4fhtxPb5ok4Q2Lg9dPKVHO/Bgeu5woMc7RY0p1ej6D4CKFE6lymSDJpW0YHX/wqE9+cfEauh7xZcG0q9t2ta6F6fmX0agvpFyZo8aFbXeUBr7osSCJNgvavWbM/06niWrOvYX2xwWdhXmXSrbX8ZbabVohBK41 phodgson@thoughtworks.com"
}
`
const testAccCheckAWSKeyPairPrefixNameConfig = `
resource "aws_key_pair" "a_key_pair" {
key_name_prefix = "baz-"
public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD3F6tyPEFEzV0LX3X8BsXdMsQz1x2cEikKDEY0aIj41qgxMCP/iteneqXSIFZBp5vizPvaoIR3Um9xK7PGoW8giupGn+EPuxIA4cDM4vzOqOkiMPhz5XK0whEjkVzTo4+S0puvDZuwIsdiW9mxhJc7tgBNL0cYlWSYVkz4G/fslNfRPW5mYAM49f4fhtxPb5ok4Q2Lg9dPKVHO/Bgeu5woMc7RY0p1ej6D4CKFE6lymSDJpW0YHX/wqE9+cfEauh7xZcG0q9t2ta6F6fmX0agvpFyZo8aFbXeUBr7osSCJNgvavWbM/06niWrOvYX2xwWdhXmXSrbX8ZbabVohBK41 phodgson@thoughtworks.com"
}
`