Skip to content

Commit

Permalink
Merge pull request #2091 from davixx/sysctl2004
Browse files Browse the repository at this point in the history
Solving bug : sysctl check_after failing on multi-value sysctl parameters
  • Loading branch information
mpdehaan committed Feb 16, 2013
2 parents 21693b2 + 8bf0c8d commit 2172201
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion library/sysctl
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ author: David "DaviXX" CHANIAL <david.chanial@gmail.com>

import os
import tempfile
import re

# ==============================================================

Expand Down Expand Up @@ -185,13 +186,22 @@ def sysctl_check(current_step, **sysctl_args):
if current_step == 'after' and sysctl_args['checks'] in ['after', 'both']:

if sysctl_args['value'] is not None:

# reading the virtual file
f = open(sysctl_args['key_path'],'r')
output = f.read()
f.close()
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']:
return 1, 'key seems not set to value even after update/sysctl, founded : <%s>, wanted : <%s>' % (output, sysctl_args['value'])

return 0, ''

# weird end
Expand Down

0 comments on commit 2172201

Please sign in to comment.