kafka-python 3.0.7__py3-none-any.whl → 3.0.8__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- kafka/net/manager.py +4 -24
- kafka/net/transport.py +42 -5
- kafka/version.py +1 -1
- {kafka_python-3.0.7.dist-info → kafka_python-3.0.8.dist-info}/METADATA +1 -1
- {kafka_python-3.0.7.dist-info → kafka_python-3.0.8.dist-info}/RECORD +9 -9
- {kafka_python-3.0.7.dist-info → kafka_python-3.0.8.dist-info}/WHEEL +1 -1
- {kafka_python-3.0.7.dist-info → kafka_python-3.0.8.dist-info}/entry_points.txt +0 -0
- {kafka_python-3.0.7.dist-info → kafka_python-3.0.8.dist-info}/licenses/LICENSE +0 -0
- {kafka_python-3.0.7.dist-info → kafka_python-3.0.8.dist-info}/top_level.txt +0 -0
kafka/net/manager.py
CHANGED
|
@@ -3,7 +3,6 @@ import logging
|
|
|
3
3
|
import inspect
|
|
4
4
|
import random
|
|
5
5
|
import socket
|
|
6
|
-
import ssl
|
|
7
6
|
import time
|
|
8
7
|
|
|
9
8
|
from .inet import create_connection
|
|
@@ -205,35 +204,16 @@ class KafkaConnectionManager:
|
|
|
205
204
|
def ssl_enabled(self):
|
|
206
205
|
return self.config['security_protocol'] in ('SSL', 'SASL_SSL')
|
|
207
206
|
|
|
208
|
-
def _build_ssl_context(self):
|
|
209
|
-
if self.config['ssl_context'] is not None:
|
|
210
|
-
return self.config['ssl_context']
|
|
211
|
-
ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
|
|
212
|
-
ctx.minimum_version = ssl.TLSVersion.TLSv1_2
|
|
213
|
-
ctx.check_hostname = self.config['ssl_check_hostname']
|
|
214
|
-
if self.config['ssl_cafile']:
|
|
215
|
-
ctx.load_verify_locations(self.config['ssl_cafile'])
|
|
216
|
-
else:
|
|
217
|
-
ctx.load_default_certs()
|
|
218
|
-
if self.config['ssl_certfile']:
|
|
219
|
-
ctx.load_cert_chain(
|
|
220
|
-
certfile=self.config['ssl_certfile'],
|
|
221
|
-
keyfile=self.config['ssl_keyfile'],
|
|
222
|
-
password=self.config['ssl_password'],
|
|
223
|
-
)
|
|
224
|
-
if self.config['ssl_crlfile']:
|
|
225
|
-
ctx.load_verify_locations(crl=self.config['ssl_crlfile'])
|
|
226
|
-
ctx.verify_flags |= ssl.VERIFY_CRL_CHECK_LEAF
|
|
227
|
-
return ctx
|
|
228
|
-
|
|
229
207
|
async def _build_transport(self, node, timeout_at=None):
|
|
230
208
|
sock = await create_connection(self._net, node.host, node.port,
|
|
231
209
|
self.config['socket_options'],
|
|
232
210
|
proxy_url=self.config['proxy_url'],
|
|
233
211
|
timeout_at=timeout_at)
|
|
234
212
|
if self.ssl_enabled:
|
|
235
|
-
|
|
236
|
-
|
|
213
|
+
ssl_configs = {key: value
|
|
214
|
+
for key, value in self.config.items()
|
|
215
|
+
if key.startswith('ssl_')}
|
|
216
|
+
transport = KafkaSSLTransport(self._net, sock, host=node.host, **ssl_configs)
|
|
237
217
|
else:
|
|
238
218
|
transport = KafkaTCPTransport(self._net, sock, host=node.host)
|
|
239
219
|
|
kafka/net/transport.py
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from collections import deque
|
|
2
|
+
import copy
|
|
2
3
|
import logging
|
|
3
4
|
import selectors
|
|
4
5
|
import socket
|
|
@@ -371,13 +372,49 @@ class KafkaTCPTransport:
|
|
|
371
372
|
|
|
372
373
|
|
|
373
374
|
class KafkaSSLTransport(KafkaTCPTransport):
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
375
|
+
DEFAULT_CONFIG = {
|
|
376
|
+
'ssl_context': None,
|
|
377
|
+
'ssl_check_hostname': True,
|
|
378
|
+
'ssl_cafile': None,
|
|
379
|
+
'ssl_certfile': None,
|
|
380
|
+
'ssl_keyfile': None,
|
|
381
|
+
'ssl_password': None,
|
|
382
|
+
'ssl_crlfile': None,
|
|
383
|
+
}
|
|
384
|
+
def __init__(self, net, sock, host=None, **configs):
|
|
385
|
+
self.ssl_config = copy.copy(self.DEFAULT_CONFIG)
|
|
386
|
+
for key in self.ssl_config:
|
|
387
|
+
if key in configs:
|
|
388
|
+
self.ssl_config[key] = configs[key]
|
|
389
|
+
self._ssl_context = self._build_ssl_context(self.ssl_config)
|
|
390
|
+
server_hostname = host.rstrip('.') if host is not None else None
|
|
391
|
+
sock = self._ssl_context.wrap_socket(
|
|
392
|
+
sock, server_hostname=server_hostname,
|
|
393
|
+
do_handshake_on_connect=False)
|
|
379
394
|
super().__init__(net, sock, host=host)
|
|
380
395
|
|
|
396
|
+
@staticmethod
|
|
397
|
+
def _build_ssl_context(config):
|
|
398
|
+
if config['ssl_context'] is not None:
|
|
399
|
+
return config['ssl_context']
|
|
400
|
+
ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
|
|
401
|
+
ctx.minimum_version = ssl.TLSVersion.TLSv1_2
|
|
402
|
+
ctx.check_hostname = config['ssl_check_hostname']
|
|
403
|
+
if config['ssl_cafile']:
|
|
404
|
+
ctx.load_verify_locations(config['ssl_cafile'])
|
|
405
|
+
else:
|
|
406
|
+
ctx.load_default_certs()
|
|
407
|
+
if config['ssl_certfile']:
|
|
408
|
+
ctx.load_cert_chain(
|
|
409
|
+
certfile=config['ssl_certfile'],
|
|
410
|
+
keyfile=config['ssl_keyfile'],
|
|
411
|
+
password=config['ssl_password'],
|
|
412
|
+
)
|
|
413
|
+
if config['ssl_crlfile']:
|
|
414
|
+
ctx.load_verify_locations(crl=config['ssl_crlfile'])
|
|
415
|
+
ctx.verify_flags |= ssl.VERIFY_CRL_CHECK_LEAF
|
|
416
|
+
return ctx
|
|
417
|
+
|
|
381
418
|
async def handshake(self):
|
|
382
419
|
while True:
|
|
383
420
|
try:
|
kafka/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = '3.0.
|
|
1
|
+
__version__ = '3.0.8'
|
|
@@ -6,7 +6,7 @@ kafka/errors.py,sha256=9owgtTIcttdTCD1vAF9wz5jL9G72ljpR7M-vjLKEGvY,33206
|
|
|
6
6
|
kafka/future.py,sha256=INmMIy2-BPxJ4zlw-V_i8Tj_OG9DMbyYyUEjOQ5pn_o,5440
|
|
7
7
|
kafka/structs.py,sha256=ZOFmVJRbhSXykkw9cnuv-DGYE7g2KjaUGsytSOv4xVw,3146
|
|
8
8
|
kafka/util.py,sha256=hvSdRbh5-IsUbpD_BqjabjEldtNmXufZH68b_xCkNjE,5194
|
|
9
|
-
kafka/version.py,sha256=
|
|
9
|
+
kafka/version.py,sha256=sF9np2e_SuSeS9bX2MWnkn45e-mKQh1f9lVU_kod4Yg,22
|
|
10
10
|
kafka/admin/__init__.py,sha256=nTXg2CQo8Bydxsj80pVBzF2-jq4IhK7_gLnboeNWG60,1575
|
|
11
11
|
kafka/admin/__main__.py,sha256=l5ujkHa3lBFEbKPCl7U0_pi6IIgj1IJfmB219vtcj50,69
|
|
12
12
|
kafka/admin/_acls.py,sha256=QJlHguEM9t46qlABoQqTEDFQErDgG2RKwfV1NOKeKmU,13983
|
|
@@ -131,11 +131,11 @@ kafka/net/compat.py,sha256=xBwWj5WgcfFbiPWy-46VCa25jDC9x5DOTl_ds_VXdyg,6415
|
|
|
131
131
|
kafka/net/connection.py,sha256=gxUHGAESQneccx0JXY0apoxcsyL-XtMmryCJV4r_DOQ,26349
|
|
132
132
|
kafka/net/http_connect.py,sha256=j8R1yLNwhTF-nQVMEgRF88mOF5-v1Sdj7uwkBvvg5PU,5133
|
|
133
133
|
kafka/net/inet.py,sha256=zMo0NTCS7EY81uoNPri5ZHKcCnRVUIcCJiW6BeZWnCs,4730
|
|
134
|
-
kafka/net/manager.py,sha256=
|
|
134
|
+
kafka/net/manager.py,sha256=lpvu9ZmLh07ze0QlfVriLQ---3DNotW1VmdJw-FiG58,20283
|
|
135
135
|
kafka/net/metrics.py,sha256=-cdWXQtonCO7-LpovLoEcWM-_3R9sAtyQxWf_QHOAWE,7299
|
|
136
136
|
kafka/net/selector.py,sha256=kKKhVA6UdyiTNAnRDlRJNA3rC-C0anUcpYHnQy_yRZQ,29333
|
|
137
137
|
kafka/net/socks5.py,sha256=euTwJl2avRmCJhVKyGmhZWInqgY6MNHPA1Tz2f2J1Z0,10361
|
|
138
|
-
kafka/net/transport.py,sha256=
|
|
138
|
+
kafka/net/transport.py,sha256=W6ne_UGPldoYMJ-7KOxksAfswSyLRbjqeSMctr5WGhE,17285
|
|
139
139
|
kafka/net/wakeup_notifier.py,sha256=gLnfg-HEjVS5J9p-7kZfZpIeLT0AjvK5MOc6EMj3R88,2783
|
|
140
140
|
kafka/net/sasl/__init__.py,sha256=vKE2jkS_BZ2OEVANlXZhW2xIVvH5C1o2kCxugw2PfYY,1006
|
|
141
141
|
kafka/net/sasl/abc.py,sha256=H3tHUPevoaQdS395_ID88Wxhwvc8XjOTcAP8dKXxO9I,547
|
|
@@ -365,9 +365,9 @@ kafka/serializer/default.py,sha256=ZKzTWlG9N4vS3QXovFLygNVrnjAcMZKS0RE4OvQ6DL4,4
|
|
|
365
365
|
kafka/serializer/json.py,sha256=lErgU66KZGf33hofwlObYIaxLDk9gcolhy_rlcOuf8Y,469
|
|
366
366
|
kafka/serializer/wrapper.py,sha256=RGXFj-PXQyL3rdMXI9ACaohRa6Kg5SHOZTRruU9jluM,485
|
|
367
367
|
kafka/vendor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
368
|
-
kafka_python-3.0.
|
|
369
|
-
kafka_python-3.0.
|
|
370
|
-
kafka_python-3.0.
|
|
371
|
-
kafka_python-3.0.
|
|
372
|
-
kafka_python-3.0.
|
|
373
|
-
kafka_python-3.0.
|
|
368
|
+
kafka_python-3.0.8.dist-info/licenses/LICENSE,sha256=vxnoJsqm6bKl3ZWdI1Q7Ikw_k9cOvO3vcvZNsY_1fP8,11374
|
|
369
|
+
kafka_python-3.0.8.dist-info/METADATA,sha256=w_BZW-iGkbiAEqrRVdirz75AObRdFu7xzmd6UZUhsT0,11590
|
|
370
|
+
kafka_python-3.0.8.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
|
|
371
|
+
kafka_python-3.0.8.dist-info/entry_points.txt,sha256=LQvqZj3uM785ainO5HrXmukbjSrK-oPqrESqpvoR-As,51
|
|
372
|
+
kafka_python-3.0.8.dist-info/top_level.txt,sha256=IivJz7l5WHdLNDT6RIiVAlhjQzYRwGqBBmKHZ7WjPeM,6
|
|
373
|
+
kafka_python-3.0.8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|