Browse code

Add key migration integration test

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)

Derek McGowan authored on 2015/01/23 03:51:04
Showing 1 changed files
... ...
@@ -8,6 +8,7 @@ import (
8 8
 	"io/ioutil"
9 9
 	"os"
10 10
 	"os/exec"
11
+	"path/filepath"
11 12
 	"strings"
12 13
 	"testing"
13 14
 
... ...
@@ -374,3 +375,31 @@ func TestDaemonKeyGeneration(t *testing.T) {
374 374
 
375 375
 	logDone("daemon - key generation")
376 376
 }
377
+
378
+func TestDaemonKeyMigration(t *testing.T) {
379
+	// TODO: skip or update for Windows daemon
380
+	os.Remove("/etc/docker/key.json")
381
+	k1, err := libtrust.GenerateECP256PrivateKey()
382
+	if err != nil {
383
+		t.Fatalf("Error generating private key: %s", err)
384
+	}
385
+	if err := libtrust.SaveKey(filepath.Join(os.Getenv("HOME"), ".docker", "key.json"), k1); err != nil {
386
+		t.Fatalf("Error saving private key: %s", err)
387
+	}
388
+
389
+	d := NewDaemon(t)
390
+	if err := d.Start(); err != nil {
391
+		t.Fatalf("Could not start daemon: %v", err)
392
+	}
393
+	d.Stop()
394
+
395
+	k2, err := libtrust.LoadKeyFile("/etc/docker/key.json")
396
+	if err != nil {
397
+		t.Fatalf("Error opening key file")
398
+	}
399
+	if k1.KeyID() != k2.KeyID() {
400
+		t.Fatalf("Key not migrated")
401
+	}
402
+
403
+	logDone("daemon - key migration")
404
+}