-define site::aptrepo ($key = undef, $template = undef, $config = undef, $ensure = present) {
+define site::aptrepo ($key = undef, $keyid = undef, $template = undef, $config = undef, $ensure = present) {
- if $key {
- exec { "apt-key-update-${name}":
- command => "apt-key add /etc/apt/trusted-keys.d/${name}.asc",
- refreshonly => true,
- }
-
- file { "/etc/apt/trusted-keys.d/${name}.asc":
- source => $key,
- mode => '0664',
- notify => Exec["apt-key-update-${name}"]
- }
- }
case $ensure {
- present: {}
- absent: {}
+ present: {
+ if $key {
+ exec { "apt-key-update-${name}":
+ command => "apt-key add /etc/apt/trusted-keys.d/${name}.asc",
+ refreshonly => true,
+ }
+
+ file { "/etc/apt/trusted-keys.d/${name}.asc":
+ source => $key,
+ mode => '0664',
+ notify => Exec["apt-key-update-${name}"]
+ }
+ }
+ }
+ absent: {
+ if ($keyid) and ($key) {
+ file { "/etc/apt/trusted-keys.d/${name}.asc":
+ ensure => absent,
+ notify => Exec["apt-key-del-${keyid}"]
+ }
+ exec { "apt-key-del-${keyid}":
+ command => "apt-key del ${keyid}",
+ refreshonly => true,
+ }
+ } elsif $key {
+ file { "/etc/apt/trusted-keys.d/${name}.asc":
+ ensure => absent,
+ }
+ } elsif $keyid {
+ exec { "apt-key-del-${keyid}":
+ command => "apt-key del ${keyid}",
+ }
+ }
+ }
default: { fail ( "Unknown ensure value: '$ensure'" ) }
}