Skip to content

Commit f0ab0ed

Browse files
WojciechowskiPiotrWojciechowskiPiotr
authored andcommitted
Support for docker.types.Placement.MaxReplicas (new in API 1.40) in Docker Swarm Service
Signed-off-by: WojciechowskiPiotr <[email protected]>
1 parent b72926b commit f0ab0ed

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

docker/models/services.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,8 @@ def create(self, image, command=None, **kwargs):
157157
constraints.
158158
preferences (list of tuple): :py:class:`~docker.types.Placement`
159159
preferences.
160+
maxreplicas (int): :py:class:`~docker.types.Placement` maxreplicas
161+
or (int) representing maximum number of replicas per node.
160162
platforms (list of tuple): A list of platform constraints
161163
expressed as ``(arch, os)`` tuples.
162164
container_labels (dict): Labels to apply to the container.
@@ -319,6 +321,7 @@ def list(self, **kwargs):
319321
'constraints',
320322
'preferences',
321323
'platforms',
324+
'maxreplicas',
322325
]
323326

324327

docker/types/services.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -659,10 +659,12 @@ class Placement(dict):
659659
are provided in order from highest to lowest precedence and
660660
are expressed as ``(strategy, descriptor)`` tuples. See
661661
:py:class:`PlacementPreference` for details.
662+
maxreplicas (int): Maximum number of replicas per node
662663
platforms (:py:class:`list` of tuple): A list of platforms
663664
expressed as ``(arch, os)`` tuples
664665
"""
665-
def __init__(self, constraints=None, preferences=None, platforms=None):
666+
def __init__(self, constraints=None, preferences=None, maxreplicas=None,
667+
platforms=None):
666668
if constraints is not None:
667669
self['Constraints'] = constraints
668670
if preferences is not None:
@@ -671,6 +673,8 @@ def __init__(self, constraints=None, preferences=None, platforms=None):
671673
if isinstance(pref, tuple):
672674
pref = PlacementPreference(*pref)
673675
self['Preferences'].append(pref)
676+
if maxreplicas is not None:
677+
self['MaxReplicas'] = maxreplicas
674678
if platforms:
675679
self['Platforms'] = []
676680
for plat in platforms:

0 commit comments

Comments
 (0)