diff --git a/flowspec/junos.py b/flowspec/junos.py index 1015daad8965002165211c65775f54c0f28785e6..a6ae8a047edfcf820f54b5d7504710ffb2d9af7e 100644 --- a/flowspec/junos.py +++ b/flowspec/junos.py @@ -205,6 +205,8 @@ def get_ports(rule): if result != '': result += ',' result += 'srcport' + translate_ports(rule.sourceport) + if result != '': + result += ',' return result def translate_frag(fragment_string): #TODO get number mapping right, order matters! @@ -219,11 +221,12 @@ def translate_frag(fragment_string): #TODO get number mapping right, order matte elif fragment_string == "not-a-fragment": result="!:02"; else: - result=":00" # TODO + #result="00" # TODO + result=str(fragment_string) # TODO return result def translate_frag_list(frag_list): - result = ",".join([translate_frag(frag) for frag in frag_list]) # needs to be sorted + result = ",".join([translate_frag(str(frag)) for frag in frag_list]) # needs to be sorted return result def get_frag(rule): @@ -231,7 +234,7 @@ def get_frag(rule): if rule.fragmenttype: tmp = translate_frag_list(rule.fragmenttype.all()) if tmp != "": - result = ',frag'+tmp + result = 'frag'+tmp+',' return result def create_junos_name(rule): @@ -245,8 +248,7 @@ def create_junos_name(rule): # ports name += get_ports(rule) #frag = '' - frag = get_frag(rule) - name += frag + name += get_frag(rule) if name[-1] == ',': name = name[:-1] return name diff --git a/flowspec/snmpstats.py b/flowspec/snmpstats.py index f7cffca5c350dc24dffeb4be0f66e5c5255cc9a8..668643986744cb5e3d18e01d09cfdf6d11377125 100644 --- a/flowspec/snmpstats.py +++ b/flowspec/snmpstats.py @@ -207,19 +207,18 @@ def helper_stats_store_parse_ts(ts_string): def helper_rule_ts_parse(ts_string): try: ts = datetime.strptime(ts_string, '%Y-%m-%d %H:%M:%S+00:00') # TODO TZ offset assumed to be 00:00 - except Exception as e: - logger.info("helper_rule_ts_parse(): ts_string="+str(ts_string)+": got exception "+str(e)) - ts = None - - if ts==None: # other db may hav other time fmt: - logger.info("helper_rule_ts_parse(): trying with milli seconds fmt") + except ValueError as e: + #logger.info("helper_rule_ts_parse(): trying with milli seconds fmt") try: ts = datetime.strptime(ts_string, '%Y-%m-%d %H:%M:%S.%f+00:00') # TODO TZ offset assumed to be 00:00 except Exception as e: - logger.info("helper_rule_ts_parse(): ts_string="+str(ts_string)+": got exception "+str(e)) + logger.info("helper_rule_ts_parse(): ts_string="+str(ts_string)+": got exception "+str(type(e))+": "+str(e)) ts = None - - logger.info("helper_rule_ts_parse(): => ts="+str(ts)) + except Exception as e: + logger.info("helper_rule_ts_parse(): ts_string="+str(ts_string)+": got exception "+str(type(e))+": "+str(e)) + ts = None + + #logger.info("helper_rule_ts_parse(): => ts="+str(ts)) return ts def process_new_snmp_measurements__low_level(nowstr, samplecount, newdata, history):