Skip to content

Commit 1277f3d

Browse files
authored
elasticache_cluster_previous_type: fix panic on empty string (#430)
1 parent c30f452 commit 1277f3d

File tree

3 files changed

+32
-1
lines changed

3 files changed

+32
-1
lines changed

rules/aws_elasticache_cluster_invalid_type_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,24 @@ resource "aws_elasticache_cluster" "redis" {
3131
},
3232
},
3333
},
34+
{
35+
Name: "empty is invalid",
36+
Content: `
37+
resource "aws_elasticache_cluster" "redis" {
38+
node_type = ""
39+
}`,
40+
Expected: helper.Issues{
41+
{
42+
Rule: NewAwsElastiCacheClusterInvalidTypeRule(),
43+
Message: "\"\" is invalid node type.",
44+
Range: hcl.Range{
45+
Filename: "resource.tf",
46+
Start: hcl.Pos{Line: 3, Column: 17},
47+
End: hcl.Pos{Line: 3, Column: 19},
48+
},
49+
},
50+
},
51+
},
3452
{
3553
Name: "cache.t2.micro is valid",
3654
Content: `

rules/aws_elasticache_cluster_previous_type.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,12 @@ func (r *AwsElastiCacheClusterPreviousTypeRule) Check(runner tflint.Runner) erro
6464
err := runner.EvaluateExpr(attribute.Expr, &nodeType, nil)
6565

6666
err = runner.EnsureNoError(err, func() error {
67-
if previousElastiCacheNodeTypes[strings.Split(nodeType, ".")[1]] {
67+
parts := strings.Split(nodeType, ".")
68+
if len(parts) != 3 {
69+
return nil
70+
}
71+
72+
if previousElastiCacheNodeTypes[parts[1]] {
6873
runner.EmitIssue(
6974
r,
7075
fmt.Sprintf("\"%s\" is previous generation node type.", nodeType),

rules/aws_elasticache_cluster_previous_type_test.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,14 @@ resource "aws_elasticache_cluster" "redis" {
3939
}`,
4040
Expected: helper.Issues{},
4141
},
42+
{
43+
Name: "empty type",
44+
Content: `
45+
resource "aws_elasticache_cluster" "redis" {
46+
node_type = ""
47+
}`,
48+
Expected: helper.Issues{},
49+
},
4250
}
4351

4452
rule := NewAwsElastiCacheClusterPreviousTypeRule()

0 commit comments

Comments
 (0)