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

Class CsRule

systemvm/debian/opt/cloud/bin/cs/CsRule.py:22–62  ·  view source on GitHub ↗

Manage iprules Supported Types: fwmark

Source from the content-addressed store, hash-verified

20
21
22class CsRule:
23 """ Manage iprules
24 Supported Types:
25 fwmark
26 """
27
28 def __init__(self, dev):
29 self.dev = dev
30 self.tableNo = 100 + int(dev[3:])
31 self.table = "Table_%s" % (dev)
32
33 def addRule(self, rule):
34 if not self.findRule(rule + " lookup " + self.table):
35 cmd = "ip rule add " + rule + " table " + self.table
36 CsHelper.execute(cmd)
37 logging.info("Added rule %s for %s" % (cmd, self.table))
38
39 def findRule(self, rule):
40 for i in CsHelper.execute("ip rule show"):
41 if rule in i.strip():
42 return True
43 return False
44
45 def addMark(self):
46 if not self.findMark():
47 cmd = "ip rule add fwmark %s table %s" % (self.tableNo, self.table)
48 CsHelper.execute(cmd)
49 logging.info("Added fwmark rule for %s" % (self.table))
50
51 def delMark(self):
52 if self.findMark():
53 cmd = "ip rule delete fwmark %s table %s" % (self.tableNo, self.table)
54 CsHelper.execute(cmd)
55 logging.info("Deleting fwmark rule for %s" % (self.table))
56
57 def findMark(self):
58 srch = "from all fwmark %s lookup %s" % (hex(self.tableNo), self.table)
59 for i in CsHelper.execute("ip rule show"):
60 if srch in i.strip():
61 return True
62 return False

Callers 4

mainFunction · 0.90
post_configureMethod · 0.90
post_config_changeMethod · 0.90
test_initMethod · 0.90

Calls

no outgoing calls

Tested by 1

test_initMethod · 0.72