From 618cd741d858a96b7edb87a9c55fadd35a78ad39 Mon Sep 17 00:00:00 2001 From: Darren Shepherd Date: Mon, 18 Jan 2016 22:15:51 -0700 Subject: [PATCH] Sort SSH keys from metadata so that diff functions will be consistent --- config/disk.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/config/disk.go b/config/disk.go index e74e6af2..0387bf07 100644 --- a/config/disk.go +++ b/config/disk.go @@ -4,6 +4,7 @@ import ( "io/ioutil" "os" "path" + "sort" "strings" log "github.com/Sirupsen/logrus" @@ -109,13 +110,23 @@ func mergeMetadata(cc *CloudConfig, md datasource.Metadata) *CloudConfig { out.Hostname = md.Hostname } } - for _, key := range md.SSHPublicKeys { + + // Sort SSH keys by key name + keys := []string{} + for k := range md.SSHPublicKeys { + keys = append(keys, k) + } + + sort.Sort(sort.StringSlice(keys)) + + for _, k := range keys { if !dirty { out = &(*cc) dirty = true } - out.SSHAuthorizedKeys = append(out.SSHAuthorizedKeys, key) + out.SSHAuthorizedKeys = append(out.SSHAuthorizedKeys, md.SSHPublicKeys[k]) } + return out }