beaker-puppet 1.29.0 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) 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/.rubocop.yml +5 -0
  6. data/.rubocop_todo.yml +842 -0
  7. data/CHANGELOG.md +39 -0
  8. data/Gemfile +5 -20
  9. data/Rakefile +64 -169
  10. data/acceptance/config/acceptance-options.rb +3 -3
  11. data/acceptance/config/gem/acceptance-options.rb +8 -8
  12. data/acceptance/config/git/acceptance-options.rb +8 -8
  13. data/acceptance/config/pkg/acceptance-options.rb +7 -7
  14. data/acceptance/pre_suite/gem/install.rb +6 -6
  15. data/acceptance/pre_suite/git/install.rb +22 -22
  16. data/acceptance/pre_suite/pkg/install.rb +3 -3
  17. data/acceptance/tests/backwards_compatible.rb +6 -7
  18. data/acceptance/tests/clone_git_repo_on_test.rb +12 -13
  19. data/acceptance/tests/create_tmpdir_on_test.rb +13 -9
  20. data/acceptance/tests/install_smoke_test.rb +5 -4
  21. data/acceptance/tests/stub_host.rb +11 -10
  22. data/acceptance/tests/web_helpers_test.rb +11 -10
  23. data/beaker-puppet.gemspec +16 -23
  24. data/bin/beaker-puppet +2 -4
  25. data/lib/beaker-puppet/helpers/facter_helpers.rb +9 -7
  26. data/lib/beaker-puppet/helpers/host_helpers.rb +10 -7
  27. data/lib/beaker-puppet/helpers/puppet_helpers.rb +151 -160
  28. data/lib/beaker-puppet/helpers/rake_helpers.rb +1 -1
  29. data/lib/beaker-puppet/helpers/tk_helpers.rb +22 -28
  30. data/lib/beaker-puppet/install_utils/aio_defaults.rb +39 -43
  31. data/lib/beaker-puppet/install_utils/ezbake_utils.rb +34 -42
  32. data/lib/beaker-puppet/install_utils/foss_defaults.rb +134 -138
  33. data/lib/beaker-puppet/install_utils/foss_utils.rb +294 -321
  34. data/lib/beaker-puppet/install_utils/module_utils.rb +58 -70
  35. data/lib/beaker-puppet/install_utils/puppet5.rb +30 -35
  36. data/lib/beaker-puppet/install_utils/puppet_utils.rb +58 -68
  37. data/lib/beaker-puppet/install_utils/windows_utils.rb +34 -36
  38. data/lib/beaker-puppet/version.rb +1 -1
  39. data/lib/beaker-puppet/wrappers.rb +13 -14
  40. data/lib/beaker-puppet.rb +4 -5
  41. data/setup/aio/010_Install_Puppet_Agent.rb +5 -6
  42. data/setup/common/000-delete-puppet-when-none.rb +2 -4
  43. data/setup/common/003_solaris_cert_fix.rb +74 -70
  44. data/setup/common/005_redhat_subscription_fix.rb +3 -2
  45. data/setup/common/011_Install_Puppet_Server.rb +7 -9
  46. data/setup/common/012_Finalize_Installs.rb +5 -5
  47. data/setup/common/025_StopFirewall.rb +1 -1
  48. data/setup/common/030_StopSssd.rb +2 -2
  49. data/setup/common/040_ValidateSignCert.rb +10 -12
  50. data/setup/common/045_EnsureMasterStarted.rb +2 -2
  51. data/setup/gem/010_GemInstall.rb +5 -4
  52. data/setup/git/000_EnvSetup.rb +48 -48
  53. data/setup/git/010_TestSetup.rb +13 -12
  54. data/setup/git/020_PuppetUserAndGroup.rb +3 -2
  55. data/setup/git/060_InstallModules.rb +14 -14
  56. data/setup/git/070_InstallCACerts.rb +82 -82
  57. data/spec/beaker-puppet/helpers/facter_helpers_spec.rb +22 -24
  58. data/spec/beaker-puppet/helpers/host_helpers_spec.rb +10 -6
  59. data/spec/beaker-puppet/helpers/puppet_helpers_spec.rb +506 -517
  60. data/spec/beaker-puppet/helpers/tk_helpers_spec.rb +20 -24
  61. data/spec/beaker-puppet/install_utils/ezbake_utils_spec.rb +86 -90
  62. data/spec/beaker-puppet/install_utils/foss_utils_spec.rb +636 -599
  63. data/spec/beaker-puppet/install_utils/module_utils_spec.rb +125 -116
  64. data/spec/beaker-puppet/install_utils/puppet5_spec.rb +159 -165
  65. data/spec/beaker-puppet/install_utils/puppet_utils_spec.rb +92 -77
  66. data/spec/beaker-puppet/install_utils/windows_utils_spec.rb +101 -89
  67. data/spec/beaker-puppet/wrappers_spec.rb +10 -10
  68. data/spec/helpers.rb +85 -91
  69. data/tasks/ci.rake +171 -179
  70. metadata +33 -62
  71. data/setup/common/020_InstallCumulusModules.rb +0 -13
  72. data/setup/common/021_InstallAristaModuleMasters.rb +0 -12
  73. data/setup/common/022_InstallAristaModuleAgents.rb +0 -13
data/spec/helpers.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module TestFileHelpers
2
- def create_files file_array
2
+ def create_files(file_array)
3
3
  file_array.each do |f|
4
4
  FileUtils.mkdir_p File.dirname(f)
5
5
  FileUtils.touch f
@@ -7,137 +7,131 @@ module TestFileHelpers
7
7
  end
8
8
 
9
9
  def fog_file_contents
10
- { :default => { :aws_access_key_id => "IMANACCESSKEY",
11
- :aws_secret_access_key => "supersekritkey",
12
- :aix_hypervisor_server => "aix_hypervisor.labs.net",
13
- :aix_hypervisor_username => "aixer",
14
- :aix_hypervisor_keyfile => "/Users/user/.ssh/id_rsa-acceptance",
15
- :solaris_hypervisor_server => "solaris_hypervisor.labs.net",
16
- :solaris_hypervisor_username => "harness",
17
- :solaris_hypervisor_keyfile => "/Users/user/.ssh/id_rsa-old.private",
18
- :solaris_hypervisor_vmpath => "rpoooool/zs",
19
- :solaris_hypervisor_snappaths => ["rpoooool/USER/z0"],
20
- :vsphere_server => "vsphere.labs.net",
21
- :vsphere_username => "vsphere@labs.com",
22
- :vsphere_password => "supersekritpassword"} }
10
+ { default: { aws_access_key_id: 'IMANACCESSKEY',
11
+ aws_secret_access_key: 'supersekritkey',
12
+ aix_hypervisor_server: 'aix_hypervisor.labs.net',
13
+ aix_hypervisor_username: 'aixer',
14
+ aix_hypervisor_keyfile: '/Users/user/.ssh/id_rsa-acceptance',
15
+ solaris_hypervisor_server: 'solaris_hypervisor.labs.net',
16
+ solaris_hypervisor_username: 'harness',
17
+ solaris_hypervisor_keyfile: '/Users/user/.ssh/id_rsa-old.private',
18
+ solaris_hypervisor_vmpath: 'rpoooool/zs',
19
+ solaris_hypervisor_snappaths: ['rpoooool/USER/z0'],
20
+ vsphere_server: 'vsphere.labs.net',
21
+ vsphere_username: 'vsphere@labs.com',
22
+ vsphere_password: 'supersekritpassword', } }
23
23
  end
24
-
25
24
  end
26
25
 
27
26
  module HostHelpers
28
- HOST_DEFAULTS = { :platform => 'unix',
29
- :roles => ['agent'],
30
- :snapshot => 'snap',
31
- :ip => 'default.ip.address',
32
- :private_ip => 'private.ip.address',
33
- :dns_name => 'default.box.tld',
34
- :box => 'default_box_name',
35
- :box_url => 'http://default.box.url',
36
- :image => 'default_image',
37
- :flavor => 'm1.large',
38
- :user_data => '#cloud-config\nmanage_etc_hosts: true\nfinal_message: "The host is finally up!"'
39
- }
40
-
41
- HOST_NAME = "vm%d"
42
- HOST_SNAPSHOT = "snapshot%d"
43
- HOST_IP = "ip.address.for.%s"
44
- HOST_BOX = "vm2%s_of_my_box"
45
- HOST_BOX_URL = "http://address.for.my.box.%s"
46
- HOST_DNS_NAME = "%s.box.tld"
47
- HOST_TEMPLATE = "%s_has_a_template"
48
- HOST_PRIVATE_IP = "private.ip.for.%s"
27
+ HOST_DEFAULTS = { platform: 'unix',
28
+ roles: ['agent'],
29
+ snapshot: 'snap',
30
+ ip: 'default.ip.address',
31
+ private_ip: 'private.ip.address',
32
+ dns_name: 'default.box.tld',
33
+ box: 'default_box_name',
34
+ box_url: 'http://default.box.url',
35
+ image: 'default_image',
36
+ flavor: 'm1.large',
37
+ user_data: '#cloud-config\nmanage_etc_hosts: true\nfinal_message: "The host is finally up!"', }
38
+
39
+ HOST_NAME = 'vm%d'
40
+ HOST_SNAPSHOT = 'snapshot%d'
41
+ HOST_IP = 'ip.address.for.%s'
42
+ HOST_BOX = 'vm2%s_of_my_box'
43
+ HOST_BOX_URL = 'http://address.for.my.box.%s'
44
+ HOST_DNS_NAME = '%s.box.tld'
45
+ HOST_TEMPLATE = '%s_has_a_template'
46
+ HOST_PRIVATE_IP = 'private.ip.for.%s'
49
47
 
50
48
  def logger
51
- double( 'logger' ).as_null_object
49
+ double('logger').as_null_object
52
50
  end
53
51
 
54
52
  def make_opts
55
53
  opts = Beaker::Options::Presets.new
56
- opts.presets.merge( opts.env_vars ).merge( { :logger => logger,
57
- :host_config => 'sample.config',
58
- :type => nil,
59
- :pooling_api => 'http://vcloud.delivery.puppetlabs.net/',
60
- :datastore => 'instance0',
61
- :folder => 'Delivery/Quality Assurance/Staging/Dynamic',
62
- :resourcepool => 'delivery/Quality Assurance/Staging/Dynamic',
63
- :gce_project => 'beaker-compute',
64
- :gce_keyfile => '/path/to/keyfile.p12',
65
- :gce_password => 'notasecret',
66
- :gce_email => '12345678910@developer.gserviceaccount.com',
67
- :openstack_api_key => "P1as$w0rd",
68
- :openstack_username => "user",
69
- :openstack_auth_url => "http://openstack_hypervisor.labs.net:5000/v2.0/tokens",
70
- :openstack_tenant => "testing",
71
- :openstack_network => "testing",
72
- :openstack_keyname => "nopass",
73
- :floating_ip_pool => "my_pool",
74
- :security_group => ['my_sg', 'default'] } )
54
+ opts.presets.merge(opts.env_vars).merge({ logger: logger,
55
+ host_config: 'sample.config',
56
+ type: nil,
57
+ pooling_api: 'http://vcloud.delivery.puppetlabs.net/',
58
+ datastore: 'instance0',
59
+ folder: 'Delivery/Quality Assurance/Staging/Dynamic',
60
+ resourcepool: 'delivery/Quality Assurance/Staging/Dynamic',
61
+ gce_project: 'beaker-compute',
62
+ gce_keyfile: '/path/to/keyfile.p12',
63
+ gce_password: 'notasecret',
64
+ gce_email: '12345678910@developer.gserviceaccount.com',
65
+ openstack_api_key: 'P1as$w0rd',
66
+ openstack_username: 'user',
67
+ openstack_auth_url: 'http://openstack_hypervisor.labs.net:5000/v2.0/tokens',
68
+ openstack_tenant: 'testing',
69
+ openstack_network: 'testing',
70
+ openstack_keyname: 'nopass',
71
+ floating_ip_pool: 'my_pool',
72
+ security_group: %w[my_sg default], })
75
73
  end
76
74
 
77
- def generate_result (name, opts )
78
- result = double( 'result' )
75
+ def generate_result(name, opts)
76
+ result = double('result')
79
77
  stdout = opts.has_key?(:stdout) ? opts[:stdout] : name
80
78
  stderr = opts.has_key?(:stderr) ? opts[:stderr] : name
81
- exit_code = opts.has_key?(:exit_code) ? opts[:exit_code] : 0
79
+ exit_code = opts.has_key?(:exit_code) ? opts[:exit_code] : 0
82
80
  exit_code = [exit_code].flatten
83
- allow( result ).to receive( :stdout ).and_return( stdout )
84
- allow( result ).to receive( :stderr ).and_return( stderr )
85
- allow( result ).to receive( :exit_code ).and_return( *exit_code )
81
+ allow(result).to receive(:stdout).and_return(stdout)
82
+ allow(result).to receive(:stderr).and_return(stderr)
83
+ allow(result).to receive(:exit_code).and_return(*exit_code)
86
84
  result
87
85
  end
88
86
 
89
- def make_host_opts name, opts
90
- make_opts.merge( { 'HOSTS' => { name => opts } } ).merge( opts )
87
+ def make_host_opts(name, opts)
88
+ make_opts.merge({ 'HOSTS' => { name => opts } }).merge(opts)
91
89
  end
92
90
 
93
- def make_host name, host_hash
91
+ def make_host(name, host_hash)
94
92
  host_hash = Beaker::Options::OptionsHash.new.merge(HOST_DEFAULTS.merge(host_hash))
95
93
 
96
- host = Beaker::Host.create( name, host_hash, make_opts)
94
+ host = Beaker::Host.create(name, host_hash, make_opts)
97
95
 
98
- allow(host).to receive( :exec ).and_return( generate_result( name, host_hash ) )
99
- allow(host).to receive( :close )
96
+ allow(host).to receive(:exec).and_return(generate_result(name, host_hash))
97
+ allow(host).to receive(:close)
100
98
  host
101
99
  end
102
100
 
103
- def make_hosts preset_opts = {}, amt = 3
101
+ def make_hosts(preset_opts = {}, amt = 3)
104
102
  hosts = []
105
103
  (1..amt).each do |num|
106
104
  name = HOST_NAME % num
107
- opts = { :snapshot => HOST_SNAPSHOT % num,
108
- :ip => HOST_IP % name,
109
- :private_ip => HOST_PRIVATE_IP % name,
110
- :dns_name => HOST_DNS_NAME % name,
111
- :template => HOST_TEMPLATE % name,
112
- :box => HOST_BOX % name,
113
- :box_url => HOST_BOX_URL % name }.merge( preset_opts )
105
+ opts = { snapshot: HOST_SNAPSHOT % num,
106
+ ip: HOST_IP % name,
107
+ private_ip: HOST_PRIVATE_IP % name,
108
+ dns_name: HOST_DNS_NAME % name,
109
+ template: HOST_TEMPLATE % name,
110
+ box: HOST_BOX % name,
111
+ box_url: HOST_BOX_URL % name, }.merge(preset_opts)
114
112
  hosts << make_host(name, opts)
115
113
  end
116
114
  hosts
117
115
  end
118
116
 
119
- def make_instance instance_data = {}
117
+ def make_instance(instance_data = {})
120
118
  OpenStruct.new instance_data
121
119
  end
122
-
123
120
  end
124
121
 
125
122
  module PlatformHelpers
126
-
127
- DEBIANPLATFORMS = ['debian',
128
- 'ubuntu',
129
- 'cumulus',
130
- 'huaweios']
131
-
123
+ DEBIANPLATFORMS = %w[debian
124
+ ubuntu
125
+ huaweios]
132
126
 
133
127
  FEDORASYSTEMD = (14..29).to_a.collect! { |i| "fedora-#{i}" }
134
128
 
135
- SYSTEMDPLATFORMS = ['el-7',
136
- 'centos-7',
137
- 'redhat-7',
138
- 'oracle-7',
139
- 'scientific-7',
140
- 'eos-7'].concat(FEDORASYSTEMD)
129
+ SYSTEMDPLATFORMS = %w[el-7
130
+ centos-7
131
+ redhat-7
132
+ oracle-7
133
+ scientific-7
134
+ eos-7].concat(FEDORASYSTEMD)
141
135
 
142
136
  FEDORASYSTEMV = (1..13).to_a.collect! { |i| "fedora-#{i}" }
143
137
 
@@ -147,5 +141,5 @@ module PlatformHelpers
147
141
  'redhat',
148
142
  'oracle',
149
143
  'scientific',
150
- 'eos'].concat(FEDORASYSTEMV)
144
+ 'eos',].concat(FEDORASYSTEMV)
151
145
  end