If -x-networking is used, set the correct API version.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
This commit is contained in:
Daniel Nephin 2015-10-14 12:09:50 -04:00
commit e2f792c4f4
3 changed files with 18 additions and 9 deletions

View file

@ -67,8 +67,8 @@ def get_config_path(file_option):
return [config_file] if config_file else None
def get_client(verbose=False):
client = docker_client()
def get_client(verbose=False, version=None):
client = docker_client(version=version)
if verbose:
version_info = six.iteritems(client.version())
log.info("Compose version %s", __version__)
@ -83,11 +83,12 @@ def get_project(base_dir, config_path=None, project_name=None, verbose=False,
use_networking=False, network_driver=None):
config_details = config.find(base_dir, config_path)
api_version = '1.21' if use_networking else None
try:
return Project.from_dicts(
get_project_name(config_details.working_dir, project_name),
config.load(config_details),
get_client(verbose=verbose),
get_client(verbose=verbose, version=api_version),
use_networking=use_networking,
network_driver=network_driver,
)

View file

@ -9,7 +9,10 @@ from ..const import HTTP_TIMEOUT
log = logging.getLogger(__name__)
def docker_client():
DEFAULT_API_VERSION = '1.19'
def docker_client(version=None):
"""
Returns a docker-py client configured using environment variables
according to the same logic as the official Docker client.
@ -18,6 +21,8 @@ def docker_client():
log.warn('The DOCKER_CLIENT_TIMEOUT environment variable is deprecated. Please use COMPOSE_HTTP_TIMEOUT instead.')
kwargs = kwargs_from_env(assert_hostname=False)
kwargs['version'] = os.environ.get('COMPOSE_API_VERSION', '1.19')
kwargs['version'] = version or os.environ.get(
'COMPOSE_API_VERSION',
DEFAULT_API_VERSION)
kwargs['timeout'] = HTTP_TIMEOUT
return Client(**kwargs)