Skip to content

Commit b269fb8

Browse files
Fix duplicate declaration of common files (#70)
If the `puppet_metrics_collector::system` class is evaluated before the `puppet_metrics_collector` class, a duplicate declaration error will occur for output directories and scripts that are common to both classes. The `system` class has guard logic to prevent this issue, this commit copies the same logic to the top-level `puppet_metrics_collector` class and updates the tests to ensure both orderings compile. Co-authored-by: Jarret Lavallee <[email protected]>
1 parent a03f451 commit b269fb8

File tree

2 files changed

+33
-13
lines changed

2 files changed

+33
-13
lines changed

manifests/init.pp

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,28 @@
3636
$config_dir = "${output_dir}/config"
3737
$scripts_dir = "${output_dir}/scripts"
3838

39-
file { [$output_dir, $config_dir, $scripts_dir] :
40-
ensure => directory,
39+
# If the puppet_metrics_collector::system class is evaluted first,
40+
# File[$output_dir] will already be defined along with common scripts.
41+
if !defined(File[$output_dir]) {
42+
file { [$output_dir, $scripts_dir]:
43+
ensure => directory,
44+
}
45+
46+
file { "${scripts_dir}/create-metrics-archive":
47+
ensure => file,
48+
mode => '0755',
49+
source => 'puppet:///modules/puppet_metrics_collector/create-metrics-archive'
50+
}
51+
52+
file { "${scripts_dir}/metrics_tidy":
53+
ensure => file,
54+
mode => '0744',
55+
source => 'puppet:///modules/puppet_metrics_collector/metrics_tidy'
56+
}
4157
}
4258

43-
file { "${scripts_dir}/create-metrics-archive":
44-
ensure => file,
45-
mode => '0755',
46-
source => 'puppet:///modules/puppet_metrics_collector/create-metrics-archive'
59+
file { $config_dir:
60+
ensure => directory,
4761
}
4862

4963
file { "${scripts_dir}/json2timeseriesdb" :
@@ -52,12 +66,6 @@
5266
source => 'puppet:///modules/puppet_metrics_collector/json2timeseriesdb'
5367
}
5468

55-
file { "${scripts_dir}/metrics_tidy":
56-
ensure => file,
57-
mode => '0744',
58-
source => 'puppet:///modules/puppet_metrics_collector/metrics_tidy'
59-
}
60-
6169
file { "${scripts_dir}/pe_metrics.rb" :
6270
ensure => file,
6371
mode => '0755',

spec/classes/init_spec.rb

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,16 @@
88
it { is_expected.to compile }
99
end
1010
end
11-
end
11+
12+
context 'when puppet_metrics_collector::system is included first' do
13+
let(:pre_condition) { 'include puppet_metrics_collector::system' }
14+
15+
it { is_expected.to compile }
16+
end
17+
18+
context 'when puppet_metrics_collector::system is included last' do
19+
let(:post_condition) { 'include puppet_metrics_collector::system' }
20+
21+
it { is_expected.to compile }
22+
end
23+
end

0 commit comments

Comments
 (0)