Added support for ensure option into yum::repo.

This commit is contained in:
Timo Mkinen 2012-08-24 12:41:39 +03:00
parent d1e6bf1acd
commit a30e3e70fc
2 changed files with 45 additions and 32 deletions

View file

@ -128,6 +128,9 @@ class yum::exclude {
#
# $name:
# Repository name.
# $ensure:
# Present/enable enables repository (default), absent removes
# repository completely and disable disables repository.
# $baseurl:
# Base URL for this repository.
# $mirrorlist:
@ -146,45 +149,55 @@ class yum::exclude {
# gpgkey => "http://tmz.fedorapeople.org/repo/RPM-GPG-KEY-tmz",
# }
#
define yum::repo($baseurl="", $mirrorlist="", $descr="", $gpgkey="") {
define yum::repo($ensure="present", $baseurl="", $mirrorlist="", $descr="", $gpgkey="") {
tag("bootstrap")
if !$baseurl and !$mirrorlist {
fail("Either \$baseurl or \$mirrorlist needs to be defined for yum::repo")
}
if $baseurl and $mirrorlist {
fail("Cannot set both \$baseurl and \$mirrorlist for yum::repo")
}
# can't use ensure variable inside template :(
$status = $ensure
if regsubst($gpgkey, "^(puppet://).*", '\1') == "puppet://" {
file { "/etc/pki/rpm-gpg/RPM-GPG-KEY-${name}":
ensure => present,
source => $gpgkey,
mode => "0644",
owner => "root",
group => "root",
before => File["/etc/yum.repos.d/${name}.repo"],
notify => Exec["rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-${name}"],
}
exec { "rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-${name}":
path => "/bin:/usr/bin:/sbin:/usr/sbin",
user => "root",
refreshonly => true,
}
$gpgkey_real = "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-${name}"
} else {
$gpgkey_real = $gpgkey
}
if $status != "absent" {
if !$baseurl and !$mirrorlist {
fail("Either \$baseurl or \$mirrorlist needs to be defined for yum::repo")
}
if $baseurl and $mirrorlist {
fail("Cannot set both \$baseurl and \$mirrorlist for yum::repo")
}
if regsubst($gpgkey, "^(puppet://).*", '\1') == "puppet://" {
file { "/etc/pki/rpm-gpg/RPM-GPG-KEY-${name}":
ensure => present,
source => $gpgkey,
mode => "0644",
owner => "root",
group => "root",
before => File["/etc/yum.repos.d/${name}.repo"],
notify => Exec["rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-${name}"],
}
exec { "rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-${name}":
path => "/bin:/usr/bin:/sbin:/usr/sbin",
user => "root",
refreshonly => true,
}
$gpgkey_real = "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-${name}"
} else {
$gpgkey_real = $gpgkey
}
if $descr {
$descr_real = $descr
} else {
$descr_real = $name
}
if $descr {
$descr_real = $descr
} else {
$descr_real = $name
}
file { "/etc/yum.repos.d/${name}.repo":
ensure => present,
ensure => $status ? {
"absent" => absent,
default => present,
},
content => template("yum/yum.repo.erb"),
mode => "0644",
owner => "root",

View file

@ -1,6 +1,6 @@
[<%= name %>]
name=<%= descr_real %>
enabled=1
enabled=<% if status == 'disable' %>0<% else %>1<% end %>
<% if baseurl != '' -%>
baseurl=<%= baseurl %>
<% else -%>