@@ -9,8 +9,8 @@ class TLSConfig(object):
9
9
verify = None
10
10
ssl_version = None
11
11
12
- def __init__ (self , tls , tls_cert = None , tls_key = None , tls_verify = None ,
13
- tls_ca_cert = None , ssl_version = None ):
12
+ def __init__ (self , client_cert = None , ca_cert = None , verify = None ,
13
+ ssl_version = None ):
14
14
# Argument compatibility/mapping with
15
15
# http://docs.docker.com/examples/https/
16
16
# This diverges from the Docker CLI in that users can specify 'tls'
@@ -25,27 +25,35 @@ def __init__(self, tls, tls_cert=None, tls_key=None, tls_verify=None,
25
25
# In either case, Alert the user when both are expected, but any are
26
26
# missing.
27
27
28
- if tls_cert or tls_key :
28
+ if client_cert :
29
+ try :
30
+ tls_cert , tls_key = client_cert
31
+ except ValueError :
32
+ raise errors .TLSParameterError (
33
+ 'client_config must be a tuple of'
34
+ ' (client certificate, key file)'
35
+ )
36
+
29
37
if not (tls_cert and tls_key ) or (not os .path .isfile (tls_cert ) or
30
38
not os .path .isfile (tls_key )):
31
39
raise errors .TLSParameterError (
32
- 'Client certificate must provide certificate and key files'
33
- ' through tls_cert and tls_key params respectively '
40
+ 'Path to a certificate and key files must be provided '
41
+ ' through the client_config param '
34
42
)
35
43
self .cert = (tls_cert , tls_key )
36
44
37
45
# Either set verify to True (public/default CA checks) or to the
38
46
# path of a CA Cert file.
39
- if tls_verify is not None :
40
- if not tls_ca_cert :
41
- self .verify = tls_verify
42
- elif os .path .isfile (tls_ca_cert ):
43
- if not tls_verify :
47
+ if verify is not None :
48
+ if not ca_cert :
49
+ self .verify = verify
50
+ elif os .path .isfile (ca_cert ):
51
+ if not verify :
44
52
raise errors .TLSParameterError (
45
- 'tls_verify can not be False when a CA cert is'
53
+ 'verify can not be False when a CA cert is'
46
54
' provided.'
47
55
)
48
- self .verify = tls_ca_cert
56
+ self .verify = ca_cert
49
57
else :
50
58
raise errors .TLSParameterError (
51
59
'Invalid CA certificate provided for `tls_ca_cert`.'
0 commit comments