Kaydet (Commit) 4ff29624 authored tarafından Joffrey F's avatar Joffrey F

Merge branch 'funkyfuture-container_exec_run'

import copy import copy
from collections import namedtuple
from ..api import APIClient from ..api import APIClient
from ..errors import (ContainerError, ImageNotFound, from ..errors import (ContainerError, ImageNotFound,
...@@ -150,9 +151,10 @@ class Container(Model): ...@@ -150,9 +151,10 @@ class Container(Model):
workdir (str): Path to working directory for this exec session workdir (str): Path to working directory for this exec session
Returns: Returns:
(tuple): A tuple of (exit_code, output) (ExecResult): A tuple of (exit_code, output)
exit_code: (int): 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): output: (generator or str):
If ``stream=True``, a generator yielding response chunks. If ``stream=True``, a generator yielding response chunks.
If ``socket=True``, a socket object for the connection. If ``socket=True``, a socket object for the connection.
...@@ -170,10 +172,13 @@ class Container(Model): ...@@ -170,10 +172,13 @@ class Container(Model):
exec_output = self.client.api.exec_start( exec_output = self.client.api.exec_start(
resp['Id'], detach=detach, tty=tty, stream=stream, socket=socket resp['Id'], detach=detach, tty=tty, stream=stream, socket=socket
) )
exit_code = 0 if socket or stream:
if stream is False: return ExecResult(None, exec_output)
exit_code = self.client.api.exec_inspect(resp['Id'])['ExitCode']
return (exit_code, exec_output) return ExecResult(
self.client.api.exec_inspect(resp['Id'])['ExitCode'],
exec_output
)
def export(self): def export(self):
""" """
...@@ -1004,3 +1009,8 @@ def _host_volume_from_bind(bind): ...@@ -1004,3 +1009,8 @@ def _host_volume_from_bind(bind):
return bits[0] return bits[0]
else: else:
return bits[1] return bits[1]
ExecResult = namedtuple('ExecResult', 'exit_code,output')
""" A result of Container.exec_run with the properties ``exit_code`` and
``output``. """
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment