Skip to content
Snippets Groups Projects
Commit d328ad10 authored by David Schmitz's avatar David Schmitz
Browse files

statistics rule mapping: fix to support also fragmentation options; update

parent 6974248c
No related branches found
No related tags found
No related merge requests found
...@@ -205,6 +205,8 @@ def get_ports(rule): ...@@ -205,6 +205,8 @@ def get_ports(rule):
if result != '': if result != '':
result += ',' result += ','
result += 'srcport' + translate_ports(rule.sourceport) result += 'srcport' + translate_ports(rule.sourceport)
if result != '':
result += ','
return result return result
def translate_frag(fragment_string): #TODO get number mapping right, order matters! 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 ...@@ -219,11 +221,12 @@ def translate_frag(fragment_string): #TODO get number mapping right, order matte
elif fragment_string == "not-a-fragment": elif fragment_string == "not-a-fragment":
result="!:02"; result="!:02";
else: else:
result=":00" # TODO #result="00" # TODO
result=str(fragment_string) # TODO
return result return result
def translate_frag_list(frag_list): 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 return result
def get_frag(rule): def get_frag(rule):
...@@ -231,7 +234,7 @@ def get_frag(rule): ...@@ -231,7 +234,7 @@ def get_frag(rule):
if rule.fragmenttype: if rule.fragmenttype:
tmp = translate_frag_list(rule.fragmenttype.all()) tmp = translate_frag_list(rule.fragmenttype.all())
if tmp != "": if tmp != "":
result = ',frag'+tmp result = 'frag'+tmp+','
return result return result
def create_junos_name(rule): def create_junos_name(rule):
...@@ -245,8 +248,7 @@ def create_junos_name(rule): ...@@ -245,8 +248,7 @@ def create_junos_name(rule):
# ports # ports
name += get_ports(rule) name += get_ports(rule)
#frag = '' #frag = ''
frag = get_frag(rule) name += get_frag(rule)
name += frag
if name[-1] == ',': if name[-1] == ',':
name = name[:-1] name = name[:-1]
return name return name
...@@ -190,19 +190,18 @@ def helper_stats_store_parse_ts(ts_string): ...@@ -190,19 +190,18 @@ def helper_stats_store_parse_ts(ts_string):
def helper_rule_ts_parse(ts_string): def helper_rule_ts_parse(ts_string):
try: try:
ts = datetime.strptime(ts_string, '%Y-%m-%d %H:%M:%S+00:00') # TODO TZ offset assumed to be 00:00 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: except ValueError as e:
logger.info("helper_rule_ts_parse(): ts_string="+str(ts_string)+": got exception "+str(e)) #logger.info("helper_rule_ts_parse(): trying with milli seconds fmt")
ts = None
if ts==None: # other db may hav other time fmt:
logger.info("helper_rule_ts_parse(): trying with milli seconds fmt")
try: try:
ts = datetime.strptime(ts_string, '%Y-%m-%d %H:%M:%S.%f+00:00') # TODO TZ offset assumed to be 00:00 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: 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 ts = None
except Exception as e:
logger.info("helper_rule_ts_parse(): => ts="+str(ts)) 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 return ts
def poll_snmp_statistics(): def poll_snmp_statistics():
...@@ -303,7 +302,7 @@ def poll_snmp_statistics(): ...@@ -303,7 +302,7 @@ def poll_snmp_statistics():
#logger.info("snmpstats: STATISTICS_PER_RULE ruleobj.id="+str(rule_id)) #logger.info("snmpstats: STATISTICS_PER_RULE ruleobj.id="+str(rule_id))
#logger.info("snmpstats: STATISTICS_PER_RULE ruleobj.status="+rule_status) #logger.info("snmpstats: STATISTICS_PER_RULE ruleobj.status="+rule_status)
flowspec_params_str=create_junos_name(ruleobj) flowspec_params_str=create_junos_name(ruleobj)
#logger.info("snmpstats: STATISTICS_PER_RULE flowspec_params_str="+str(flowspec_params_str)) logger.info("snmpstats: STATISTICS_PER_RULE flowspec_params_str="+str(flowspec_params_str))
if rule_status=="ACTIVE": if rule_status=="ACTIVE":
try: try:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment