From: Christos Sfakianakis <csfakian(a)redhat.com>
Add a module to inititate and evaluate a PacketAssert test.
Signed-off-by: Christos Sfakianakis <csfakian(a)redhat.com>
---
lnst/RecipeCommon/PacketAssert.py | 76 +++++++++++++++++++++++++++++++
1 file changed, 76 insertions(+)
create mode 100644 lnst/RecipeCommon/PacketAssert.py
diff --git a/lnst/RecipeCommon/PacketAssert.py b/lnst/RecipeCommon/PacketAssert.py
new file mode 100644
index 0000000..bf99c36
--- /dev/null
+++ b/lnst/RecipeCommon/PacketAssert.py
@@ -0,0 +1,76 @@
+from lnst.Controller.Recipe import BaseRecipe
+from lnst.Tests import PacketAssert
+
+class PacketAssertConf(object):
+ def __init__(self, host, iface, **kwargs):
+ self._host = host
+ self._iface = iface
+ self._p_filter = kwargs.get("p_filter", '')
+ self._grep_for = kwargs.get("grep_for", [])
+ self._p_min = kwargs.get("p_min", 10)
+ self._p_max = kwargs.get("p_max", 0)
+ self._promiscuous = kwargs.get("promiscuous", False)
+
+ @property
+ def host(self):
+ return self._host
+
+ @property
+ def iface(self):
+ return self._iface
+
+ @property
+ def p_filter(self):
+ return self._p_filter
+
+ @property
+ def grep_for(self):
+ return self._grep_for
+
+ @property
+ def p_min(self):
+ return self._p_min
+
+ @property
+ def p_max(self):
+ return self._p_max
+
+ @property
+ def promiscuous(self):
+ return self._promiscuous
+
+class PacketAssertTestAndEvaluate(BaseRecipe):
+ def packet_assert_test(self, packet_assert_config):
+ host = packet_assert_config.host
+ kwargs = self._generate_packet_assert_kwargs(packet_assert_config)
+ packet_assert = PacketAssert(**kwargs)
+ packet_assert_job = host.prepare_job(packet_assert)
+ return packet_assert_job
+
+ def packet_assert_evaluate_and_report(self, packet_assert_config, results):
+ if results["p_recv"] >= packet_assert_config.p_min and \
+ (results["p_recv"] <= packet_assert_config.p_max or
+ not packet_assert_config.p_max):
+ self.add_result(True, "Packet assert succesful", results)
+ else:
+ self.add_result(False, "Packet assert unsuccesful", results)
+
+ def _generate_packet_assert_kwargs(self, packet_assert_config):
+ kwargs = dict(interface=packet_assert_config.iface)
+
+ if packet_assert_config.p_filter:
+ kwargs["p_filter"] = packet_assert_config.p_filter
+
+ if packet_assert_config.grep_for:
+ kwargs["grep_for"] = packet_assert_config.grep_for
+
+ if packet_assert_config.p_min:
+ kwargs["p_min"] = packet_assert_config.p_min
+
+ if packet_assert_config.p_max:
+ kwargs["p_max"] = packet_assert_config.p_max
+
+ if packet_assert_config.promiscuous:
+ kwargs["promiscuous"] = packet_assert_config.promiscuous
+
+ return kwargs
--
2.17.1