diff options
author | Joffrey F <joffrey@docker.com> | 2017-10-16 12:41:29 -0700 |
---|---|---|
committer | Joffrey F <f.joffrey@gmail.com> | 2017-10-16 13:43:57 -0700 |
commit | d2cbf33412b7386237e870f9232f14c6353d279f (patch) | |
tree | 47ac19464f5b970af08298d6ee73f57286f732c0 /compose/cli/errors.py | |
parent | aaa0773b4b6ce44a3c1494d8eb2e25406f0593f9 (diff) |
Add specific handling for pywintypes.error
Signed-off-by: Joffrey F <joffrey@docker.com>
Diffstat (limited to 'compose/cli/errors.py')
-rw-r--r-- | compose/cli/errors.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/compose/cli/errors.py b/compose/cli/errors.py index 23e065c9..1506aa66 100644 --- a/compose/cli/errors.py +++ b/compose/cli/errors.py @@ -57,6 +57,26 @@ def handle_connection_errors(client): except (ReadTimeout, socket.timeout) as e: log_timeout_error(client.timeout) raise ConnectionError() + except Exception as e: + if is_windows(): + import pywintypes + if isinstance(e, pywintypes.error): + log_windows_pipe_error(e) + raise ConnectionError() + raise + + +def log_windows_pipe_error(exc): + if exc.winerror == 232: # https://github.com/docker/compose/issues/5005 + log.error( + "The current Compose file version is not compatible with your engine version. " + "Please upgrade your Compose file to a more recent version, or set " + "a COMPOSE_API_VERSION in your environment." + ) + else: + log.error( + "Windows named pipe error: {} (code: {})".format(exc.strerror, exc.winerror) + ) def log_timeout_error(timeout): |