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):
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
......@@ -190,19 +190,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 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.status="+rule_status)
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":
try:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment