diff --git a/libmachine/host/host.go b/libmachine/host/host.go index d2244ce28c..c0672affda 100644 --- a/libmachine/host/host.go +++ b/libmachine/host/host.go @@ -9,6 +9,7 @@ import ( "github.com/docker/machine/libmachine/auth" "github.com/docker/machine/libmachine/drivers" "github.com/docker/machine/libmachine/engine" + "github.com/docker/machine/libmachine/log" "github.com/docker/machine/libmachine/mcnutils" "github.com/docker/machine/libmachine/provision" "github.com/docker/machine/libmachine/provision/pkgaction" @@ -135,14 +136,13 @@ func (h *Host) Upgrade() error { return err } + log.Info("Upgrading docker...") if err := provisioner.Package("docker", pkgaction.Upgrade); err != nil { return err } - if err := provisioner.Service("docker", serviceaction.Restart); err != nil { - return err - } - return nil + log.Info("Restarting docker...") + return provisioner.Service("docker", serviceaction.Restart) } func (h *Host) GetURL() (string, error) { diff --git a/libmachine/libmachine.go b/libmachine/libmachine.go index a23c0327be..33c6bde36d 100644 --- a/libmachine/libmachine.go +++ b/libmachine/libmachine.go @@ -121,7 +121,7 @@ func (api *Client) Create(h *host.Host) error { return fmt.Errorf("Error detecting OS: %s", err) } - log.Info("Provisioning created instance...") + log.Infof("Provisioning with %s...", provisioner.String()) if err := provisioner.Provision(*h.HostOptions.SwarmOptions, *h.HostOptions.AuthOptions, *h.HostOptions.EngineOptions); err != nil { return fmt.Errorf("Error running provisioning: %s", err) } diff --git a/libmachine/provision/arch.go b/libmachine/provision/arch.go index f9ed56dcf2..f65a73fc6d 100644 --- a/libmachine/provision/arch.go +++ b/libmachine/provision/arch.go @@ -29,6 +29,10 @@ type ArchProvisioner struct { SystemdProvisioner } +func (provisioner *ArchProvisioner) String() string { + return "arch" +} + func (provisioner *ArchProvisioner) CompatibleWithHost() bool { return provisioner.OsReleaseInfo.ID == provisioner.OsReleaseID || provisioner.OsReleaseInfo.IDLike == provisioner.OsReleaseID } diff --git a/libmachine/provision/boot2docker.go b/libmachine/provision/boot2docker.go index 1bc24ed28d..4ee8aa3bd9 100644 --- a/libmachine/provision/boot2docker.go +++ b/libmachine/provision/boot2docker.go @@ -41,6 +41,10 @@ type Boot2DockerProvisioner struct { SwarmOptions swarm.Options } +func (provisioner *Boot2DockerProvisioner) String() string { + return "boot2docker" +} + func (provisioner *Boot2DockerProvisioner) Service(name string, action serviceaction.ServiceAction) error { _, err := provisioner.SSHCommand(fmt.Sprintf("sudo /etc/init.d/%s %s", name, action.String())) return err diff --git a/libmachine/provision/centos.go b/libmachine/provision/centos.go index 7cadda47a8..11c01a3953 100644 --- a/libmachine/provision/centos.go +++ b/libmachine/provision/centos.go @@ -19,3 +19,7 @@ func NewCentosProvisioner(d drivers.Driver) Provisioner { type CentosProvisioner struct { *RedHatProvisioner } + +func (provisioner *CentosProvisioner) String() string { + return "centos" +} diff --git a/libmachine/provision/coreos.go b/libmachine/provision/coreos.go index 66b3724024..643406f3bf 100644 --- a/libmachine/provision/coreos.go +++ b/libmachine/provision/coreos.go @@ -38,6 +38,10 @@ type CoreOSProvisioner struct { SystemdProvisioner } +func (provisioner *CoreOSProvisioner) String() string { + return "coreOS" +} + func (provisioner *CoreOSProvisioner) SetHostname(hostname string) error { log.Debugf("SetHostname: %s", hostname) diff --git a/libmachine/provision/debian.go b/libmachine/provision/debian.go index b9babc4ec4..48973bef07 100644 --- a/libmachine/provision/debian.go +++ b/libmachine/provision/debian.go @@ -29,6 +29,10 @@ type DebianProvisioner struct { SystemdProvisioner } +func (provisioner *DebianProvisioner) String() string { + return "debian" +} + func (provisioner *DebianProvisioner) Package(name string, action pkgaction.PackageAction) error { var packageAction string diff --git a/libmachine/provision/fedora.go b/libmachine/provision/fedora.go index ebfd91870d..71989c02a2 100644 --- a/libmachine/provision/fedora.go +++ b/libmachine/provision/fedora.go @@ -19,3 +19,7 @@ func NewFedoraProvisioner(d drivers.Driver) Provisioner { type FedoraProvisioner struct { *RedHatProvisioner } + +func (provisioner *FedoraProvisioner) String() string { + return "fedora" +} diff --git a/libmachine/provision/provisioner.go b/libmachine/provision/provisioner.go index c91d78e078..ade6beb752 100644 --- a/libmachine/provision/provisioner.go +++ b/libmachine/provision/provisioner.go @@ -21,6 +21,7 @@ type SSHCommander interface { // Provisioner defines distribution specific actions type Provisioner interface { + fmt.Stringer SSHCommander // Create the files for the daemon to consume configuration settings (return struct of content and path) diff --git a/libmachine/provision/rancheros.go b/libmachine/provision/rancheros.go index 80f725f3e5..1ff4785369 100644 --- a/libmachine/provision/rancheros.go +++ b/libmachine/provision/rancheros.go @@ -52,6 +52,10 @@ type RancherProvisioner struct { GenericProvisioner } +func (provisioner *RancherProvisioner) String() string { + return "rancheros" +} + func (provisioner *RancherProvisioner) Service(name string, action serviceaction.ServiceAction) error { command := fmt.Sprintf("sudo system-docker %s %s", action.String(), name) diff --git a/libmachine/provision/redhat.go b/libmachine/provision/redhat.go index a5118db271..2538c337d4 100644 --- a/libmachine/provision/redhat.go +++ b/libmachine/provision/redhat.go @@ -61,6 +61,10 @@ type RedHatProvisioner struct { SystemdProvisioner } +func (provisioner *RedHatProvisioner) String() string { + return "redhat" +} + func (provisioner *RedHatProvisioner) SetHostname(hostname string) error { // we have to have SetHostname here as well to use the RedHat provisioner // SSHCommand to add the tty allocation diff --git a/libmachine/provision/suse.go b/libmachine/provision/suse.go index a9cf3f95c7..f1ba59a5ad 100644 --- a/libmachine/provision/suse.go +++ b/libmachine/provision/suse.go @@ -76,6 +76,10 @@ type SUSEProvisioner struct { GenericProvisioner } +func (provisioner *SUSEProvisioner) String() string { + return "suse" +} + func (provisioner *SUSEProvisioner) Service(name string, action serviceaction.ServiceAction) error { reloadDaemon := false switch action { diff --git a/libmachine/provision/systemd.go b/libmachine/provision/systemd.go index 842b312595..5abb1da95d 100644 --- a/libmachine/provision/systemd.go +++ b/libmachine/provision/systemd.go @@ -13,6 +13,10 @@ type SystemdProvisioner struct { GenericProvisioner } +func (p *SystemdProvisioner) String() string { + return "redhat" +} + func NewSystemdProvisioner(osReleaseID string, d drivers.Driver) SystemdProvisioner { return SystemdProvisioner{ GenericProvisioner{ diff --git a/libmachine/provision/ubuntu_systemd.go b/libmachine/provision/ubuntu_systemd.go index 99a9dd82a5..dca47404a6 100644 --- a/libmachine/provision/ubuntu_systemd.go +++ b/libmachine/provision/ubuntu_systemd.go @@ -30,6 +30,10 @@ type UbuntuSystemdProvisioner struct { SystemdProvisioner } +func (provisioner *UbuntuSystemdProvisioner) String() string { + return "ubuntu(systemd)" +} + func (provisioner *UbuntuSystemdProvisioner) CompatibleWithHost() bool { const FirstUbuntuSystemdVersion = 15.04 diff --git a/libmachine/provision/ubuntu_upstart.go b/libmachine/provision/ubuntu_upstart.go index 95b117ec54..7bf2bd08ce 100644 --- a/libmachine/provision/ubuntu_upstart.go +++ b/libmachine/provision/ubuntu_upstart.go @@ -39,6 +39,10 @@ type UbuntuProvisioner struct { GenericProvisioner } +func (provisioner *UbuntuProvisioner) String() string { + return "ubuntu(upstart)" +} + func (provisioner *UbuntuProvisioner) CompatibleWithHost() bool { const FirstUbuntuSystemdVersion = 15.04 isUbuntu := provisioner.OsReleaseInfo.ID == provisioner.OsReleaseID @@ -151,6 +155,7 @@ func (provisioner *UbuntuProvisioner) Provision(swarmOptions swarm.Options, auth } } + log.Info("Installing Docker...") if err := installDockerGeneric(provisioner, engineOptions.InstallURL); err != nil { return err }