summaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authorDaniel Nephin <dnephin@gmail.com>2015-11-12 14:07:54 -0500
committerDaniel Nephin <dnephin@gmail.com>2015-11-12 14:07:54 -0500
commit6e73f04acc16f847c64a7d14cd9cdfd810b8a515 (patch)
treeed26699db7462349183d337097ad9948b4399ed4 /docker
parentc89d3668274cd8de11d1521c876771c5e4f4fc8f (diff)
parent33305697728ec661d01eb4f596b20eae565fda42 (diff)
downloaddocker-py-6e73f04acc16f847c64a7d14cd9cdfd810b8a515.tar.gz
Merge pull request #796 from v-boyko/feature/logs_since
Support the 'since' option in the 'containers/<id>/logs' endpoint (API upgrade)
Diffstat (limited to 'docker')
-rw-r--r--docker/api/container.py14
-rw-r--r--docker/utils/__init__.py2
2 files changed, 14 insertions, 2 deletions
diff --git a/docker/api/container.py b/docker/api/container.py
index f3f85e8..49c0b95 100644
--- a/docker/api/container.py
+++ b/docker/api/container.py
@@ -1,5 +1,6 @@
import six
import warnings
+from datetime import datetime
from .. import errors
from .. import utils
@@ -184,7 +185,7 @@ class ContainerApiMixin(object):
@utils.check_resource
def logs(self, container, stdout=True, stderr=True, stream=False,
- timestamps=False, tail='all'):
+ timestamps=False, tail='all', since=None):
if utils.compare_version('1.11', self._version) >= 0:
params = {'stderr': stderr and 1 or 0,
'stdout': stdout and 1 or 0,
@@ -195,6 +196,17 @@ class ContainerApiMixin(object):
if tail != 'all' and (not isinstance(tail, int) or tail < 0):
tail = 'all'
params['tail'] = tail
+
+ if since is not None:
+ if utils.compare_version('1.19', self._version) < 0:
+ raise errors.InvalidVersion(
+ 'since is not supported in API < 1.19'
+ )
+ else:
+ if isinstance(since, datetime):
+ params['since'] = utils.datetime_to_timestamp(since)
+ elif (isinstance(since, int) and since > 0):
+ params['since'] = since
url = self._url("/containers/{0}/logs", container)
res = self._get(url, params=params, stream=stream)
return self._get_result(container, stream, res)
diff --git a/docker/utils/__init__.py b/docker/utils/__init__.py
index e27700e..bcbf568 100644
--- a/docker/utils/__init__.py
+++ b/docker/utils/__init__.py
@@ -1,7 +1,7 @@
from .utils import (
compare_version, convert_port_bindings, convert_volume_binds,
mkbuildcontext, tar, exclude_paths, parse_repository_tag, parse_host,
- kwargs_from_env, convert_filters, create_host_config,
+ 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