mirror of https://github.com/docker/docs.git
109 lines
3.6 KiB
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)
|
|
}
|
|
}
|