diff options
author | Joffrey F <joffrey@docker.com> | 2018-01-29 16:35:19 -0800 |
---|---|---|
committer | Joffrey F <joffrey@docker.com> | 2018-01-29 16:35:19 -0800 |
commit | 4ff296247b4ed9c4afbb0b5293bd4deecb4fe708 (patch) | |
tree | 5ed58a4e9e536fc5acc3f68f4dd65ea8be671309 | |
parent | 5728eebf79b0f43e7033952fbf8f8e4b7f7bef20 (diff) | |
parent | 947c47f609bf7fc97b0117aef65b1d035a19f24f (diff) | |
download | docker-py-4ff296247b4ed9c4afbb0b5293bd4deecb4fe708.tar.gz |
Merge branch 'funkyfuture-container_exec_run'
-rw-r--r-- | docker/models/containers.py | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/docker/models/containers.py b/docker/models/containers.py index 9644b00..79fd71d 100644 --- a/docker/models/containers.py +++ b/docker/models/containers.py @@ -1,4 +1,5 @@ import copy +from collections import namedtuple from ..api import APIClient from ..errors import (ContainerError, ImageNotFound, @@ -150,9 +151,10 @@ class Container(Model): workdir (str): Path to working directory for this exec session Returns: - (tuple): A tuple of (exit_code, output) + (ExecResult): A tuple of (exit_code, output) exit_code: (int): - Exit code for the executed command + Exit code for the executed command or ``None`` if + either ``stream```or ``socket`` is ``True``. output: (generator or str): If ``stream=True``, a generator yielding response chunks. If ``socket=True``, a socket object for the connection. @@ -170,10 +172,13 @@ class Container(Model): exec_output = self.client.api.exec_start( resp['Id'], detach=detach, tty=tty, stream=stream, socket=socket ) - exit_code = 0 - if stream is False: - exit_code = self.client.api.exec_inspect(resp['Id'])['ExitCode'] - return (exit_code, exec_output) + if socket or stream: + return ExecResult(None, exec_output) + + return ExecResult( + self.client.api.exec_inspect(resp['Id'])['ExitCode'], + exec_output + ) def export(self): """ @@ -1004,3 +1009,8 @@ def _host_volume_from_bind(bind): return bits[0] else: return bits[1] + + +ExecResult = namedtuple('ExecResult', 'exit_code,output') +""" A result of Container.exec_run with the properties ``exit_code`` and + ``output``. """ |