Merge pull request #3296 from stack72/new_validateFunc_spike
provider/aws: New Validation Function Tests for ELB Name
This commit is contained in:
commit
7cb395c8b6
|
@ -28,27 +28,7 @@ func resourceAwsElb() *schema.Resource {
|
||||||
Optional: true,
|
Optional: true,
|
||||||
Computed: true,
|
Computed: true,
|
||||||
ForceNew: true,
|
ForceNew: true,
|
||||||
ValidateFunc: func(v interface{}, k string) (ws []string, errors []error) {
|
ValidateFunc: validateElbName,
|
||||||
value := v.(string)
|
|
||||||
if !regexp.MustCompile(`^[0-9A-Za-z-]+$`).MatchString(value) {
|
|
||||||
errors = append(errors, fmt.Errorf(
|
|
||||||
"only alphanumeric characters and hyphens allowed in %q: %q",
|
|
||||||
k, value))
|
|
||||||
}
|
|
||||||
if len(value) > 32 {
|
|
||||||
errors = append(errors, fmt.Errorf(
|
|
||||||
"%q cannot be longer than 32 characters: %q", k, value))
|
|
||||||
}
|
|
||||||
if regexp.MustCompile(`^-`).MatchString(value) {
|
|
||||||
errors = append(errors, fmt.Errorf(
|
|
||||||
"%q cannot begin with a hyphen: %q", k, value))
|
|
||||||
}
|
|
||||||
if regexp.MustCompile(`-$`).MatchString(value) {
|
|
||||||
errors = append(errors, fmt.Errorf(
|
|
||||||
"%q cannot end with a hyphen: %q", k, value))
|
|
||||||
}
|
|
||||||
return
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
|
|
||||||
"internal": &schema.Schema{
|
"internal": &schema.Schema{
|
||||||
|
@ -591,3 +571,26 @@ func isLoadBalancerNotFound(err error) bool {
|
||||||
elberr, ok := err.(awserr.Error)
|
elberr, ok := err.(awserr.Error)
|
||||||
return ok && elberr.Code() == "LoadBalancerNotFound"
|
return ok && elberr.Code() == "LoadBalancerNotFound"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func validateElbName(v interface{}, k string) (ws []string, errors []error) {
|
||||||
|
value := v.(string)
|
||||||
|
if !regexp.MustCompile(`^[0-9A-Za-z-]+$`).MatchString(value) {
|
||||||
|
errors = append(errors, fmt.Errorf(
|
||||||
|
"only alphanumeric characters and hyphens allowed in %q: %q",
|
||||||
|
k, value))
|
||||||
|
}
|
||||||
|
if len(value) > 32 {
|
||||||
|
errors = append(errors, fmt.Errorf(
|
||||||
|
"%q cannot be longer than 32 characters: %q", k, value))
|
||||||
|
}
|
||||||
|
if regexp.MustCompile(`^-`).MatchString(value) {
|
||||||
|
errors = append(errors, fmt.Errorf(
|
||||||
|
"%q cannot begin with a hyphen: %q", k, value))
|
||||||
|
}
|
||||||
|
if regexp.MustCompile(`-$`).MatchString(value) {
|
||||||
|
errors = append(errors, fmt.Errorf(
|
||||||
|
"%q cannot end with a hyphen: %q", k, value))
|
||||||
|
}
|
||||||
|
return
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -437,6 +437,42 @@ func TestResourceAwsElbListenerHash(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestResourceAWSELB_validateElbNameCannotBeginWithHyphen(t *testing.T) {
|
||||||
|
var elbName = "-Testing123"
|
||||||
|
_, errors := validateElbName(elbName, "SampleKey")
|
||||||
|
|
||||||
|
if len(errors) != 1 {
|
||||||
|
t.Fatalf("Expected the ELB Name to trigger a validation error")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestResourceAWSELB_validateElbNameCannotBeLongerThen32Characters(t *testing.T) {
|
||||||
|
var elbName = "Testing123dddddddddddddddddddvvvv"
|
||||||
|
_, errors := validateElbName(elbName, "SampleKey")
|
||||||
|
|
||||||
|
if len(errors) != 1 {
|
||||||
|
t.Fatalf("Expected the ELB Name to trigger a validation error")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestResourceAWSELB_validateElbNameCannotHaveSpecialCharacters(t *testing.T) {
|
||||||
|
var elbName = "Testing123%%"
|
||||||
|
_, errors := validateElbName(elbName, "SampleKey")
|
||||||
|
|
||||||
|
if len(errors) != 1 {
|
||||||
|
t.Fatalf("Expected the ELB Name to trigger a validation error")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestResourceAWSELB_validateElbNameCannotEndWithHyphen(t *testing.T) {
|
||||||
|
var elbName = "Testing123-"
|
||||||
|
_, errors := validateElbName(elbName, "SampleKey")
|
||||||
|
|
||||||
|
if len(errors) != 1 {
|
||||||
|
t.Fatalf("Expected the ELB Name to trigger a validation error")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func testAccCheckAWSELBDestroy(s *terraform.State) error {
|
func testAccCheckAWSELBDestroy(s *terraform.State) error {
|
||||||
conn := testAccProvider.Meta().(*AWSClient).elbconn
|
conn := testAccProvider.Meta().(*AWSClient).elbconn
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue