6
6
from ncdssdk .src .main .python .ncdsclient .internal .utils .KafkaConfigLoader import KafkaConfigLoader
7
7
from ncdssdk .src .main .python .ncdsclient .internal .utils import IsItPyTest , SeekToMidnight
8
8
from confluent_kafka import TopicPartition , OFFSET_INVALID , OFFSET_END , OFFSET_BEGINNING
9
- import ncdssdk .src .main .python .ncdsclient .internal .utils .ConsumerConfig as config
10
9
from datetime import datetime
11
10
from ncdssdk .src .main .python .ncdsclient .internal .utils .Oauth import Oauth
12
11
import datetime
12
+ from pprint import pformat
13
13
14
14
15
15
class NasdaqKafkaAvroConsumer ():
@@ -37,17 +37,17 @@ def __init__(self, security_cfg, kafka_cfg):
37
37
38
38
self .logger = logging .getLogger (__name__ )
39
39
40
- kafka_config_loader = KafkaConfigLoader ()
40
+ self . kafka_config_loader = KafkaConfigLoader ()
41
41
auth_config_loader = AuthenticationConfigLoader ()
42
42
if self .kafka_cfg is None :
43
43
if IsItPyTest .is_py_test ():
44
- pytest_kafka_cfg = kafka_config_loader .load_test_config ()
44
+ pytest_kafka_cfg = self . kafka_config_loader .load_test_config ()
45
45
self .kafka_props = pytest_kafka_cfg
46
46
else :
47
47
raise Exception ("Kafka Configuration not defined" )
48
48
else :
49
49
self .kafka_props = self .kafka_cfg
50
- kafka_config_loader .validate_and_add_specific_properties (
50
+ self . kafka_config_loader .validate_and_add_specific_properties (
51
51
self .kafka_props )
52
52
53
53
if self .security_cfg is None :
@@ -61,6 +61,8 @@ def __init__(self, security_cfg, kafka_cfg):
61
61
self .read_schema_topic .set_security_props (self .security_props )
62
62
self .read_schema_topic .set_kafka_props (self .kafka_props )
63
63
self .client_ID = auth_config_loader .get_client_id (self .security_props )
64
+ self .logger .info ("Consumer Config: " )
65
+ self .logger .info (pformat (self .kafka_cfg ))
64
66
65
67
def get_kafka_consumer (self , stream_name , timestamp = None ):
66
68
"""
@@ -87,8 +89,7 @@ def get_kafka_consumer(self, stream_name, timestamp=None):
87
89
if timestamp is None :
88
90
self .logger .debug ("Timestamp is none" )
89
91
90
- auto_offset_cfg = self .kafka_props .get (
91
- config .AUTO_OFFSET_RESET_CONFIG )
92
+ auto_offset_cfg = self .kafka_props .get (self .kafka_config_loader .AUTO_OFFSET_RESET_CONFIG )
92
93
if auto_offset_cfg == "earliest" or auto_offset_cfg == "smallest" or auto_offset_cfg == "beginning" :
93
94
self .logger .debug (
94
95
f"Auto offset reset config set to: { auto_offset_cfg } " )
@@ -104,7 +105,7 @@ def get_kafka_consumer(self, stream_name, timestamp=None):
104
105
self .logger .debug (
105
106
"offset: " + str (topic_partition .offset ) + ", timestamp: " + str (timestamp ))
106
107
offsets_for_times = kafka_consumer .offsets_for_times (
107
- [topic_partition ], timeout = 5 )
108
+ [topic_partition ], self . kafka_cfg . TIMEOUT )
108
109
except Exception as e :
109
110
self .logger .exception (e )
110
111
sys .exit (0 )
@@ -130,9 +131,8 @@ def get_consumer(self, avro_schema, stream_name):
130
131
Returns:
131
132
a :class:`.KafkaAvroConsumer` instance with a key and value deserializer set through the avro_schema parameter
132
133
"""
133
- if 'auto.offset.reset' not in self .kafka_props :
134
- self .kafka_props [config .AUTO_OFFSET_RESET_CONFIG ] = "earliest"
135
- self .kafka_props [config .GROUP_ID_CONFIG ] = f'{ self .client_ID } _{ stream_name } _{ datetime .datetime .today ().day } '
134
+ if 'group.id' not in self .kafka_props :
135
+ self .kafka_props [self .kafka_config_loader .GROUP_ID_CONFIG ] = f'{ self .client_ID } _{ stream_name } _{ datetime .datetime .today ().day } '
136
136
return KafkaAvroConsumer (self .kafka_props , avro_schema )
137
137
138
138
def get_schema_for_topic (self , topic ):
0 commit comments