Skip to content

Commit

Permalink
Merge pull request #1188 from kenyon/backports-pin-to-codename
Browse files Browse the repository at this point in the history
backports: pin using codename on Debian
  • Loading branch information
amitkarsale authored Nov 27, 2024
2 parents a229aed + b717f97 commit b565ce0
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 86 deletions.
9 changes: 6 additions & 3 deletions manifests/backports.pp
Original file line number Diff line number Diff line change
Expand Up @@ -94,11 +94,14 @@
if $pin =~ Hash {
$_pin = $pin
} elsif $pin =~ Numeric or $pin =~ String {
# apt::source defaults to pinning to origin, but we should pin to release
# for backports
$pin_type = $facts['os']['name'] ? {
'Debian' => 'codename',
'Ubuntu' => 'release',
}

$_pin = {
'priority' => $pin,
'release' => $_release,
$pin_type => $_release,
}
} else {
fail('pin must be either a string, number or hash')
Expand Down
84 changes: 1 addition & 83 deletions spec/classes/apt_backports_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
release: 'bookworm-backports',
pin: {
'priority' => 200,
'release' => 'bookworm-backports'
'codename' => 'bookworm-backports'
},
keyring: '/usr/share/keyrings/debian-archive-keyring.gpg',
)
Expand Down Expand Up @@ -146,88 +146,6 @@
end
end

describe 'linuxmint tests' do
let(:facts) do
{
os: {
family: 'Debian',
name: 'LinuxMint',
release: {
major: '17',
full: '17'
},
distro: {
codename: 'qiana',
id: 'LinuxMint'
}
}
}
end

context 'with all the needed things set' do
let(:params) do
{
location: 'http://archive.ubuntu.com/ubuntu',
release: 'trusty-backports',
repos: 'main universe multiverse restricted',
key: '630239CC130E1A7FD81A27B140976EAF437D05B5'
}
end

it {
expect(subject).to contain_apt__source('backports').with(
location: 'http://archive.ubuntu.com/ubuntu',
key: '630239CC130E1A7FD81A27B140976EAF437D05B5',
repos: 'main universe multiverse restricted',
release: 'trusty-backports',
pin: { 'priority' => 200, 'release' => 'trusty-backports' },
)
}
end

context 'with missing location' do
let(:params) do
{
release: 'trusty-backports',
repos: 'main universe multiverse restricted',
key: '630239CC130E1A7FD81A27B140976EAF437D05B5'
}
end

it do
expect(subject).to raise_error(Puppet::Error, %r{If not on Debian or Ubuntu, you must explicitly pass location, release, and repos})
end
end

context 'with missing release' do
let(:params) do
{
location: 'http://archive.ubuntu.com/ubuntu',
repos: 'main universe multiverse restricted',
key: '630239CC130E1A7FD81A27B140976EAF437D05B5'
}
end

it do
expect(subject).to raise_error(Puppet::Error, %r{If not on Debian or Ubuntu, you must explicitly pass location, release, and repos})
end
end

context 'with missing repos' do
let(:params) do
{
location: 'http://archive.ubuntu.com/ubuntu',
release: 'trusty-backports',
key: '630239CC130E1A7FD81A27B140976EAF437D05B5'
}
end

it do
expect(subject).to raise_error(Puppet::Error, %r{If not on Debian or Ubuntu, you must explicitly pass location, release, and repos})
end
end
end

describe 'validation' do
let(:facts) do
{
Expand Down

0 comments on commit b565ce0

Please sign in to comment.