mirror of https://github.com/docker/docs.git
74 lines
2.3 KiB
Go
74 lines
2.3 KiB
Go
package host
|
|
|
|
import (
|
|
"github.com/docker/machine/libmachine/auth"
|
|
"github.com/docker/machine/libmachine/engine"
|
|
"github.com/docker/machine/libmachine/swarm"
|
|
)
|
|
|
|
// In the 0.1.0 => 0.2.0 transition, the JSON representation of
|
|
// machines changed from a "flat" to a more "nested" structure
|
|
// for various options and configuration settings. To preserve
|
|
// compatibility with existing machines, these migration functions
|
|
// have been introduced. They preserve backwards compat at the expense
|
|
// of some duplicated information.
|
|
|
|
// MigrateHostV0ToHostV1 validates host config and modifies if needed
|
|
// this is used for configuration updates
|
|
func MigrateHostV0ToHostV1(hostV0 *V0) *V1 {
|
|
hostV1 := &V1{
|
|
Driver: hostV0.Driver,
|
|
DriverName: hostV0.DriverName,
|
|
}
|
|
|
|
hostV1.HostOptions = &OptionsV1{}
|
|
hostV1.HostOptions.EngineOptions = &engine.Options{
|
|
TLSVerify: true,
|
|
InstallURL: "https://get.docker.com",
|
|
}
|
|
hostV1.HostOptions.SwarmOptions = &swarm.Options{
|
|
Address: "",
|
|
Discovery: hostV0.SwarmDiscovery,
|
|
Host: hostV0.SwarmHost,
|
|
Master: hostV0.SwarmMaster,
|
|
}
|
|
hostV1.HostOptions.AuthOptions = &AuthOptionsV1{
|
|
StorePath: hostV0.StorePath,
|
|
CaCertPath: hostV0.CaCertPath,
|
|
CaCertRemotePath: "",
|
|
ServerCertPath: hostV0.ServerCertPath,
|
|
ServerKeyPath: hostV0.ServerKeyPath,
|
|
ClientKeyPath: hostV0.ClientKeyPath,
|
|
ServerCertRemotePath: "",
|
|
ServerKeyRemotePath: "",
|
|
PrivateKeyPath: hostV0.PrivateKeyPath,
|
|
ClientCertPath: hostV0.ClientCertPath,
|
|
}
|
|
|
|
return hostV1
|
|
}
|
|
|
|
// MigrateHostMetadataV0ToHostMetadataV1 fills nested host metadata and modifies if needed
|
|
// this is used for configuration updates
|
|
func MigrateHostMetadataV0ToHostMetadataV1(m *MetadataV0) *Metadata {
|
|
hostMetadata := &Metadata{}
|
|
hostMetadata.DriverName = m.DriverName
|
|
hostMetadata.HostOptions.EngineOptions = &engine.Options{}
|
|
hostMetadata.HostOptions.AuthOptions = &auth.Options{
|
|
StorePath: m.StorePath,
|
|
CaCertPath: m.CaCertPath,
|
|
CaCertRemotePath: "",
|
|
ServerCertPath: m.ServerCertPath,
|
|
ServerKeyPath: m.ServerKeyPath,
|
|
ClientKeyPath: "",
|
|
ServerCertRemotePath: "",
|
|
ServerKeyRemotePath: "",
|
|
CaPrivateKeyPath: m.PrivateKeyPath,
|
|
ClientCertPath: m.ClientCertPath,
|
|
}
|
|
|
|
hostMetadata.ConfigVersion = m.ConfigVersion
|
|
|
|
return hostMetadata
|
|
}
|