Skip to content

Commit 0cdc855

Browse files
committed
Move config type creation from docker.utils functions to classes in
docker.types Signed-off-by: Joffrey F <[email protected]>
1 parent 937a5f3 commit 0cdc855

19 files changed

+1001
-980
lines changed

docker/api/container.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44

55
from .. import errors
66
from .. import utils
7-
from ..utils.utils import create_networking_config, create_endpoint_config
7+
from ..types import (
8+
ContainerConfig, EndpointConfig, HostConfig, NetworkingConfig
9+
)
810

911

1012
class ContainerApiMixin(object):
@@ -430,16 +432,16 @@ def create_container(self, image, command=None, hostname=None, user=None,
430432
)
431433

432434
config = self.create_container_config(
433-
image, command, hostname, user, detach, stdin_open,
434-
tty, mem_limit, ports, environment, dns, volumes, volumes_from,
435+
image, command, hostname, user, detach, stdin_open, tty, mem_limit,
436+
ports, dns, environment, volumes, volumes_from,
435437
network_disabled, entrypoint, cpu_shares, working_dir, domainname,
436438
memswap_limit, cpuset, host_config, mac_address, labels,
437439
volume_driver, stop_signal, networking_config, healthcheck,
438440
)
439441
return self.create_container_from_config(config, name)
440442

441443
def create_container_config(self, *args, **kwargs):
442-
return utils.create_container_config(self._version, *args, **kwargs)
444+
return ContainerConfig(self._version, *args, **kwargs)
443445

444446
def create_container_from_config(self, config, name=None):
445447
u = self._url("/containers/create")
@@ -582,7 +584,7 @@ def create_host_config(self, *args, **kwargs):
582584
"keyword argument 'version'"
583585
)
584586
kwargs['version'] = self._version
585-
return utils.create_host_config(*args, **kwargs)
587+
return HostConfig(*args, **kwargs)
586588

587589
def create_networking_config(self, *args, **kwargs):
588590
"""
@@ -608,7 +610,7 @@ def create_networking_config(self, *args, **kwargs):
608610
)
609611
610612
"""
611-
return create_networking_config(*args, **kwargs)
613+
return NetworkingConfig(*args, **kwargs)
612614

613615
def create_endpoint_config(self, *args, **kwargs):
614616
"""
@@ -641,7 +643,7 @@ def create_endpoint_config(self, *args, **kwargs):
641643
)
642644
643645
"""
644-
return create_endpoint_config(self._version, *args, **kwargs)
646+
return EndpointConfig(self._version, *args, **kwargs)
645647

646648
@utils.check_resource
647649
def diff(self, container):

docker/api/network.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,7 @@ def create_network(self, name, driver=None, options=None, ipam=None,
4646
name (str): Name of the network
4747
driver (str): Name of the driver used to create the network
4848
options (dict): Driver options as a key-value dictionary
49-
ipam (dict): Optional custom IP scheme for the network.
50-
Created with :py:meth:`~docker.utils.create_ipam_config`.
49+
ipam (IPAMConfig): Optional custom IP scheme for the network.
5150
check_duplicate (bool): Request daemon to check for networks with
5251
same name. Default: ``True``.
5352
internal (bool): Restrict external access to the network. Default
@@ -74,11 +73,11 @@ def create_network(self, name, driver=None, options=None, ipam=None,
7473
7574
.. code-block:: python
7675
77-
>>> ipam_pool = docker.utils.create_ipam_pool(
76+
>>> ipam_pool = docker.types.IPAMPool(
7877
subnet='192.168.52.0/24',
7978
gateway='192.168.52.254'
8079
)
81-
>>> ipam_config = docker.utils.create_ipam_config(
80+
>>> ipam_config = docker.types.IPAMConfig(
8281
pool_configs=[ipam_pool]
8382
)
8483
>>> docker_client.create_network("network1", driver="bridge",

docker/api/swarm.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import logging
22
from six.moves import http_client
3+
from .. import types
34
from .. import utils
45
log = logging.getLogger(__name__)
56

@@ -50,7 +51,7 @@ def create_swarm_spec(self, *args, **kwargs):
5051
force_new_cluster=False, swarm_spec=spec
5152
)
5253
"""
53-
return utils.SwarmSpec(*args, **kwargs)
54+
return types.SwarmSpec(*args, **kwargs)
5455

5556
@utils.minimum_version('1.24')
5657
def init_swarm(self, advertise_addr=None, listen_addr='0.0.0.0:2377',

docker/models/containers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from ..errors import (ContainerError, ImageNotFound,
44
create_unexpected_kwargs_error)
5-
from ..utils import create_host_config
5+
from ..types import HostConfig
66
from .images import Image
77
from .resource import Collection, Model
88

@@ -869,7 +869,7 @@ def _create_container_args(kwargs):
869869
if kwargs:
870870
raise create_unexpected_kwargs_error('run', kwargs)
871871

872-
create_kwargs['host_config'] = create_host_config(**host_config_kwargs)
872+
create_kwargs['host_config'] = HostConfig(**host_config_kwargs)
873873

874874
# Fill in any kwargs which need processing by create_host_config first
875875
port_bindings = create_kwargs['host_config'].get('PortBindings')

docker/models/networks.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ def create(self, name, *args, **kwargs):
9898
driver (str): Name of the driver used to create the network
9999
options (dict): Driver options as a key-value dictionary
100100
ipam (dict): Optional custom IP scheme for the network.
101-
Created with :py:meth:`~docker.utils.create_ipam_config`.
101+
Created with :py:class:`~docker.types.IPAMConfig`.
102102
check_duplicate (bool): Request daemon to check for networks with
103103
same name. Default: ``True``.
104104
internal (bool): Restrict external access to the network. Default
@@ -125,11 +125,11 @@ def create(self, name, *args, **kwargs):
125125
126126
.. code-block:: python
127127
128-
>>> ipam_pool = docker.utils.create_ipam_pool(
128+
>>> ipam_pool = docker.types.IPAMPool(
129129
subnet='192.168.52.0/24',
130130
gateway='192.168.52.254'
131131
)
132-
>>> ipam_config = docker.utils.create_ipam_config(
132+
>>> ipam_config = docker.types.IPAMConfig(
133133
pool_configs=[ipam_pool]
134134
)
135135
>>> client.networks.create(

docker/types/__init__.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
# flake8: noqa
2-
from .containers import LogConfig, Ulimit
2+
from .containers import ContainerConfig, HostConfig, LogConfig, Ulimit
3+
from .healthcheck import Healthcheck
4+
from .networks import EndpointConfig, IPAMConfig, IPAMPool, NetworkingConfig
35
from .services import (
46
ContainerSpec, DriverConfig, EndpointSpec, Mount, Resources, RestartPolicy,
57
TaskTemplate, UpdateConfig
68
)
7-
from .healthcheck import Healthcheck
89
from .swarm import SwarmSpec, SwarmExternalCA

0 commit comments

Comments
 (0)