Differential D6485 Diff 23559 site-modules/profile/manifests/swh/deploy/search/journal_client_instance.pp
Changeset View
Changeset View
Standalone View
Standalone View
site-modules/profile/manifests/swh/deploy/search/journal_client_instance.pp
# Instance of a worker | # Instance of a worker | ||||
define profile::swh::deploy::search::journal_client_instance ( | define profile::swh::deploy::search::journal_client_instance ( | ||||
$ensure = present, | $ensure = present, | ||||
$instance_name = $title, | $instance_name = $title, | ||||
) | ) | ||||
{ | { | ||||
include profile::swh::deploy::base_search | include profile::swh::deploy::base_search | ||||
$service_name = "swh-search-journal-client@${instance_name}" | $service_basename = "swh-search-journal-client@${instance_name}" | ||||
$service_name = "swh-search-journal-client@${instance_name}.service" | |||||
$config_path = lookup("swh::deploy::search::journal_client::${instance_name}::config_file") | $config_path = lookup("swh::deploy::search::journal_client::${instance_name}::config_file") | ||||
$config = lookup("swh::deploy::search::journal_client::${instance_name}::config", Hash, 'deep') | $config = lookup("swh::deploy::search::journal_client::${instance_name}::config", Hash, 'deep') | ||||
$user = lookup('swh::deploy::base_search::user') | $user = lookup('swh::deploy::base_search::user') | ||||
$group = lookup('swh::deploy::base_search::group') | $group = lookup('swh::deploy::base_search::group') | ||||
$sentry_dsn = lookup("swh::deploy::search::sentry_dsn", Optional[String], 'first', undef) | |||||
$sentry_environment = lookup("swh::deploy::search::sentry_environment", Optional[String], 'first', undef) | |||||
$sentry_swh_package = lookup("swh::deploy::search::sentry_swh_package", Optional[String], 'first', undef) | |||||
# Uses: | |||||
# - $sentry_{dsn,environment,swh_package} | |||||
::systemd::dropin_file {"${service_name}.d/parameters.conf": | |||||
ensure => present, | |||||
unit => $service_name, | |||||
filename => 'parameters.conf', | |||||
content => template('profile/swh/deploy/journal/parameters.conf.erb'), | |||||
} | |||||
case $ensure { | case $ensure { | ||||
'present', 'running': { | 'present', 'running': { | ||||
file {$config_path: | file {$config_path: | ||||
ensure => 'present', | ensure => 'present', | ||||
owner => $user, | owner => $user, | ||||
group => $group, | group => $group, | ||||
mode => '0640', | mode => '0640', | ||||
content => inline_template("<%= @config.to_yaml %>\n"), | content => inline_template("<%= @config.to_yaml %>\n"), | ||||
notify => Service[$service_name], | notify => Service[$service_basename], | ||||
} | } | ||||
if $ensure == 'running' { | if $ensure == 'running' { | ||||
$service_ensure = 'running' | $service_ensure = 'running' | ||||
} else { | } else { | ||||
$service_ensure = undef | $service_ensure = undef | ||||
} | } | ||||
service {$service_name: | service {$service_basename: | ||||
ensure => $service_ensure, | ensure => $service_ensure, | ||||
enable => true, | enable => true, | ||||
require => [ | require => [ | ||||
File[$config_path], | File[$config_path], | ||||
] | ] | ||||
} | } | ||||
} | } | ||||
default: { | default: { | ||||
# clean up | # clean up | ||||
service {$service_name: | service {$service_basename: | ||||
ensure => absent, | ensure => absent, | ||||
} | } | ||||
-> file {$config_path: | -> file {$config_path: | ||||
ensure => absent, | ensure => absent, | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } |