Merge branch 'f-mappings'

This commit is contained in:
Mitchell Hashimoto 2014-07-22 09:37:24 -07:00
commit 4d8826fa7f
2 changed files with 29 additions and 0 deletions

View File

@ -11,6 +11,11 @@ import (
func smcUserVariables(c *config.Config, vs map[string]string) []error { func smcUserVariables(c *config.Config, vs map[string]string) []error {
var errs []error var errs []error
cvs := make(map[string]*config.Variable)
for _, v := range c.Variables {
cvs[v.Name] = v
}
// Check that all required variables are present // Check that all required variables are present
required := make(map[string]struct{}) required := make(map[string]struct{})
for _, v := range c.Variables { for _, v := range c.Variables {
@ -28,6 +33,20 @@ func smcUserVariables(c *config.Config, vs map[string]string) []error {
} }
} }
// Check that types match up
for k, _ := range vs {
v, ok := cvs[k]
if !ok {
continue
}
if v.Type() != config.VariableTypeString {
errs = append(errs, fmt.Errorf(
"%s: cannot assign string value to map type",
k))
}
}
// TODO(mitchellh): variables that are unknown // TODO(mitchellh): variables that are unknown
return errs return errs

View File

@ -27,4 +27,14 @@ func TestSMCUserVariables(t *testing.T) {
if len(errs) != 0 { if len(errs) != 0 {
t.Fatalf("err: %#v", errs) t.Fatalf("err: %#v", errs)
} }
// Mapping complete override
errs = smcUserVariables(c, map[string]string{
"foo": "bar",
"map": "baz",
})
if len(errs) == 0 {
t.Fatal("should have errors")
}
} }