32
32
from utils import classattributes
33
33
34
34
35
- local_cache = []
35
+ local_cache = set ()
36
36
37
37
38
38
class TimeSeries (object ):
@@ -56,7 +56,7 @@ def parse_tags(self, filtersMap):
56
56
'Single ts identifiers' , ', ' .join (ident )))
57
57
found = False
58
58
for filtersDict in filtersMap :
59
- if all (( value in filtersDict .values ()) for value in ident ):
59
+ if set ( filtersDict .values ()) == set ( ident ):
60
60
logger .trace (MSG ['ReceivAttrValues' ].format (
61
61
'filtersKeys' , ', ' .join (filtersDict .keys ())))
62
62
if len (self .columnInfo .keys ) == 1 :
@@ -68,17 +68,16 @@ def parse_tags(self, filtersMap):
68
68
break
69
69
# detected zimon key, do we need refresh local TOPO?
70
70
if not found :
71
- already_reported = False
72
- for cache_item in local_cache :
73
- if set (cache_item ) == set (ident ):
74
- logger .trace (MSG ['NewKeyAlreadyReported' ].format (ident ))
75
- already_reported = True
76
- break
77
- if not already_reported :
71
+ cache_size = len (local_cache )
72
+ local_cache .union (ident )
73
+ updated_size = len (local_cache )
74
+ if updated_size > cache_size :
78
75
logger .trace (MSG ['NewKeyDetected' ].format (ident ))
79
76
local_cache .append (ident )
80
77
md = MetadataHandler ()
81
78
Thread (name = 'AdHocMetaDataUpdate' , target = md .update ).start ()
79
+ else :
80
+ logger .trace (MSG ['NewKeyAlreadyReported' ].format (ident ))
82
81
83
82
for _key , _values in tagsDict .items ():
84
83
if len (_values ) > 1 :
0 commit comments