From 386fed83bfaa4e8e6bef052b66c9b3a25169269b Mon Sep 17 00:00:00 2001 From: erik-smit Date: Mon, 18 Feb 2013 13:34:54 +0100 Subject: [PATCH] Implement free-form smb.conf options --- manifests/server.pp | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/manifests/server.pp b/manifests/server.pp index cc1a951..fc0adb3 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -2,7 +2,8 @@ $security = '', $server_string = '', $unix_password_sync = '', - $workgroup = '') { + $workgroup = '', + $options = {}) { include samba::server::install include samba::server::config @@ -11,6 +12,27 @@ $context = '/files/etc/samba/smb.conf' $target = "target[. = 'global']" + $keys = split(inline_template("<%= options.keys.join(',') %>"), ",") + augeas_option { + $keys: + options => $options + } + + define augeas_option ($options) { + $context = '/files/etc/samba/smb.conf' + $target = "target[. = 'global']" + $value = $options[$name] + augeas { "samba-global-${name}": + context => $context, + changes => $value ? { + default => ["set \"${target}/${name}\" '${value}'"], + '' => ["rm \"${target}/${name}\""], + }, + require => Augeas['global-section'], + notify => Class['samba::server::service'] + } + } + augeas { 'global-section': context => $context, changes => "set ${target} global",