simp-beaker-helpers 1.18.6 → 1.19.1

Sign up to get free protection for your applications and to get access to all the features.
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