summaryrefslogtreecommitdiff
path: root/docker/api/swarm.py
diff options
context:
space:
mode:
Diffstat (limited to 'docker/api/swarm.py')
-rw-r--r--docker/api/swarm.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/docker/api/swarm.py b/docker/api/swarm.py
index db40fdd..d09dd08 100644
--- a/docker/api/swarm.py
+++ b/docker/api/swarm.py
@@ -85,7 +85,7 @@ class SwarmApiMixin:
def init_swarm(self, advertise_addr=None, listen_addr='0.0.0.0:2377',
force_new_cluster=False, swarm_spec=None,
default_addr_pool=None, subnet_size=None,
- data_path_addr=None):
+ data_path_addr=None, data_path_port=None):
"""
Initialize a new Swarm using the current connected engine as the first
node.
@@ -118,6 +118,9 @@ class SwarmApiMixin:
networks created from the default subnet pool. Default: None
data_path_addr (string): Address or interface to use for data path
traffic. For example, 192.168.1.1, or an interface, like eth0.
+ data_path_port (int): Port number to use for data path traffic.
+ Acceptable port range is 1024 to 49151. If set to ``None`` or
+ 0, the default port 4789 will be used. Default: None
Returns:
(str): The ID of the created node.
@@ -166,6 +169,14 @@ class SwarmApiMixin:
)
data['DataPathAddr'] = data_path_addr
+ if data_path_port is not None:
+ if utils.version_lt(self._version, '1.40'):
+ raise errors.InvalidVersion(
+ 'Data path port is only available for '
+ 'API version >= 1.40'
+ )
+ data['DataPathPort'] = data_path_port
+
response = self._post_json(url, data=data)
return self._result(response, json=True)