summaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
Diffstat (limited to 'docker')
-rw-r--r--docker/utils/__init__.py2
-rw-r--r--docker/utils/utils.py19
2 files changed, 15 insertions, 6 deletions
diff --git a/docker/utils/__init__.py b/docker/utils/__init__.py
index e86b724..0f18584 100644
--- a/docker/utils/__init__.py
+++ b/docker/utils/__init__.py
@@ -3,7 +3,7 @@ from .utils import (
mkbuildcontext, tar, exclude_paths, parse_repository_tag, parse_host,
kwargs_from_env, convert_filters, datetime_to_timestamp, create_host_config,
create_container_config, parse_bytes, ping_registry, parse_env_file,
- version_lt, version_gte, decode_json_header, split_command,
+ version_lt, version_gte, decode_json_header, split_command, parse_devices,
) # flake8: noqa
from .types import Ulimit, LogConfig # flake8: noqa
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