MCPcopy Create free account
hub / github.com/apache/cloudstack / CsNetfilter

Class CsNetfilter

systemvm/debian/opt/cloud/bin/cs/CsNetfilter.py:327–415  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

325
326
327class CsNetfilter(object):
328
329 def __init__(self):
330 self.rule = {}
331 self.table = ''
332 self.chain = ''
333 self.seen = False
334 self.count = 0
335
336 def parse(self, rule):
337 self.rule = self.__convert_to_dict(rule)
338
339 def unseen(self):
340 return self.seen is False
341
342 def mark_seen(self):
343 self.seen = True
344
345 def __convert_to_dict(self, rule):
346 rule = str(rule.lstrip())
347 rule = rule.replace('! -', '!_-')
348 rule = rule.replace('-p all', '')
349 rule = rule.replace(' ', ' ')
350 rule = rule.replace('bootpc', '68')
351 # Ugly hack no.23 split this or else I will have an odd number of parameters
352 rule = rule.replace('--checksum-fill', '--checksum fill')
353 # -m can appear twice in a string
354 rule = rule.replace('-m state', '-m2 state')
355 rule = rule.replace('ESTABLISHED,RELATED', 'RELATED,ESTABLISHED')
356 bits = rule.split(' ')
357 rule = dict(list(zip(bits[0::2], bits[1::2])))
358 if "-A" in list(rule.keys()):
359 self.chain = rule["-A"]
360 return rule
361
362 def set_table(self, table):
363 if table == '':
364 table = "filter"
365 self.table = table
366
367 def get_table(self):
368 return self.table
369
370 def set_chain(self, chain):
371 self.chain = chain
372
373 def set_count(self, count=0):
374 self.count = count
375
376 def get_count(self):
377 return self.count
378
379 def get_chain(self):
380 return self.chain
381
382 def get_rule(self):
383 return self.rule
384

Callers 4

test_initMethod · 0.90
get_all_rulesMethod · 0.85
compareMethod · 0.85
del_ruleMethod · 0.85

Calls

no outgoing calls

Tested by 1

test_initMethod · 0.72