diff options
author | Sam Thursfield <sam.thursfield@codethink.co.uk> | 2014-09-17 17:09:40 +0000 |
---|---|---|
committer | Sam Thursfield <sam.thursfield@codethink.co.uk> | 2014-09-17 17:09:40 +0000 |
commit | 5f0b442df480bf50b8806ddb649d4ce51d98dddb (patch) | |
tree | 40c071b5881dd4afe4dcdb29bcc6330da53c1f72 | |
parent | 7ce2622354174ead300fe84d5ede7cc011b21f34 (diff) | |
download | morph-5f0b442df480bf50b8806ddb649d4ce51d98dddb.tar.gz |
docker.write: Timeout after 10 seconds (default in docker-py is 60)
-rwxr-xr-x | morphlib/exts/docker.write | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/morphlib/exts/docker.write b/morphlib/exts/docker.write index 4dda18b9..c8e89bc1 100755 --- a/morphlib/exts/docker.write +++ b/morphlib/exts/docker.write @@ -39,6 +39,10 @@ import urlparse import morphlib.writeexts +# Seconds to wait before raising a connection error. +CONNECTION_TIMEOUT = 10 + + class ChunkedTarfileAdapter(object): '''File-like object which allows batched writes. @@ -205,11 +209,12 @@ class DockerWriteExtension(morphlib.writeexts.WriteExtension): def open_local_unix_socket(self, socket): self.status(msg='Connecting to local Docker service at %s' % socket) - return docker.Client(base_url=socket) + return docker.Client(base_url=socket, timeout=CONNECTION_TIMEOUT) def open_tcp_socket(self, netloc): - self.status(msg='Connecting to Docker service at %s' % netloc) - return docker.Client(base_url='http://%s' % netloc) + self.status(msg='Connecting to Docker service at tcp://%s' % netloc) + return docker.Client(base_url='tcp://%s' % netloc, + timeout=CONNECTION_TIMEOUT) def setup_ssh_tunnel(self, user, host, port): client = paramiko.SSHClient() @@ -231,7 +236,8 @@ class DockerWriteExtension(morphlib.writeexts.WriteExtension): raise cliapp.AppException('Failed to create SSH tunnel: %s' % e) docker_client = docker.Client( - base_url='http://127.0.0.1:%d' % local_bind_port) + base_url='http://127.0.0.1:%d' % local_bind_port, + timeout=CONNECTION_TIMEOUT) return docker_client |