terraform: unify on init addr

This commit is contained in:
Mitchell Hashimoto 2016-04-11 18:28:36 -07:00
parent c324062645
commit cb060f9063
No known key found for this signature in database
GPG Key ID: 744E147AA52F5B0A
1 changed files with 4 additions and 20 deletions

View File

@ -127,30 +127,14 @@ func stateAddFunc_Resource_Resource(s *State, addr *ResourceAddress, raw interfa
func stateAddFunc_Instance_Instance(s *State, addr *ResourceAddress, raw interface{}) error {
src := raw.(*InstanceState).deepcopy()
// Create the module up to this point
path := append([]string{"root"}, addr.Path...)
mod := s.ModuleByPath(path)
if mod == nil {
mod = s.AddModule(path)
}
// Create the resources
resourceKey := (&ResourceStateKey{
Name: addr.Name,
Type: addr.Type,
Index: addr.Index,
}).String()
resource, ok := mod.Resources[resourceKey]
if !ok {
resource = &ResourceState{Type: addr.Type}
resource.init()
mod.Resources[resourceKey] = resource
}
// Create the instance
instanceRaw, _ := stateAddInitAddr(s, addr)
instance := instanceRaw.(*InstanceState)
// Depending on the instance type, set it
switch addr.InstanceType {
case TypePrimary:
resource.Primary = src
*instance = *src
default:
return fmt.Errorf("can't move instance state to %s", addr.InstanceType)
}