1
0
Fork 0

functions: added assertion_non_equal

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 <jskarvad@redhat.com>
This commit is contained in:
Jaroslav Škarvada 2017-03-30 15:55:49 +02:00
parent 42ab576ecf
commit d65d6405db
No known key found for this signature in database
GPG key ID: D8E1C00E076E840B

View file

@ -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