Removes exception is sysctl file is missing

When syscl file was missing, sysctl module was complaining about it and
bailing out.
This behaviour prevents usage of /etc/sysctl.d directory, present in
some distributions.
This patch accepts a missing sysctl.conf file so sysctl.d directory can
be used.
However, it will bail out if the destination directory doesn't exist.
This commit is contained in:
Michel Blanc 2013-02-20 12:42:49 +01:00
parent 3f2fd22ed4
commit 0eaa936ba0

View file

@ -158,12 +158,14 @@ def sysctl_check(current_step, **sysctl_args):
# sysctl file exists and openable ?
# TODO choose if prefered to use os.access() instead try/catch on open
if current_step == 'before':
try:
f = open(sysctl_args['sysctl_file'])
f.close()
except IOError, e:
return 1, 'unable to open supplied sysctl.conf'
if not os.access(sysctl_args['sysctl_file'], os.W_OK):
try:
f = open(sysctl_args['sysctl_file'],'w')
f.write('')
f.close()
except IOError, e:
return 1, 'unable to create supplied sysctl file (directory missing)'
# no smart checks at this step ?
if sysctl_args['checks'] == 'none':
return 0, ''