simp-beaker-helpers 1.18.6 → 1.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0db7d012be090122587cb25885faf36c1d8717d3c9f6e86714adb558512ea280
4
- data.tar.gz: 7a4e2a70a8fb671f140bc9f44598898eb95c4b7eef3b43f4fd6ea85ed7901bfe
3
+ metadata.gz: de616faf054a99c350f9a6241296669ce630fff0d6d622fd60c9a36ea2e2a036
4
+ data.tar.gz: cdbc0d01a23a79472998e87ccbd850e5a32f4e56aa04b623c1b05c050254df92
5
5
  SHA512:
6
- metadata.gz: 9262da4359d9ca19e65349c3ba6f44f55323167aea9343ae93f8222e70145d6264d90403de65b3874bbe1ebd59e11f826bc9f65c3f2fdaa4e15ccb492a2c42eb
7
- data.tar.gz: cf24bab582eb4c373b46d6c7e597e5e690d1a163c49b85d816ef4926ea78959959acaa81c215a5ee6f1678a01271a3dac3ca66d77de1e51707775d93ec9de093
6
+ metadata.gz: 9539f40a2fbf685e6d3a4763a69aaf5670d80e73a695eab4c029d294523612e847ca16132119a459d4381508e267642065c9f7ff99198ddabe8e4008562d7674
7
+ data.tar.gz: b6ed70ae00c28cfe70705cc704df6206318734ae941ef5848751caa8a37506a1e6a4432fd324a7752aae5dfdcd5fc38baa0e029ae3e17fd5cb6094649432b29e
@@ -0,0 +1,8 @@
1
+ ---
2
+ fixtures:
3
+ repositories:
4
+ fips: https://github.com/simp/pupmod-simp-fips
5
+ augeasproviders_core: https://github.com/simp/augeasproviders_core
6
+ augeasproviders_grub: https://github.com/simp/augeasproviders_grub
7
+ simplib: https://github.com/simp/pupmod-simp-simplib
8
+ stdlib: https://github.com/simp/puppetlabs-stdlib
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  fixtures:
3
- # Needed for Hiera v5 to work
4
- forge_modules:
5
- compliance_markup: "simp/compliance_markup"
6
3
  repositories:
7
- stdlib: "https://github.com/simp/puppetlabs-stdlib"
4
+ stdlib: https://github.com/simp/puppetlabs-stdlib
5
+ compliance_markup: https://github.com/simp/pupmod-simp-compliance_markup
8
6
 
@@ -20,16 +20,6 @@
20
20
  - 'rm -rf pkg/ || :'
21
21
  - bundle check || rm -f Gemfile.lock && ("${BUNDLER_INSTALL[@]}" --local || "${BUNDLER_INSTALL[@]}")
22
22
 
23
-
24
- .validation_checks: &validation_checks
25
- script:
26
- - bundle exec rake syntax
27
- - bundle exec rake check:dot_underscore
28
- - bundle exec rake check:test_file
29
- - bundle exec rake lint
30
- # - bundle exec rake pkg:check_version
31
- # - bundle exec rake pkg:compare_latest_tag
32
-
33
23
  .spec_tests: &spec_tests
34
24
  script:
35
25
  - bundle exec rake spec
@@ -42,43 +32,8 @@
42
32
  - $SIMP_FULL_MATRIX
43
33
 
44
34
  stages:
45
- - validation
46
35
  - unit
47
36
  - acceptance
48
- - deploy
49
-
50
- # Puppet 4.10 for PE 2017.2 support (EOL:2018-02-21)
51
- # See: https://puppet.com/misc/puppet-enterprise-lifecycle
52
- # --------------------------------------
53
- 2_1-validation:
54
- stage: validation
55
- tags:
56
- - docker
57
- image: ruby:2.1
58
- <<: *cache_bundler
59
- <<: *setup_bundler_env
60
- <<: *validation_checks
61
-
62
- 2_1-unit:
63
- stage: unit
64
- tags:
65
- - docker
66
- image: ruby:2.1
67
- <<: *cache_bundler
68
- <<: *setup_bundler_env
69
- <<: *spec_tests
70
-
71
- # Puppet 4.10 for PE 2017.2 support (EOL:2018-02-21)
72
- # See: https://puppet.com/misc/puppet-enterprise-lifecycle
73
- # --------------------------------------
74
- 2_4-validation:
75
- stage: validation
76
- tags:
77
- - docker
78
- image: ruby:2.4
79
- <<: *cache_bundler
80
- <<: *setup_bundler_env
81
- <<: *validation_checks
82
37
 
83
38
  2_4-unit:
84
39
  stage: unit
@@ -127,7 +82,7 @@ fips_from_fixtures:
127
82
  - bundle exec rake spec_clean
128
83
  - bundle exec rake beaker:suites[fips_from_fixtures]
129
84
 
130
- puppet_collections:
85
+ puppet5_collections:
131
86
  stage: acceptance
132
87
  tags:
133
88
  - beaker
@@ -135,7 +90,18 @@ puppet_collections:
135
90
  <<: *setup_bundler_env
136
91
  variables:
137
92
  PUPPET_VERSION: '~> 5.3'
138
- BEAKER_PUPPET_COLLECTION: 'puppet5'
93
+ script:
94
+ - bundle exec rake spec_clean
95
+ - bundle exec rake beaker:suites[puppet_collections]
96
+
97
+ puppet6_collections:
98
+ stage: acceptance
99
+ tags:
100
+ - beaker
101
+ <<: *cache_bundler
102
+ <<: *setup_bundler_env
103
+ variables:
104
+ BEAKER_PUPPET_COLLECTION: 'puppet6'
139
105
  script:
140
106
  - bundle exec rake spec_clean
141
107
  - bundle exec rake beaker:suites[puppet_collections]
@@ -152,6 +118,8 @@ windows:
152
118
 
153
119
  snapshot:
154
120
  stage: acceptance
121
+ # This is prone to breakage in the underlying system
122
+ allow_failure: true
155
123
  tags:
156
124
  - beaker
157
125
  <<: *cache_bundler
@@ -1,3 +1,31 @@
1
+ ### 1.19.1 / 2020-12-02
2
+ * Fixed:
3
+ * Bumped the core puppet version to 6.X
4
+ * Fixed the file_content_on method
5
+ * Removed EL 6 support from the tests since the core repos are defunct
6
+ * Started removing some of the puppet 4 tests
7
+
8
+ ### 1.19.0 / 2020-09-30
9
+ * Fixed:
10
+ * rsync handling has a better check to see if rsync actually works prior to
11
+ using it. The old method had the potential to try and use rsync even if it
12
+ no longer worked (FIPS flipped for example).
13
+ * Changed:
14
+ * Migrated from PackageCloud to the SIMP download server for updates moving
15
+ forward.
16
+
17
+ ### 1.18.9 / 2020-08-04
18
+ * Change windows 2012r2 VM to work around issues where the old image had
19
+ duplicate ports trying to be opened
20
+ * Increase test CA bits to 4096
21
+
22
+ ### 1.18.8 / 2020-07-14
23
+ * Allow the beaker version to be pinned by environment variable
24
+
25
+ ### 1.18.7 / 2020-07-07
26
+ * Fix host reference bug when switching to FIPS mode
27
+ * Ensure that net-ssh 6+ can access older FIPS systems
28
+
1
29
  ### 1.18.6 / 2020-06-24
2
30
  * Fix Vagrant snapshot issues
3
31
 
data/Gemfile CHANGED
@@ -13,11 +13,38 @@ gem 'bundler'
13
13
  gem 'rake'
14
14
 
15
15
  group :system_tests do
16
- gem 'beaker'
16
+ beaker_gem_options = ENV.fetch('BEAKER_GEM_OPTIONS', ['>= 4.17.0', '< 5.0.0'])
17
+
18
+ if "#{beaker_gem_options}".include?(':')
19
+ # Just pass in BEAKER_GEM_OPTIONS as a string that would represent the usual
20
+ # hash of options.
21
+ #
22
+ # Something like: BEAKER_GEM_OPTIONS=':git => "https://my.repo/beaker.git", :tag => "1.2.3"'
23
+ #
24
+ # No, this isn't robust, but it's not really an 'every day' sort of thing
25
+ # and safer than an `eval`
26
+ begin
27
+ gem 'beaker', Hash[
28
+ beaker_gem_options.split(',').map do |x| # Split passed options on k/v pairs
29
+ x.gsub('"', '').strip.split(/:\s|\s+=>\s+/) # Allow for either format hash keys
30
+ end.map do |k,v|
31
+ [
32
+ k.delete(':').to_sym, # Convert all keys to symbols
33
+ v.strip
34
+ ]
35
+ end
36
+ ] # Convert the whole thing to a valid Hash
37
+ rescue => e
38
+ raise "Invalid BEAKER_GEM_OPTIONS: '#{beaker_gem_options}' => '#{e}'"
39
+ end
40
+ else
41
+ gem 'beaker', beaker_gem_options
42
+ end
43
+
17
44
  gem 'beaker-rspec'
18
45
  gem 'beaker-windows'
19
46
  gem 'net-ssh'
20
- gem 'puppet', ENV.fetch('PUPPET_VERSION', '~> 5.0')
47
+ gem 'puppet', ENV.fetch('PUPPET_VERSION', '~> 6.0')
21
48
  gem 'puppetlabs_spec_helper'
22
49
  gem 'rubocop'
23
50
  gem 'rubocop-rspec'
@@ -93,7 +93,7 @@ emailAddress = optional
93
93
 
94
94
  ####################################################################
95
95
  [ req ]
96
- default_bits = 2048
96
+ default_bits = 4096
97
97
  default_keyfile = privkey.pem
98
98
  distinguished_name = req_distinguished_name
99
99
  attributes = req_attributes
@@ -96,7 +96,7 @@ emailAddress = optional
96
96
 
97
97
  ####################################################################
98
98
  [ req ]
99
- default_bits = 2048
99
+ default_bits = 4096
100
100
  default_keyfile = privkey.pem
101
101
  distinguished_name = req_distinguished_name
102
102
  attributes = req_attributes
@@ -30,16 +30,38 @@ module Simp::BeakerHelpers
30
30
  ).output.strip == '1'
31
31
  end
32
32
 
33
+ def rsync_functional_on?(sut)
34
+ # We have to check if rsync *still* works otherwise
35
+ return false if (@rsync_functional == false)
36
+
37
+ require 'facter'
38
+ unless Facter::Util::Resolution.which('rsync')
39
+ @rsync_functional = false
40
+ return @rsync_functional
41
+ end
42
+
43
+ require 'tempfile'
44
+
45
+ testfile = Tempfile.new('rsync_check')
46
+ testfile.puts('test')
47
+ testfile.close
48
+
49
+ begin
50
+ rsync_to(sut, testfile.path, sut.system_temp_path)
51
+ rescue Beaker::Host::CommandFailure
52
+ @rsync_functional = false
53
+ return false
54
+ ensure
55
+ testfile.unlink
56
+ end
57
+
58
+ return true
59
+ end
60
+
33
61
  # Figure out the best method to copy files to a host and use it
34
62
  #
35
63
  # Will create the directories leading up to the target if they don't exist
36
64
  def copy_to(sut, src, dest, opts={})
37
- unless fips_enabled(sut) || @has_rsync
38
- %x{which rsync 2>/dev/null}.strip
39
-
40
- @has_rsync = !$?.nil? && $?.success?
41
- end
42
-
43
65
  sut.mkdir_p(File.dirname(dest))
44
66
 
45
67
  if sut[:hypervisor] == 'docker'
@@ -57,7 +79,7 @@ module Simp::BeakerHelpers
57
79
  container_id = sut.host_hash[:docker_container_id]
58
80
  end
59
81
  %x(tar #{exclude_list.join(' ')} -hcf - -C "#{File.dirname(src)}" "#{File.basename(src)}" | docker exec -i "#{container_id}" tar -C "#{dest}" -xf -)
60
- elsif @has_rsync && sut.check_for_command('rsync')
82
+ elsif rsync_functional_on?(sut)
61
83
  # This makes rsync_to work like beaker and scp usually do
62
84
  exclude_hack = %(__-__' -L --exclude '__-__)
63
85
 
@@ -297,7 +319,7 @@ module Simp::BeakerHelpers
297
319
  # TODO Use simp-ssh Puppet module appropriately (i.e., in a fashion
298
320
  # that doesn't break vagrant access and is appropriate for
299
321
  # typical module tests.)
300
- fips_ssh_ciphers = [ 'aes256-cbc','aes192-cbc','aes128-cbc']
322
+ fips_ssh_ciphers = [ 'aes256-ctr','aes192-ctr','aes128-ctr']
301
323
  on(sut, %(sed -i '/Ciphers /d' /etc/ssh/sshd_config))
302
324
  on(sut, %(echo 'Ciphers #{fips_ssh_ciphers.join(',')}' >> /etc/ssh/sshd_config))
303
325
 
@@ -333,8 +355,8 @@ module Simp::BeakerHelpers
333
355
  # Hopefully, Vagrant will update the used ciphers at some point but who
334
356
  # knows when that will be
335
357
  opensshserver_config = '/etc/crypto-policies/back-ends/opensshserver.config'
336
- if file_exists_on(host, opensshserver_config)
337
- on(host, "sed --follow-symlinks -i 's/PubkeyAcceptedKeyTypes=/PubkeyAcceptedKeyTypes=ssh-rsa,/' #{opensshserver_config}")
358
+ if file_exists_on(sut, opensshserver_config)
359
+ on(sut, "sed --follow-symlinks -i 's/PubkeyAcceptedKeyTypes=/PubkeyAcceptedKeyTypes=ssh-rsa,/' #{opensshserver_config}")
338
360
  end
339
361
 
340
362
  sut.reboot
@@ -584,7 +606,7 @@ module Simp::BeakerHelpers
584
606
  end
585
607
 
586
608
  def sosreport(sut, dest='sosreports')
587
- sut.install_package('sos')
609
+ on(sut, 'puppet resource package sos ensure=latest')
588
610
  on(sut, 'sosreport --batch')
589
611
 
590
612
  files = on(sut, 'ls /var/tmp/sosreport* /tmp/sosreport* 2>/dev/null', :accept_all_exit_codes => true).output.lines.map(&:strip)
@@ -864,10 +886,10 @@ done
864
886
  file_content = nil
865
887
 
866
888
  if file_exists_on(sut, path)
867
- Dir.mktempdir do |dir|
868
- scp_from(host, path, dir)
889
+ Dir.mktmpdir do |dir|
890
+ scp_from(sut, path, dir)
869
891
 
870
- file_content = File.read(File.basename(path))
892
+ file_content = File.read(File.join(dir,File.basename(path)))
871
893
  end
872
894
  end
873
895
 
@@ -1170,62 +1192,73 @@ done
1170
1192
  run_puppet_install_helper(install_info[:puppet_install_type], install_info[:puppet_install_version])
1171
1193
  end
1172
1194
 
1173
- # Configure all SIMP repos on a host and enable all but those listed in the disable list
1195
+ # Configure all SIMP repos on a host and disable all repos in the disable Array
1174
1196
  #
1175
- # @param sut Host on which to configure SIMP repos
1176
- # @param disable List of SIMP repos to disable
1177
- # @raise if disable contains an invalid repo name.
1197
+ # @param sut [Beaker::Host] Host on which to configure SIMP repos
1198
+ # @param disable [Array[String]] List of repos to disable
1199
+ # @raise [StandardError] if disable contains an invalid repo name.
1178
1200
  #
1179
1201
  # Examples:
1180
1202
  # install_simp_repos( myhost ) # install all the repos an enable them.
1181
1203
  # install_simp_repos( myhost, ['simp']) # install the repos but disable the simp repo.
1182
1204
  #
1183
- # Current set of valid SIMP repo names:
1184
- # 'simp'
1185
- # 'simp_deps'
1205
+ # Valid repo names include any repository available on the system.
1186
1206
  #
1187
- def install_simp_repos(sut, disable = [] )
1188
- repos = {
1189
- 'simp' => {
1190
- :baseurl => 'https://packagecloud.io/simp-project/6_X/el/$releasever/$basearch',
1191
- :gpgkey => ['https://raw.githubusercontent.com/NationalSecurityAgency/SIMP/master/GPGKEYS/RPM-GPG-KEY-SIMP',
1192
- 'https://download.simp-project.com/simp/GPGKEYS/RPM-GPG-KEY-SIMP-6'
1193
- ],
1194
- :gpgcheck => 1,
1195
- :sslverify => 1,
1196
- :sslcacert => '/etc/pki/tls/certs/ca-bundle.crt',
1197
- :metadata_expire => 300
1198
- },
1199
- 'simp_deps' => {
1200
- :baseurl => 'https://packagecloud.io/simp-project/6_X_Dependencies/el/$releasever/$basearch',
1201
- :gpgkey => ['https://raw.githubusercontent.com/NationalSecurityAgency/SIMP/master/GPGKEYS/RPM-GPG-KEY-SIMP',
1202
- 'https://download.simp-project.com/simp/GPGKEYS/RPM-GPG-KEY-SIMP-6',
1203
- 'https://yum.puppet.com/RPM-GPG-KEY-puppetlabs',
1204
- 'https://yum.puppet.com/RPM-GPG-KEY-puppet',
1205
- 'https://apt.postgresql.org/pub/repos/yum/RPM-GPG-KEY-PGDG-96',
1206
- 'https://artifacts.elastic.co/GPG-KEY-elasticsearch',
1207
- 'https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana',
1208
- 'https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-$releasever'
1209
- ],
1210
- :gpgcheck => 1,
1211
- :sslverify => 1,
1212
- :sslcacert => '/etc/pki/tls/certs/ca-bundle.crt',
1213
- :metadata_expire => 300
1214
- }
1215
- }
1216
- # Verify that the repos passed to disable are in the list of valid repos
1217
- disable.each { |d|
1218
- unless repos.has_key?(d)
1219
- raise("ERROR: install_simp_repo - disable contains invalid SIMP repo '#{d}'.")
1207
+ # For backwards compatibility purposes, the following translations are
1208
+ # automatically performed:
1209
+ #
1210
+ # * 'simp'
1211
+ # * 'simp-community-simp'
1212
+ #
1213
+ # * 'simp_deps'
1214
+ # * 'simp-community-epel'
1215
+ # * 'simp-community-postgres'
1216
+ # * 'simp-community-puppet'
1217
+ #
1218
+ def install_simp_repos(sut, disable = [])
1219
+ # NOTE: Do *NOT* use puppet in this method since it may not be available yet
1220
+
1221
+ if on(sut, 'rpm -q yum-utils', :accept_all_exit_codes => true).exit_code != 0
1222
+ on(sut, 'yum -y install yum-utils')
1223
+ end
1224
+
1225
+ if on(sut, 'rpm -q simp-release-community', :accept_all_exit_codes => true).exit_code != 0
1226
+ on(sut, 'yum -y install "https://download.simp-project.com/simp-release-community.rpm"')
1227
+ end
1228
+
1229
+ to_disable = disable.dup
1230
+
1231
+ unless to_disable.empty?
1232
+ if to_disable.include?('simp')
1233
+ to_disable.delete('simp')
1234
+ to_disable << 'simp-community-simp'
1220
1235
  end
1221
- }
1222
- repo_manifest = ''
1223
- repos.each { | repo, metadata|
1224
- metadata[:enabled] = disable.include?(repo) ? 0 : 1
1225
- repo_manifest << create_yum_resource(repo, metadata)
1226
- }
1227
- apply_manifest_on(sut, repo_manifest, :catch_failures => true)
1228
- end
1229
- end
1230
1236
 
1237
+ if to_disable.include?('simp_deps')
1238
+ to_disable.delete('simp_deps')
1239
+ to_disable << 'simp-community-epel'
1240
+ to_disable << 'simp-community-postgres'
1241
+ to_disable << 'simp-community-puppet'
1242
+ end
1243
+
1244
+ # NOTE: This --enablerepo enables the repos for listing and is inherited
1245
+ # from YUM. This does not actually "enable" the repos, that would require
1246
+ # the "--enable" option (from yum-config-manager) :-D.
1247
+ #
1248
+ # Note: Certain versions of EL8 do not dump by default and EL7 does not
1249
+ # have the '--dump' option.
1250
+ available_repos = on(sut, %{yum-config-manager --enablerepo="*" || yum-config-manager --enablerepo="*" --dump}).stdout.lines.grep(/\A\[(.+)\]\Z/){|x| $1}
1251
+
1252
+ invalid_repos = (to_disable - available_repos)
1253
+
1254
+ # Verify that the repos passed to disable are in the list of valid repos
1255
+ unless invalid_repos.empty?
1256
+ logger.warn(%{WARN: install_simp_repo - requested repos to disable do not exist on the target system '#{invalid_repos.join("', '")}'.})
1257
+ end
1231
1258
 
1259
+ (to_disable - invalid_repos).each do |repo|
1260
+ on(sut, %{yum-config-manager --disable "#{repo}"})
1261
+ end
1262
+ end
1263
+ end
1264
+ end
@@ -5,7 +5,7 @@ module Simp::BeakerHelpers
5
5
  #
6
6
  # This is done so that we know if some new thing that we're using breaks the
7
7
  # oldest system that we support
8
- DEFAULT_PUPPET_AGENT_VERSION = '~> 5.0'
8
+ DEFAULT_PUPPET_AGENT_VERSION = '~> 6.0'
9
9
 
10
10
  SSG_REPO_URL = ENV['BEAKER_ssg_repo'] || 'https://github.com/ComplianceAsCode/content.git'
11
11
 
@@ -1,5 +1,5 @@
1
1
  module Simp; end
2
2
 
3
3
  module Simp::BeakerHelpers
4
- VERSION = '1.18.6'
4
+ VERSION = '1.19.1'
5
5
  end
@@ -9,18 +9,18 @@ HOSTS:
9
9
  server-el7:
10
10
  roles:
11
11
  - server
12
- - default
13
12
  - master
13
+ - default
14
14
  - el7
15
15
  platform: el-7-x86_64
16
16
  box: centos/7
17
17
  hypervisor: <%= hypervisor %>
18
18
 
19
- server-el6:
19
+ server-el8:
20
20
  roles:
21
- - el6
22
- platform: el-6-x86_64
23
- box: centos/6
21
+ - el8
22
+ platform: el-8-x86_64
23
+ box: centos/8
24
24
  hypervisor: <%= hypervisor %>
25
25
 
26
26
  CONFIG:
@@ -14,8 +14,8 @@ hosts.each do |host|
14
14
  expect(client_puppet_version.split('.').first).to eq(puppet_collection_version)
15
15
  end
16
16
  else
17
- it 'should not be running puppet 5' do
18
- expect(client_puppet_version.split('.').first).to eq '5'
17
+ it 'should be running puppet 6' do
18
+ expect(client_puppet_version.split('.').first).to eq '6'
19
19
  end
20
20
  end
21
21
  end
@@ -2,42 +2,36 @@ require 'spec_helper_acceptance'
2
2
 
3
3
  hosts.each do |host|
4
4
  describe '#write_hieradata_to' do
5
+ expect_failures = false
6
+ if hosts_with_role(hosts, 'el8').include?(host)
7
+ expect_failures = true
8
+ end
5
9
 
6
10
  it 'should install yum utils' do
7
11
  host.install_package('yum-utils')
8
12
  end
9
13
 
10
- context 'defailt settings' do
14
+ context 'default settings' do
11
15
  before(:all) { install_simp_repos(host) }
12
16
 
13
- it 'creates the repo' do
14
- on host, 'test -f /etc/yum.repos.d/simp.repo'
15
- on host, 'test -f /etc/yum.repos.d/simp_deps.repo'
16
- end
17
-
18
17
  it 'enables the correct repos' do
19
- simp6info = on(host, '/usr/bin/yum repolist -v simp | grep ^Repo-status').stdout.strip
20
- expect(simp6info).to match(/.*Repo-status.*enabled.*/)
21
- simp6depsinfo = on(host, 'yum repolist -v simp_deps| grep ^Repo-status').stdout.strip
22
- expect(simp6depsinfo).to match(/.*Repo-status.*enabled.*/)
18
+ skip "#{host} is not supported yet" if expect_failures
19
+ on(host, 'yum -y list simp')
20
+ on(host, 'yum -y list postgresql96')
23
21
  end
24
22
  end
25
23
 
26
24
  context 'when passed a disabled list ' do
27
- before(:all) { install_simp_repos(host, ['simp'] ) }
25
+ before(:all) { install_simp_repos(host, ['simp-community-simp'] ) }
28
26
 
29
- it 'creates the repo' do
30
- on host, 'test -f /etc/yum.repos.d/simp.repo'
31
- on host, 'test -f /etc/yum.repos.d/simp_deps.repo'
27
+ it 'enables the correct repos' do
28
+ skip "#{host} is not supported yet" if expect_failures
29
+ on(host, 'yum -y list postgresql96')
32
30
  end
33
31
 
34
- it 'enables the correct repos' do
35
- simp6info = on(host, 'yum repolist -v simp | grep ^Repo-status').stdout.strip
36
- expect(simp6info).to match(/.*Repo-status.*disabled.*/)
37
- simp6depsinfo = on(host, 'yum repolist -v simp_deps| grep ^Repo-status').stdout.strip
38
- expect(simp6depsinfo).to match(/.*Repo-status.*enabled.*/)
32
+ it 'disables the correct repos' do
33
+ on(host, 'yum -y list simp', :acceptable_exit_codes => [1])
39
34
  end
40
35
  end
41
-
42
36
  end
43
37
  end
@@ -31,7 +31,10 @@ ScrubFixtures.new
31
31
  ENV['BEAKER_fips'] = 'yes'
32
32
  ENV['FIXTURES_YML'] = alt_fixtures
33
33
 
34
+ beaker_gem_options = ENV['BEAKER_GEM_OPTIONS']
35
+
34
36
  Bundler.with_clean_env{
37
+ ENV['BEAKER_GEM_OPTIONS'] = beaker_gem_options
35
38
  ENV['FIXTURES_YML'] = alt_fixtures
36
39
 
37
40
  %x{bundle exec rake spec_prep}
@@ -1,24 +1,22 @@
1
- # This needs to be done so that we actually bring in a collection at the start
2
- # of the run
3
- #
4
- # Choosing an arbitrary number in the middle of 5 so that we're not fooled by
5
- # edge cases
6
- #
7
- ENV['PUPPET_VERSION'] = '5.1'
8
-
9
1
  require 'spec_helper_acceptance'
10
2
 
11
- Bundler.with_clean_env{
12
- %x{bundle exec rake spec_prep}
13
- }
3
+ unless ENV['PUPPET_VERSION'] || ENV['BEAKER_PUPPET_COLLECTION']
4
+ fail('You must set either PUPPET_VERSION or BEAKER_PUPPET_COLLECTION as an environment variable')
5
+ end
6
+
7
+ if ENV['BEAKER_PUPPET_COLLECTION']
8
+ target_version = ENV['BEAKER_PUPPET_COLLECTION'][/(\d+)$/,1]
9
+ elsif ENV['PUPPET_VERSION']
10
+ target_version = ENV['PUPPET_VERSION'].split('.').first
11
+ end
14
12
 
15
13
  hosts.each do |host|
16
14
  describe 'make sure puppet version is valid' do
17
15
  context "on #{host}" do
18
16
  client_puppet_version = on(host, 'puppet --version').output.strip
19
17
 
20
- it "should be running puppet version #{ENV['PUPPET_VERSION']}}" do
21
- expect(Gem::Version.new(client_puppet_version)).to be >= Gem::Version.new(ENV['PUPPET_VERSION'])
18
+ it "should be running puppet version #{target_version}" do
19
+ expect(Gem::Version.new(client_puppet_version)).to be >= Gem::Version.new(target_version)
22
20
  end
23
21
  end
24
22
  end
@@ -10,12 +10,14 @@ HOSTS:
10
10
  roles:
11
11
  - windows
12
12
  platform: windows-server-amd64
13
- box: opentable/win-2012r2-standard-amd64-nocm # VBOX ONLY
13
+ box: devopsgroup-io/windows_server-2012r2-standard-amd64-nocm
14
14
  hypervisor: <%= hypervisor %>
15
15
  vagrant_memsize: 2048
16
16
  vagrant_cpus: 2
17
17
  user: vagrant
18
18
  is_cygwin: false
19
+ ssh:
20
+ host_key: ssh-dss
19
21
 
20
22
  el7:
21
23
  roles:
@@ -103,21 +103,11 @@ describe 'Simp::BeakerHelpers' do
103
103
  end
104
104
 
105
105
  it 'uses defaults when no environment variables are set' do
106
- expect( @helper.get_puppet_install_info[:puppet_install_version] ).to match(/^5\./)
107
- expect( @helper.get_puppet_install_info[:puppet_collection] ).to eq('puppet5')
106
+ expect( @helper.get_puppet_install_info[:puppet_install_version] ).to match(/^6\./)
107
+ expect( @helper.get_puppet_install_info[:puppet_collection] ).to eq('puppet6')
108
108
  expect( @helper.get_puppet_install_info[:puppet_install_type] ).to eq('agent')
109
109
  end
110
110
 
111
- it 'extracts info from PUPPET_INSTALL_VERSION for Puppet 4' do
112
- ENV['PUPPET_INSTALL_VERSION']= '4.10.5'
113
- expected = {
114
- :puppet_install_version => '1.10.5',
115
- :puppet_collection => nil,
116
- :puppet_install_type => 'agent'
117
- }
118
- expect( @helper.get_puppet_install_info ).to eq expected
119
- end
120
-
121
111
  it 'extracts info from PUPPET_INSTALL_VERSION for Puppet 5' do
122
112
  allow(@helper).to receive(:`).with('gem search -ra -e puppet').and_return(gem_search_results)
123
113
  ENV['PUPPET_INSTALL_VERSION']= '5.5.0'
@@ -153,26 +143,6 @@ describe 'Simp::BeakerHelpers' do
153
143
  expect( @helper.get_puppet_install_info ).to eq expected
154
144
  end
155
145
 
156
- it 'extracts info from BEAKER_PUPPET_AGENT_VERSION' do
157
- ENV['BEAKER_PUPPET_AGENT_VERSION']= '4.10.5'
158
- expected = {
159
- :puppet_install_version => '1.10.5',
160
- :puppet_collection => nil,
161
- :puppet_install_type => 'agent'
162
- }
163
- expect( @helper.get_puppet_install_info ).to eq expected
164
- end
165
-
166
- it 'extracts info from PUPPET_VERSION' do
167
- ENV['PUPPET_VERSION']= '4.10.5'
168
- expected = {
169
- :puppet_install_version => '1.10.5',
170
- :puppet_collection => nil,
171
- :puppet_install_type => 'agent'
172
- }
173
- expect( @helper.get_puppet_install_info ).to eq expected
174
- end
175
-
176
146
  it 'extracts info from BEAKER_PUPPET_COLLECTION' do
177
147
  allow(@helper).to receive(:`).with('gem search -ra -e puppet').and_return(gem_search_results)
178
148
  ENV['BEAKER_PUPPET_COLLECTION']= 'puppet5'
@@ -198,9 +168,9 @@ describe 'Simp::BeakerHelpers' do
198
168
  it 'extracts info from PUPPET_INSTALL_TYPE' do
199
169
  ENV['PUPPET_INSTALL_TYPE'] = 'pe'
200
170
 
201
- expect( @helper.get_puppet_install_info[:puppet_collection] ).to eq('puppet5')
171
+ expect( @helper.get_puppet_install_info[:puppet_collection] ).to eq('puppet6')
202
172
  expect( @helper.get_puppet_install_info[:puppet_install_type] ).to eq('pe')
203
- expect( @helper.get_puppet_install_info[:puppet_install_version] ).to match(/^5\./)
173
+ expect( @helper.get_puppet_install_info[:puppet_install_version] ).to match(/^6\./)
204
174
  end
205
175
 
206
176
  it 'fails when BEAKER_PUPPET_COLLECTION is invalid' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simp-beaker-helpers
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.18.6
4
+ version: 1.19.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Tessmer
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-06-25 00:00:00.000000000 Z
12
+ date: 2020-12-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: beaker
@@ -161,6 +161,7 @@ executables: []
161
161
  extensions: []
162
162
  extra_rdoc_files: []
163
163
  files:
164
+ - ".fips_fixtures"
164
165
  - ".fixtures.yml"
165
166
  - ".gitignore"
166
167
  - ".gitlab-ci.yml"
@@ -203,7 +204,6 @@ files:
203
204
  - spec/acceptance/suites/offline/nodesets/default.yml
204
205
  - spec/acceptance/suites/puppet_collections/00_default_spec.rb
205
206
  - spec/acceptance/suites/puppet_collections/metadata.yml
206
- - spec/acceptance/suites/puppet_collections/nodesets/default.yml
207
207
  - spec/acceptance/suites/snapshot/00_snapshot_test_spec.rb
208
208
  - spec/acceptance/suites/snapshot/10_general_usage_spec.rb
209
209
  - spec/acceptance/suites/snapshot/nodesets
@@ -235,37 +235,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
235
235
  - !ruby/object:Gem::Version
236
236
  version: '0'
237
237
  requirements: []
238
- rubygems_version: 3.0.6
238
+ rubygems_version: 3.0.8
239
239
  signing_key:
240
240
  specification_version: 4
241
241
  summary: beaker helper methods for SIMP
242
- test_files:
243
- - spec/acceptance/nodesets/default.yml
244
- - spec/acceptance/suites/default/check_puppet_version_spec.rb
245
- - spec/acceptance/suites/default/enable_fips_spec.rb
246
- - spec/acceptance/suites/default/fixture_modules_spec.rb
247
- - spec/acceptance/suites/default/install_simp_deps_repo_spec.rb
248
- - spec/acceptance/suites/default/nodesets
249
- - spec/acceptance/suites/default/pki_tests_spec.rb
250
- - spec/acceptance/suites/default/set_hieradata_on_spec.rb
251
- - spec/acceptance/suites/default/write_hieradata_to_spec.rb
252
- - spec/acceptance/suites/fips_from_fixtures/00_default_spec.rb
253
- - spec/acceptance/suites/fips_from_fixtures/metadata.yml
254
- - spec/acceptance/suites/fips_from_fixtures/nodesets
255
- - spec/acceptance/suites/offline/00_default_spec.rb
256
- - spec/acceptance/suites/offline/README
257
- - spec/acceptance/suites/offline/nodesets/default.yml
258
- - spec/acceptance/suites/puppet_collections/00_default_spec.rb
259
- - spec/acceptance/suites/puppet_collections/metadata.yml
260
- - spec/acceptance/suites/puppet_collections/nodesets/default.yml
261
- - spec/acceptance/suites/snapshot/00_snapshot_test_spec.rb
262
- - spec/acceptance/suites/snapshot/10_general_usage_spec.rb
263
- - spec/acceptance/suites/snapshot/nodesets
264
- - spec/acceptance/suites/windows/00_default_spec.rb
265
- - spec/acceptance/suites/windows/metadata.yml
266
- - spec/acceptance/suites/windows/nodesets/default.yml
267
- - spec/acceptance/suites/windows/nodesets/win2016.yml
268
- - spec/acceptance/suites/windows/nodesets/win2019.yml
269
- - spec/lib/simp/beaker_helpers_spec.rb
270
- - spec/spec_helper.rb
271
- - spec/spec_helper_acceptance.rb
242
+ test_files: []
@@ -1,30 +0,0 @@
1
- <%
2
- if ENV['BEAKER_HYPERVISOR']
3
- hypervisor = ENV['BEAKER_HYPERVISOR']
4
- else
5
- hypervisor = 'vagrant'
6
- end
7
- -%>
8
- HOSTS:
9
- server-el7:
10
- roles:
11
- - server
12
- - default
13
- - master
14
- - el7
15
- platform: el-7-x86_64
16
- box: centos/7
17
- hypervisor: <%= hypervisor %>
18
-
19
- server-el6:
20
- roles:
21
- - el6
22
- platform: el-6-x86_64
23
- box: centos/6
24
- hypervisor: <%= hypervisor %>
25
-
26
- CONFIG:
27
- log_level: verbose
28
- type: aio
29
- puppet_collection: puppet5
30
- vagrant_memsize: 256