11413: Wrap destroy_node with similar logic to create_node: on exception check
[arvados.git] / services / crunch-run / crunchrun.go
index 40d6ffd8d8ebcf0fc666c899b18b714f03a12134..a05f61a858c04321f41ff7c8a3faf97a87618431 100644 (file)
@@ -716,8 +716,7 @@ func (runner *ContainerRunner) CreateContainer() error {
                runner.ContainerConfig.Env = append(runner.ContainerConfig.Env, k+"="+v)
        }
 
-       runner.ContainerID = createdBody.ID
-       runner.HostConfig = dockerclient.HostConfig{
+       runner.HostConfig = dockercontainer.HostConfig{
                Binds:  runner.Binds,
                Cgroup: dockercontainer.CgroupSpec(runner.setCgroupParent),
                LogConfig: dockercontainer.LogConfig{
@@ -735,20 +734,22 @@ func (runner *ContainerRunner) CreateContainer() error {
                        "ARVADOS_API_HOST="+os.Getenv("ARVADOS_API_HOST"),
                        "ARVADOS_API_HOST_INSECURE="+os.Getenv("ARVADOS_API_HOST_INSECURE"),
                )
-               runner.HostConfig.NetworkMode = runner.networkMode
+               runner.HostConfig.NetworkMode = dockercontainer.NetworkMode(runner.networkMode)
        } else {
                if runner.enableNetwork == "always" {
-                       runner.HostConfig.NetworkMode = runner.networkMode
+                       runner.HostConfig.NetworkMode = dockercontainer.NetworkMode(runner.networkMode)
                } else {
-                       runner.HostConfig.NetworkMode = "none"
+                       runner.HostConfig.NetworkMode = dockercontainer.NetworkMode("none")
                }
        }
 
-       createdBody, err := runner.Docker.ContainerCreate(context.TODO(), &runner.ContainerConfig, nil, nil, "")
+       createdBody, err := runner.Docker.ContainerCreate(context.TODO(), &runner.ContainerConfig, &runner.HostConfig, nil, runner.Container.UUID)
        if err != nil {
                return fmt.Errorf("While creating container: %v", err)
        }
 
+       runner.ContainerID = createdBody.ID
+
        return runner.AttachStreams()
 }
 
@@ -779,7 +780,7 @@ func (runner *ContainerRunner) WaitFinish() error {
                return fmt.Errorf("container wait: %v", err)
        }
 
-       runner.CrunchLog.Printf("container wait API status code: %v", waitDocker)
+       runner.CrunchLog.Printf("Container exited with code: %v", waitDocker)
        code := int(waitDocker)
        runner.ExitCode = &code