6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
# File 'manifests/config.pp', line 6
class squid::config (
$config = $squid::config,
$config_user = $squid::config_user,
$config_group = $squid::config_group,
$cache_mem = $squid::cache_mem,
$cache_replacement_policy = $squid::cache_replacement_policy,
$memory_replacement_policy = $squid::memory_replacement_policy,
$visible_hostname = $squid::visible_hostname,
$via = $squid::via,
$httpd_suppress_version_string = $squid::httpd_suppress_version_string,
$forwarded_for = $squid::forwarded_for,
$memory_cache_shared = $squid::memory_cache_shared,
$maximum_object_size_in_memory = $squid::maximum_object_size_in_memory,
$access_log = $squid::access_log,
$buffered_logs = $squid::buffered_logs,
$coredump_dir = $squid::coredump_dir,
$max_filedescriptors = $squid::max_filedescriptors,
$error_directory = $squid::error_directory,
$err_page_stylesheet = $squid::err_page_stylesheet,
$workers = $squid::workers,
$acls = $squid::acls,
$http_access = $squid::http_access,
$send_hit = $squid::send_hit,
$snmp_access = $squid::snmp_access,
$icp_access = $squid::icp_access,
$auth_params = $squid::auth_params,
$http_ports = $squid::http_ports,
$https_ports = $squid::https_ports,
$url_rewrite_program = $squid::url_rewrite_program,
$url_rewrite_children = $squid::url_rewrite_children,
$url_rewrite_child_options = $squid::url_rewrite_child_options,
$refresh_patterns = $squid::refresh_patterns,
$snmp_incoming_address = $squid::snmp_incoming_address,
$snmp_ports = $squid::snmp_ports,
$ssl_bump = $squid::ssl_bump,
$sslproxy_cert_error = $squid::sslproxy_cert_error,
$cache_dirs = $squid::cache_dirs,
$cache = $squid::cache,
$extra_config_sections = $squid::extra_config_sections,
$squid_bin_path = $squid::squid_bin_path,
) inherits squid {
concat { $config:
ensure => present,
owner => $config_user,
group => $config_group,
mode => '0640',
validate_cmd => "${squid_bin_path} -k parse -f %",
}
concat::fragment { 'squid_header':
target => $config,
content => template('squid/squid.conf.header.erb'),
order => '01',
}
if $acls {
create_resources('squid::acl', $acls)
}
if $access_log {
if $access_log =~ Hash {
# Use create_resources if $access_log is a hash
create_resources('squid::access_log', $access_log)
} else {
any2array($access_log). each |$log| {
if $log =~ String {
# Use regsubst to extract the module and the remaining entries
$module = regsubst($log, '^(\w+):.*$', '\1')
$entries = regsubst($log, '^\w+:(.*)$', '\1')
# Create a single access_log resource using the extracted module and entries
squid::access_log { "${module}-${entries.md5}":
module => $module,
entries => $entries,
}
} else {
$access_log_name = if $log['entries'] =~ String {
"${log['module']}-${log['entries'].md5}"
} else {
pick($log['access_log_name'], "${log['module']}-${log['entries'][0].md5}")
}
squid::access_log { $access_log_name:
module => $log['module'],
entries => $log['entries'],
}
}
}
}
}
if $http_access {
create_resources('squid::http_access', $http_access)
}
if $send_hit {
create_resources('squid::send_hit', $send_hit)
}
if $snmp_access {
create_resources('squid::snmp_access', $snmp_access)
}
if $icp_access {
create_resources('squid::icp_access', $icp_access)
}
if $auth_params {
create_resources('squid::auth_param', $auth_params)
}
if $http_ports {
create_resources('squid::http_port', $http_ports)
}
if $https_ports {
create_resources('squid::https_port', $https_ports)
}
if $snmp_ports {
create_resources('squid::snmp_port', $snmp_ports)
}
if $cache_dirs {
create_resources('squid::cache_dir', $cache_dirs)
}
if $cache {
create_resources('squid::cache', $cache)
}
if $refresh_patterns {
create_resources('squid::refresh_pattern', $refresh_patterns)
}
if $ssl_bump {
create_resources('squid::ssl_bump', $ssl_bump)
}
if $sslproxy_cert_error {
create_resources('squid::sslproxy_cert_error', $sslproxy_cert_error)
}
create_resources('squid::extra_config_section', $extra_config_sections)
}
|