Skip to content

Commit 76dedb1

Browse files
committed
add source parameter to rsyslog::snippet, fixes #300
1 parent e1f3801 commit 76dedb1

File tree

3 files changed

+45
-1
lines changed

3 files changed

+45
-1
lines changed

REFERENCE.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1111,6 +1111,7 @@ The following parameters are available in the `rsyslog::snippet` defined type:
11111111
* [`content`](#-rsyslog--snippet--content)
11121112
* [`ensure`](#-rsyslog--snippet--ensure)
11131113
* [`file_mode`](#-rsyslog--snippet--file_mode)
1114+
* [`source`](#-rsyslog--snippet--source)
11141115

11151116
##### <a name="-rsyslog--snippet--content"></a>`content`
11161117

@@ -1136,3 +1137,11 @@ The mode of the file snippet
11361137

11371138
Default value: `undef`
11381139

1140+
##### <a name="-rsyslog--snippet--source"></a>`source`
1141+
1142+
Data type: `Optional[String[1]]`
1143+
1144+
1145+
1146+
Default value: `undef`
1147+

manifests/snippet.pp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,15 @@
1616
# The mode of the file snippet
1717
#
1818
define rsyslog::snippet (
19-
Optional[String[1]] $content = undef,
2019
Enum['present', 'file', 'absent'] $ensure = 'present',
20+
Optional[String[1]] $content = undef,
21+
Optional[String[1]] $source = undef,
2122
Optional[Stdlib::Filemode] $file_mode = undef,
2223
) {
24+
if $content and $source {
25+
fail("rsyslog::snippet[${title}]: Can't set 'content' and 'source' at the same time")
26+
}
27+
2328
if $file_mode {
2429
$file_mode_real = $file_mode
2530
} else {
@@ -39,6 +44,7 @@
3944
group => $rsyslog::run_group,
4045
mode => $file_mode_real,
4146
content => $content_real,
47+
source => $source,
4248
notify => Service[$rsyslog::service_name],
4349
require => File[$rsyslog::rsyslog_d],
4450
}

spec/defines/rsyslog_snippet_spec.rb

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,35 @@
3131
is_expected.to contain_file("#{rsyslog_d}/rsyslog-snippet-basic.conf").with_content("# This file is managed by Puppet, changes may be overwritten\nRandom Content\n")
3232
end
3333
end
34+
35+
context 'source provided' do
36+
let(:title) { 'rsyslog-snippet-basic' }
37+
let(:params) { { 'source' => 'puppet:///files/rsyslog.snippet' } }
38+
39+
it 'compiles' do
40+
is_expected.to contain_file("#{rsyslog_d}/rsyslog-snippet-basic.conf").with_source('puppet:///files/rsyslog.snippet')
41+
end
42+
end
43+
44+
context 'content and source provided' do
45+
let(:title) { 'rsyslog-snippet-basic' }
46+
let(:params) { {
47+
'source' => 'puppet:///files/rsyslog.snippet',
48+
'content' => 'Random Content'
49+
} }
50+
51+
it 'compiles' do
52+
is_expected.to compile.and_raise_error(/Can't set 'content' and 'source' at the same time/)
53+
end
54+
end
55+
56+
context 'content and source not provided' do
57+
let(:title) { 'rsyslog-snippet-basic' }
58+
59+
it 'compiles' do
60+
is_expected.to contain_file("#{rsyslog_d}/rsyslog-snippet-basic.conf").with_source(nil).with_content(nil)
61+
end
62+
end
3463
end
3564
end
3665
end

0 commit comments

Comments
 (0)