helper/schema: Bools and ints can decode
This commit is contained in:
parent
efa2335886
commit
46d911325a
|
@ -12,7 +12,7 @@ type ValueType int
|
||||||
|
|
||||||
const (
|
const (
|
||||||
TypeInvalid ValueType = iota
|
TypeInvalid ValueType = iota
|
||||||
TypeBoolean
|
TypeBool
|
||||||
TypeInt
|
TypeInt
|
||||||
TypeString
|
TypeString
|
||||||
TypeList
|
TypeList
|
||||||
|
@ -67,8 +67,14 @@ func (m schemaMap) Diff(
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
switch schema.Type {
|
switch schema.Type {
|
||||||
|
case TypeBool:
|
||||||
|
fallthrough
|
||||||
|
case TypeInt:
|
||||||
|
fallthrough
|
||||||
case TypeString:
|
case TypeString:
|
||||||
attrD, err = m.diffString(k, schema, s, c)
|
attrD, err = m.diffString(k, schema, s, c)
|
||||||
|
default:
|
||||||
|
err = fmt.Errorf("%s: unknown type %s", k, schema.Type)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -16,6 +16,10 @@ func TestSchemaMap_Diff(t *testing.T) {
|
||||||
Diff *terraform.ResourceDiff
|
Diff *terraform.ResourceDiff
|
||||||
Err bool
|
Err bool
|
||||||
}{
|
}{
|
||||||
|
/*
|
||||||
|
* String decode
|
||||||
|
*/
|
||||||
|
|
||||||
{
|
{
|
||||||
Schema: map[string]*Schema{
|
Schema: map[string]*Schema{
|
||||||
"availability_zone": &Schema{
|
"availability_zone": &Schema{
|
||||||
|
@ -88,6 +92,72 @@ func TestSchemaMap_Diff(t *testing.T) {
|
||||||
|
|
||||||
Err: true,
|
Err: true,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Int decode
|
||||||
|
*/
|
||||||
|
|
||||||
|
{
|
||||||
|
Schema: map[string]*Schema{
|
||||||
|
"port": &Schema{
|
||||||
|
Type: TypeInt,
|
||||||
|
Optional: true,
|
||||||
|
Computed: true,
|
||||||
|
ForceNew: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
State: nil,
|
||||||
|
|
||||||
|
Config: map[string]interface{}{
|
||||||
|
"port": 27,
|
||||||
|
},
|
||||||
|
|
||||||
|
Diff: &terraform.ResourceDiff{
|
||||||
|
Attributes: map[string]*terraform.ResourceAttrDiff{
|
||||||
|
"port": &terraform.ResourceAttrDiff{
|
||||||
|
Old: "",
|
||||||
|
New: "27",
|
||||||
|
RequiresNew: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
Err: false,
|
||||||
|
},
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Bool decode
|
||||||
|
*/
|
||||||
|
|
||||||
|
{
|
||||||
|
Schema: map[string]*Schema{
|
||||||
|
"port": &Schema{
|
||||||
|
Type: TypeBool,
|
||||||
|
Optional: true,
|
||||||
|
Computed: true,
|
||||||
|
ForceNew: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
State: nil,
|
||||||
|
|
||||||
|
Config: map[string]interface{}{
|
||||||
|
"port": false,
|
||||||
|
},
|
||||||
|
|
||||||
|
Diff: &terraform.ResourceDiff{
|
||||||
|
Attributes: map[string]*terraform.ResourceAttrDiff{
|
||||||
|
"port": &terraform.ResourceAttrDiff{
|
||||||
|
Old: "",
|
||||||
|
New: "0",
|
||||||
|
RequiresNew: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
Err: false,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for i, tc := range cases {
|
for i, tc := range cases {
|
||||||
|
|
Loading…
Reference in New Issue