Browse Source

Get rid of hold

Morgan Haskel 9 years ago
parent
commit
8ef58a456d
3 changed files with 5 additions and 151 deletions
  1. 5 0
      examples/hold.pp
  2. 0 54
      manifests/hold.pp
  3. 0 97
      spec/defines/hold_spec.rb

+ 5 - 0
examples/hold.pp

@@ -0,0 +1,5 @@
+apt::pin { 'hold-vim':
+  packages => 'vim',
+  version  => '2:7.4.488-5',
+  priority => 1001,
+}

+ 0 - 54
manifests/hold.pp

@@ -1,54 +0,0 @@
-# == Define apt::hold
-#
-# This defined type allows you to hold a package based on the version you
-# require. It's implemented by dropping an apt preferences file pinning the
-# package to the version you require.
-#
-# === Parameters
-#
-# [*version*]
-#   The version at which you wish to pin a package.
-#
-#   This can either be the full version, such as 4:2.11.8.1-5, or
-#   a partial version, such as 4:2.11.*
-#
-# [*package*]
-#   _default_: +$title+, the title/name of the resource.
-#
-#   Name of the package that apt is to hold.
-#
-# [*priority*]
-#   _default_: +1001+
-#
-#   The default priority of 1001 causes this preference to always win. By
-#   setting the priority to a number greater than 1000 apt will always install
-#   this version even if it means downgrading the currently installed version.
-define apt::hold(
-  $version,
-  $ensure   = 'present',
-  $package  = $title,
-  $priority = 1001,
-){
-
-  validate_string($title)
-  validate_re($ensure, ['^present|absent',])
-  validate_string($package)
-  validate_string($version)
-
-  if ! is_integer($priority) {
-    fail('$priority must be an integer')
-  }
-
-  if $ensure == 'present' {
-    ::apt::pin { "hold_${package}":
-      packages => $package,
-      version  => $version,
-      priority => $priority,
-    }
-  } else {
-    ::apt::pin { "hold_${package}":
-      ensure => 'absent',
-    }
-  }
-
-}

+ 0 - 97
spec/defines/hold_spec.rb

@@ -1,97 +0,0 @@
-require 'spec_helper'
-describe 'apt::hold' do
-  let :facts do {
-    :osfamily   => 'Debian',
-    :lsbdistid  => 'Debian',
-    :lsbrelease => 'wheezy',
-  } end
-
-  let :title do
-    'vim'
-  end
-
-  let :default_params do {
-    :version => '1.1.1',
-  } end
-
-  describe 'default params' do
-    let :params do default_params end
-
-    it 'creates an apt preferences file' do
-      should contain_apt__pin("hold_#{title}").with({
-        :ensure   => 'present',
-        :packages => title,
-        :version  => params[:version],
-        :priority => 1001,
-      })
-    end
-  end
-
-  describe 'ensure => absent' do
-    let :params do default_params.merge({:ensure => 'absent',}) end
-
-    it 'creates an apt preferences file' do
-
-      should contain_apt__pin("hold_#{title}").with({
-        :ensure   => params[:ensure],
-      })
-    end
-  end
-
-  describe 'priority => 990' do
-    let :params do default_params.merge({:priority => 990,}) end
-
-    it 'creates an apt preferences file' do
-      should contain_apt__pin("hold_#{title}").with({
-        :ensure   => 'present',
-        :packages => title,
-        :version  => params[:version],
-        :priority => params[:priority],
-      })
-    end
-  end
-
-  describe 'package => foo' do
-    let :params do default_params.merge({:package => 'foo'}) end
-
-    it 'creates an apt preferences file' do
-      should contain_apt__pin("hold_foo").with({
-        :ensure   => 'present',
-        :packages => 'foo',
-        :version  => params[:version],
-        :priority => 1001,
-      })
-    end
-  end
-
-
-  describe 'validation' do
-    context 'version => {}' do
-      let :params do { :version => {}, } end
-      it 'should fail' do
-        expect { subject }.to raise_error(/is not a string/)
-      end
-    end
-
-    context 'ensure => bananana' do
-      let :params do default_params.merge({:ensure => 'bananana',}) end
-      it 'should fail' do
-        expect { subject }.to raise_error(/does not match/)
-      end
-    end
-
-    context 'package => []' do
-      let :params do default_params.merge({:package => [],}) end
-      it 'should fail' do
-        expect { subject }.to raise_error(/is not a string/)
-      end
-    end
-
-    context 'priority => bananana' do
-      let :params do default_params.merge({:priority => 'bananana',}) end
-      it 'should fail' do
-        expect { subject }.to raise_error(/must be an integer/)
-      end
-    end
-  end
-end