Merge pull request #9118 from hashicorp/spew-diff-mismatch

[WIP] core: Log diff mismatch using spew instead of %#v
This commit is contained in:
Mitchell Hashimoto 2016-11-15 11:53:19 -08:00 committed by GitHub
commit b20f43834b
1 changed files with 7 additions and 5 deletions

View File

@ -5,6 +5,7 @@ import (
"log"
"strings"
"github.com/davecgh/go-spew/spew"
"github.com/hashicorp/terraform/config"
)
@ -42,10 +43,11 @@ func (n *EvalCompareDiff) Eval(ctx EvalContext) (interface{}, error) {
}()
if same, reason := one.Same(two); !same {
spew.Config.SortKeys = true
log.Printf("[ERROR] %s: diffs didn't match", n.Info.Id)
log.Printf("[ERROR] %s: reason: %s", n.Info.Id, reason)
log.Printf("[ERROR] %s: diff one: %#v", n.Info.Id, one)
log.Printf("[ERROR] %s: diff two: %#v", n.Info.Id, two)
log.Printf("[ERROR] %s: diff one: %s", n.Info.Id, spew.Sdump(one))
log.Printf("[ERROR] %s: diff two: %s", n.Info.Id, spew.Sdump(two))
return nil, fmt.Errorf(
"%s: diffs didn't match during apply. This is a bug with "+
"Terraform and should be reported as a GitHub Issue.\n"+
@ -55,12 +57,12 @@ func (n *EvalCompareDiff) Eval(ctx EvalContext) (interface{}, error) {
" Terraform Version: %s\n"+
" Resource ID: %s\n"+
" Mismatch reason: %s\n"+
" Diff One (usually from plan): %#v\n"+
" Diff Two (usually from apply): %#v\n"+
" Diff One (usually from plan): %s\n"+
" Diff Two (usually from apply): %s\n"+
"\n"+
"Also include as much context as you can about your config, state, "+
"and the steps you performed to trigger this error.\n",
n.Info.Id, Version, n.Info.Id, reason, one, two)
n.Info.Id, Version, n.Info.Id, reason, spew.Sdump(one), spew.Sdump(two))
}
return nil, nil