X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=modules%2Fsite%2Fmanifests%2Faptrepo.pp;h=d0e34ecaf8dddfcb6145725186f4013a8b93d817;hb=e3c7ba19631d0ae3007879027a8cdde5fb4e4250;hp=d461807af79a14af447f51162da33b2ad959e8b2;hpb=cdd25919b7c854f7a384a1abc65f6bfd2507428c;p=mirror%2Fdsa-puppet.git diff --git a/modules/site/manifests/aptrepo.pp b/modules/site/manifests/aptrepo.pp index d461807af..d0e34ecaf 100644 --- a/modules/site/manifests/aptrepo.pp +++ b/modules/site/manifests/aptrepo.pp @@ -1,26 +1,48 @@ -define site::aptrepo ($key = undef, $template = undef, $config = undef, $ensure = present) { +define site::aptrepo ($key = undef, $keyid = undef, $template = undef, $config = undef, $ensure = present, $require = []) { - 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: {} - default: { err ( "Unknown ensure value: '$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}"] + } + } + } + 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'" ) } } - if ! ($template or $config) { - err ( "Can't find configuration for ${name}" ) + if $ensure == present { + if ! ($config or $template) { + fail ( "No configuration found for ${name}" ) + } } if $template { @@ -28,12 +50,14 @@ define site::aptrepo ($key = undef, $template = undef, $config = undef, $ensure ensure => $ensure, content => template($template), notify => Exec['apt-get update'], + require => $require, } } else { file { "/etc/apt/sources.list.d/${name}.list": ensure => $ensure, source => $config, notify => Exec['apt-get update'], + require => $require, } } }