summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--manifests/init.pp66
1 files changed, 42 insertions, 24 deletions
diff --git a/manifests/init.pp b/manifests/init.pp
index 2063849..ff09d9e 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -32,6 +32,8 @@
# by the dav_ext module.
# @param $dav_access
# Default access rules for the dav methods.
+# @param ensure
+# Set to absent to remove configuration
define webdav_server (
String $nginx_server,
String $file_path,
@@ -45,7 +47,8 @@ define webdav_server (
Hash[String,String] $dav_access = {
'user' => 'rw',
'group' => 'rw',
- }
+ },
+ Enum['present', 'absent'] $ensure = 'present',
) {
# ensure_packages(['nginx-mainline-mod-dav-ext'])
@@ -55,36 +58,51 @@ define webdav_server (
$modname = 'ngx_http_dav_ext_module'
# This assumes that the directory exists, and that
# nginx::include_modules_enabled => true
- file { "/etc/nginx/modules-enabled/${modname}.conf":
- ensure => file,
- content => @("EOF")
- load_module /usr/lib/nginx/modules/${modname}.so;
- | EOF
+ $fname = "/etc/nginx/modules-enabled/${modname}.conf"
+ if $ensure == 'present' {
+ file { $fname:
+ ensure => file,
+ content => @("EOF")
+ load_module /usr/lib/nginx/modules/${modname}.so;
+ | EOF
+ }
+ } else {
+ file { $fname:
+ ensure => absent,
+ }
}
$lines = $users.map |$pair| { $pair.join(':') }.join("\n")
- file {
- default:
- owner => $owner,
- group => $group,
- ;
- $file_path:
- ensure => 'directory',
- mode => '0770',
- recurse => 'false',
- ;
- $passwd_file:
- ensure => 'file',
- mode => '0660',
- content => @("EOF")
- # File managed by puppet
- ${lines}
- | EOF
- ;
+ if $ensure == 'present' {
+ file {
+ default:
+ owner => $owner,
+ group => $group,
+ ;
+ $file_path:
+ ensure => 'directory',
+ mode => '0770',
+ recurse => 'false',
+ ;
+ $passwd_file:
+ ensure => 'file',
+ mode => '0660',
+ content => @("EOF")
+ # File managed by puppet
+ ${lines}
+ | EOF
+ ;
+ }
+ } else {
+ file { [$file_path, $passwd_file]:
+ ensure => absent,
+ }
}
+
nginx::resource::location { $location:
+ ensure => $ensure,
server => $nginx_server,
location_alias => $file_path,
ssl => true,