summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoffrey F <f.joffrey@gmail.com>2018-10-17 15:03:27 -0700
committerGitHub <noreply@github.com>2018-10-17 15:03:27 -0700
commit7cc0a1b6eb157e4a740099f66b98d9cbb40e71ad (patch)
treeb09d4f03f42f59c58b5b12b373e26fa70af67982
parente0495a91e49d19dc357513536c2882b7eaf28a05 (diff)
parentf097ea5b9846471437ed06750dfc0bc52e82e055 (diff)
downloaddocker-py-7cc0a1b6eb157e4a740099f66b98d9cbb40e71ad.tar.gz
Merge pull request #2156 from docker/3.5.1-release3.5.1
3.5.1 release
-rw-r--r--docker/api/container.py12
-rw-r--r--docker/models/containers.py12
-rw-r--r--docker/models/images.py6
-rw-r--r--docker/models/services.py53
-rw-r--r--docker/version.py2
-rw-r--r--docs/api.rst1
-rw-r--r--docs/change-log.md14
-rw-r--r--docs/services.rst3
-rw-r--r--requirements.txt2
-rwxr-xr-xscripts/release.sh22
-rw-r--r--setup.py2
11 files changed, 77 insertions, 52 deletions
diff --git a/docker/api/container.py b/docker/api/container.py
index d841606..c59a6d0 100644
--- a/docker/api/container.py
+++ b/docker/api/container.py
@@ -465,7 +465,7 @@ class ContainerApiMixin(object):
dns_opt (:py:class:`list`): Additional options to be added to the
container's ``resolv.conf`` file
dns_search (:py:class:`list`): DNS search domains.
- extra_hosts (dict): Addtional hostnames to resolve inside the
+ extra_hosts (dict): Additional hostnames to resolve inside the
container, as a mapping of hostname to IP address.
group_add (:py:class:`list`): List of additional group names and/or
IDs that the container process will run as.
@@ -765,16 +765,16 @@ class ContainerApiMixin(object):
Args:
container (str): The container to get logs from
- stdout (bool): Get ``STDOUT``
- stderr (bool): Get ``STDERR``
- stream (bool): Stream the response
- timestamps (bool): Show timestamps
+ stdout (bool): Get ``STDOUT``. Default ``True``
+ stderr (bool): Get ``STDERR``. Default ``True``
+ stream (bool): Stream the response. Default ``False``
+ timestamps (bool): Show timestamps. Default ``False``
tail (str or int): Output specified number of lines at the end of
logs. Either an integer of number of lines or the string
``all``. Default ``all``
since (datetime or int): Show logs since a given datetime or
integer epoch (in seconds)
- follow (bool): Follow log output
+ follow (bool): Follow log output. Default ``False``
until (datetime or int): Show logs that occurred before the given
datetime or integer epoch (in seconds)
diff --git a/docker/models/containers.py b/docker/models/containers.py
index de6222e..f60ba6e 100644
--- a/docker/models/containers.py
+++ b/docker/models/containers.py
@@ -253,16 +253,16 @@ class Container(Model):
generator you can iterate over to retrieve log output as it happens.
Args:
- stdout (bool): Get ``STDOUT``
- stderr (bool): Get ``STDERR``
- stream (bool): Stream the response
- timestamps (bool): Show timestamps
+ stdout (bool): Get ``STDOUT``. Default ``True``
+ stderr (bool): Get ``STDERR``. Default ``True``
+ stream (bool): Stream the response. Default ``False``
+ timestamps (bool): Show timestamps. Default ``False``
tail (str or int): Output specified number of lines at the end of
logs. Either an integer of number of lines or the string
``all``. Default ``all``
since (datetime or int): Show logs since a given datetime or
integer epoch (in seconds)
- follow (bool): Follow log output
+ follow (bool): Follow log output. Default ``False``
until (datetime or int): Show logs that occurred before the given
datetime or integer epoch (in seconds)
@@ -558,7 +558,7 @@ class ContainerCollection(Collection):
environment (dict or list): Environment variables to set inside
the container, as a dictionary or a list of strings in the
format ``["SOMEVARIABLE=xxx"]``.
- extra_hosts (dict): Addtional hostnames to resolve inside the
+ extra_hosts (dict): Additional hostnames to resolve inside the
container, as a mapping of hostname to IP address.
group_add (:py:class:`list`): List of additional group names and/or
IDs that the container process will run as.
diff --git a/docker/models/images.py b/docker/models/images.py
index 41632c6..7d9ab70 100644
--- a/docker/models/images.py
+++ b/docker/models/images.py
@@ -64,9 +64,9 @@ class Image(Model):
Get a tarball of an image. Similar to the ``docker save`` command.
Args:
- chunk_size (int): The number of bytes returned by each iteration
- of the generator. If ``None``, data will be streamed as it is
- received. Default: 2 MB
+ chunk_size (int): The generator will return up to that much data
+ per iteration, but may return less. If ``None``, data will be
+ streamed as it is received. Default: 2 MB
Returns:
(generator): A stream of raw archive data.
diff --git a/docker/models/services.py b/docker/models/services.py
index fa029f3..a2a3ed0 100644
--- a/docker/models/services.py
+++ b/docker/models/services.py
@@ -42,7 +42,7 @@ class Service(Model):
``label``, and ``desired-state``.
Returns:
- (:py:class:`list`): List of task dictionaries.
+ :py:class:`list`: List of task dictionaries.
Raises:
:py:class:`docker.errors.APIError`
@@ -84,26 +84,27 @@ class Service(Model):
def logs(self, **kwargs):
"""
- Get log stream for the service.
- Note: This method works only for services with the ``json-file``
- or ``journald`` logging drivers.
-
- Args:
- details (bool): Show extra details provided to logs.
- Default: ``False``
- follow (bool): Keep connection open to read logs as they are
- sent by the Engine. Default: ``False``
- stdout (bool): Return logs from ``stdout``. Default: ``False``
- stderr (bool): Return logs from ``stderr``. Default: ``False``
- since (int): UNIX timestamp for the logs staring point.
- Default: 0
- timestamps (bool): Add timestamps to every log line.
- tail (string or int): Number of log lines to be returned,
- counting from the current end of the logs. Specify an
- integer or ``'all'`` to output all log lines.
- Default: ``all``
-
- Returns (generator): Logs for the service.
+ Get log stream for the service.
+ Note: This method works only for services with the ``json-file``
+ or ``journald`` logging drivers.
+
+ Args:
+ details (bool): Show extra details provided to logs.
+ Default: ``False``
+ follow (bool): Keep connection open to read logs as they are
+ sent by the Engine. Default: ``False``
+ stdout (bool): Return logs from ``stdout``. Default: ``False``
+ stderr (bool): Return logs from ``stderr``. Default: ``False``
+ since (int): UNIX timestamp for the logs staring point.
+ Default: 0
+ timestamps (bool): Add timestamps to every log line.
+ tail (string or int): Number of log lines to be returned,
+ counting from the current end of the logs. Specify an
+ integer or ``'all'`` to output all log lines.
+ Default: ``all``
+
+ Returns:
+ generator: Logs for the service.
"""
is_tty = self.attrs['Spec']['TaskTemplate']['ContainerSpec'].get(
'TTY', False
@@ -118,7 +119,7 @@ class Service(Model):
replicas (int): The number of containers that should be running.
Returns:
- ``True``if successful.
+ bool: ``True`` if successful.
"""
if 'Global' in self.attrs['Spec']['Mode'].keys():
@@ -134,7 +135,7 @@ class Service(Model):
Force update the service even if no changes require it.
Returns:
- ``True``if successful.
+ bool: ``True`` if successful.
"""
return self.update(force_update=True, fetch_current_spec=True)
@@ -206,7 +207,7 @@ class ServiceCollection(Collection):
containers.
Returns:
- (:py:class:`Service`) The created service.
+ :py:class:`Service`: The created service.
Raises:
:py:class:`docker.errors.APIError`
@@ -228,7 +229,7 @@ class ServiceCollection(Collection):
into the output.
Returns:
- (:py:class:`Service`): The service.
+ :py:class:`Service`: The service.
Raises:
:py:class:`docker.errors.NotFound`
@@ -253,7 +254,7 @@ class ServiceCollection(Collection):
Default: ``None``.
Returns:
- (list of :py:class:`Service`): The services.
+ list of :py:class:`Service`: The services.
Raises:
:py:class:`docker.errors.APIError`
diff --git a/docker/version.py b/docker/version.py
index 022daff..ef6b491 100644
--- a/docker/version.py
+++ b/docker/version.py
@@ -1,2 +1,2 @@
-version = "3.5.0"
+version = "3.5.1"
version_info = tuple([int(d) for d in version.split("-")[0].split(".")])
diff --git a/docs/api.rst b/docs/api.rst
index ff466a1..6931245 100644
--- a/docs/api.rst
+++ b/docs/api.rst
@@ -145,6 +145,7 @@ Configuration types
.. autoclass:: Privileges
.. autoclass:: Resources
.. autoclass:: RestartPolicy
+.. autoclass:: RollbackConfig
.. autoclass:: SecretReference
.. autoclass:: ServiceMode
.. autoclass:: SwarmExternalCA
diff --git a/docs/change-log.md b/docs/change-log.md
index 1b2d620..750afb9 100644
--- a/docs/change-log.md
+++ b/docs/change-log.md
@@ -1,10 +1,22 @@
Change log
==========
+3.5.1
+-----
+
+[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone/54?closed=1)
+
+### Miscellaneous
+
+* Bumped version of `pyOpenSSL` in `requirements.txt` and `setup.py` to prevent
+ installation of a vulnerable version
+
+* Docs fixes
+
3.5.0
-----
-[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone=53?closed=1)
+[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone/53?closed=1)
### Deprecation warning
diff --git a/docs/services.rst b/docs/services.rst
index d8e5285..8f44428 100644
--- a/docs/services.rst
+++ b/docs/services.rst
@@ -30,7 +30,10 @@ Service objects
The raw representation of this object from the server.
+ .. automethod:: force_update
+ .. automethod:: logs
.. automethod:: reload
.. automethod:: remove
+ .. automethod:: scale
.. automethod:: tasks
.. automethod:: update
diff --git a/requirements.txt b/requirements.txt
index 289dea9..c46a021 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -10,7 +10,7 @@ idna==2.5
ipaddress==1.0.18
packaging==16.8
pycparser==2.17
-pyOpenSSL==17.0.0
+pyOpenSSL==18.0.0
pyparsing==2.2.0
pypiwin32==219; sys_platform == 'win32' and python_version < '3.6'
pypiwin32==223; sys_platform == 'win32' and python_version >= '3.6'
diff --git a/scripts/release.sh b/scripts/release.sh
index f36efff..5b37b6d 100755
--- a/scripts/release.sh
+++ b/scripts/release.sh
@@ -22,7 +22,15 @@ echo "##> Removing stale build files"
rm -rf ./build || exit 1
echo "##> Tagging the release as $VERSION"
-git tag $VERSION || exit 1
+git tag $VERSION
+if [[ $? != 0 ]]; then
+ head_commit=$(git show --pretty=format:%H HEAD)
+ tag_commit=$(git show --pretty=format:%H $VERSION)
+ if [[ $head_commit != $tag_commit ]]; then
+ echo "ERROR: tag already exists, but isn't the current HEAD"
+ exit 1
+ fi
+fi
if [[ $2 == 'upload' ]]; then
echo "##> Pushing tag to github"
git push $GITHUB_REPO $VERSION || exit 1
@@ -30,10 +38,10 @@ fi
pandoc -f markdown -t rst README.md -o README.rst || exit 1
+echo "##> sdist & wheel"
+python setup.py sdist bdist_wheel
+
if [[ $2 == 'upload' ]]; then
- echo "##> Uploading sdist to pypi"
- python setup.py sdist bdist_wheel upload
-else
- echo "##> sdist & wheel"
- python setup.py sdist bdist_wheel
-fi
+ echo '##> Uploading sdist to pypi'
+ twine upload dist/docker-$VERSION*
+fi \ No newline at end of file
diff --git a/setup.py b/setup.py
index 1b208e5..390783d 100644
--- a/setup.py
+++ b/setup.py
@@ -40,7 +40,7 @@ extras_require = {
# https://github.com/pypa/pip/issues/4391). Once that's fixed, instead of
# installing the extra dependencies, install the following instead:
# 'requests[security] >= 2.5.2, != 2.11.0, != 2.12.2'
- 'tls': ['pyOpenSSL>=0.14', 'cryptography>=1.3.4', 'idna>=2.0.0'],
+ 'tls': ['pyOpenSSL>=17.5.0', 'cryptography>=1.3.4', 'idna>=2.0.0'],
}