=== modified file 'state/machine.go' --- state/machine.go 2014-03-26 11:34:48 +0000 +++ state/machine.go 2014-04-02 18:24:08 +0000 @@ -813,23 +813,27 @@ return ok } +func mergedAddresses(machineAddresses, providerAddresses []address) (addresses []instance.Address) { + merged := make(map[string]instance.Address) + for _, address := range machineAddresses { + merged[address.Value] = address.InstanceAddress() + } + for _, address := range providerAddresses { + merged[address.Value] = address.InstanceAddress() + } + for _, address := range merged { + addresses = append(addresses, address) + } + return +} + // Addresses returns any hostnames and ips associated with a machine, // determined both by the machine itself, and by asking the provider. // // The addresses returned by the provider shadow any of the addresses // that the machine reported with the same address value. -func (m *Machine) Addresses() (addresses []instance.Address) { - merged := make(map[string]instance.Address) - for _, address := range m.doc.MachineAddresses { - merged[address.Value] = address.InstanceAddress() - } - for _, address := range m.doc.Addresses { - merged[address.Value] = address.InstanceAddress() - } - for _, address := range merged { - addresses = append(addresses, address) - } - return +func (m *Machine) Addresses() []instance.Address { + return mergedAddresses(m.doc.MachineAddresses, m.doc.Addresses) } // SetAddresses records any addresses related to the machine, sourced === modified file 'state/megawatcher.go' --- state/megawatcher.go 2014-03-21 09:56:17 +0000 +++ state/megawatcher.go 2014-04-02 18:24:08 +0000 @@ -32,7 +32,7 @@ Life: params.Life(m.Life.String()), Series: m.Series, Jobs: paramsJobsFromJobs(m.Jobs), - Addresses: addressesToInstanceAddresses(m.Addresses), + Addresses: mergedAddresses(m.MachineAddresses, m.Addresses), SupportedContainers: m.SupportedContainers, SupportedContainersKnown: m.SupportedContainersKnown, }