beaker-puppet 1.29.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +9 -0
  3. data/.github/workflows/release.yml +3 -3
  4. data/.github/workflows/test.yml +28 -7
  5. data/.github_changelog_generator +3 -0
  6. data/.rubocop.yml +5 -0
  7. data/.rubocop_todo.yml +887 -0
  8. data/CHANGELOG.md +50 -0
  9. data/CODEOWNERS +1 -0
  10. data/Gemfile +5 -20
  11. data/README.md +4 -13
  12. data/Rakefile +64 -169
  13. data/acceptance/config/acceptance-options.rb +3 -3
  14. data/acceptance/config/gem/acceptance-options.rb +8 -8
  15. data/acceptance/config/git/acceptance-options.rb +8 -8
  16. data/acceptance/config/pkg/acceptance-options.rb +7 -7
  17. data/acceptance/pre_suite/gem/install.rb +6 -6
  18. data/acceptance/pre_suite/git/install.rb +22 -22
  19. data/acceptance/pre_suite/pkg/install.rb +3 -3
  20. data/acceptance/tests/backwards_compatible.rb +6 -7
  21. data/acceptance/tests/clone_git_repo_on_test.rb +12 -13
  22. data/acceptance/tests/create_tmpdir_on_test.rb +13 -9
  23. data/acceptance/tests/install_smoke_test.rb +5 -4
  24. data/acceptance/tests/stub_host.rb +11 -10
  25. data/acceptance/tests/web_helpers_test.rb +11 -10
  26. data/beaker-puppet.gemspec +17 -24
  27. data/bin/beaker-puppet +2 -4
  28. data/lib/beaker-puppet/helpers/facter_helpers.rb +9 -7
  29. data/lib/beaker-puppet/helpers/host_helpers.rb +10 -7
  30. data/lib/beaker-puppet/helpers/puppet_helpers.rb +145 -229
  31. data/lib/beaker-puppet/helpers/rake_helpers.rb +1 -1
  32. data/lib/beaker-puppet/helpers/tk_helpers.rb +22 -28
  33. data/lib/beaker-puppet/install_utils/aio_defaults.rb +39 -43
  34. data/lib/beaker-puppet/install_utils/ezbake_utils.rb +34 -42
  35. data/lib/beaker-puppet/install_utils/foss_defaults.rb +134 -138
  36. data/lib/beaker-puppet/install_utils/foss_utils.rb +269 -480
  37. data/lib/beaker-puppet/install_utils/module_utils.rb +58 -70
  38. data/lib/beaker-puppet/install_utils/puppet5.rb +30 -35
  39. data/lib/beaker-puppet/install_utils/puppet_utils.rb +53 -80
  40. data/lib/beaker-puppet/install_utils/windows_utils.rb +34 -36
  41. data/lib/beaker-puppet/version.rb +1 -1
  42. data/lib/beaker-puppet/wrappers.rb +13 -14
  43. data/lib/beaker-puppet.rb +4 -5
  44. data/release-prep.sh +11 -0
  45. data/setup/aio/010_Install_Puppet_Agent.rb +22 -9
  46. data/setup/common/000-delete-puppet-when-none.rb +2 -4
  47. data/setup/common/003_solaris_cert_fix.rb +74 -70
  48. data/setup/common/005_redhat_subscription_fix.rb +3 -2
  49. data/setup/common/011_Install_Puppet_Server.rb +7 -9
  50. data/setup/common/012_Finalize_Installs.rb +5 -5
  51. data/setup/common/025_StopFirewall.rb +1 -1
  52. data/setup/common/030_StopSssd.rb +2 -2
  53. data/setup/common/040_ValidateSignCert.rb +9 -18
  54. data/setup/common/045_EnsureMasterStarted.rb +2 -2
  55. data/setup/gem/010_GemInstall.rb +6 -5
  56. data/setup/git/000_EnvSetup.rb +48 -48
  57. data/setup/git/010_TestSetup.rb +13 -12
  58. data/setup/git/020_PuppetUserAndGroup.rb +3 -2
  59. data/setup/git/060_InstallModules.rb +14 -14
  60. data/setup/git/070_InstallCACerts.rb +82 -82
  61. data/spec/beaker-puppet/helpers/facter_helpers_spec.rb +22 -24
  62. data/spec/beaker-puppet/helpers/host_helpers_spec.rb +10 -6
  63. data/spec/beaker-puppet/helpers/puppet_helpers_spec.rb +463 -724
  64. data/spec/beaker-puppet/helpers/tk_helpers_spec.rb +20 -24
  65. data/spec/beaker-puppet/install_utils/ezbake_utils_spec.rb +86 -90
  66. data/spec/beaker-puppet/install_utils/foss_utils_spec.rb +471 -863
  67. data/spec/beaker-puppet/install_utils/module_utils_spec.rb +125 -116
  68. data/spec/beaker-puppet/install_utils/puppet5_spec.rb +159 -165
  69. data/spec/beaker-puppet/install_utils/puppet_utils_spec.rb +89 -97
  70. data/spec/beaker-puppet/install_utils/windows_utils_spec.rb +101 -89
  71. data/spec/beaker-puppet/wrappers_spec.rb +10 -10
  72. data/spec/helpers.rb +85 -91
  73. data/tasks/ci.rake +188 -188
  74. metadata +38 -62
  75. data/setup/common/020_InstallCumulusModules.rb +0 -13
  76. data/setup/common/021_InstallAristaModuleMasters.rb +0 -12
  77. data/setup/common/022_InstallAristaModuleAgents.rb +0 -13
@@ -5,22 +5,23 @@ require 'pathname'
5
5
  class PuppetModules
6
6
  attr_reader :modules
7
7
 
8
- def initialize(modules=[])
8
+ def initialize(modules = [])
9
9
  @modules = modules
10
10
  end
11
11
 
12
12
  def list
13
13
  return [] unless modules
14
+
14
15
  modules.collect do |uri|
15
16
  git_url, git_ref = uri.split '#'
16
17
  folder = Pathname.new(git_url).basename('.git')
17
18
  name = folder.to_s.split('-', 2)[1] || folder.to_s
18
19
  {
19
- :name => name,
20
- :url => git_url,
21
- :folder => folder.to_s,
22
- :ref => git_ref,
23
- :protocol => git_url.split(':')[0].intern,
20
+ name: name,
21
+ url: git_url,
22
+ folder: folder.to_s,
23
+ ref: git_ref,
24
+ protocol: git_url.split(':')[0].intern,
24
25
  }
25
26
  end
26
27
  end
@@ -31,7 +32,7 @@ def install_git_module(mod, hosts)
31
32
  # temporary directory to this location. This will preserve the global
32
33
  # state of the system while allowing individual test cases to quickly run
33
34
  # with a module "installed" in the module path.
34
- moddir = "/opt/puppet-git-repos"
35
+ moddir = '/opt/puppet-git-repos'
35
36
  target = "#{moddir}/#{mod[:name]}"
36
37
 
37
38
  step "Clone #{mod[:url]} if needed"
@@ -40,19 +41,18 @@ def install_git_module(mod, hosts)
40
41
  step "Update #{mod[:name]} and check out revision #{mod[:ref]}"
41
42
 
42
43
  commands = ["cd #{target}",
43
- "remote rm origin",
44
+ 'remote rm origin',
44
45
  "remote add origin #{mod[:url]}",
45
- "fetch origin",
46
+ 'fetch origin',
46
47
  "checkout -f #{mod[:ref]}",
47
48
  "reset --hard refs/remotes/origin/#{mod[:ref]}",
48
- "clean -fdx",
49
- ]
49
+ 'clean -fdx',]
50
50
 
51
- on hosts, commands.join(" && git ")
51
+ on hosts, commands.join(' && git ')
52
52
  end
53
53
 
54
54
  def install_scp_module(mod, hosts)
55
- moddir = "/opt/puppet-git-repos"
55
+ moddir = '/opt/puppet-git-repos'
56
56
  target = "#{moddir}/#{mod[:name]}"
57
57
 
58
58
  step "Purge #{target} if needed"
@@ -68,7 +68,7 @@ skip_test 'not testing with puppetserver' unless @options['is_puppetserver']
68
68
 
69
69
  modules = PuppetModules.new(options[:modules]).list
70
70
 
71
- step "Masters: Install Puppet Modules"
71
+ step 'Masters: Install Puppet Modules'
72
72
  masters = hosts.select { |host| host['roles'].include? 'master' }
73
73
 
74
74
  modules.each do |mod|
@@ -1,95 +1,95 @@
1
- test_name "Install CA Certs"
2
- confine :to, :platform => 'windows'
1
+ test_name 'Install CA Certs'
2
+ confine :to, platform: 'windows'
3
3
 
4
- GEOTRUST_GLOBAL_CA = <<-EOM
5
- -----BEGIN CERTIFICATE-----
6
- MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
7
- MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
8
- YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG
9
- EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg
10
- R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9
11
- 9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq
12
- fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv
13
- iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU
14
- 1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+
15
- bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW
16
- MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA
17
- ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l
18
- uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn
19
- Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS
20
- tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF
21
- PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un
22
- hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV
23
- 5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw==
24
- -----END CERTIFICATE-----
4
+ GEOTRUST_GLOBAL_CA = <<~EOM
5
+ -----BEGIN CERTIFICATE-----
6
+ MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
7
+ MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
8
+ YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG
9
+ EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg
10
+ R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9
11
+ 9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq
12
+ fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv
13
+ iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU
14
+ 1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+
15
+ bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW
16
+ MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA
17
+ ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l
18
+ uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn
19
+ Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS
20
+ tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF
21
+ PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un
22
+ hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV
23
+ 5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw==
24
+ -----END CERTIFICATE-----
25
25
  EOM
26
26
 
27
- USERTRUST_NETWORK_CA = <<-EOM
28
- -----BEGIN CERTIFICATE-----
29
- MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCB
30
- lzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug
31
- Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
32
- dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3Qt
33
- SGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgxOTIyWjCBlzELMAkG
34
- A1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEe
35
- MBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8v
36
- d3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdh
37
- cmUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn
38
- 0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlIwrthdBKWHTxqctU8EGc6Oe0rE81m65UJ
39
- M6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFdtqdt++BxF2uiiPsA3/4a
40
- MXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8i4fDidNd
41
- oI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqI
42
- DsjfPe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9Ksy
43
- oUhbAgMBAAGjgbkwgbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYD
44
- VR0OBBYEFKFyXyYbKJhDlV0HN9WFlp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0
45
- dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LUhhcmR3YXJlLmNy
46
- bDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUFBwMGBggrBgEF
47
- BQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM
48
- //bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28Gpgoiskli
49
- CE7/yMgUsogWXecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gE
50
- CJChicsZUN/KHAG8HQQZexB2lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t
51
- 3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kniCrVWFCVH/A7HFe7fRQ5YiuayZSS
52
- KqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67nfhmqA==
53
- -----END CERTIFICATE-----
27
+ USERTRUST_NETWORK_CA = <<~EOM
28
+ -----BEGIN CERTIFICATE-----
29
+ MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCB
30
+ lzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug
31
+ Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
32
+ dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3Qt
33
+ SGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgxOTIyWjCBlzELMAkG
34
+ A1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEe
35
+ MBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8v
36
+ d3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdh
37
+ cmUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn
38
+ 0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlIwrthdBKWHTxqctU8EGc6Oe0rE81m65UJ
39
+ M6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFdtqdt++BxF2uiiPsA3/4a
40
+ MXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8i4fDidNd
41
+ oI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqI
42
+ DsjfPe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9Ksy
43
+ oUhbAgMBAAGjgbkwgbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYD
44
+ VR0OBBYEFKFyXyYbKJhDlV0HN9WFlp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0
45
+ dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LUhhcmR3YXJlLmNy
46
+ bDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUFBwMGBggrBgEF
47
+ BQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM
48
+ //bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28Gpgoiskli
49
+ CE7/yMgUsogWXecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gE
50
+ CJChicsZUN/KHAG8HQQZexB2lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t
51
+ 3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kniCrVWFCVH/A7HFe7fRQ5YiuayZSS
52
+ KqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67nfhmqA==
53
+ -----END CERTIFICATE-----
54
54
  EOM
55
55
 
56
- EQUIFAX_CA = <<-EOM
57
- -----BEGIN CERTIFICATE-----
58
- MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
59
- UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
60
- dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
61
- MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
62
- dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
63
- AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
64
- BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
65
- cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
66
- AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
67
- MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
68
- aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
69
- ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
70
- IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
71
- MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
72
- A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
73
- 7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
74
- 1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
75
- -----END CERTIFICATE-----
56
+ EQUIFAX_CA = <<~EOM
57
+ -----BEGIN CERTIFICATE-----
58
+ MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
59
+ UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
60
+ dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
61
+ MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
62
+ dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
63
+ AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
64
+ BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
65
+ cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
66
+ AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
67
+ MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
68
+ aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
69
+ ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
70
+ IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
71
+ MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
72
+ A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
73
+ 7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
74
+ 1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
75
+ -----END CERTIFICATE-----
76
76
  EOM
77
77
 
78
78
  hosts.each do |host|
79
79
  next if host['use_existing_container']
80
80
 
81
- step "Installing Geotrust CA cert"
82
- create_remote_file(host, "geotrustglobal.pem", GEOTRUST_GLOBAL_CA)
83
- on host, "chmod 644 geotrustglobal.pem"
84
- on host, "cmd /c certutil -v -addstore Root `cygpath -w geotrustglobal.pem`"
81
+ step 'Installing Geotrust CA cert'
82
+ create_remote_file(host, 'geotrustglobal.pem', GEOTRUST_GLOBAL_CA)
83
+ on host, 'chmod 644 geotrustglobal.pem'
84
+ on host, 'cmd /c certutil -v -addstore Root `cygpath -w geotrustglobal.pem`'
85
85
 
86
- step "Installing Usertrust Network CA cert"
87
- create_remote_file(host, "usertrust-network.pem", USERTRUST_NETWORK_CA)
88
- on host, "chmod 644 usertrust-network.pem"
89
- on host, "cmd /c certutil -v -addstore Root `cygpath -w usertrust-network.pem`"
86
+ step 'Installing Usertrust Network CA cert'
87
+ create_remote_file(host, 'usertrust-network.pem', USERTRUST_NETWORK_CA)
88
+ on host, 'chmod 644 usertrust-network.pem'
89
+ on host, 'cmd /c certutil -v -addstore Root `cygpath -w usertrust-network.pem`'
90
90
 
91
- step "Installing Equifax CA cert"
92
- create_remote_file(host, "equifax.pem", EQUIFAX_CA)
93
- on host, "chmod 644 equifax.pem"
94
- on host, "cmd /c certutil -v -addstore Root `cygpath -w equifax.pem`"
91
+ step 'Installing Equifax CA cert'
92
+ create_remote_file(host, 'equifax.pem', EQUIFAX_CA)
93
+ on host, 'chmod 644 equifax.pem'
94
+ on host, 'cmd /c certutil -v -addstore Root `cygpath -w equifax.pem`'
95
95
  end
@@ -12,32 +12,31 @@ class ClassMixedWithDSLHelpers
12
12
  def logger
13
13
  RSpec::Mocks::Double.new('logger').as_null_object
14
14
  end
15
-
16
15
  end
17
16
 
18
17
  describe ClassMixedWithDSLHelpers do
19
- let( :command ){ 'ls' }
20
- let( :host ) { double.as_null_object }
21
- let( :result ) { Beaker::Result.new( host, command ) }
18
+ let(:command) { 'ls' }
19
+ let(:host) { double.as_null_object }
20
+ let(:result) { Beaker::Result.new(host, command) }
22
21
 
23
- let( :master ) { make_host( 'master', :roles => %w( master agent default) ) }
24
- let( :agent ) { make_host( 'agent', :roles => %w( agent ) ) }
25
- let( :custom ) { make_host( 'custom', :roles => %w( custom agent ) ) }
26
- let( :dash ) { make_host( 'console', :roles => %w( dashboard agent ) ) }
27
- let( :db ) { make_host( 'db', :roles => %w( database agent ) ) }
28
- let( :hosts ) { [ master, agent, dash, db, custom ] }
22
+ let(:master) { make_host('master', roles: %w[master agent default]) }
23
+ let(:agent) { make_host('agent', roles: %w[agent]) }
24
+ let(:custom) { make_host('custom', roles: %w[custom agent]) }
25
+ let(:dash) { make_host('console', roles: %w[dashboard agent]) }
26
+ let(:db) { make_host('db', roles: %w[database agent]) }
27
+ let(:hosts) { [master, agent, dash, db, custom] }
29
28
 
30
29
  before :each do
31
- allow( subject ).to receive( :hosts ).and_return( hosts )
30
+ allow(subject).to receive(:hosts).and_return(hosts)
32
31
  end
33
32
 
34
33
  describe '#fact_on' do
35
34
  it 'retrieves a fact on a single host' do
36
35
  result.stdout = "{\"osfamily\": \"family\"}\n"
37
- expect( subject ).to receive(:facter).with('"osfamily"',{json: nil}).once
38
- expect( subject ).to receive(:on).and_return(result)
36
+ expect(subject).to receive(:facter).with('"osfamily"', { json: nil }).once
37
+ expect(subject).to receive(:on).and_return(result)
39
38
 
40
- expect( subject.fact_on('host','osfamily') ).to be === JSON.parse(result.stdout)['osfamily']
39
+ expect(subject.fact_on('host', 'osfamily')).to be === JSON.parse(result.stdout)['osfamily']
41
40
  end
42
41
 
43
42
  it 'converts each element to a structured fact when it receives an array of results from #on' do
@@ -45,23 +44,23 @@ describe ClassMixedWithDSLHelpers do
45
44
  times = hosts.length
46
45
  results_array = [result] * times
47
46
  parsed_array = [JSON.parse(result.stdout)['os']] * times
48
- allow( subject ).to receive( :on ).and_return( results_array )
47
+ allow(subject).to receive(:on).and_return(results_array)
49
48
 
50
- expect( subject.fact_on(hosts,'os') ).to be === parsed_array
49
+ expect(subject.fact_on(hosts, 'os')).to be === parsed_array
51
50
  end
52
51
 
53
52
  it 'returns a single result for single host' do
54
53
  result.stdout = "{\"osfamily\": \"family\"}\n"
55
54
  parsed_result = JSON.parse(result.stdout)['osfamily']
56
- allow( subject ).to receive( :on ).and_return( result )
55
+ allow(subject).to receive(:on).and_return(result)
57
56
 
58
- expect( subject.fact_on('host','osfamily') ).to be === parsed_result
57
+ expect(subject.fact_on('host', 'osfamily')).to be === parsed_result
59
58
  end
60
59
 
61
60
  it 'preserves data types' do
62
- result.stdout = "{\"identity\": { \"uid\": 0, \"user\": \"root\", \"privileged\": true }}"
63
- allow( subject ).to receive( :on ).and_return( result )
64
- structured_fact = subject.fact_on('host','identity')
61
+ result.stdout = '{"identity": { "uid": 0, "user": "root", "privileged": true }}'
62
+ allow(subject).to receive(:on).and_return(result)
63
+ structured_fact = subject.fact_on('host', 'identity')
65
64
 
66
65
  expect(structured_fact['uid'].class).to be Fixnum
67
66
  expect(structured_fact['user'].class).to be String
@@ -76,11 +75,10 @@ describe ClassMixedWithDSLHelpers do
76
75
 
77
76
  describe '#fact' do
78
77
  it 'delegates to #fact_on with the default host' do
79
- expect( subject ).to receive(:fact_on).with(anything,"osfamily",{}).once
80
- expect( subject ).to receive(:default)
78
+ expect(subject).to receive(:fact_on).with(anything, 'osfamily', {}).once
79
+ expect(subject).to receive(:default)
81
80
 
82
81
  subject.fact('osfamily')
83
82
  end
84
83
  end
85
-
86
84
  end
@@ -8,9 +8,11 @@ describe ClassMixedWithDSLHelpers do
8
8
  let(:privatebindir) { 'C:\\Program Files\\Puppet Labs\\Puppet\\bin' }
9
9
 
10
10
  context 'when platform is windows and non cygwin' do
11
- let(:winhost) { make_host('winhost_non_cygwin', { :platform => 'windows',
12
- :privatebindir => privatebindir,
13
- :is_cygwin => 'false' }) }
11
+ let(:winhost) do
12
+ make_host('winhost_non_cygwin', { platform: 'windows',
13
+ privatebindir: privatebindir,
14
+ is_cygwin: 'false', })
15
+ end
14
16
 
15
17
  it 'run the correct ruby_command' do
16
18
  expect(subject.ruby_command(winhost)).to eq("cmd /V /C \"set PATH=#{privatebindir};!PATH! && ruby\"")
@@ -18,9 +20,11 @@ describe ClassMixedWithDSLHelpers do
18
20
  end
19
21
 
20
22
  context 'when platform is windows and cygwin' do
21
- let(:winhost) { make_host('winhost', { :platform => Beaker::Platform.new('windows-2016-a64'),
22
- :privatebindir => privatebindir,
23
- :is_cygwin => true }) }
23
+ let(:winhost) do
24
+ make_host('winhost', { platform: Beaker::Platform.new('windows-2016-a64'),
25
+ privatebindir: privatebindir,
26
+ is_cygwin: true, })
27
+ end
24
28
 
25
29
  it 'run the correct ruby_command' do
26
30
  expect(subject.ruby_command(winhost)).to eq("env PATH=\"#{privatebindir}:${PATH}\" ruby")