diff options
| author | Tomas Tomecek <ttomecek@redhat.com> | 2015-11-14 14:12:48 +0100 |
|---|---|---|
| committer | Tomas Tomecek <ttomecek@redhat.com> | 2015-12-03 11:07:11 +0100 |
| commit | a9a538abaf553ba985e6ed667e390e5aa2352c55 (patch) | |
| tree | 6a30273da262e036194eda46a376da13ef0d9f43 /docker | |
| parent | 2c3af6ca8e07014601e0df03ed7db401e6f204f2 (diff) | |
| download | docker-py-a9a538abaf553ba985e6ed667e390e5aa2352c55.tar.gz | |
allow interactive exec
Signed-off-by: Tomas Tomecek <ttomecek@redhat.com>
Diffstat (limited to 'docker')
| -rw-r--r-- | docker/api/exec_api.py | 15 | ||||
| -rw-r--r-- | docker/utils/__init__.py | 4 |
2 files changed, 13 insertions, 6 deletions
diff --git a/docker/api/exec_api.py b/docker/api/exec_api.py index e64a40c..f0e4afa 100644 --- a/docker/api/exec_api.py +++ b/docker/api/exec_api.py @@ -7,8 +7,8 @@ from .. import utils class ExecApiMixin(object): @utils.minimum_version('1.15') @utils.check_resource - def exec_create(self, container, cmd, stdout=True, stderr=True, tty=False, - privileged=False, user=''): + def exec_create(self, container, cmd, stdout=True, stderr=True, + stdin=False, tty=False, privileged=False, user=''): if privileged and utils.compare_version('1.19', self._version) < 0: raise errors.InvalidVersion( 'Privileged exec is not supported in API < 1.19' @@ -25,7 +25,7 @@ class ExecApiMixin(object): 'User': user, 'Privileged': privileged, 'Tty': tty, - 'AttachStdin': False, + 'AttachStdin': stdin, 'AttachStdout': stdout, 'AttachStderr': stderr, 'Cmd': cmd @@ -53,7 +53,11 @@ class ExecApiMixin(object): self._raise_for_status(res) @utils.minimum_version('1.15') - def exec_start(self, exec_id, detach=False, tty=False, stream=False): + def exec_start(self, exec_id, detach=False, tty=False, stream=False, + socket=False): + # we want opened socket if socket == True + if socket: + stream = True if isinstance(exec_id, dict): exec_id = exec_id.get('Id') @@ -65,4 +69,7 @@ class ExecApiMixin(object): res = self._post_json( self._url('/exec/{0}/start', exec_id), data=data, stream=stream ) + + if socket: + return self._get_raw_response_socket(res) return self._get_result_tty(stream, res, tty) diff --git a/docker/utils/__init__.py b/docker/utils/__init__.py index bcbf568..e86b724 100644 --- a/docker/utils/__init__.py +++ b/docker/utils/__init__.py @@ -4,7 +4,7 @@ from .utils import ( kwargs_from_env, convert_filters, datetime_to_timestamp, create_host_config, create_container_config, parse_bytes, ping_registry, parse_env_file, version_lt, version_gte, decode_json_header, split_command, -) # flake8: noqa +) # flake8: noqa from .types import Ulimit, LogConfig # flake8: noqa -from .decorators import check_resource, minimum_version #flake8: noqa +from .decorators import check_resource, minimum_version # flake8: noqa |
