Exit non-zero if container is cancelled.
authorTom Clegg <tom@tomclegg.ca>
Mon, 6 Apr 2020 14:57:08 +0000 (10:57 -0400)
committerTom Clegg <tom@tomclegg.ca>
Mon, 6 Apr 2020 14:57:08 +0000 (10:57 -0400)
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom@tomclegg.ca>

arvados.go

index cc4a10c0d7f5e4399fa33e02101e22cfedd12b15..ca967824b51a98f204ff482013e7a1c539bc0930 100644 (file)
@@ -257,7 +257,7 @@ func (runner *arvadosContainerRunner) Run() (string, error) {
                        return
                }
                if lastState != cr.State {
-                       log.Printf("container state: %s", cr.State)
+                       log.Printf("container request state: %s", cr.State)
                        lastState = cr.State
                }
                if subscribedUUID != cr.ContainerUUID {
@@ -291,8 +291,9 @@ func (runner *arvadosContainerRunner) Run() (string, error) {
        err = runner.Client.RequestAndDecode(&c, "GET", "arvados/v1/containers/"+cr.ContainerUUID, nil, nil)
        if err != nil {
                return "", err
-       }
-       if c.ExitCode != 0 {
+       } else if c.State != arvados.ContainerStateComplete {
+               return "", fmt.Errorf("container did not complete: %s", c.State)
+       } else if c.ExitCode != 0 {
                return "", fmt.Errorf("container exited %d", c.ExitCode)
        }
        return cr.OutputUUID, err