| LEFT | RIGHT | 
|---|
| 1 # == Type: adblockplus::web::fileserver::repository | 1 # == Type: adblockplus::web::fileserver::repository | 
| 2 # | 2 # | 
| 3 # Manage a repository on a fileserver. | 3 # Manage a repository on a fileserver. | 
| 4 # | 4 # | 
| 5 # A repository is a site where a group of people can upload and artifacts. | 5 # A repository is a site where a group of people can upload and artifacts. | 
| 6 # | 6 # | 
| 7 # In its current form, a repository is simply a directory exposed on a web | 7 # In its current form, a repository is simply a directory exposed on a web | 
| 8 # server. This may evolve to make use of more advanced repositories in the | 8 # server. This may evolve to make use of more advanced repositories in the | 
| 9 # future (proxy to repository manager, or 3rd-party service, etc). | 9 # future (proxy to repository manager, or 3rd-party service, etc). | 
| 10 # | 10 # | 
| 11 # === parameters: | 11 # === parameters: | 
| 12 # | 12 # | 
| 13 # [*ensure*] | 13 # [*ensure*] | 
| 14 #   Whether to set up the repository or not. Removing repositories is not | 14 #   Whether to set up the repository or not. Removing repositories is not | 
| 15 #   supported. | 15 #   supported. | 
| 16 # | 16 # | 
| 17 # [*users*] | 17 # [*users*] | 
| 18 # System users that should be created and added to the group that has | 18 # System users that should be created and added to the group that has | 
| 19 # write permissions for the repository directory | 19 # write permissions for the repository directory | 
| 20 # | 20 # | 
| 21 # [*auth_users*] | 21 # [*auth_file*] | 
| 22 # Array of users in the form of user:hash, used for http basic authentication | 22 #   Overwrite the default options of the authentication file used for basic | 
|  | 23 #   http authentication for nginx. | 
| 23 # | 24 # | 
| 24 define adblockplus::web::fileserver::repository ( | 25 define adblockplus::web::fileserver::repository ( | 
| 25   $ensure = 'present', | 26   $ensure = 'present', | 
| 26   $users = {}, | 27   $users = {}, | 
| 27   $auth_users = [], | 28   $auth_file = undef, | 
| 28 ){ | 29 ){ | 
| 29 | 30 | 
| 30   $repositories_directory = "$adblockplus::directory/fileserver" | 31   $repositories_directory = "$adblockplus::directory/fileserver" | 
| 31   $repository_directory = "$repositories_directory/$name" | 32   $repository_directory = "$repositories_directory/$name" | 
| 32   $group_name = "www-$name" | 33   $group_name = "www-$name" | 
| 33   $repository_host = $name ? { | 34   $repository_host = $name ? { | 
| 34     'www' =>  "$adblockplus::web::fileserver::domain", | 35     'www' =>  "$adblockplus::web::fileserver::domain", | 
| 35     default => "$name.$adblockplus::web::fileserver::domain", | 36     default => "$name.$adblockplus::web::fileserver::domain", | 
| 36   } | 37   } | 
| 37   $auth_file = "$adblockplus::directory/${name}_htpasswd" | 38   $auth_filename = "${::adblockplus::directory}/htpasswd/${name}" | 
| 38 | 39 | 
| 39   nginx::hostconfig{ "$repository_host": | 40   nginx::hostconfig {"$repository_host": | 
| 40     content => template("adblockplus/web/fileserver.conf.erb"), | 41     content => template("adblockplus/web/fileserver.conf.erb"), | 
| 41     is_default => false, | 42     is_default => false, | 
| 42     certificate => $adblockplus::web::fileserver::certificate, | 43     certificate => $adblockplus::web::fileserver::certificate, | 
| 43     private_key => $adblockplus::web::fileserver::private_key, | 44     private_key => $adblockplus::web::fileserver::private_key, | 
| 44     log => 'access_log_fileserver', | 45     log => 'access_log_fileserver', | 
| 45   } | 46   } | 
| 46 | 47 | 
| 47   file {"$auth_file": | 48   if $auth_file != undef { | 
| 48     ensure => ensure_file_state($ensure), | 49     ensure_resource('file', $auth_filename, merge({ | 
| 49     content => inline_template('<%= @auth_users.join("\n") if @auth_users %>') | 50       ensure => ensure_file_state($ensure), | 
|  | 51     }, $auth_file)) | 
| 50   } | 52   } | 
| 51 | 53 | 
| 52   group {"$group_name": | 54   group {"$group_name": | 
| 53     ensure => $ensure, | 55     ensure => $ensure, | 
| 54   } | 56   } | 
| 55 | 57 | 
| 56   file {"$repository_directory": | 58   file {"$repository_directory": | 
| 57     ensure => ensure_directory_state($ensure), | 59     ensure => ensure_directory_state($ensure), | 
| 58     group => $group_name, | 60     group => $group_name, | 
| 59     mode => '0775', | 61     mode => '0775', | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
| 71 | 73 | 
| 72   realize(File[$adblockplus::directory]) | 74   realize(File[$adblockplus::directory]) | 
| 73 | 75 | 
| 74   file {"/var/www/$repository_host": | 76   file {"/var/www/$repository_host": | 
| 75     ensure => ensure_symlink_state($ensure), | 77     ensure => ensure_symlink_state($ensure), | 
| 76     target => "$repository_directory", | 78     target => "$repository_directory", | 
| 77     require => File["$repository_directory"], | 79     require => File["$repository_directory"], | 
| 78   } | 80   } | 
| 79 } | 81 } | 
| 80 | 82 | 
| LEFT | RIGHT | 
|---|