| 
					
				 | 
			
			
				@@ -19,6 +19,7 @@ from ..config import config 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from ..config import ConfigurationError 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from ..config import parse_environment 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from ..config.serialize import serialize_config 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from ..const import API_VERSION_TO_ENGINE_VERSION 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from ..const import DEFAULT_TIMEOUT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from ..const import HTTP_TIMEOUT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from ..const import IS_WINDOWS_PLATFORM 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -64,7 +65,7 @@ def main(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         log.error("No such command: %s\n\n%s", e.command, commands) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sys.exit(1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     except APIError as e: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        log.error(e.explanation) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        log_api_error(e) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sys.exit(1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     except BuildError as e: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         log.error("Service '%s' failed to build: %s" % (e.service.name, e.reason)) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -84,6 +85,22 @@ def main(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sys.exit(1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+def log_api_error(e): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if 'client is newer than server' in e.explanation: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        # we need JSON formatted errors. In the meantime... 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        # TODO: fix this by refactoring project dispatch 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        # http://github.com/docker/compose/pull/2832#commitcomment-15923800 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        client_version = e.explanation.split('client API version: ')[1].split(',')[0] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        log.error( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "The engine version is lesser than the minimum required by " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "compose. Your current project requires a Docker Engine of " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "version {version} or superior.".format( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                version=API_VERSION_TO_ENGINE_VERSION[client_version] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            )) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        log.error(e.explanation) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 def setup_logging(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     root_logger = logging.getLogger() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     root_logger.addHandler(console_handler) 
			 |