Skip to content

Commit f321d42

Browse files
authored
Merge pull request #73 from samson0v/master
Deleted redundant methods
2 parents 5e1c2b5 + ce9b285 commit f321d42

File tree

1 file changed

+10
-34
lines changed

1 file changed

+10
-34
lines changed

tb_device_mqtt.py

Lines changed: 10 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import logging
1616
from inspect import signature
1717
from time import sleep
18-
from time import time as timestamp
1918

2019
import paho.mqtt.client as paho
2120
from math import ceil
@@ -738,8 +737,6 @@ def _send_request(self, _type, kwargs, timeout=DEFAULT_TIMEOUT, device=None,
738737
if msg_rate_limit.has_limit():
739738
return self.__send_publish_with_limitations(kwargs, timeout, device, msg_rate_limit, dp_rate_limit)
740739
else:
741-
if self.__is_test_latency_message(kwargs['payload']):
742-
kwargs = self.__convert_test_latency_message(kwargs)
743740

744741
if "payload" in kwargs and not isinstance(kwargs["payload"], str):
745742
kwargs["payload"] = dumps(kwargs["payload"])
@@ -761,12 +758,12 @@ def __get_rate_limits_by_topic(self, topic, device=None, msg_rate_limit=None, dp
761758

762759
def __send_publish_with_limitations(self, kwargs, timeout, device=None, msg_rate_limit: RateLimit = None,
763760
dp_rate_limit: RateLimit = None):
764-
data_for_analysis = data = kwargs.get("payload")
761+
data = kwargs.get("payload")
765762
if isinstance(data, str):
766-
data_for_analysis = loads(data)
763+
data = loads(data)
767764
datapoints = -1
768765
if dp_rate_limit.has_limit():
769-
datapoints = self._count_datapoints_in_message(data_for_analysis, device=device)
766+
datapoints = self._count_datapoints_in_message(data, device=device)
770767
payload = data
771768
if dp_rate_limit.has_limit() and datapoints >= 0 and dp_rate_limit.get_minimal_limit() < datapoints:
772769
log.debug("Rate limit is too low, cannot send message with %i datapoints, "
@@ -782,19 +779,19 @@ def __send_publish_with_limitations(self, kwargs, timeout, device=None, msg_rate
782779
device_split_messages = self._split_message(device_data, dp_rate_limit.get_minimal_limit(),
783780
self.max_payload_size)
784781
split_messages = [
785-
{'message': {device: [split_message['data']]}, 'datapoints': split_message['datapoints']}
786-
for split_message in device_split_messages]
782+
{'message': {device: [split_message['data']]}, 'datapoints': split_message['datapoints'],
783+
'metadata': split_message.get('metadata')} for split_message in device_split_messages]
784+
787785
if len(split_messages) == 0:
788786
log.debug("Cannot split message to smaller parts!")
787+
789788
results = []
790789
for part in split_messages:
791790
dp_rate_limit.increase_rate_limit_counter(part['datapoints'])
792791
self._wait_for_rate_limit_released(timeout,
793792
message_rate_limit=msg_rate_limit,
794793
dp_rate_limit=dp_rate_limit,
795794
amount=dp_rate_limit.get_minimal_limit())
796-
if self.__is_test_latency_message(kwargs['payload']):
797-
kwargs = self.__convert_test_latency_message(kwargs)
798795
kwargs["payload"] = dumps(part['message'])
799796
self.wait_until_current_queued_messages_processed()
800797
results.append(self._client.publish(**kwargs))
@@ -806,8 +803,6 @@ def __send_publish_with_limitations(self, kwargs, timeout, device=None, msg_rate
806803
message_rate_limit=msg_rate_limit,
807804
dp_rate_limit=dp_rate_limit,
808805
amount=datapoints)
809-
if self.__is_test_latency_message(kwargs['payload']):
810-
kwargs = self.__convert_test_latency_message(kwargs)
811806
kwargs["payload"] = dumps(payload)
812807
return TBPublishInfo(self._client.publish(**kwargs))
813808

@@ -1043,6 +1038,7 @@ def _split_message(message_pack, max_size, max_payload_size):
10431038
values = message.get("values")
10441039
else:
10451040
values = message
1041+
10461042
values_data_keys = tuple(values.keys())
10471043
if len(values_data_keys) == 1:
10481044
if ts is not None:
@@ -1072,7 +1068,8 @@ def _split_message(message_pack, max_size, max_payload_size):
10721068
or current_data_key_index == len(values_data_keys) - 1) or len(
10731069
str(message_item_values_with_allowed_size)) >= max_payload_size:
10741070
if ts is not None:
1075-
final_message_item['data'] = {"ts": ts, "values": message_item_values_with_allowed_size}
1071+
final_message_item['data'] = {"ts": ts, "values": message_item_values_with_allowed_size,
1072+
'metadata': message.get('metadata')}
10761073
else:
10771074
final_message_item['data'] = message_item_values_with_allowed_size
10781075
final_message_item['datapoints'] = len(message_item_values_with_allowed_size)
@@ -1085,24 +1082,3 @@ def _split_message(message_pack, max_size, max_payload_size):
10851082
if add_last_item:
10861083
split_messages.append(final_message_item)
10871084
return split_messages
1088-
1089-
@staticmethod
1090-
def __is_test_latency_message(payload):
1091-
if isinstance(payload, list) and payload[0].get('values', {}).get('isTestLatencyMessageType', False):
1092-
return True
1093-
1094-
return False
1095-
1096-
@staticmethod
1097-
def __convert_test_latency_message(kwargs):
1098-
try:
1099-
values = kwargs['payload'][0]['values']
1100-
payload = {
1101-
values['connectorName']: {'receivedTs': values['receivedTs'], 'publishedTs': int(timestamp() * 1000)}}
1102-
1103-
kwargs['payload'] = payload
1104-
kwargs['topic'] = 'v1/gateway/metrics'
1105-
return kwargs
1106-
except Exception as e:
1107-
log.error(e)
1108-
return kwargs

0 commit comments

Comments
 (0)