diff --git a/manifests/resource/location.pp b/manifests/resource/location.pp index 94d69fe31..98b819cee 100644 --- a/manifests/resource/location.pp +++ b/manifests/resource/location.pp @@ -94,8 +94,8 @@ # of off. # [*proxy_cache_valid*] - This directive sets the time for caching # different replies. -# [*proxy_cache_lock*] - This directive sets the locking mechanism for pouplating cache. -# [*proxy_cache_bypass*] - Defines conditions which the response will not be cached +# [*proxy_cache_lock*] - This directive sets the locking mechanism for pouplating cache. +# [*proxy_cache_bypass*] - Defines conditions which the response will not be cached # [*proxy_method*] - If defined, overrides the HTTP method of the # request to be passed to the backend. # [*proxy_http_version*] - Sets the proxy http version @@ -119,6 +119,7 @@ # [*flv*] - Indicates whether or not this loation can be # used for flv streaming. Default: false # [*expires*] - Setup expires time for locations content +# [*add_header*] - Hash: Adds headers to the location block. If any are specified, locations will no longer inherit headers from the parent server context # [*access_log*] - disable or override the logging in access_log (log format can be set with $format_log) # [*error_log*] - override the error_log for this location # [*log_not_found*] - enable or disable the logging of not found errors in error_log @@ -184,19 +185,19 @@ define nginx::resource::location ( Enum['present', 'absent'] $ensure = 'present', - Boolean $internal = false, - String $location = $name, - Variant[String[1],Array[String[1],1]] $server = undef, - Optional[String] $www_root = undef, - Optional[String] $autoindex = undef, + Boolean $internal = false, + String $location = $name, + Variant[String[1], Array[String[1], 1]] $server = undef, + Optional[String] $www_root = undef, + Optional[String] $autoindex = undef, Optional[Enum['on', 'off']] $autoindex_exact_size = undef, Optional[Enum['html', 'xml', 'json', 'jsonp']] $autoindex_format = undef, Optional[Enum['on', 'off']] $autoindex_localtime = undef, - Array $index_files = [ + Array $index_files = [ 'index.html', 'index.htm', 'index.php'], - Optional[String] $proxy = undef, + Optional[String] $proxy = undef, Optional[String] $proxy_redirect = $nginx::proxy_redirect, String $proxy_read_timeout = $nginx::proxy_read_timeout, String $proxy_connect_timeout = $nginx::proxy_connect_timeout, @@ -206,61 +207,61 @@ Array $proxy_pass_header = $nginx::proxy_pass_header, Array $proxy_ignore_header = $nginx::proxy_ignore_header, Optional[String] $proxy_next_upstream = undef, - Optional[String] $fastcgi = undef, - Optional[String] $fastcgi_index = undef, - Optional[Hash] $fastcgi_param = undef, + Optional[String] $fastcgi = undef, + Optional[String] $fastcgi_index = undef, + Optional[Hash] $fastcgi_param = undef, String $fastcgi_params = "${nginx::conf_dir}/fastcgi.conf", - Optional[String] $fastcgi_script = undef, - Optional[String] $fastcgi_split_path = undef, - Optional[String] $uwsgi = undef, - Optional[Hash] $uwsgi_param = undef, - String $uwsgi_params = "${nginx::config::conf_dir}/uwsgi_params", - Optional[String] $uwsgi_read_timeout = undef, - Boolean $ssl = false, - Boolean $ssl_only = false, - Optional[String] $location_alias = undef, + Optional[String] $fastcgi_script = undef, + Optional[String] $fastcgi_split_path = undef, + Optional[String] $uwsgi = undef, + Optional[Hash] $uwsgi_param = undef, + String $uwsgi_params = "${nginx::config::conf_dir}/uwsgi_params", + Optional[String] $uwsgi_read_timeout = undef, + Boolean $ssl = false, + Boolean $ssl_only = false, + Optional[String] $location_alias = undef, Optional[String[1]] $limit_zone = undef, - Optional[Enum['any', 'all']] $location_satisfy = undef, - Optional[Array] $location_allow = undef, - Optional[Array] $location_deny = undef, - Optional[Boolean ] $stub_status = undef, - Optional[Variant[String, Array]] $raw_prepend = undef, - Optional[Variant[String, Array]] $raw_append = undef, - Optional[Hash] $location_custom_cfg = undef, - Optional[Hash] $location_cfg_prepend = undef, - Optional[Hash] $location_cfg_append = undef, - Optional[Hash] $location_custom_cfg_prepend = undef, - Optional[Hash] $location_custom_cfg_append = undef, - Optional[Array] $include = undef, - Optional[Array] $try_files = undef, - Optional[String] $proxy_cache = undef, - Optional[String] $proxy_cache_key = undef, - Optional[String] $proxy_cache_use_stale = undef, - Optional[Enum['on', 'off']] $proxy_cache_lock = undef, - Optional[Variant[Array, String]] $proxy_cache_valid = undef, - Optional[Variant[Array, String]] $proxy_cache_bypass = undef, - Optional[String] $proxy_method = undef, - Optional[String] $proxy_http_version = undef, - Optional[String] $proxy_set_body = undef, - Optional[Enum['on', 'off']] $proxy_buffering = undef, + Optional[Enum['any', 'all']] $location_satisfy = undef, + Optional[Array] $location_allow = undef, + Optional[Array] $location_deny = undef, + Optional[Boolean ] $stub_status = undef, + Optional[Variant[String, Array]] $raw_prepend = undef, + Optional[Variant[String, Array]] $raw_append = undef, + Optional[Hash] $location_custom_cfg = undef, + Optional[Hash] $location_cfg_prepend = undef, + Optional[Hash] $location_cfg_append = undef, + Optional[Hash] $location_custom_cfg_prepend = undef, + Optional[Hash] $location_custom_cfg_append = undef, + Optional[Array] $include = undef, + Optional[Array] $try_files = undef, + Optional[String] $proxy_cache = undef, + Optional[String] $proxy_cache_key = undef, + Optional[String] $proxy_cache_use_stale = undef, + Optional[Enum['on', 'off']] $proxy_cache_lock = undef, + Optional[Variant[Array, String]] $proxy_cache_valid = undef, + Optional[Variant[Array, String]] $proxy_cache_bypass = undef, + Optional[String] $proxy_method = undef, + Optional[String] $proxy_http_version = undef, + Optional[String] $proxy_set_body = undef, + Optional[Enum['on', 'off']] $proxy_buffering = undef, Optional[Nginx::Size] $proxy_max_temp_file_size = undef, Optional[Nginx::Size] $proxy_busy_buffers_size = undef, Optional[Enum['on', 'off']] $absolute_redirect = undef, - Optional[String] $auth_basic = undef, - Optional[String] $auth_basic_user_file = undef, - Optional[String] $auth_request = undef, - Array $rewrite_rules = [], - Integer[401,599] $priority = 500, - Boolean $mp4 = false, - Boolean $flv = false, - Optional[String] $expires = undef, - Hash $add_header = {}, - $format_log = 'combined', - $error_level = 'error', - Optional[Variant[Array, String]] $access_log = undef, - Optional[Enum['on', 'off']] $log_not_found = undef, - Optional[Variant[Array, String]] $error_log = undef, - Hash $add_header = {}, + Optional[String] $auth_basic = undef, + Optional[String] $auth_basic_user_file = undef, + Optional[String] $auth_request = undef, + Array $rewrite_rules = [], + Integer[401, 599] $priority = 500, + Boolean $mp4 = false, + Boolean $flv = false, + Optional[String] $expires = undef, + Hash $add_header = {}, + $format_log = 'combined', + $error_level = 'error', + Optional[Enum['on', 'off']] $log_not_found = undef, + Hash $add_header = {}, + Optional[Variant[Array, String]] $access_log = undef, + Optional[Variant[Array, String]] $error_log = undef ) { if !defined(Class['nginx']) { @@ -300,7 +301,7 @@ $ensure == 'present' and $fastcgi != undef and !defined(File[$fastcgi_params]) and - $fastcgi_params == "${nginx::conf_dir}/fastcgi.conf" + $fastcgi_params == "${nginx::conf_dir}/fastcgi.conf" ) { file { $fastcgi_params: ensure => 'present', @@ -309,7 +310,8 @@ } } - if $ensure == 'present' and $uwsgi != undef and !defined(File[$uwsgi_params]) and $uwsgi_params == "${nginx::conf_dir}/uwsgi_params" { + if $ensure == 'present' and $uwsgi != undef and !defined(File[$uwsgi_params]) and $uwsgi_params == "${nginx::conf_dir} + /uwsgi_params" { file { $uwsgi_params: ensure => 'present', mode => '0644', diff --git a/spec/defines/resource_location_spec.rb b/spec/defines/resource_location_spec.rb index bb212f462..2fe1695ab 100644 --- a/spec/defines/resource_location_spec.rb +++ b/spec/defines/resource_location_spec.rb @@ -1031,6 +1031,73 @@ value: '16k', match: %r{\s+proxy_busy_buffers_size\s+16k;} } + }, + { + title: 'access_log undef', + attr: 'access_log', + value: :undef, + notmatch: %r{\s+access_log\s+.+;} + }, + { + title: 'disabling access_log ', + attr: 'access_log', + value: 'off', + match: %r{\s+access_log\s+off;} + }, + { + title: 'override access_log ', + attr: 'access_log', + value: '/var/log/nginx/specific-location.log', + match: %r{\s+access_log\s+/var/log/nginx/specific-location.log combined;} + }, + { + title: 'override access_log with an array', + attr: 'access_log', + value: [ + '/var/log/nginx/specific-location.log', + 'syslog:10.0.0.1' + ], + match: [ + %r{\s+access_log\s+/var/log/nginx/specific-location.log combined;}, + %r{\s+access_log\s+syslog:10\.0\.0\.1 combined;} + ] + }, + { + title: 'enabling logging errors not found ', + attr: 'log_not_found', + value: 'off', + match: %r{\s+log_not_found\s+off;} + }, + { + title: 'enabling logging errors not found ', + attr: 'log_not_found', + value: 'on', + match: %r{\s+log_not_found\s+on;} + }, + { + title: 'disabling error_log ', + attr: 'error_log', + value: 'off', + match: %r{\s+error_log\s+off;} + }, + { + title: 'overriding error_log ', + attr: 'error_log', + value: '/my-error_log', + match: %r{\s+error_log\s+/my-error_log error;} + }, + { + title: 'overriding error_log with an array', + attr: 'error_log', + value: [ + '/my-error_log', + 'syslog:10.0.0.1' + ], + match: [ + %r{\s+error_log\s+/my-error_log error;}, + %r{\s+error_log\s+syslog:10\.0\.0\.1 error;} + ] + } ].each do |param| context "when #{param[:attr]} is #{param[:value]}" do let(:default_params) { { location: 'location', proxy: 'proxy_value', server: 'server1' } }