state: cache should use State.Equal to check equality

reflect.DeepEqual was returning false, sometimes.
This commit is contained in:
Mitchell Hashimoto 2015-04-07 15:03:04 -07:00
parent c9fe0c1b34
commit 1fac7b6488
3 changed files with 7 additions and 5 deletions

View File

@ -1,6 +1,9 @@
## 0.4.1 (unreleased) ## 0.4.1 (unreleased)
BUG FIXES:
* command/remote-config: remove spurrious error "nil" when initializing
remote state on a new configuration. [GH-1392]
## 0.4.0 (April 2, 2015) ## 0.4.0 (April 2, 2015)
@ -13,7 +16,7 @@ BACKWARDS INCOMPATIBILITIES:
* Period-prefixed configuration files are now ignored. This might break * Period-prefixed configuration files are now ignored. This might break
existing Terraform configurations if you had period-prefixed files. existing Terraform configurations if you had period-prefixed files.
* The `block_device` attribute of `aws_instance` has been removed in favor * The `block_device` attribute of `aws_instance` has been removed in favor
of three more specific attributes to specify block device mappings: of three more specific attributes to specify block device mappings:
`root_block_device`, `ebs_block_device`, and `ephemeral_block_device`. `root_block_device`, `ebs_block_device`, and `ephemeral_block_device`.
Configurations using the old attribute will generate a validation error Configurations using the old attribute will generate a validation error
indicating that they must be updated to use the new fields [GH-1045]. indicating that they must be updated to use the new fields [GH-1045].

View File

@ -255,8 +255,8 @@ func remoteState(
"Error preparing remote state: {{err}}", err) "Error preparing remote state: {{err}}", err)
} }
default: default:
return nil, errwrap.Wrapf( return nil, fmt.Errorf(
"Error initilizing remote state: {{err}}", err) "Unknown refresh result: %s", cache.RefreshResult())
} }
} }

View File

@ -2,7 +2,6 @@ package state
import ( import (
"fmt" "fmt"
"reflect"
"github.com/hashicorp/terraform/terraform" "github.com/hashicorp/terraform/terraform"
) )
@ -77,7 +76,7 @@ func (s *CacheState) RefreshState() error {
s.refreshResult = CacheRefreshUpdateLocal s.refreshResult = CacheRefreshUpdateLocal
case durable.Serial == cached.Serial: case durable.Serial == cached.Serial:
// They're supposedly equal, verify. // They're supposedly equal, verify.
if reflect.DeepEqual(cached, durable) { if cached.Equal(durable) {
// Hashes are the same, everything is great // Hashes are the same, everything is great
s.refreshResult = CacheRefreshNoop s.refreshResult = CacheRefreshNoop
break break