From d65d6405db55ffe964a396d567fa2dedb5b94dd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaroslav=20=C5=A0karvada?= Date: Thu, 30 Mar 2017 15:55:49 +0200 Subject: [PATCH] functions: added assertion_non_equal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This function takes three arguments: etxt - the text to be logged if the assertion fails var1 - first variable to compare var2 - seconf variable to compare The function compares 'var1' and' var2'. If they match it logs 'etxt' and raises exception which will abort profile loading. Signed-off-by: Jaroslav Škarvada --- .../functions/function_assertion_non_equal.py | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 tuned/profiles/functions/function_assertion_non_equal.py diff --git a/tuned/profiles/functions/function_assertion_non_equal.py b/tuned/profiles/functions/function_assertion_non_equal.py new file mode 100644 index 0000000..f247163 --- /dev/null +++ b/tuned/profiles/functions/function_assertion_non_equal.py @@ -0,0 +1,25 @@ +import os +import tuned.logs +import base +from tuned.utils.commands import commands +from tuned.profiles.exceptions import InvalidProfileException + +log = tuned.logs.get() + +class assertion_non_equal(base.Function): + """ + Assertion non equal: compares argument 2 with argument 3. If they match + it logs text from argument 1 and throws InvalidProfileException. This + exception will abort profile loading. + """ + def __init__(self): + # 2 arguments + super(self.__class__, self).__init__("assertion_non_equal", 3) + + def execute(self, args): + if not super(self.__class__, self).execute(args): + return None + if args[1] != args[2]: + log.error("assertion non equal '%s' failed: '%s' == '%s'" % (args[0], args[1], args[2])) + raise InvalidProfileException("Assertion non equal '%s' failed." % args[0]) + return None