config: count can't be a SimpleVariable

This commit is contained in:
Mitchell Hashimoto 2016-08-16 13:48:12 -07:00
parent 5c8c325f43
commit f4faf2274b
No known key found for this signature in database
GPG Key ID: 744E147AA52F5B0A
5 changed files with 38 additions and 1 deletions

View File

@ -468,10 +468,15 @@ func (c *Config) Validate() error {
"%s: resource count can't reference resource variable: %s",
n,
v.FullKey()))
case *SimpleVariable:
errs = append(errs, fmt.Errorf(
"%s: resource count can't reference variable: %s",
n,
v.FullKey()))
case *UserVariable:
// Good
default:
panic("Unknown type in count var: " + n)
panic(fmt.Sprintf("Unknown type in count var in %s: %T", n, v))
}
}

View File

@ -216,6 +216,13 @@ func TestConfigValidate_countVarInvalid(t *testing.T) {
}
}
func TestConfigValidate_countVarUnknown(t *testing.T) {
c := testConfig(t, "validate-count-var-unknown")
if err := c.Validate(); err == nil {
t.Fatal("should not be valid")
}
}
func TestConfigValidate_dependsOnVar(t *testing.T) {
c := testConfig(t, "validate-depends-on-var")
if err := c.Validate(); err == nil {

View File

@ -0,0 +1,3 @@
resource "aws_instance" "foo" {
count = "${list}"
}

View File

@ -6,6 +6,25 @@ import (
"testing"
)
func TestContext2Validate_badCount(t *testing.T) {
p := testProvider("aws")
m := testModule(t, "validate-bad-count")
c := testContext2(t, &ContextOpts{
Module: m,
Providers: map[string]ResourceProviderFactory{
"aws": testProviderFuncFixed(p),
},
})
w, e := c.Validate()
if len(w) > 0 {
t.Fatalf("bad: %#v", w)
}
if len(e) == 0 {
t.Fatalf("bad: %#v", e)
}
}
func TestContext2Validate_badVar(t *testing.T) {
p := testProvider("aws")
m := testModule(t, "validate-bad-var")

View File

@ -0,0 +1,3 @@
resource "aws_instance" "foo" {
count = "${list}"
}