mirror of https://github.com/docker/docs.git
				
				
				
			
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Go
		
	
	
	
| package host
 | |
| 
 | |
| import (
 | |
| 	"path/filepath"
 | |
| 
 | |
| 	"github.com/docker/machine/libmachine/auth"
 | |
| 	"github.com/docker/machine/libmachine/drivers"
 | |
| 	"github.com/docker/machine/libmachine/engine"
 | |
| 	"github.com/docker/machine/libmachine/swarm"
 | |
| )
 | |
| 
 | |
| type AuthOptionsV1 struct {
 | |
| 	StorePath            string
 | |
| 	CaCertPath           string
 | |
| 	CaCertRemotePath     string
 | |
| 	ServerCertPath       string
 | |
| 	ServerKeyPath        string
 | |
| 	ClientKeyPath        string
 | |
| 	ServerCertRemotePath string
 | |
| 	ServerKeyRemotePath  string
 | |
| 	PrivateKeyPath       string
 | |
| 	ClientCertPath       string
 | |
| }
 | |
| 
 | |
| type OptionsV1 struct {
 | |
| 	Driver        string
 | |
| 	Memory        int
 | |
| 	Disk          int
 | |
| 	EngineOptions *engine.Options
 | |
| 	SwarmOptions  *swarm.Options
 | |
| 	AuthOptions   *AuthOptionsV1
 | |
| }
 | |
| 
 | |
| type V1 struct {
 | |
| 	ConfigVersion int
 | |
| 	Driver        drivers.Driver
 | |
| 	DriverName    string
 | |
| 	HostOptions   *OptionsV1
 | |
| 	Name          string `json:"-"`
 | |
| 	StorePath     string
 | |
| }
 | |
| 
 | |
| func MigrateHostV1ToHostV2(hostV1 *V1) *V2 {
 | |
| 	// Changed:  Put StorePath directly in AuthOptions (for provisioning),
 | |
| 	// and AuthOptions.PrivateKeyPath => AuthOptions.CaPrivateKeyPath
 | |
| 	// Also, CertDir has been added.
 | |
| 
 | |
| 	globalStorePath := filepath.Dir(filepath.Dir(hostV1.StorePath))
 | |
| 
 | |
| 	h := &V2{
 | |
| 		ConfigVersion: hostV1.ConfigVersion,
 | |
| 		Driver:        hostV1.Driver,
 | |
| 		Name:          hostV1.Driver.GetMachineName(),
 | |
| 		DriverName:    hostV1.DriverName,
 | |
| 		HostOptions: &Options{
 | |
| 			Driver:        hostV1.HostOptions.Driver,
 | |
| 			Memory:        hostV1.HostOptions.Memory,
 | |
| 			Disk:          hostV1.HostOptions.Disk,
 | |
| 			EngineOptions: hostV1.HostOptions.EngineOptions,
 | |
| 			SwarmOptions:  hostV1.HostOptions.SwarmOptions,
 | |
| 			AuthOptions: &auth.Options{
 | |
| 				CertDir:              filepath.Join(globalStorePath, "certs"),
 | |
| 				CaCertPath:           hostV1.HostOptions.AuthOptions.CaCertPath,
 | |
| 				CaPrivateKeyPath:     hostV1.HostOptions.AuthOptions.PrivateKeyPath,
 | |
| 				CaCertRemotePath:     hostV1.HostOptions.AuthOptions.CaCertRemotePath,
 | |
| 				ServerCertPath:       hostV1.HostOptions.AuthOptions.ServerCertPath,
 | |
| 				ServerKeyPath:        hostV1.HostOptions.AuthOptions.ServerKeyPath,
 | |
| 				ClientKeyPath:        hostV1.HostOptions.AuthOptions.ClientKeyPath,
 | |
| 				ServerCertRemotePath: hostV1.HostOptions.AuthOptions.ServerCertRemotePath,
 | |
| 				ServerKeyRemotePath:  hostV1.HostOptions.AuthOptions.ServerKeyRemotePath,
 | |
| 				ClientCertPath:       hostV1.HostOptions.AuthOptions.ClientCertPath,
 | |
| 				StorePath:            globalStorePath,
 | |
| 			},
 | |
| 		},
 | |
| 	}
 | |
| 
 | |
| 	return h
 | |
| }
 |