Skip to content

Commit c25fbdf

Browse files
authored
Merge pull request voxpupuli#6 from jpoittevin/master_versionlock_concat
Manage yum::versionlock with concat
2 parents 15133a7 + 4a0889e commit c25fbdf

File tree

3 files changed

+26
-22
lines changed

3 files changed

+26
-22
lines changed

manifests/plugin/versionlock.pp

+7-1
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,15 @@
1313
# include yum::plugin::versionlock
1414
#
1515
class yum::plugin::versionlock (
16-
$ensure = present
16+
$ensure = present,
17+
$path = '/etc/yum/pluginconf.d/versionlock.list'
1718
) {
1819
yum::plugin { 'versionlock':
1920
ensure => $ensure,
2021
}
22+
concat { $path:
23+
mode => '0644',
24+
owner => 'root',
25+
group => 'root',
26+
}
2127
}

manifests/versionlock.pp

+15-21
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
#
55
# Parameters:
66
# [*ensure*] - specifies if versionlock should be present, absent or exclude
7-
# [*path*] - configuration of Yum plugin versionlock
87
#
98
# Actions:
109
#
@@ -18,37 +17,32 @@
1817
#
1918
define yum::versionlock (
2019
$ensure = present,
21-
$path = '/etc/yum/pluginconf.d/versionlock.list'
2220
) {
23-
require ::yum::plugin::versionlock
21+
include ::yum::plugin::versionlock
2422

2523
if ($name =~ /^[0-9]+:.+\*$/) {
26-
$_name = $name
24+
$line = $name
2725
} elsif ($name =~ /^[0-9]+:.+-.+-.+\./) {
28-
$_name= "${name}*"
26+
$line= "${name}*"
2927
} else {
3028
fail('Package name must be formated as \'EPOCH:NAME-VERSION-RELEASE.ARCH\'')
3129
}
3230

33-
case $ensure {
34-
'present', 'absent', 'exclude': {
35-
if ($ensure == present) or ($ensure == absent) {
36-
file_line { "versionlock.list-${name}":
37-
ensure => $ensure,
38-
line => $_name,
39-
path => $path,
40-
}
41-
}
31+
$line_prefix = $ensure ? {
32+
'exclude' => '!',
33+
default => '',
34+
}
4235

43-
if ($ensure == exclude) or ($ensure == absent) {
44-
file_line { "versionlock.list-!${name}":
45-
ensure => $ensure,
46-
line => "!${_name}",
47-
path => $path,
48-
}
36+
case $ensure {
37+
'present','exclude': {
38+
concat::fragment { "yum-versionlock-${name}":
39+
content => "${line_prefix}${line}\n",
40+
target => $yum::plugin::versionlock::path,
4941
}
5042
}
51-
43+
'absent':{
44+
# fragment will be removed
45+
}
5246
default: {
5347
fail("Invalid ensure state: ${ensure}")
5448
}

metadata.json

+4
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111
{
1212
"name": "puppetlabs/stdlib",
1313
"version_requirement": ">= 4.2.0 < 5.0.0"
14+
},
15+
{
16+
"name": "puppetlabs/concat",
17+
"version_requirement": ">= 1.1.1"
1418
}
1519
],
1620
"tags": [

0 commit comments

Comments
 (0)