|
3 | 3 | # Creates systemd units for collecting a given metric |
4 | 4 | # |
5 | 5 | define puppet_metrics_collector::collect ( |
| 6 | + Enum['present', 'absent'] $ensure = 'present', |
6 | 7 | String $metrics_type = $title, |
7 | 8 | String $metrics_command = undef, |
8 | 9 | String $tidy_command = undef, |
| 10 | + Optional[Hash] $env_vars = undef, |
9 | 11 | String $metric_ensure = 'present', |
10 | 12 | String $minute = '5', |
11 | 13 | ) { |
12 | | - $service_ensure = $metric_ensure ? { |
13 | | - 'present' => running, |
14 | | - 'absent' => stopped, |
15 | | - } |
| 14 | + if $ensure == 'absent' { |
| 15 | + $services = [ |
| 16 | + "puppet_${metrics_type}-metrics.service", |
| 17 | + "puppet_${metrics_type}-metrics.timer", |
| 18 | + "puppet_${metrics_type}-tidy.service", |
| 19 | + "puppet_${metrics_type}-tidy.timer", |
| 20 | + ] |
| 21 | + service { $services: |
| 22 | + ensure => stopped, |
| 23 | + enable => false, |
| 24 | + } |
16 | 25 |
|
17 | | - $service_enable = $metric_ensure ? { |
18 | | - 'present' => true, |
19 | | - 'absent' => false, |
20 | | - } |
| 26 | + $files = [ |
| 27 | + "/etc/systemd/system/puppet_${metrics_type}-metrics.service", |
| 28 | + "/etc/systemd/system/puppet_${metrics_type}-metrics.timer", |
| 29 | + "/etc/systemd/system/puppet_${metrics_type}-tidy.service", |
| 30 | + "/etc/systemd/system/puppet_${metrics_type}-tidy.timer", |
| 31 | + ] |
21 | 32 |
|
22 | | - file { "/etc/systemd/system/puppet_${metrics_type}-metrics.service": |
23 | | - ensure => $metric_ensure, |
24 | | - content => epp('puppet_metrics_collector/service.epp', |
25 | | - { 'service' => "puppet_${metrics_type}", 'metrics_command' => $metrics_command } |
26 | | - ), |
27 | | - } |
28 | | - file { "/etc/systemd/system/puppet_${metrics_type}-metrics.timer": |
29 | | - ensure => $metric_ensure, |
30 | | - content => epp('puppet_metrics_collector/timer.epp', |
31 | | - { 'service' => "puppet_${metrics_type}", 'minute' => $minute }, |
32 | | - ), |
| 33 | + file { $files: |
| 34 | + ensure => absent, |
| 35 | + } |
33 | 36 | } |
| 37 | + else { |
| 38 | + $service_ensure = $metric_ensure ? { |
| 39 | + 'present' => running, |
| 40 | + 'absent' => stopped, |
| 41 | + } |
34 | 42 |
|
35 | | - file { "/etc/systemd/system/puppet_${metrics_type}-tidy.service": |
36 | | - ensure => $metric_ensure, |
37 | | - content => epp('puppet_metrics_collector/tidy.epp', |
38 | | - { 'service' => "puppet_${metrics_type}", 'tidy_command' => $tidy_command } |
39 | | - ), |
40 | | - } |
41 | | - file { "/etc/systemd/system/puppet_${metrics_type}-tidy.timer": |
42 | | - ensure => $metric_ensure, |
43 | | - content => epp('puppet_metrics_collector/tidy_timer.epp', |
44 | | - { 'service' => "puppet_${metrics_type}" } |
45 | | - ), |
46 | | - } |
| 43 | + $service_enable = $metric_ensure ? { |
| 44 | + 'present' => true, |
| 45 | + 'absent' => false, |
| 46 | + } |
47 | 47 |
|
48 | | - service { "puppet_${metrics_type}-metrics.service": |
49 | | - } |
50 | | - service { "puppet_${metrics_type}-metrics.timer": |
51 | | - ensure => $service_ensure, |
52 | | - enable => $service_enable, |
53 | | - subscribe => File["/etc/systemd/system/puppet_${metrics_type}-metrics.timer"], |
54 | | - } |
| 48 | + file { "/etc/systemd/system/puppet_${metrics_type}-metrics.service": |
| 49 | + ensure => $metric_ensure, |
| 50 | + content => epp('puppet_metrics_collector/service.epp', |
| 51 | + { 'service' => "puppet_${metrics_type}", 'metrics_command' => $metrics_command, 'env_vars' => $env_vars } |
| 52 | + ), |
| 53 | + } |
| 54 | + file { "/etc/systemd/system/puppet_${metrics_type}-metrics.timer": |
| 55 | + ensure => $metric_ensure, |
| 56 | + content => epp('puppet_metrics_collector/timer.epp', |
| 57 | + { 'service' => "puppet_${metrics_type}", 'minute' => $minute }, |
| 58 | + ), |
| 59 | + } |
| 60 | + |
| 61 | + file { "/etc/systemd/system/puppet_${metrics_type}-tidy.service": |
| 62 | + ensure => $metric_ensure, |
| 63 | + content => epp('puppet_metrics_collector/tidy.epp', |
| 64 | + { 'service' => "puppet_${metrics_type}", 'tidy_command' => $tidy_command } |
| 65 | + ), |
| 66 | + } |
| 67 | + file { "/etc/systemd/system/puppet_${metrics_type}-tidy.timer": |
| 68 | + ensure => $metric_ensure, |
| 69 | + content => epp('puppet_metrics_collector/tidy_timer.epp', |
| 70 | + { 'service' => "puppet_${metrics_type}" } |
| 71 | + ), |
| 72 | + } |
| 73 | + |
| 74 | + service { "puppet_${metrics_type}-metrics.service": |
| 75 | + } |
| 76 | + service { "puppet_${metrics_type}-metrics.timer": |
| 77 | + ensure => $service_ensure, |
| 78 | + enable => $service_enable, |
| 79 | + subscribe => File["/etc/systemd/system/puppet_${metrics_type}-metrics.timer"], |
| 80 | + } |
55 | 81 |
|
56 | | - service { "puppet_${metrics_type}-tidy.service": } |
57 | | - service { "puppet_${metrics_type}-tidy.timer": |
58 | | - ensure => $service_ensure, |
59 | | - enable => $service_enable, |
60 | | - subscribe => File["/etc/systemd/system/puppet_${metrics_type}-tidy.timer"], |
| 82 | + service { "puppet_${metrics_type}-tidy.service": } |
| 83 | + service { "puppet_${metrics_type}-tidy.timer": |
| 84 | + ensure => $service_ensure, |
| 85 | + enable => $service_enable, |
| 86 | + subscribe => File["/etc/systemd/system/puppet_${metrics_type}-tidy.timer"], |
| 87 | + } |
61 | 88 | } |
62 | 89 | } |
0 commit comments