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
|
# File 'manifests/config/server/service.pp', line 16
define tomcat::config::server::service (
$catalina_base = undef,
$class_name = undef,
Enum['present','absent'] $class_name_ensure = 'present',
Enum['present','absent'] $service_ensure = 'present',
$server_config = undef,
Boolean $show_diff = true,
) {
include ::tomcat
$_catalina_base = pick($catalina_base, $::tomcat::catalina_home)
tag(sha1($_catalina_base))
if versioncmp($::augeasversion, '1.0.0') < 0 {
fail('Server configurations require Augeas >= 1.0.0')
}
if $server_config {
$_server_config = $server_config
} else {
$_server_config = "${_catalina_base}/conf/server.xml"
}
if $service_ensure == 'absent' {
$changes = "rm Server/Service[#attribute/name='${name}']"
} else {
if $class_name_ensure == 'absent' {
$_class_name = "rm Server/Service[#attribute/name='${name}']/#attribute/className"
} elsif $class_name {
$_class_name = "set Server/Service[#attribute/name='${name}']/#attribute/className ${class_name}"
} else {
$_class_name = undef
}
$_service = "set Server/Service[#attribute/name='${name}']/#attribute/name ${name}"
$changes = delete_undef_values([$_service, $_class_name])
}
if ! empty($changes) {
augeas { "server-${_catalina_base}-service-${name}":
lens => 'Xml.lns',
incl => $_server_config,
changes => $changes,
show_diff => $show_diff,
}
}
}
|