Skip to content

Commit

Permalink
Merge pull request #98 from alexjfisher/beaker
Browse files Browse the repository at this point in the history
Replace litmus with Beaker
  • Loading branch information
alexjfisher authored Oct 25, 2020
2 parents 029d4f3 + 13e15dc commit d86f45f
Show file tree
Hide file tree
Showing 8 changed files with 97 additions and 111 deletions.
9 changes: 1 addition & 8 deletions .fixtures.yml
Original file line number Diff line number Diff line change
@@ -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
15 changes: 8 additions & 7 deletions .sync.yml
Original file line number Diff line number Diff line change
@@ -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'
56 changes: 56 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
35 changes: 21 additions & 14 deletions manifests/config.pp
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
2 changes: 1 addition & 1 deletion manifests/install.pp
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
2 changes: 1 addition & 1 deletion manifests/service.pp
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
12 changes: 7 additions & 5 deletions spec/acceptance/class_spec.rb
Original file line number Diff line number Diff line change
@@ -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
Expand Down
77 changes: 2 additions & 75 deletions spec/spec_helper_acceptance.rb
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit d86f45f

Please sign in to comment.