From a13fa84a41f6de117cd9424be48ff73ccfb9c5c4 Mon Sep 17 00:00:00 2001 From: Tim Meusel Date: Mon, 23 Sep 2019 15:43:53 +0200 Subject: [PATCH 1/2] Archlinux: Do not manage node_exporter group/user --- data/Archlinux.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/data/Archlinux.yaml b/data/Archlinux.yaml index 8c2e4a723..4f5e4a98c 100644 --- a/data/Archlinux.yaml +++ b/data/Archlinux.yaml @@ -6,3 +6,7 @@ prometheus::env_file_path: '/etc/default' prometheus::node_exporter::package_name: 'prometheus-node-exporter' prometheus::node_exporter::install_method: 'package' prometheus::node_exporter::bin_name: 'prometheus-node-exporter' +prometheus::node_exporter::user: 'node_exporter' +prometheus::node_exporter::group: 'node_exporter' +prometheus::node_exporter::manage_user: false +prometheus::node_exporter::manage_group: false From 2557816bb835e3d142d0be53c421c9f17d22061f Mon Sep 17 00:00:00 2001 From: Tim Meusel Date: Mon, 23 Sep 2019 19:55:12 +0200 Subject: [PATCH 2/2] node_exporter: enhance test coverage --- spec/classes/node_exporter_spec.rb | 34 ++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/spec/classes/node_exporter_spec.rb b/spec/classes/node_exporter_spec.rb index 2abe425dc..7c23a8a33 100644 --- a/spec/classes/node_exporter_spec.rb +++ b/spec/classes/node_exporter_spec.rb @@ -10,10 +10,32 @@ context 'without parameters' do it { is_expected.to compile.with_all_deps } it { is_expected.to contain_class('prometheus') } - it { is_expected.to contain_user('node-exporter') } - it { is_expected.to contain_group('node-exporter') } it { is_expected.to contain_prometheus__daemon('node_exporter').with(options: ' ') } it { is_expected.to contain_service('node_exporter') } + + if facts[:os]['name'] == 'Archlinux' + it { is_expected.not_to contain_user('node-exporter') } + it { is_expected.not_to contain_group('node-exporter') } + it { is_expected.not_to contain_file('/opt/node_exporter-0.18.1.linux-amd64/node_exporter') } + it { is_expected.not_to contain_file('/usr/local/bin/node_exporter') } + it { is_expected.to contain_package('prometheus-node-exporter') } + it { is_expected.to contain_file('/etc/default/node_exporter') } + it { is_expected.to contain_systemd__unit_file('node_exporter.service') } + else + it { is_expected.to contain_user('node-exporter') } + it { is_expected.to contain_group('node-exporter') } + it { is_expected.to contain_file('/opt/node_exporter-0.18.1.linux-amd64/node_exporter') } + it { is_expected.to contain_file('/usr/local/bin/node_exporter') } + end + + if facts[:os]['family'] == 'RedHat' && facts[:os]['release']['major'].to_i < 7 + it { is_expected.to contain_file('/etc/sysconfig/node_exporter') } + it { is_expected.to contain_file('/etc/init.d/node_exporter') } + end + + if facts[:os]['release']['major'].to_i == 14 + it { is_expected.to contain_file('/etc/init/node_exporter.conf') } + end end context 'without collector parameters' do @@ -28,6 +50,13 @@ it { is_expected.to compile.with_all_deps } it { is_expected.to contain_archive('/tmp/node_exporter-0.18.1.tar.gz') } it { is_expected.to contain_prometheus__daemon('node_exporter').with(options: ' --collector.foo --collector.bar --no-collector.baz --no-collector.qux') } + if facts[:os]['name'] == 'Archlinux' + it { is_expected.to contain_file('/usr/bin/node_exporter') } + it { is_expected.not_to contain_file('/usr/local/bin/node_exporter') } + else + it { is_expected.to contain_file('/usr/local/bin/node_exporter') } + it { is_expected.not_to contain_file('/usr/bin/node_exporter') } + end end context 'without collector parameters and extra options' do @@ -56,6 +85,7 @@ it { is_expected.to compile.with_all_deps } it { is_expected.to contain_archive('/tmp/node_exporter-0.13.0.tar.gz') } + it { is_expected.to contain_file('/opt/node_exporter-0.13.0.linux-amd64/node_exporter') } describe 'install correct binary' do it { is_expected.to contain_file('/usr/local/bin/node_exporter').with('target' => '/opt/node_exporter-0.13.0.linux-amd64/node_exporter') } end