docs/libmachine/host/migrate_v1_v2_test.go

109 lines
3.6 KiB
Go

package host
import (
"path/filepath"
"testing"
)
var (
v1conf = []byte(`{
"ConfigVersion": 1,
"Driver": {
"IPAddress": "192.168.99.100",
"SSHUser": "docker",
"SSHPort": 64477,
"MachineName": "foobar",
"CaCertPath": "/Users/catbug/.docker/machine/certs/ca.pem",
"PrivateKeyPath": "/Users/catbug/.docker/machine/certs/ca-key.pem",
"SwarmMaster": false,
"SwarmHost": "tcp://0.0.0.0:3376",
"SwarmDiscovery": "",
"CPU": 1,
"Memory": 1024,
"DiskSize": 20000,
"Boot2DockerURL": "",
"Boot2DockerImportVM": "",
"HostOnlyCIDR": "192.168.99.1/24"
},
"DriverName": "virtualbox",
"HostOptions": {
"Driver": "",
"Memory": 0,
"Disk": 0,
"EngineOptions": {
"ArbitraryFlags": [],
"Dns": null,
"GraphDir": "",
"Env": [],
"Ipv6": false,
"InsecureRegistry": [],
"Labels": [],
"LogLevel": "",
"StorageDriver": "",
"SelinuxEnabled": false,
"TlsCaCert": "",
"TlsCert": "",
"TlsKey": "",
"TlsVerify": true,
"RegistryMirror": [],
"InstallURL": "https://get.docker.com"
},
"SwarmOptions": {
"IsSwarm": false,
"Address": "",
"Discovery": "",
"Master": false,
"Host": "tcp://0.0.0.0:3376",
"Image": "swarm:latest",
"Strategy": "spread",
"Heartbeat": 0,
"Overcommit": 0,
"TlsCaCert": "",
"TlsCert": "",
"TlsKey": "",
"TlsVerify": false,
"ArbitraryFlags": []
},
"AuthOptions": {
"StorePath": "",
"CaCertPath": "/Users/catbug/.docker/machine/certs/ca.pem",
"CaCertRemotePath": "",
"ServerCertPath": "/Users/catbug/.docker/machine/machines/foobar/server.pem",
"ServerKeyPath": "/Users/catbug/.docker/machine/machines/foobar/server-key.pem",
"ClientKeyPath": "/Users/catbug/.docker/machine/certs/key.pem",
"ServerCertRemotePath": "",
"ServerKeyRemotePath": "",
"PrivateKeyPath": "/Users/catbug/.docker/machine/certs/ca-key.pem",
"ClientCertPath": "/Users/catbug/.docker/machine/certs/cert.pem"
}
},
"StorePath": "/Users/catbug/.docker/machine/machines/foobar"
}`)
)
func TestMigrateHostV1ToHostV2(t *testing.T) {
h := &Host{}
expectedGlobalStorePath := "/Users/catbug/.docker/machine"
expectedCaPrivateKeyPath := "/Users/catbug/.docker/machine/certs/ca-key.pem"
migratedHost, migrationPerformed, err := MigrateHost(h, v1conf)
if err != nil {
t.Fatalf("Error attempting to migrate host: %s", err)
}
if !migrationPerformed {
t.Fatal("Expected a migration to be reported as performed but it was not")
}
if migratedHost.HostOptions.AuthOptions.StorePath != expectedGlobalStorePath {
t.Fatalf("Expected %q, got %q for the store path in AuthOptions", migratedHost.HostOptions.AuthOptions.StorePath, expectedGlobalStorePath)
}
if migratedHost.HostOptions.AuthOptions.CaPrivateKeyPath != expectedCaPrivateKeyPath {
t.Fatalf("Expected %q, got %q for the private key path in AuthOptions", migratedHost.HostOptions.AuthOptions.CaPrivateKeyPath, expectedCaPrivateKeyPath)
}
if migratedHost.HostOptions.AuthOptions.CertDir != filepath.Join(expectedGlobalStorePath, "certs") {
t.Fatalf("Expected %q, got %q for the cert dir in AuthOptions", migratedHost.HostOptions.AuthOptions.CaPrivateKeyPath, expectedGlobalStorePath)
}
}