fixes upgrade for debian/ubuntu for new package name

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
This commit is contained in:
Evan Hazlett
2015-08-13 01:24:15 -04:00
parent 9d0dc7a652
commit b3b42d069d
2 changed files with 52 additions and 9 deletions

View File

@@ -70,7 +70,7 @@ func (provisioner *DebianProvisioner) Package(name string, action pkgaction.Pack
switch name {
case "docker":
name = "lxc-docker"
name = "docker-engine"
}
if updateMetadata {
@@ -79,6 +79,28 @@ func (provisioner *DebianProvisioner) Package(name string, action pkgaction.Pack
}
}
// handle the new docker-engine package; we can probably remove this
// after we have a few versions
if action == pkgaction.Upgrade && name == "docker-engine" {
// run the force remove on the existing lxc-docker package
// and remove the existing apt source list
// also re-run the get.docker.com script to properly setup
// the system again
commands := []string{
"rm /etc/apt/sources.list.d/docker.list || true",
"apt-get remove -y lxc-docker || true",
"curl -sSL https://get.docker.com | sh",
}
for _, cmd := range commands {
command := fmt.Sprintf("DEBIAN_FRONTEND=noninteractive sudo -E %s", cmd)
if _, err := provisioner.SSHCommand(command); err != nil {
return err
}
}
}
command := fmt.Sprintf("DEBIAN_FRONTEND=noninteractive sudo -E apt-get %s -y %s", packageAction, name)
log.Debugf("package: action=%s name=%s", action.String(), name)

View File

@@ -47,10 +47,9 @@ func (provisioner *UbuntuProvisioner) Service(name string, action pkgaction.Serv
}
func (provisioner *UbuntuProvisioner) Package(name string, action pkgaction.PackageAction) error {
var (
packageAction string
updateMetadata = true
)
var packageAction string
updateMetadata := true
switch action {
case pkgaction.Install:
@@ -62,21 +61,43 @@ func (provisioner *UbuntuProvisioner) Package(name string, action pkgaction.Pack
packageAction = "upgrade"
}
// TODO: This should probably have a const
switch name {
case "docker":
name = "lxc-docker"
name = "docker-engine"
}
if updateMetadata {
// issue apt-get update for metadata
if _, err := provisioner.SSHCommand("sudo -E apt-get update"); err != nil {
if _, err := provisioner.SSHCommand("sudo apt-get update"); err != nil {
return err
}
}
// handle the new docker-engine package; we can probably remove this
// after we have a few versions
if action == pkgaction.Upgrade && name == "docker-engine" {
// run the force remove on the existing lxc-docker package
// and remove the existing apt source list
// also re-run the get.docker.com script to properly setup
// the system again
commands := []string{
"rm /etc/apt/sources.list.d/docker.list || true",
"apt-get remove -y lxc-docker || true",
"curl -sSL https://get.docker.com | sh",
}
for _, cmd := range commands {
command := fmt.Sprintf("DEBIAN_FRONTEND=noninteractive sudo -E %s", cmd)
if _, err := provisioner.SSHCommand(command); err != nil {
return err
}
}
}
command := fmt.Sprintf("DEBIAN_FRONTEND=noninteractive sudo -E apt-get %s -y %s", packageAction, name)
log.Debugf("package: action=%s name=%s", action.String(), name)
if _, err := provisioner.SSHCommand(command); err != nil {
return err
}