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
|
# File 'manifests/service.pp', line 18
define graphdb::service (
Graphdb::Ensure $ensure,
Graphdb::Status $status,
Array $java_opts = [],
Integer $kill_timeout = 180
) {
#### Service management
# set params: in operation
if $ensure == 'present' {
case $status {
# make sure service is currently running, start it on boot
'enabled': {
$service_ensure = 'running'
$service_enable = true
}
# make sure service is currently stopped, do not start it on boot
'disabled': {
$service_ensure = 'stopped'
$service_enable = false
}
# make sure service is currently running, do not start it on boot
'running': {
$service_ensure = 'running'
$service_enable = false
}
# do not start service on boot, do not care whether currently running
# or not
'unmanaged': {
$service_ensure = undef
$service_enable = false
}
# unknown status
# note: don't forget to update the parameter check in init.pp if you
# add a new or change an existing status.
default: {
fail("\"${status}\" is an unknown service status value")
}
}
$notify_service = $graphdb::restart_on_change ? {
true => [Exec["systemd_reload_${title}"], Service["graphdb-${title}"]],
false => Exec["systemd_reload_${title}"]
}
file { "/lib/systemd/system/graphdb-${title}.service":
ensure => $ensure,
content => epp('graphdb/service/systemd.epp',
{
group => $graphdb::graphdb_group,
install_dir => $graphdb::install_dir,
java_location => $graphdb::java_location,
java_opts => join(delete_undef_values($java_opts),' '),
kill_timeout => $kill_timeout,
title => $title,
user => $graphdb::graphdb_user,
}
),
owner => 'root',
group => 'root',
before => Service["graphdb-${title}"],
notify => $notify_service,
}
} else {
$service_ensure = 'stopped'
$service_enable = false
file { "/lib/systemd/system/graphdb-${title}.service":
ensure => 'absent',
subscribe => Service["graphdb-${title}"],
notify => Exec["systemd_reload_${title}"],
}
}
exec { "systemd_reload_${title}":
command => '/bin/systemctl daemon-reload',
path => ['/bin', '/usr/bin', '/usr/local/bin'],
refreshonly => true,
}
-> service { "graphdb-${title}":
ensure => $service_ensure,
enable => $service_enable,
name => "graphdb-${title}.service",
hasstatus => true,
provider => 'systemd',
}
}
|