diff options
author | Joffrey F <joffrey@docker.com> | 2016-01-04 17:59:52 -0800 |
---|---|---|
committer | Joffrey F <joffrey@docker.com> | 2016-01-04 17:59:52 -0800 |
commit | ba0543e4acb6bf3268ae453fa6fead1a06ba660a (patch) | |
tree | 32e9cfbd95f56a1e9200e80ad06f78ae96a1048b /docker/utils/utils.py | |
parent | ee0788e4ad07349bb2856a0f1bb40b3e9501d622 (diff) | |
download | docker-py-725-devices-format.tar.gz |
Improve host devices support725-devices-format
Add unit tests for utils.parse_devices
Rewrite documentation
Support dict and string format for device declaration
Signed-off-by: Joffrey F <joffrey@docker.com>
Diffstat (limited to 'docker/utils/utils.py')
-rw-r--r-- | docker/utils/utils.py | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/docker/utils/utils.py b/docker/utils/utils.py index 03b4c35..b02236f 100644 --- a/docker/utils/utils.py +++ b/docker/utils/utils.py @@ -383,7 +383,7 @@ def parse_host(addr, platform=None): port = int(port) except Exception: raise errors.DockerException( - "Invalid port: %s", addr + "Invalid port: {0}".format(addr) ) elif proto in ("http", "https") and ':' not in addr: @@ -400,7 +400,14 @@ def parse_host(addr, platform=None): def parse_devices(devices): device_list = [] for device in devices: - device_mapping = device.split(":") + if isinstance(device, dict): + device_list.append(device) + continue + if not isinstance(device, six.string_types): + raise errors.DockerException( + 'Invalid device type {0}'.format(type(device)) + ) + device_mapping = device.split(':') if device_mapping: path_on_host = device_mapping[0] if len(device_mapping) > 1: @@ -411,9 +418,11 @@ def parse_devices(devices): permissions = device_mapping[2] else: permissions = 'rwm' - device_list.append({"PathOnHost": path_on_host, - "PathInContainer": path_in_container, - "CgroupPermissions": permissions}) + device_list.append({ + 'PathOnHost': path_on_host, + 'PathInContainer': path_in_container, + 'CgroupPermissions': permissions + }) return device_list |