Giuseppe Lavagetto has submitted this change and it was merged. Change subject: wmflib: add ensure_directory() and ensure_link() ......................................................................
wmflib: add ensure_directory() and ensure_link() It's a common pattern to want to map a generic ensure parameter (that is, present / absent) to an ensure for a directory or link File resource. ensure_directory() and ensure_link() are convenience functions for doing that concisely. Change-Id: Ida5c809809379a1a35eca2e02bb6b28f36808f05 --- M modules/admin/manifests/user.pp M modules/apache/manifests/conf.pp M modules/diamond/manifests/collector.pp M modules/limn/manifests/instance.pp M modules/mediawiki/manifests/monitoring/webserver.pp A modules/wmflib/lib/puppet/parser/functions/ensure_directory.rb A modules/wmflib/lib/puppet/parser/functions/ensure_link.rb 7 files changed, 43 insertions(+), 37 deletions(-) Approvals: Giuseppe Lavagetto: Verified; Looks good to me, approved 20after4: Looks good to me, but someone else must approve jenkins-bot: Verified diff --git a/modules/admin/manifests/user.pp b/modules/admin/manifests/user.pp index bdf6268..bad917d 100644 --- a/modules/admin/manifests/user.pp +++ b/modules/admin/manifests/user.pp @@ -55,11 +55,6 @@ { validate_re($ensure, '^(present|absent)$') - $ensure_dir = $ensure ? { - 'absent' => 'absent', - 'present' => 'directory', - } - user { $name: ensure => $ensure, name => $name, @@ -77,7 +72,7 @@ if $ensure == 'present' { file { "/home/${name}": - ensure => $ensure_dir, + ensure => ensure_directory($ensure), source => [ "puppet:///modules/admin/home/${name}/", 'puppet:///modules/admin/home/skel/', @@ -105,7 +100,7 @@ } file { "/home/${name}/.ssh": - ensure => $ensure_dir, + ensure => ensure_directory($ensure), owner => $name, group => $gid, mode => '0700', diff --git a/modules/apache/manifests/conf.pp b/modules/apache/manifests/conf.pp index 1b9cc5d..5ed4209 100644 --- a/modules/apache/manifests/conf.pp +++ b/modules/apache/manifests/conf.pp @@ -53,10 +53,6 @@ $title_safe = regsubst($title, '[\W_]', '-', 'G') $conf_file = sprintf('%02d-%s.conf', $priority, $title_safe) - $link_ensure = $ensure ? { - present => link, - default => absent, - } file { "/etc/apache2/${conf_type}-available/${conf_file}": ensure => $ensure, @@ -65,7 +61,7 @@ } file { "/etc/apache2/${conf_type}-enabled/${conf_file}": - ensure => $link_ensure, + ensure => ensure_link($ensure), target => "/etc/apache2/${conf_type}-available/${conf_file}", notify => Service['apache2'], } diff --git a/modules/diamond/manifests/collector.pp b/modules/diamond/manifests/collector.pp index 11b1885..f8594e5 100644 --- a/modules/diamond/manifests/collector.pp +++ b/modules/diamond/manifests/collector.pp @@ -64,13 +64,8 @@ } if $source { - $directory_ensure = $ensure ? { - present => directory, - default => absent, - } - file { "/usr/share/diamond/collectors/${name}": - ensure => $directory_ensure, + ensure => ensure_directory($ensure), owner => 'root', group => 'root', mode => '0755', diff --git a/modules/limn/manifests/instance.pp b/modules/limn/manifests/instance.pp index 7e1a0ca..bfe2be0 100644 --- a/modules/limn/manifests/instance.pp +++ b/modules/limn/manifests/instance.pp @@ -46,20 +46,16 @@ # symlink $base_directory/var/{css,js,vendor} # in $var_directory - $symlink_ensure = $ensure ? { - present => 'link', - default => 'absent', - } file { "${var_directory}/css": - ensure => $symlink_ensure, + ensure => ensure_link($ensure), target => "${base_directory}/var/css", } file { "${var_directory}/js": - ensure => $symlink_ensure, + ensure => ensure_link($ensure), target => "${base_directory}/var/js", } file { "${var_directory}/vendor": - ensure => $symlink_ensure, + ensure => ensure_link($ensure), target => "${base_directory}/var/vendor", } @@ -95,4 +91,4 @@ provider => 'upstart', subscribe => File["/etc/init/limn-${name}.conf"], } -} \ No newline at end of file +} diff --git a/modules/mediawiki/manifests/monitoring/webserver.pp b/modules/mediawiki/manifests/monitoring/webserver.pp index 90af363..5e73199 100644 --- a/modules/mediawiki/manifests/monitoring/webserver.pp +++ b/modules/mediawiki/manifests/monitoring/webserver.pp @@ -2,16 +2,6 @@ include ::stdlib include ::apache - $dir_ensure = $ensure ? { - 'present' => 'directory', - default => $ensure - } - - $link_ensure = $ensure ? { - 'present' => 'link', - default => $ensure - } - $endpoints = { 'apc' => 'apc_stats.php' } @@ -19,7 +9,7 @@ # Basic vhost files file { '/var/www/monitoring': - ensure => $dir_ensure, + ensure => ensure_directory($ensure), owner => 'root', group => 'root', mode => '0555', diff --git a/modules/wmflib/lib/puppet/parser/functions/ensure_directory.rb b/modules/wmflib/lib/puppet/parser/functions/ensure_directory.rb new file mode 100644 index 0000000..a846cb6 --- /dev/null +++ b/modules/wmflib/lib/puppet/parser/functions/ensure_directory.rb @@ -0,0 +1,17 @@ +# ensure_directory(): converts converts 'true'/'present' to 'directory' +# and 'false'/'absent' to 'absent'. +module Puppet::Parser::Functions + newfunction( + :ensure_directory, + :type => :rvalue, + :doc => "Converts 'true'/'present' to 'directory' and 'false'/'absent' to 'absent'" + ) do |args| + case args[0] + when 'present', 'true', true then 'directory' + when 'absent', 'false', false then args[0] + else raise Puppet::ParseError, 'ensure_directory(): invalid argument' + end + end +end + +# vim: set ts=2 sw=2 et : diff --git a/modules/wmflib/lib/puppet/parser/functions/ensure_link.rb b/modules/wmflib/lib/puppet/parser/functions/ensure_link.rb new file mode 100644 index 0000000..a36b9c8 --- /dev/null +++ b/modules/wmflib/lib/puppet/parser/functions/ensure_link.rb @@ -0,0 +1,17 @@ +# ensure_link(): converts converts 'true'/'present' to 'link' +# and 'false'/'absent' to 'absent'. +module Puppet::Parser::Functions + newfunction( + :ensure_link, + :type => :rvalue, + :doc => "Converts 'true'/'present' to 'link' and 'false'/'absent' to 'absent'" + ) do |args| + case args[0] + when 'present', 'true', true then 'link' + when 'absent', 'false', false then args[0] + else raise Puppet::ParseError, 'ensure_link(): invalid argument' + end + end +end + +# vim: set ts=2 sw=2 et : -- To view, visit https://gerrit.wikimedia.org/r/148007 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ida5c809809379a1a35eca2e02bb6b28f36808f05 Gerrit-PatchSet: 2 Gerrit-Project: operations/puppet Gerrit-Branch: production Gerrit-Owner: Ori.livneh <o...@wikimedia.org> Gerrit-Reviewer: 20after4 <mmod...@wikimedia.org> Gerrit-Reviewer: Alexandros Kosiaris <akosia...@wikimedia.org> Gerrit-Reviewer: Giuseppe Lavagetto <glavage...@wikimedia.org> Gerrit-Reviewer: Rush <r...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits