mirror of
https://github.com/docker/compose.git
synced 2025-07-23 13:45:00 +02:00
Fixed typos + simplified TLSConfig creation process.
Signed-off-by: Joffrey F <joffrey@docker.com>
This commit is contained in:
parent
1ac33ea7e5
commit
7166408d2a
@ -12,7 +12,7 @@ from .. import config
|
||||
from ..const import API_VERSIONS
|
||||
from ..project import Project
|
||||
from .docker_client import docker_client
|
||||
from .docker_client import TLSArgs
|
||||
from .docker_client import tls_config_from_options
|
||||
from .utils import get_version_info
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
@ -25,7 +25,7 @@ def project_from_options(project_dir, options):
|
||||
project_name=options.get('--project-name'),
|
||||
verbose=options.get('--verbose'),
|
||||
host=options.get('--host'),
|
||||
tls_args=TLSArgs.from_options(options),
|
||||
tls_config=tls_config_from_options(options),
|
||||
)
|
||||
|
||||
|
||||
@ -40,8 +40,8 @@ def get_config_path_from_options(options):
|
||||
return None
|
||||
|
||||
|
||||
def get_client(verbose=False, version=None, tls_args=None, host=None):
|
||||
client = docker_client(version=version, tls_args=tls_args, host=host)
|
||||
def get_client(verbose=False, version=None, tls_config=None, host=None):
|
||||
client = docker_client(version=version, tls_config=tls_config, host=host)
|
||||
if verbose:
|
||||
version_info = six.iteritems(client.version())
|
||||
log.info(get_version_info('full'))
|
||||
@ -53,7 +53,7 @@ def get_client(verbose=False, version=None, tls_args=None, host=None):
|
||||
|
||||
|
||||
def get_project(project_dir, config_path=None, project_name=None, verbose=False,
|
||||
host=None, tls_args=None):
|
||||
host=None, tls_config=None):
|
||||
config_details = config.find(project_dir, config_path)
|
||||
project_name = get_project_name(config_details.working_dir, project_name)
|
||||
config_data = config.load(config_details)
|
||||
@ -62,7 +62,7 @@ def get_project(project_dir, config_path=None, project_name=None, verbose=False,
|
||||
'COMPOSE_API_VERSION',
|
||||
API_VERSIONS[config_data.version])
|
||||
client = get_client(
|
||||
verbose=verbose, version=api_version, tls_args=tls_args,
|
||||
verbose=verbose, version=api_version, tls_config=tls_config,
|
||||
host=host
|
||||
)
|
||||
|
||||
|
@ -3,7 +3,6 @@ from __future__ import unicode_literals
|
||||
|
||||
import logging
|
||||
import os
|
||||
from collections import namedtuple
|
||||
|
||||
from docker import Client
|
||||
from docker.errors import TLSParameterError
|
||||
@ -16,24 +15,27 @@ from .errors import UserError
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class TLSArgs(namedtuple('_TLSArgs', 'tls cert key ca_cert verify')):
|
||||
@classmethod
|
||||
def from_options(cls, options):
|
||||
return cls(
|
||||
tls=options.get('--tls', False),
|
||||
ca_cert=options.get('--tlscacert'),
|
||||
cert=options.get('--tlscert'),
|
||||
key=options.get('--tlskey'),
|
||||
verify=options.get('--tlsverify')
|
||||
def tls_config_from_options(options):
|
||||
tls = options.get('--tls', False)
|
||||
ca_cert = options.get('--tlscacert')
|
||||
cert = options.get('--tlscert')
|
||||
key = options.get('--tlskey')
|
||||
verify = options.get('--tlsverify')
|
||||
|
||||
if tls is True:
|
||||
return True
|
||||
elif any([ca_cert, cert, key, verify]):
|
||||
client_cert = None
|
||||
if cert or key:
|
||||
client_cert = (cert, key)
|
||||
return TLSConfig(
|
||||
client_cert=client_cert, verify=verify, ca_cert=ca_cert
|
||||
)
|
||||
|
||||
# def has_config(self):
|
||||
# return (
|
||||
# self.tls or self.ca_cert or self.cert or self.key or self.verify
|
||||
# )
|
||||
else:
|
||||
return None
|
||||
|
||||
|
||||
def docker_client(version=None, tls_args=None, host=None):
|
||||
def docker_client(version=None, tls_config=None, host=None):
|
||||
"""
|
||||
Returns a docker-py client configured using environment variables
|
||||
according to the same logic as the official Docker client.
|
||||
@ -52,23 +54,8 @@ def docker_client(version=None, tls_args=None, host=None):
|
||||
|
||||
if host:
|
||||
kwargs['base_url'] = host
|
||||
if tls_args and any(tls_args):
|
||||
if tls_args.tls is True:
|
||||
kwargs['tls'] = True
|
||||
else:
|
||||
client_cert = None
|
||||
if tls_args.cert or tls_args.key:
|
||||
client_cert = (tls_args.cert, tls_args.key)
|
||||
try:
|
||||
kwargs['tls'] = TLSConfig(
|
||||
client_cert=client_cert, verify=tls_args.verify,
|
||||
ca_cert=tls_args.ca_cert
|
||||
)
|
||||
except TLSParameterError as e:
|
||||
raise UserError(
|
||||
"TLS configuration is invalid. Please double-check the "
|
||||
"TLS command-line arguments. ({0})".format(e)
|
||||
)
|
||||
if tls_config:
|
||||
kwargs['tls'] = tls_config
|
||||
|
||||
if version:
|
||||
kwargs['version'] = version
|
||||
|
@ -145,17 +145,17 @@ class TopLevelCommand(object):
|
||||
docker-compose -h|--help
|
||||
|
||||
Options:
|
||||
-f, --file FILE Specify an alternate compose file (default: docker-compose.yml)
|
||||
-p, --project-name NAME Specify an alternate project name (default: directory name)
|
||||
--verbose Show more output
|
||||
-v, --version Print version and exit
|
||||
-H, --host HOST Daemon socket to connect to
|
||||
-f, --file FILE Specify an alternate compose file (default: docker-compose.yml)
|
||||
-p, --project-name NAME Specify an alternate project name (default: directory name)
|
||||
--verbose Show more output
|
||||
-v, --version Print version and exit
|
||||
-H, --host HOST Daemon socket to connect to
|
||||
|
||||
--tls Use TLS; implied by --tlsverify
|
||||
--tlsacert Trust certs signed only by this CA
|
||||
--tlscert Path to TLS certificate file
|
||||
--tlskey Path to TLS key file
|
||||
--tlsverify Use TLS and verify the remote
|
||||
--tls Use TLS; implied by --tlsverify
|
||||
--tlscacert CA_PATH Trust certs signed only by this CA
|
||||
--tlscert CLIENT_CERT_PATH Path to TLS certificate file
|
||||
--tlskey TLS_KEY_PATH Path to TLS key file
|
||||
--tlsverify Use TLS and verify the remote
|
||||
|
||||
Commands:
|
||||
build Build or rebuild services
|
||||
|
Loading…
x
Reference in New Issue
Block a user