Puppet Class: jboss::internal::service
- Defined in:
- manifests/internal/service.pp
Overview
Internal class - manage JBoss service
2 3 4 5 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 |
# File 'manifests/internal/service.pp', line 2
class jboss::internal::service {
include jboss
$servicename = $jboss::product
include jboss::params
include jboss::internal::params
include jboss::internal::compatibility
include jboss::internal::configuration
include jboss::internal::quirks::etc_initd_functions
Exec {
path => $jboss::internal::params::syspath,
logoutput => 'on_failure',
}
anchor { 'jboss::service::begin': }
$service_stop_cooldown = 5 # sec.
# TODO: change to $::virtual after dropping support for Puppet 2.x
$enable = $::jboss_virtual ? {
'docker' => undef,
default => true,
}
if $jboss::internal::compatibility::initsystem == 'SystemD' {
exec { "systemctl-daemon-reload-for-${servicename}":
command => '/bin/systemctl daemon-reload',
refreshonly => true,
notify => Service[$servicename],
subscribe => [
Anchor['jboss::package::end'],
Anchor['jboss::configuration::end'],
Anchor['jboss::service::begin'],
],
}
}
service { $servicename:
ensure => running,
enable => $enable,
hasstatus => true,
hasrestart => true,
subscribe => [
Package['coreutils'],
Anchor['jboss::package::end'],
Anchor['jboss::service::begin'],
],
}
if $jboss::internal::compatibility::expect_to_start {
$test_running_loglevel = 'emerg'
$test_running_failstatus = 1
} else {
$test_running_loglevel = 'warning'
$test_running_failstatus = 0
}
exec { 'jboss::service::test-running':
loglevel => $test_running_loglevel,
command => "tail -n 80 ${jboss::internal::configuration::logfile} && exit ${test_running_failstatus}",
unless => "pgrep -f '^java.*${servicename}' > /dev/null",
logoutput => true,
subscribe => Service[$servicename],
require => Package['procps'],
}
$restart_cmd1 = $jboss::internal::compatibility::initsystem ? {
'SystemD' => "systemctl stop ${servicename}",
default => "service ${servicename} stop"
}
$restart_cmd2 = "sleep ${service_stop_cooldown}"
$restart_cmd3 = "pkill -9 -f '^java.*${servicename}'"
$restart_cmd4 = $jboss::internal::compatibility::initsystem ? {
'SystemD' => "systemctl start ${servicename}",
default => "service ${servicename} start"
}
exec { 'jboss::service::restart':
command => "${restart_cmd1} ; ${restart_cmd2} ; ${restart_cmd3} ; ${restart_cmd4}",
refreshonly => true,
require => [
Package['procps'],
Exec['jboss::service::test-running'],
],
}
anchor { 'jboss::service::end':
require => [
Service[$servicename],
Exec['jboss::service::test-running'],
],
}
anchor { 'jboss::service::started':
require => [
Service[$servicename],
Anchor['jboss::service::end'],
Exec['jboss::service::restart'],
],
}
}
|