Fix issue when trying to delete dangling ssh containers

This commit is contained in:
Marcos Lilljedahl
2017-08-15 20:03:24 -03:00
parent 0ab60f6456
commit 6d9ed2be41

View File

@@ -4,6 +4,7 @@ import (
"errors" "errors"
"fmt" "fmt"
"io" "io"
"log"
"net" "net"
"strings" "strings"
@@ -94,6 +95,7 @@ func (d *windows) InstanceNew(session *types.Session, conf types.InstanceConfig)
} }
instance := &types.Instance{} instance := &types.Instance{}
instance.Name = containerName
instance.Image = opts.Image instance.Image = opts.Image
instance.IP = winfo.privateIP instance.IP = winfo.privateIP
instance.SessionId = session.Id instance.SessionId = session.Id
@@ -111,18 +113,26 @@ func (d *windows) InstanceNew(session *types.Session, conf types.InstanceConfig)
instance.IsDockerHost = opts.Privileged instance.IsDockerHost = opts.Privileged
if cli, err := d.factory.GetForInstance(instance); err != nil { if cli, err := d.factory.GetForInstance(instance); err != nil {
d.InstanceDelete(session, instance) if derr := d.InstanceDelete(session, instance); derr != nil {
log.Println("Error deleting instance: ", derr)
}
return nil, err return nil, err
} else { } else {
info, err := cli.GetDaemonInfo() info, err := cli.GetDaemonInfo()
if err != nil { if err != nil {
d.InstanceDelete(session, instance) if derr := d.InstanceDelete(session, instance); derr != nil {
log.Println("Error deleting instance: ", derr)
}
return nil, err return nil, err
} }
instance.Hostname = info.Name instance.Hostname = info.Name
instance.Name = fmt.Sprintf("%s_%s", session.Id[:8], info.Name) instance.Name = fmt.Sprintf("%s_%s", session.Id[:8], info.Name)
if err = dockerClient.ContainerRename(containerName, instance.Name); err != nil { if err = dockerClient.ContainerRename(containerName, instance.Name); err != nil {
d.InstanceDelete(session, instance) // revert instance name to remove ssh container
instance.Name = containerName
if derr := d.InstanceDelete(session, instance); derr != nil {
log.Println("Error deleting instance: ", derr)
}
return nil, err return nil, err
} }
} }