functions: added assertion
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 don't 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:
parent
221c86f911
commit
99a600b1eb
1 changed files with 25 additions and 0 deletions
25
tuned/profiles/functions/function_assertion.py
Normal file
25
tuned/profiles/functions/function_assertion.py
Normal 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(base.Function):
|
||||
"""
|
||||
Assertion: compares argument 2 with argument 3. If they don't 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__("exec", 3)
|
||||
|
||||
def execute(self, args):
|
||||
if not super(self.__class__, self).execute(args):
|
||||
return None
|
||||
if args[1] != args[2]:
|
||||
log.error("assertion '%s' failed: '%s' != '%s'" % (args[0], args[1], args[2]))
|
||||
raise InvalidProfileException("Assertion '%s' failed." % args[0])
|
||||
return None
|
||||
Loading…
Reference in a new issue