oci: make ExecSync with ExitCode != 0 act properly

Previously we returned an internal error result when a program had a
non-zero exit code, which was incorrect. Fix this as well as change the
tests to actually check the "ExitCode" response from ExecSync (rather
than expecting ocic-ctr to return an internal error).

Signed-off-by: Aleksa Sarai <asarai@suse.de>
This commit is contained in:
Aleksa Sarai 2017-04-11 06:59:03 +10:00
parent 32750cd3f3
commit 8a928d06e7
No known key found for this signature in database
GPG key ID: 9E18AA267DDB8DB4
2 changed files with 7 additions and 13 deletions

View file

@ -380,15 +380,6 @@ func (r *Runtime) ExecSync(c *Container, command []string, timeout int64) (resp
logrus.Infof("Received container exit code: %v", ec.ExitCode)
if ec.ExitCode != 0 {
return nil, ExecSyncError{
Stdout: stdoutBuf,
Stderr: stderrBuf,
ExitCode: ec.ExitCode,
Err: fmt.Errorf("container workload exited with error %v", ec.ExitCode),
}
}
// The actual logged output is not the same as stdoutBuf and stderrBuf,
// which are used for getting error information. For the actual
// ExecSyncResponse we have to read the logfile.
@ -408,7 +399,7 @@ func (r *Runtime) ExecSync(c *Container, command []string, timeout int64) (resp
return &ExecSyncResponse{
Stdout: outputBytes,
Stderr: nil,
ExitCode: 0,
ExitCode: ec.ExitCode,
}, nil
}

View file

@ -71,7 +71,8 @@ function teardown() {
[ "$status" -eq 0 ]
run ocic ctr execsync --id "$ctr_id" chmod 777 .
echo "$output"
[ "$status" -ne 0 ]
[ "$status" -eq 0 ]
[[ "$output" =~ "Exit code: 1" ]]
[[ "$output" =~ "Operation not permitted" ]]
cleanup_ctrs
@ -158,7 +159,8 @@ function teardown() {
[ "$status" -eq 0 ]
run ocic ctr execsync --id "$ctr_id" chmod 777 .
echo "$output"
[ "$status" -ne 0 ]
[ "$status" -eq 0 ]
[[ "$output" =~ "Exit code: 1" ]]
[[ "$output" =~ "Operation not permitted" ]]
cleanup_ctrs
@ -269,7 +271,8 @@ function teardown() {
[ "$status" -eq 0 ]
run ocic ctr execsync --id "$ctr_id" chmod 777 .
echo "$output"
[ "$status" -ne 0 ]
[ "$status" -eq 0 ]
[[ "$output" =~ "Exit code: 1" ]]
[[ "$output" =~ "Operation not permitted" ]]
cleanup_ctrs