diff options
| author | Alexey Rokhin <arokhin@mail.ru> | 2017-04-28 14:49:40 +0300 |
|---|---|---|
| committer | Alexey Rokhin <arokhin@mail.ru> | 2017-04-28 15:55:44 +0300 |
| commit | c2f83d558e74c4e4d2faca8bcecf35eb9f9f8d96 (patch) | |
| tree | 97d24cd37fb8c8bf2b53392a217492a2b1015df5 | |
| parent | 3f7d622143cdb6c793ab6beb6dda6a50d17504de (diff) | |
| download | docker-py-c2f83d558e74c4e4d2faca8bcecf35eb9f9f8d96.tar.gz | |
cpus renamed to nano_cpus. Type and scale of nano_cpus are changed. Comments for new parameters are changed.
Signed-off-by: Alexey Rokhin <arokhin@mail.ru>
| -rw-r--r-- | docker/models/containers.py | 9 | ||||
| -rw-r--r-- | docker/types/containers.py | 12 | ||||
| -rw-r--r-- | tests/unit/api_container_test.py | 8 | ||||
| -rw-r--r-- | tests/unit/dockertypes_test.py | 14 |
4 files changed, 23 insertions, 20 deletions
diff --git a/docker/models/containers.py b/docker/models/containers.py index f623f6b..c2c0c40 100644 --- a/docker/models/containers.py +++ b/docker/models/containers.py @@ -456,13 +456,13 @@ class ContainerCollection(Collection): cap_add (list of str): Add kernel capabilities. For example, ``["SYS_ADMIN", "MKNOD"]``. cap_drop (list of str): Drop kernel capabilities. - cpu_count (int): CPU count (Windows only). - cpu_percent (int): CPU percent (Windows only). + cpu_count (int): Number of usable CPUs (Windows only). + cpu_percent (int): Usable percentage of the available CPUs + (Windows only). cpu_period (int): The length of a CPU period in microseconds. cpu_quota (int): Microseconds of CPU time that the container can get in a CPU period. cpu_shares (int): CPU shares (relative weight). - cpus (float): Number of CPUs. cpuset_cpus (str): CPUs in which to allow execution (``0-3``, ``0,1``). detach (bool): Run container in the background and return a @@ -526,6 +526,7 @@ class ContainerCollection(Collection): networks (:py:class:`list`): A list of network names to connect this container to. name (str): The name for this container. + nano_cpus (int): CPU quota in units of 10-9 CPUs. network_disabled (bool): Disable networking. network_mode (str): One of: @@ -809,7 +810,6 @@ RUN_HOST_CONFIG_KWARGS = [ 'cpu_period', 'cpu_quota', 'cpu_shares', - 'cpus', 'cpuset_cpus', 'device_read_bps', 'device_read_iops', @@ -833,6 +833,7 @@ RUN_HOST_CONFIG_KWARGS = [ 'mem_reservation', 'mem_swappiness', 'memswap_limit', + 'nano_cpus', 'network_mode', 'oom_kill_disable', 'oom_score_adj', diff --git a/docker/types/containers.py b/docker/types/containers.py index 8c5e5ef..9f1a04d 100644 --- a/docker/types/containers.py +++ b/docker/types/containers.py @@ -119,7 +119,7 @@ class HostConfig(dict): cpuset_cpus=None, userns_mode=None, pids_limit=None, isolation=None, auto_remove=False, storage_opt=None, init=None, init_path=None, volume_driver=None, - cpu_count=None, cpu_percent=None, cpus=None): + cpu_count=None, cpu_percent=None, nano_cpus=None): if mem_limit is not None: self['Memory'] = parse_bytes(mem_limit) @@ -450,13 +450,13 @@ class HostConfig(dict): self['CpuPercent'] = cpu_percent - if cpus: - if not isinstance(cpus, (float, int)): - raise host_config_type_error('cpus', cpus, 'float') + if nano_cpus: + if not isinstance(nano_cpus, int): + raise host_config_type_error('nano_cpus', nano_cpus, 'int') if version_lt(version, '1.25'): - raise host_config_version_error('cpus', '1.25') + raise host_config_version_error('nano_cpus', '1.25') - self['NanoCpus'] = int(1000000000 * cpus) + self['NanoCpus'] = nano_cpus def host_config_type_error(param, param_value, expected): diff --git a/tests/unit/api_container_test.py b/tests/unit/api_container_test.py index 3028711..901934e 100644 --- a/tests/unit/api_container_test.py +++ b/tests/unit/api_container_test.py @@ -1158,7 +1158,7 @@ class CreateContainerTest(BaseAPIClientTest): 'busybox', 'ls', host_config=self.client.create_host_config( cpu_count=1, cpu_percent=20, - cpus=10 + nano_cpus=1000 ) ) @@ -1177,10 +1177,12 @@ class CreateContainerTest(BaseAPIClientTest): "HostConfig": { "CpuCount": 1, "CpuPercent": 20, - "NanoCpus": 10000000000, + "NanoCpus": 1000, "NetworkMode": "default" }}''')) - self.assertEqual(args[1]['headers'], {'Content-Type': 'application/json'}) + self.assertEqual( + args[1]['headers'], {'Content-Type': 'application/json'} + ) class ContainerTest(BaseAPIClientTest): diff --git a/tests/unit/dockertypes_test.py b/tests/unit/dockertypes_test.py index c3ee2e2..6338367 100644 --- a/tests/unit/dockertypes_test.py +++ b/tests/unit/dockertypes_test.py @@ -172,7 +172,7 @@ class HostConfigTest(unittest.TestCase): config = create_host_config(version='1.21', volume_driver='local') assert config.get('VolumeDriver') == 'local' - + def test_create_host_config_invalid_cpu_count_types(self): with pytest.raises(TypeError): create_host_config(version='1.25', cpu_count='1') @@ -195,16 +195,16 @@ class HostConfigTest(unittest.TestCase): InvalidVersion, lambda: create_host_config( version='1.24', cpu_percent=10)) - def test_create_host_config_invalid_cpus_types(self): + def test_create_host_config_invalid_nano_cpus_types(self): with pytest.raises(TypeError): - create_host_config(version='1.25', cpus='0') + create_host_config(version='1.25', nano_cpus='0') - def test_create_host_config_with_cpus(self): - config = create_host_config(version='1.25', cpus=100) - self.assertEqual(config.get('NanoCpus'), 100000000000) + def test_create_host_config_with_nano_cpus(self): + config = create_host_config(version='1.25', nano_cpus=1000) + self.assertEqual(config.get('NanoCpus'), 1000) self.assertRaises( InvalidVersion, lambda: create_host_config( - version='1.24', cpus=1)) + version='1.24', nano_cpus=1)) class ContainerConfigTest(unittest.TestCase): |
