From 9a7d30990ed19499f60623c4ce5b940b953807fe Mon Sep 17 00:00:00 2001 From: "xiaowei.wang" Date: Fri, 9 Mar 2018 19:31:25 +0100 Subject: [PATCH] resource/key_pair: drop custom ValidateFunc for name_prefix --- aws/resource_aws_key_pair.go | 24 +++++++++--------------- aws/resource_aws_key_pair_test.go | 24 +++++++++++------------- 2 files changed, 20 insertions(+), 28 deletions(-) diff --git a/aws/resource_aws_key_pair.go b/aws/resource_aws_key_pair.go index 02050c7af981..a8f30c992698 100644 --- a/aws/resource_aws_key_pair.go +++ b/aws/resource_aws_key_pair.go @@ -26,27 +26,21 @@ func resourceAwsKeyPair() *schema.Resource { MigrateState: resourceAwsKeyPairMigrateState, Schema: map[string]*schema.Schema{ - "key_name": &schema.Schema{ + "key_name": { Type: schema.TypeString, Optional: true, Computed: true, ForceNew: true, ConflictsWith: []string{"key_name_prefix"}, + ValidateFunc: validateMaxLength(255), }, - "key_name_prefix": &schema.Schema{ - Type: schema.TypeString, - Optional: true, - ForceNew: true, - ValidateFunc: func(v interface{}, k string) (ws []string, errors []error) { - value := v.(string) - if len(value) > 100 { - errors = append(errors, fmt.Errorf( - "%q cannot be longer than 100 characters, name is limited to 255", k)) - } - return - }, + "key_name_prefix": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + ValidateFunc: validateMaxLength(255 - resource.UniqueIDSuffixLength), }, - "public_key": &schema.Schema{ + "public_key": { Type: schema.TypeString, Required: true, ForceNew: true, @@ -59,7 +53,7 @@ func resourceAwsKeyPair() *schema.Resource { } }, }, - "fingerprint": &schema.Schema{ + "fingerprint": { Type: schema.TypeString, Computed: true, }, diff --git a/aws/resource_aws_key_pair_test.go b/aws/resource_aws_key_pair_test.go index e0c510d26887..58b0b00c2538 100644 --- a/aws/resource_aws_key_pair_test.go +++ b/aws/resource_aws_key_pair_test.go @@ -31,7 +31,7 @@ func testSweepKeyPairs(region string) error { resp, err := ec2conn.DescribeKeyPairs(&ec2.DescribeKeyPairsInput{ Filters: []*ec2.Filter{ - &ec2.Filter{ + { Name: aws.String("key-name"), Values: []*string{aws.String("tmp-key*")}, }, @@ -62,7 +62,7 @@ func TestAccAWSKeyPair_basic(t *testing.T) { Providers: testAccProviders, CheckDestroy: testAccCheckAWSKeyPairDestroy, Steps: []resource.TestStep{ - resource.TestStep{ + { Config: testAccAWSKeyPairConfig, Check: resource.ComposeTestCheckFunc( testAccCheckAWSKeyPairExists("aws_key_pair.a_key_pair", &conf), @@ -81,7 +81,7 @@ func TestAccAWSKeyPair_generatedName(t *testing.T) { Providers: testAccProviders, CheckDestroy: testAccCheckAWSKeyPairDestroy, Steps: []resource.TestStep{ - resource.TestStep{ + { Config: testAccAWSKeyPairConfig_generatedName, Check: resource.ComposeTestCheckFunc( testAccCheckAWSKeyPairExists("aws_key_pair.a_key_pair", &conf), @@ -182,20 +182,18 @@ func testAccCheckAWSKeyPair_namePrefix(t *testing.T) { 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-"), + testAccCheckAWSKeyPairGeneratedNamePrefix("aws_key_pair.a_key_pair", "baz-"), ), }, }, }) } -func testAccCheckAWSKeyPairGeneratedNamePrefix( - resource, prefix string) resource.TestCheckFunc { +func testAccCheckAWSKeyPairGeneratedNamePrefix(resource, prefix string) resource.TestCheckFunc { return func(s *terraform.State) error { r, ok := s.RootModule().Resources[resource] if !ok { @@ -214,20 +212,20 @@ func testAccCheckAWSKeyPairGeneratedNamePrefix( const testAccAWSKeyPairConfig = ` resource "aws_key_pair" "a_key_pair" { - key_name = "tf-acc-key-pair" - public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD3F6tyPEFEzV0LX3X8BsXdMsQz1x2cEikKDEY0aIj41qgxMCP/iteneqXSIFZBp5vizPvaoIR3Um9xK7PGoW8giupGn+EPuxIA4cDM4vzOqOkiMPhz5XK0whEjkVzTo4+S0puvDZuwIsdiW9mxhJc7tgBNL0cYlWSYVkz4G/fslNfRPW5mYAM49f4fhtxPb5ok4Q2Lg9dPKVHO/Bgeu5woMc7RY0p1ej6D4CKFE6lymSDJpW0YHX/wqE9+cfEauh7xZcG0q9t2ta6F6fmX0agvpFyZo8aFbXeUBr7osSCJNgvavWbM/06niWrOvYX2xwWdhXmXSrbX8ZbabVohBK41 phodgson@thoughtworks.com" + key_name = "tf-acc-key-pair" + public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD3F6tyPEFEzV0LX3X8BsXdMsQz1x2cEikKDEY0aIj41qgxMCP/iteneqXSIFZBp5vizPvaoIR3Um9xK7PGoW8giupGn+EPuxIA4cDM4vzOqOkiMPhz5XK0whEjkVzTo4+S0puvDZuwIsdiW9mxhJc7tgBNL0cYlWSYVkz4G/fslNfRPW5mYAM49f4fhtxPb5ok4Q2Lg9dPKVHO/Bgeu5woMc7RY0p1ej6D4CKFE6lymSDJpW0YHX/wqE9+cfEauh7xZcG0q9t2ta6F6fmX0agvpFyZo8aFbXeUBr7osSCJNgvavWbM/06niWrOvYX2xwWdhXmXSrbX8ZbabVohBK41 phodgson@thoughtworks.com" } ` const testAccAWSKeyPairConfig_generatedName = ` resource "aws_key_pair" "a_key_pair" { - public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD3F6tyPEFEzV0LX3X8BsXdMsQz1x2cEikKDEY0aIj41qgxMCP/iteneqXSIFZBp5vizPvaoIR3Um9xK7PGoW8giupGn+EPuxIA4cDM4vzOqOkiMPhz5XK0whEjkVzTo4+S0puvDZuwIsdiW9mxhJc7tgBNL0cYlWSYVkz4G/fslNfRPW5mYAM49f4fhtxPb5ok4Q2Lg9dPKVHO/Bgeu5woMc7RY0p1ej6D4CKFE6lymSDJpW0YHX/wqE9+cfEauh7xZcG0q9t2ta6F6fmX0agvpFyZo8aFbXeUBr7osSCJNgvavWbM/06niWrOvYX2xwWdhXmXSrbX8ZbabVohBK41 phodgson@thoughtworks.com" + 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" + key_name_prefix = "baz-" + public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD3F6tyPEFEzV0LX3X8BsXdMsQz1x2cEikKDEY0aIj41qgxMCP/iteneqXSIFZBp5vizPvaoIR3Um9xK7PGoW8giupGn+EPuxIA4cDM4vzOqOkiMPhz5XK0whEjkVzTo4+S0puvDZuwIsdiW9mxhJc7tgBNL0cYlWSYVkz4G/fslNfRPW5mYAM49f4fhtxPb5ok4Q2Lg9dPKVHO/Bgeu5woMc7RY0p1ej6D4CKFE6lymSDJpW0YHX/wqE9+cfEauh7xZcG0q9t2ta6F6fmX0agvpFyZo8aFbXeUBr7osSCJNgvavWbM/06niWrOvYX2xwWdhXmXSrbX8ZbabVohBK41 phodgson@thoughtworks.com" } `