mirror of https://github.com/docker/docs.git
120 lines
3.4 KiB
Go
120 lines
3.4 KiB
Go
package libmachine
|
|
|
|
import (
|
|
"os"
|
|
"reflect"
|
|
"testing"
|
|
|
|
"github.com/docker/machine/libmachine/auth"
|
|
"github.com/docker/machine/libmachine/engine"
|
|
"github.com/docker/machine/libmachine/swarm"
|
|
)
|
|
|
|
func TestFillNestedHost(t *testing.T) {
|
|
os.Setenv("MACHINE_STORAGE_PATH", "/tmp/migration")
|
|
originalHost := &Host{
|
|
HostOptions: nil,
|
|
SwarmDiscovery: "token://foobar",
|
|
SwarmHost: "1.2.3.4:2376",
|
|
SwarmMaster: true,
|
|
CaCertPath: "",
|
|
PrivateKeyPath: "",
|
|
ClientCertPath: "",
|
|
ClientKeyPath: "",
|
|
ServerCertPath: "",
|
|
ServerKeyPath: "",
|
|
}
|
|
hostOptions := &HostOptions{
|
|
SwarmOptions: &swarm.SwarmOptions{
|
|
Master: true,
|
|
Discovery: "token://foobar",
|
|
Host: "1.2.3.4:2376",
|
|
},
|
|
AuthOptions: &auth.AuthOptions{
|
|
CaCertPath: "/tmp/migration/certs/ca.pem",
|
|
PrivateKeyPath: "/tmp/migration/certs/ca-key.pem",
|
|
ClientCertPath: "/tmp/migration/certs/cert.pem",
|
|
ClientKeyPath: "/tmp/migration/certs/key.pem",
|
|
ServerCertPath: "/tmp/migration/certs/server.pem",
|
|
ServerKeyPath: "/tmp/migration/certs/server-key.pem",
|
|
},
|
|
EngineOptions: &engine.EngineOptions{},
|
|
}
|
|
|
|
expectedHost := &Host{
|
|
SwarmHost: "1.2.3.4:2376",
|
|
SwarmDiscovery: "token://foobar",
|
|
SwarmMaster: true,
|
|
HostOptions: hostOptions,
|
|
}
|
|
|
|
host := FillNestedHost(originalHost)
|
|
|
|
if !reflect.DeepEqual(host, expectedHost) {
|
|
t.Logf("\n%+v\n%+v", host, expectedHost)
|
|
t.Logf("\n%+v\n%+v", host.HostOptions, expectedHost.HostOptions)
|
|
t.Fatal("Expected these structs to be equal, they were different")
|
|
}
|
|
}
|
|
|
|
func TestFillNestedHostMetadata(t *testing.T) {
|
|
metadata := &HostMetadata{
|
|
HostOptions: HostOptions{
|
|
EngineOptions: nil,
|
|
AuthOptions: nil,
|
|
},
|
|
StorePath: "/tmp/store",
|
|
CaCertPath: "/tmp/store/certs/ca.pem",
|
|
ServerCertPath: "/tmp/store/certs/server.pem",
|
|
}
|
|
expectedAuthOptions := &auth.AuthOptions{
|
|
StorePath: "/tmp/store",
|
|
CaCertPath: "/tmp/store/certs/ca.pem",
|
|
ServerCertPath: "/tmp/store/certs/server.pem",
|
|
}
|
|
|
|
expectedMetadata := &HostMetadata{
|
|
HostOptions: HostOptions{
|
|
EngineOptions: &engine.EngineOptions{},
|
|
AuthOptions: expectedAuthOptions,
|
|
},
|
|
StorePath: "/tmp/store",
|
|
CaCertPath: "/tmp/store/certs/ca.pem",
|
|
ServerCertPath: "/tmp/store/certs/server.pem",
|
|
}
|
|
|
|
m := FillNestedHostMetadata(metadata)
|
|
|
|
if !reflect.DeepEqual(m, expectedMetadata) {
|
|
t.Logf("\n%+v\n%+v", m, expectedMetadata)
|
|
t.Fatal("Expected these structs to be equal, they were different")
|
|
}
|
|
}
|
|
|
|
// Tests a function which "prefills" certificate information for a host
|
|
// due to a schema migration from "flat" to a "nested" structure.
|
|
func TestGetCertInfoFromHost(t *testing.T) {
|
|
os.Setenv("MACHINE_STORAGE_PATH", "/tmp/migration")
|
|
host := &Host{
|
|
CaCertPath: "",
|
|
PrivateKeyPath: "",
|
|
ClientCertPath: "",
|
|
ClientKeyPath: "",
|
|
ServerCertPath: "",
|
|
ServerKeyPath: "",
|
|
}
|
|
expectedCertInfo := CertPathInfo{
|
|
CaCertPath: "/tmp/migration/certs/ca.pem",
|
|
CaKeyPath: "/tmp/migration/certs/ca-key.pem",
|
|
ClientCertPath: "/tmp/migration/certs/cert.pem",
|
|
ClientKeyPath: "/tmp/migration/certs/key.pem",
|
|
ServerCertPath: "/tmp/migration/certs/server.pem",
|
|
ServerKeyPath: "/tmp/migration/certs/server-key.pem",
|
|
}
|
|
certInfo := getCertInfoFromHost(host)
|
|
if !reflect.DeepEqual(expectedCertInfo, certInfo) {
|
|
t.Log("\n\n\n", expectedCertInfo, "\n\n\n", certInfo)
|
|
t.Fatal("Expected these structs to be equal, they were different")
|
|
}
|
|
}
|