From bf4daa73b11fe7d7db49a6f863d8e850288c57e8 Mon Sep 17 00:00:00 2001 From: varac Date: Mon, 7 Dec 2015 14:36:48 +0100 Subject: [docs] Add test docs how to use custom facter/puppet version --- README | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README b/README index e08cc5b..410201d 100644 --- a/README +++ b/README @@ -576,6 +576,10 @@ To run pupept rspec tests: bundle install --path vendor/bundle bundle exec rake spec +Using different facter/puppet versions: + + FACTER_GEM_VERSION=1.6.10 PUPPET_GEM_VERSION=2.7.23 bundle install --path vendor/bundle + bundle exec rake spec Licensing ========= -- cgit v1.2.3 From 5381cb7b617a78b75b593a21fe9e0e8356013f6a Mon Sep 17 00:00:00 2001 From: varac Date: Mon, 7 Dec 2015 16:51:20 +0100 Subject: [bug] Fix debian_nextcodename on wheezy hosts I noticed this behaviour because $::debian_nextcodename was "squeeze" on a wheezy host. For debugging, i inserted a "puts codenames" in lib/facter/debian_nextcodename.rb, and it turned out that it was sorted differently on wheezy and jessie hosts: On wheezy: buster stretch jessie wheezy squeeze lenny On jessie: lenny squeeze wheezy jessie stretch buster So i decided to rewrite this so this doesn't happen again. --- lib/facter/debian_nextcodename.rb | 9 ++++----- lib/facter/util/ubuntu.rb | 1 + 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/facter/debian_nextcodename.rb b/lib/facter/debian_nextcodename.rb index 6e994a4..c4c569b 100644 --- a/lib/facter/debian_nextcodename.rb +++ b/lib/facter/debian_nextcodename.rb @@ -8,11 +8,10 @@ def debian_codename_to_next(codename) if codename == "sid" return "experimental" else - codenames = Facter::Util::Debian::CODENAMES.values - i = codenames.index(codename) - if i and i+1 < codenames.count - return codenames[i+1] - end + codenames = Facter::Util::Debian::CODENAMES + versions = Facter::Util::Debian::CODENAMES.invert + current_version = versions[codename] + return codenames[(current_version.to_i + 1).to_s] end end diff --git a/lib/facter/util/ubuntu.rb b/lib/facter/util/ubuntu.rb index 1b2411a..52c15e8 100644 --- a/lib/facter/util/ubuntu.rb +++ b/lib/facter/util/ubuntu.rb @@ -14,6 +14,7 @@ module Facter "utopic", "vivid", "wily", + "xenial" ] end end -- cgit v1.2.3 From 2c656517bd463f23996f50c2e49503909df06173 Mon Sep 17 00:00:00 2001 From: varac Date: Mon, 7 Dec 2015 19:44:14 +0100 Subject: [rspec] extend test for custom facts --- spec/unit/custom_facts_spec.rb | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/spec/unit/custom_facts_spec.rb b/spec/unit/custom_facts_spec.rb index 2d36bd7..9a28d92 100644 --- a/spec/unit/custom_facts_spec.rb +++ b/spec/unit/custom_facts_spec.rb @@ -21,6 +21,14 @@ describe "Facter::Util::Fact" do it "debian_codename = wheezy" do expect(Facter.fact(:debian_codename).value).to eq('wheezy') end + + it "debian_nextcodename = jessie" do + expect(Facter.fact(:debian_nextcodename).value).to eq('jessie') + end + + it "debian_nextrelease = stable" do + expect(Facter.fact(:debian_nextrelease).value).to eq('stable') + end end context 'Debian 8' do @@ -37,20 +45,31 @@ describe "Facter::Util::Fact" do it "debian_codename = jessie" do expect(Facter.fact(:debian_codename).value).to eq('jessie') end + + it "debian_nextcodename = stretch" do + expect(Facter.fact(:debian_nextcodename).value).to eq('stretch') + end + + it "debian_nextrelease = testing" do + expect(Facter.fact(:debian_nextrelease).value).to eq('testing') + end end context 'Ubuntu 15.10' do before do Facter.fact(:operatingsystem).stubs(:value).returns("Ubuntu") Facter.fact(:operatingsystemrelease).stubs(:value).returns("15.10") - Facter.fact(:lsbdistcodename).stubs(:value).returns("Vivid") + Facter.fact(:lsbdistcodename).stubs(:value).returns("wily") end - it "ubuntu_codename = Vivid" do - expect(Facter.fact(:ubuntu_codename).value).to eq('Vivid') + it "ubuntu_codename = wily" do + expect(Facter.fact(:ubuntu_codename).value).to eq('wily') end - end + it "ubuntu_nextcodename = xenial" do + expect(Facter.fact(:ubuntu_nextcodename).value).to eq('xenial') + end + end end describe "Test 'apt_running' fact" do -- cgit v1.2.3 From abe5212b01a9ed889a486795b26e845f56e334a2 Mon Sep 17 00:00:00 2001 From: varac Date: Mon, 7 Dec 2015 21:55:01 +0100 Subject: Fix require path for ubuntu_nextcodename.rb --- lib/facter/ubuntu_nextcodename.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/facter/ubuntu_nextcodename.rb b/lib/facter/ubuntu_nextcodename.rb index ba985bf..dcd1d42 100644 --- a/lib/facter/ubuntu_nextcodename.rb +++ b/lib/facter/ubuntu_nextcodename.rb @@ -1,7 +1,7 @@ begin require 'facter/util/ubuntu' rescue LoadError - require "#{File.dirname(__FILE__)}/util/debian" + require "#{File.dirname(__FILE__)}/util/ubuntu" end def ubuntu_codename_to_next(codename) -- cgit v1.2.3 From d67dfe4beb6cc21660281a5c02a4c4b7a061fa1c Mon Sep 17 00:00:00 2001 From: varac Date: Wed, 9 Dec 2015 16:31:35 +0100 Subject: [feat] Don't run an additional apt-get update When adding custom keys, an additional `apt-get update` would be run before the Exec['refresh_apt'], which don't make sense. --- manifests/init.pp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/manifests/init.pp b/manifests/init.pp index 6732ade..1e7ddd7 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -123,17 +123,14 @@ class apt( mode => '0755', } exec { 'custom_keys': - command => "find ${apt_base_dir}/keys.d -type f -exec apt-key add '{}' \\; && /usr/bin/apt-get update", + command => "find ${apt_base_dir}/keys.d -type f -exec apt-key add '{}' \\;", subscribe => File["${apt_base_dir}/keys.d"], refreshonly => true, + notify => Exec[refresh_apt] } if $custom_preferences != false { Exec['custom_keys'] { - before => [ Exec[refresh_apt], File['apt_config'] ] - } - } else { - Exec['custom_keys'] { - before => Exec[refresh_apt] + before => File['apt_config'] } } } -- cgit v1.2.3 From 275ca2e4cf8759cb723f1d7791515cdcbfbbe836 Mon Sep 17 00:00:00 2001 From: varac Date: Sat, 19 Dec 2015 00:25:05 +0100 Subject: [feat] Enable gitlab CI builds, simplify Gemfile --- .gitlab-ci.yml | 12 ++++++++++++ Gemfile | 28 ++-------------------------- 2 files changed, 14 insertions(+), 26 deletions(-) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..f7b8eca --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,12 @@ +before_script: + - ruby -v + - gem install bundler --no-ri --no-rdoc + - bundle install --jobs $(nproc) "${FLAGS[@]}" + +# don't fail on lint warnings +rspec: + script: + - bundle exec rake lint || /bin/true + - bundle exec rake syntax + - bundle exec rake validate + - bundle exec rake spec diff --git a/Gemfile b/Gemfile index 4033611..8925a90 100644 --- a/Gemfile +++ b/Gemfile @@ -1,37 +1,13 @@ source "https://rubygems.org" -def location_for(place, fake_version = nil) - if place =~ /^(git[:@][^#]*)#(.*)/ - [fake_version, { :git => $1, :branch => $2, :require => false }].compact - elsif place =~ /^file:\/\/(.*)/ - ['>= 0', { :path => File.expand_path($1), :require => false }] - else - [place, { :require => false }] - end -end - - group :test do gem "rake" gem "rspec", '< 3.2.0' + gem "puppet", ENV['PUPPET_VERSION'] || ENV['GEM_PUPPET_VERSION'] || ENV['PUPPET_GEM_VERSION'] || '~> 3.7.0' + gem "facter", ENV['FACTER_VERSION'] || ENV['GEM_FACTER_VERSION'] || ENV['FACTER_GEM_VERSION'] || '~> 2.2.0' gem "rspec-puppet" gem "puppetlabs_spec_helper" gem "metadata-json-lint" gem "rspec-puppet-facts" gem "mocha" end - -facterversion = ENV['GEM_FACTER_VERSION'] || ENV['FACTER_GEM_VERSION'] -if facterversion - gem 'facter', *location_for(facterversion) -else - gem 'facter', :require => false -end - -puppetversion = ENV['GEM_PUPPET_VERSION'] || ENV['PUPPET_GEM_VERSION'] -if puppetversion - gem 'puppet', *location_for(puppetversion) -else - gem 'puppet', :require => false -end - -- cgit v1.2.3 From fa1751c4de0154de7431ea18f57ddaeff329cf73 Mon Sep 17 00:00:00 2001 From: varac Date: Tue, 5 Jan 2016 11:39:57 +0100 Subject: [bug] Deploy preferene snippets before apt_refresh When pinning packages with apt::preferences_snippet, we need to make sure these get deployed before an `apt-get update` is triggered, so pinned packages can get installed in the right way with a single puppetrun. --- manifests/preferences_snippet.pp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/manifests/preferences_snippet.pp b/manifests/preferences_snippet.pp index 0c7b7bb..99feac4 100644 --- a/manifests/preferences_snippet.pp +++ b/manifests/preferences_snippet.pp @@ -31,7 +31,8 @@ define apt::preferences_snippet ( file { "/etc/apt/preferences.d/${name}": ensure => $ensure, - owner => root, group => 0, mode => '0644'; + owner => root, group => 0, mode => '0644', + before => Exec['refresh_apt']; } case $source { -- cgit v1.2.3