Now handle positive integer value in virtual files if they are separated
by group of space characters where the count is unpredictable.
Thanks to romeotheriault for filing this bug.
This commit is contained in:
davixx 2013-02-15 19:14:01 +01:00
parent 408d4604d7
commit ec99b4f7b5

10
sysctl
View file

@ -79,6 +79,7 @@ author: David "DaviXX" CHANIAL <david.chanial@gmail.com>
import os import os
import tempfile import tempfile
import re
# ============================================================== # ==============================================================
@ -185,10 +186,19 @@ def sysctl_check(current_step, **sysctl_args):
if current_step == 'after' and sysctl_args['checks'] in ['after', 'both']: if current_step == 'after' and sysctl_args['checks'] in ['after', 'both']:
if sysctl_args['value'] is not None: if sysctl_args['value'] is not None:
# reading the virtual file
f = open(sysctl_args['key_path'],'r') f = open(sysctl_args['key_path'],'r')
output = f.read() output = f.read()
f.close() f.close()
output = output.strip(' \t\n\r') output = output.strip(' \t\n\r')
# multi positive integer values separated by spaces as described in issue #2004 :
if re.search('^([\d\s]+)$', sysctl_args['value']):
# replace all groups of spaces by one space
output = re.sub('(\s+)', ' ', output)
# normal case, finded value must be equal to the submitted value :
if output != sysctl_args['value']: if output != sysctl_args['value']:
return 1, 'key seems not set to value even after update/sysctl, founded : <%s>, wanted : <%s>' % (output, sysctl_args['value']) return 1, 'key seems not set to value even after update/sysctl, founded : <%s>, wanted : <%s>' % (output, sysctl_args['value'])