|  | 
| 1 | 1 | # source.pp | 
| 2 | 2 | # add an apt source | 
| 3 | 3 | define apt::source( | 
| 4 |  | -  $location       = undef, | 
| 5 |  | -  $comment        = $name, | 
| 6 |  | -  $ensure         = present, | 
| 7 |  | -  $release        = $::apt::xfacts['lsbdistcodename'], | 
| 8 |  | -  $repos          = 'main', | 
| 9 |  | -  $include        = {}, | 
| 10 |  | -  $key            = undef, | 
| 11 |  | -  $pin            = undef, | 
| 12 |  | -  $architecture   = undef, | 
| 13 |  | -  $allow_unsigned = false, | 
|  | 4 | +  $location          = undef, | 
|  | 5 | +  $comment           = $name, | 
|  | 6 | +  $ensure            = present, | 
|  | 7 | +  $release           = undef, | 
|  | 8 | +  $repos             = 'main', | 
|  | 9 | +  $include           = {}, | 
|  | 10 | +  $key               = undef, | 
|  | 11 | +  $pin               = undef, | 
|  | 12 | +  $architecture      = undef, | 
|  | 13 | +  $allow_unsigned    = false, | 
|  | 14 | +  $include_src       = undef, | 
|  | 15 | +  $include_deb       = undef, | 
|  | 16 | +  $required_packages = undef, | 
|  | 17 | +  $key_server        = undef, | 
|  | 18 | +  $key_content       = undef, | 
|  | 19 | +  $key_source        = undef, | 
|  | 20 | +  $trusted_source    = undef, | 
| 14 | 21 | ) { | 
| 15 | 22 |   validate_string($architecture, $comment, $location, $repos) | 
| 16 | 23 |   validate_bool($allow_unsigned) | 
| 17 | 24 |   validate_hash($include) | 
| 18 | 25 | 
 | 
| 19 |  | -  unless $release { | 
| 20 |  | -    fail('lsbdistcodename fact not available: release parameter required') | 
|  | 26 | +  include 'apt::params' | 
|  | 27 | + | 
|  | 28 | +  $_before = Apt::Setting["list-${title}"] | 
|  | 29 | + | 
|  | 30 | +  if $include_src != undef { | 
|  | 31 | +    warning("\$include_src is deprecated and will be removed in the next major release, please use \$include => { 'src' => ${include_src} } instead") | 
|  | 32 | +  } | 
|  | 33 | + | 
|  | 34 | +  if $include_deb != undef { | 
|  | 35 | +    warning("\$include_deb is deprecated and will be removed in the next major release, please use \$include => { 'deb' => ${include_deb} } instead") | 
|  | 36 | +  } | 
|  | 37 | + | 
|  | 38 | +  if $required_packages != undef { | 
|  | 39 | +    warning('$required_packages is deprecated and will be removed in the next major release, please use package resources instead.') | 
|  | 40 | +    exec { "Required packages: '${required_packages}' for ${name}": | 
|  | 41 | +      command     => "${::apt::params::provider} -y install ${required_packages}", | 
|  | 42 | +      logoutput   => 'on_failure', | 
|  | 43 | +      refreshonly => true, | 
|  | 44 | +      tries       => 3, | 
|  | 45 | +      try_sleep   => 1, | 
|  | 46 | +      before      => $_before, | 
|  | 47 | +    } | 
|  | 48 | +  } | 
|  | 49 | + | 
|  | 50 | +  if $key_server != undef { | 
|  | 51 | +    warning("\$key_server is deprecated and will be removed in the next major release, please use \$key => { 'server' => ${key_server} } instead.") | 
|  | 52 | +  } | 
|  | 53 | + | 
|  | 54 | +  if $key_content != undef { | 
|  | 55 | +    warning("\$key_content is deprecated and will be removed in the next major release, please use \$key => { 'content' => ${key_content} } instead.") | 
|  | 56 | +  } | 
|  | 57 | + | 
|  | 58 | +  if $key_source != undef { | 
|  | 59 | +    warning("\$key_source is deprecated and will be removed in the next major release, please use \$key => { 'source' => ${key_source} } instead.") | 
|  | 60 | +  } | 
|  | 61 | + | 
|  | 62 | +  if $trusted_source != undef { | 
|  | 63 | +    warning('$trusted_source is deprecated and will be removed in the next major release, please use $allow_unsigned instead.') | 
|  | 64 | +    $_allow_unsigned = $trusted_source | 
|  | 65 | +  } else { | 
|  | 66 | +    $_allow_unsigned = $allow_unsigned | 
|  | 67 | +  } | 
|  | 68 | + | 
|  | 69 | +  if ! $release { | 
|  | 70 | +    $_release = $::apt::params::xfacts['lsbdistcodename'] | 
|  | 71 | +    unless $_release { | 
|  | 72 | +      fail('lsbdistcodename fact not available: release parameter required') | 
|  | 73 | +    } | 
|  | 74 | +  } else { | 
|  | 75 | +    $_release = $release | 
| 21 | 76 |   } | 
| 22 | 77 | 
 | 
| 23 | 78 |   if $ensure == 'present' and ! $location { | 
| 24 | 79 |     fail('cannot create a source entry without specifying a location') | 
| 25 | 80 |   } | 
| 26 | 81 | 
 | 
| 27 |  | -  $_before = Apt::Setting["list-${title}"] | 
| 28 |  | -  $_include = merge($::apt::include_defaults, $include) | 
|  | 82 | +  if $include_src != undef and $include_deb != undef { | 
|  | 83 | +    $_deprecated_include = { | 
|  | 84 | +      'src' => $include_src, | 
|  | 85 | +      'deb' => $include_deb, | 
|  | 86 | +    } | 
|  | 87 | +  } elsif $include_src != undef { | 
|  | 88 | +    $_deprecated_include = { 'src' => $include_src } | 
|  | 89 | +  } elsif $include_deb != undef { | 
|  | 90 | +    $_deprecated_include = { 'deb' => $include_deb } | 
|  | 91 | +  } else { | 
|  | 92 | +    $_deprecated_include = {} | 
|  | 93 | +  } | 
|  | 94 | + | 
|  | 95 | +  $_include = merge($::apt::params::include_defaults, $_deprecated_include, $include) | 
|  | 96 | + | 
|  | 97 | +  $_deprecated_key = { | 
|  | 98 | +    'key_server'  => $key_server, | 
|  | 99 | +    'key_content' => $key_content, | 
|  | 100 | +    'key_source'  => $key_source, | 
|  | 101 | +  } | 
| 29 | 102 | 
 | 
| 30 | 103 |   if $key { | 
| 31 | 104 |     if is_hash($key) { | 
| 32 | 105 |       unless $key['id'] { | 
| 33 | 106 |         fail('key hash must contain at least an id entry') | 
| 34 | 107 |       } | 
| 35 |  | -      $_key = merge($::apt::source_key_defaults, $key) | 
|  | 108 | +      $_key = merge($::apt::params::source_key_defaults, $_deprecated_key, $key) | 
| 36 | 109 |     } else { | 
| 37 | 110 |       validate_string($key) | 
| 38 |  | -      $_key = $key | 
|  | 111 | +      $_key = merge( { 'id' => $key }, $_deprecated_key) | 
| 39 | 112 |     } | 
| 40 | 113 |   } | 
| 41 | 114 | 
 | 
|  | 
| 66 | 139 |   if $key and ($ensure == 'present') { | 
| 67 | 140 |     if is_hash($_key) { | 
| 68 | 141 |       apt::key { "Add key: ${$_key['id']} from Apt::Source ${title}": | 
| 69 |  | -        ensure  => present, | 
| 70 |  | -        id      => $_key['id'], | 
| 71 |  | -        server  => $_key['server'], | 
| 72 |  | -        content => $_key['content'], | 
| 73 |  | -        source  => $_key['source'], | 
| 74 |  | -        options => $_key['options'], | 
| 75 |  | -        before  => $_before, | 
| 76 |  | -      } | 
| 77 |  | -    } else { | 
| 78 |  | -      apt::key { "Add key: ${_key} from Apt::Source ${title}": | 
| 79 |  | -        ensure => present, | 
| 80 |  | -        id     => $_key, | 
| 81 |  | -        before => $_before, | 
|  | 142 | +        ensure      => present, | 
|  | 143 | +        id          => $_key['id'], | 
|  | 144 | +        server      => $_key['server'], | 
|  | 145 | +        content     => $_key['content'], | 
|  | 146 | +        source      => $_key['source'], | 
|  | 147 | +        options     => $_key['options'], | 
|  | 148 | +        key_server  => $_key['key_server'], | 
|  | 149 | +        key_content => $_key['key_content'], | 
|  | 150 | +        key_source  => $_key['key_source'], | 
|  | 151 | +        before      => $_before, | 
| 82 | 152 |       } | 
| 83 | 153 |     } | 
| 84 | 154 |   } | 
|  | 
0 commit comments