From 0ae12e212f96ba766cf56fb1bac3c5fac008ced2 Mon Sep 17 00:00:00 2001 From: Dennis Hoppe Date: Mon, 27 Apr 2020 11:00:12 +0200 Subject: [PATCH 1/3] Remove unnecessary dependencies --- .fixtures.yml | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/.fixtures.yml b/.fixtures.yml index 89592c6..0cc0000 100644 --- a/.fixtures.yml +++ b/.fixtures.yml @@ -1,11 +1,4 @@ --- fixtures: repositories: - facts: 'git://github.com/puppetlabs/puppetlabs-facts.git' - puppet_agent: 'git://github.com/puppetlabs/puppetlabs-puppet_agent.git' - provision: 'git://github.com/puppetlabs/provision.git' - registry: 'git://github.com/puppetlabs/puppetlabs-registry.git' - translate: 'git://github.com/puppetlabs/puppetlabs-translate.git' - stdlib: 'git://github.com/puppetlabs/puppetlabs-stdlib.git' - symlinks: - chrony: "#{source_dir}" + stdlib: https://github.com/puppetlabs/puppetlabs-stdlib.git From d094f1245247b65a385b6af3cc102bc008db78cd Mon Sep 17 00:00:00 2001 From: Dennis Hoppe Date: Mon, 27 Apr 2020 11:01:22 +0200 Subject: [PATCH 2/3] Remove unnecessary inherits inherits is confusing and against the style guide. In `config.pp,` the missing parameters are added and all the parameters are now alphabetically ordered. --- manifests/config.pp | 35 +++++++++++++++++++++-------------- manifests/install.pp | 2 +- manifests/service.pp | 2 +- 3 files changed, 23 insertions(+), 16 deletions(-) diff --git a/manifests/config.pp b/manifests/config.pp index fa3d785..44c57b0 100644 --- a/manifests/config.pp +++ b/manifests/config.pp @@ -3,34 +3,41 @@ # @api private class chrony::config ( $bindcmdaddress = $chrony::bindcmdaddress, - $cmdport = $chrony::cmdport, + $chrony_password = $chrony::chrony_password, + $clientlog = $chrony::clientlog, + $clientloglimit = $chrony::clientloglimit, $cmdacl = $chrony::cmdacl, + $cmdport = $chrony::cmdport, $commandkey = $chrony::commandkey, $config = $chrony::config, - $config_template = $chrony::config_template, $config_keys = $chrony::config_keys, - $config_keys_template = $chrony::config_keys_template, - $config_keys_owner = $chrony::config_keys_owner, $config_keys_group = $chrony::config_keys_group, - $config_keys_mode = $chrony::config_keys_mode, $config_keys_manage = $chrony::config_keys_manage, - $chrony_password = $chrony::chrony_password, + $config_keys_mode = $chrony::config_keys_mode, + $config_keys_owner = $chrony::config_keys_owner, + $config_keys_template = $chrony::config_keys_template, + $config_template = $chrony::config_template, $keys = $chrony::keys, + $leapsecmode = $chrony::leapsecmode, + $leapsectz = $chrony::leapsectz, + $local_stratum = $chrony::local_stratum, + $lock_all = $chrony::lock_all, $log_options = $chrony::log_options, - $refclocks = $chrony::refclocks, $mailonchange = $chrony::mailonchange, - $threshold = $chrony::threshold, - $lock_all = $chrony::lock_all, + $makestep_seconds = $chrony::makestep_seconds, + $makestep_updates = $chrony::makestep_updates, + $maxslewrate = $chrony::maxslewrate, $peers = $chrony::peers, - $servers = $chrony::servers, $pools = $chrony::pools, $port = $chrony::port, - $leapsecmode = $chrony::leapsecmode, - $leapsectz = $chrony::leapsectz, - $maxslewrate = $chrony::maxslewrate, + $queryhosts = $chrony::queryhosts, + $refclocks = $chrony::refclocks, + $rtconutc = $chrony::rtconutc, + $servers = $chrony::servers, $smoothtime = $chrony::smoothtime, $stratumweight = $chrony::stratumweight, -) inherits chrony { + $threshold = $chrony::threshold, +) { file { $config: ensure => file, owner => 0, diff --git a/manifests/install.pp b/manifests/install.pp index 0bdfbad..1fd0cfc 100644 --- a/manifests/install.pp +++ b/manifests/install.pp @@ -6,7 +6,7 @@ $package_name = $chrony::package_name, $package_source = $chrony::package_source, $package_provider = $chrony::package_provider, -) inherits chrony { +) { package { 'chrony': ensure => $package_ensure, name => $package_name, diff --git a/manifests/service.pp b/manifests/service.pp index c34979a..f295bd1 100644 --- a/manifests/service.pp +++ b/manifests/service.pp @@ -6,7 +6,7 @@ $service_ensure = $chrony::service_ensure, $service_manage = $chrony::service_manage, $service_name = $chrony::service_name, -) inherits chrony { +) { if $service_manage { service { $service_name: ensure => $service_ensure, From 13e15dc75693365f83f3152f2f3a9b0517c13fbd Mon Sep 17 00:00:00 2001 From: Dennis Hoppe Date: Mon, 27 Apr 2020 10:59:17 +0200 Subject: [PATCH 3/3] Remove Litmus in favour of Beaker --- .sync.yml | 15 +++---- .travis.yml | 56 +++++++++++++++++++++++++ spec/acceptance/class_spec.rb | 12 +++--- spec/spec_helper_acceptance.rb | 77 +--------------------------------- 4 files changed, 73 insertions(+), 87 deletions(-) diff --git a/.sync.yml b/.sync.yml index 183ea3e..4147cb9 100644 --- a/.sync.yml +++ b/.sync.yml @@ -1,12 +1,13 @@ --- .travis.yml: - use_litmus: true - litmus: - provision_list: - - travis_deb - - travis_el6 - - travis_el7 - - ---travis_el + docker_sets: + - set: centos6-64 + - set: 'centos7-64{image=centos:7.6.1810}' + - set: debian8-64 + - set: debian9-64 + - set: debian10-64 + - set: ubuntu1604-64 + - set: ubuntu1804-64 secure: "SDpX6jzritODonEQBqy9g0NbOmk2a9dBfAtZLrvHwM8BTpM2W0Y1daqzIbpzxFiqlNX+6r2GSq9SV70N0A9Ko/uPV9aG/XZx7MsBR9DNVjgqjJSl7+aF88VJfRpOv4PAyTM33JMx91nLFxM/ql61YX+2DXGXrhUkBsMZcdBgQnk=" spec/spec_helper.rb: mock_with: ':rspec' diff --git a/.travis.yml b/.travis.yml index af03cf0..c9d6f61 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,6 +24,62 @@ jobs: - rvm: 2.4.4 bundler_args: --without system_tests development release env: PUPPET_VERSION="~> 5.0" CHECK=build DEPLOY_TO_FORGE=yes + - rvm: 2.5.3 + bundler_args: --without development release + env: BEAKER_PUPPET_COLLECTION=puppet5 BEAKER_setfile=centos6-64 CHECK=beaker + services: docker + - rvm: 2.5.3 + bundler_args: --without development release + env: BEAKER_PUPPET_COLLECTION=puppet6 BEAKER_setfile=centos6-64 CHECK=beaker + services: docker + - rvm: 2.5.3 + bundler_args: --without development release + env: BEAKER_PUPPET_COLLECTION=puppet5 BEAKER_setfile=centos7-64{image=centos:7.6.1810} CHECK=beaker + services: docker + - rvm: 2.5.3 + bundler_args: --without development release + env: BEAKER_PUPPET_COLLECTION=puppet6 BEAKER_setfile=centos7-64{image=centos:7.6.1810} CHECK=beaker + services: docker + - rvm: 2.5.3 + bundler_args: --without development release + env: BEAKER_PUPPET_COLLECTION=puppet5 BEAKER_setfile=debian8-64 CHECK=beaker + services: docker + - rvm: 2.5.3 + bundler_args: --without development release + env: BEAKER_PUPPET_COLLECTION=puppet6 BEAKER_setfile=debian8-64 CHECK=beaker + services: docker + - rvm: 2.5.3 + bundler_args: --without development release + env: BEAKER_PUPPET_COLLECTION=puppet5 BEAKER_setfile=debian9-64 CHECK=beaker + services: docker + - rvm: 2.5.3 + bundler_args: --without development release + env: BEAKER_PUPPET_COLLECTION=puppet6 BEAKER_setfile=debian9-64 CHECK=beaker + services: docker + - rvm: 2.5.3 + bundler_args: --without development release + env: BEAKER_PUPPET_COLLECTION=puppet5 BEAKER_setfile=debian10-64 CHECK=beaker + services: docker + - rvm: 2.5.3 + bundler_args: --without development release + env: BEAKER_PUPPET_COLLECTION=puppet6 BEAKER_setfile=debian10-64 CHECK=beaker + services: docker + - rvm: 2.5.3 + bundler_args: --without development release + env: BEAKER_PUPPET_COLLECTION=puppet5 BEAKER_setfile=ubuntu1604-64 CHECK=beaker + services: docker + - rvm: 2.5.3 + bundler_args: --without development release + env: BEAKER_PUPPET_COLLECTION=puppet6 BEAKER_setfile=ubuntu1604-64 CHECK=beaker + services: docker + - rvm: 2.5.3 + bundler_args: --without development release + env: BEAKER_PUPPET_COLLECTION=puppet5 BEAKER_setfile=ubuntu1804-64 CHECK=beaker + services: docker + - rvm: 2.5.3 + bundler_args: --without development release + env: BEAKER_PUPPET_COLLECTION=puppet6 BEAKER_setfile=ubuntu1804-64 CHECK=beaker + services: docker branches: only: - master diff --git a/spec/acceptance/class_spec.rb b/spec/acceptance/class_spec.rb index adc20e8..e01223f 100644 --- a/spec/acceptance/class_spec.rb +++ b/spec/acceptance/class_spec.rb @@ -1,12 +1,14 @@ require 'spec_helper_acceptance' describe 'chrony class:' do - it 'with defaults' do - pp = <<-MANIFEST - class { 'chrony': } - MANIFEST + it 'works idempotently with no errors' do + pp = <<-EOS + class { 'chrony': } + EOS - idempotent_apply(pp) + # Run it twice and test for idempotency + apply_manifest(pp, catch_failures: true) + apply_manifest(pp, catch_changes: true) end describe package('chrony') do diff --git a/spec/spec_helper_acceptance.rb b/spec/spec_helper_acceptance.rb index 23ffb4c..ffbdaf4 100644 --- a/spec/spec_helper_acceptance.rb +++ b/spec/spec_helper_acceptance.rb @@ -1,76 +1,3 @@ -# frozen_string_literal: true +require 'voxpupuli/acceptance/spec_helper_acceptance' -require 'serverspec' -require 'puppet_litmus' -require 'spec_helper_acceptance_local' if File.file?(File.join(File.dirname(__FILE__), 'spec_helper_acceptance_local.rb')) -include PuppetLitmus - -if ENV['TARGET_HOST'].nil? || ENV['TARGET_HOST'] == 'localhost' - puts 'Running tests against this machine !' - if Gem.win_platform? - set :backend, :cmd - else - set :backend, :exec - end -else - # load inventory - inventory_hash = inventory_hash_from_inventory_file - node_config = config_from_node(inventory_hash, ENV['TARGET_HOST']) - - if target_in_group(inventory_hash, ENV['TARGET_HOST'], 'docker_nodes') - host = ENV['TARGET_HOST'] - set :backend, :docker - set :docker_container, host - elsif target_in_group(inventory_hash, ENV['TARGET_HOST'], 'ssh_nodes') - set :backend, :ssh - options = Net::SSH::Config.for(host) - options[:user] = node_config.dig('ssh', 'user') unless node_config.dig('ssh', 'user').nil? - options[:port] = node_config.dig('ssh', 'port') unless node_config.dig('ssh', 'port').nil? - options[:keys] = node_config.dig('ssh', 'private-key') unless node_config.dig('ssh', 'private-key').nil? - options[:password] = node_config.dig('ssh', 'password') unless node_config.dig('ssh', 'password').nil? - # Support both net-ssh 4 and 5. - # rubocop:disable Metrics/BlockNesting - options[:verify_host_key] = if node_config.dig('ssh', 'host-key-check').nil? - # Fall back to SSH behavior. This variable will only be set in net-ssh 5.3+. - if @strict_host_key_checking.nil? || @strict_host_key_checking - Net::SSH::Verifiers::Always.new - else - # SSH's behavior with StrictHostKeyChecking=no: adds new keys to known_hosts. - # If known_hosts points to /dev/null, then equivalent to :never where it - # accepts any key beacuse they're all new. - Net::SSH::Verifiers::AcceptNewOrLocalTunnel.new - end - elsif node_config.dig('ssh', 'host-key-check') - if defined?(Net::SSH::Verifiers::Always) - Net::SSH::Verifiers::Always.new - else - Net::SSH::Verifiers::Secure.new - end - elsif defined?(Net::SSH::Verifiers::Never) - Net::SSH::Verifiers::Never.new - else - Net::SSH::Verifiers::Null.new - end - set :host, options[:host_name] || host - set :ssh_options, options - set :request_pty, true - elsif target_in_group(inventory_hash, ENV['TARGET_HOST'], 'winrm_nodes') - require 'winrm' - - set :backend, :winrm - set :os, family: 'windows' - user = node_config.dig('winrm', 'user') unless node_config.dig('winrm', 'user').nil? - pass = node_config.dig('winrm', 'password') unless node_config.dig('winrm', 'password').nil? - endpoint = "http://#{ENV['TARGET_HOST']}:5985/wsman" - - opts = { - user: user, - password: pass, - endpoint: endpoint, - operation_timeout: 300 - } - - winrm = WinRM::Connection.new opts - Specinfra.configuration.winrm = winrm - end -end +configure_beaker