beaker-puppet 2.1.0 → 3.0.0

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.
@@ -202,9 +202,9 @@ describe ClassMixedWithDSLInstallUtils do
202
202
  context 'lookup_in_env' do
203
203
  it 'returns a default properly' do
204
204
  env_var = subject.lookup_in_env('noway', 'nonesuch', 'returnme')
205
- expect(env_var).to be == 'returnme'
205
+ expect(env_var).to eq 'returnme'
206
206
  env_var = subject.lookup_in_env('noway', nil, 'returnme')
207
- expect(env_var).to be == 'returnme'
207
+ expect(env_var).to eq 'returnme'
208
208
  end
209
209
  it 'finds correct env variable' do
210
210
  allow(ENV).to receive(:[]).with(nil).and_return(nil)
@@ -212,13 +212,13 @@ describe ClassMixedWithDSLInstallUtils do
212
212
  allow(ENV).to receive(:[]).with('NONESUCH').and_return('present')
213
213
  allow(ENV).to receive(:[]).with('NOWAY_PROJ_NONESUCH').and_return('exists')
214
214
  env_var = subject.lookup_in_env('nonesuch', 'noway-proj', 'fail')
215
- expect(env_var).to be == 'exists'
215
+ expect(env_var).to eq 'exists'
216
216
  env_var = subject.lookup_in_env('nonesuch')
217
- expect(env_var).to be == 'present'
217
+ expect(env_var).to eq 'present'
218
218
  env_var = subject.lookup_in_env('reallynone')
219
- expect(env_var).to be == nil # rubocop:disable Style/NilComparison
219
+ expect(env_var).to eq nil # rubocop:disable Style/NilComparison
220
220
  env_var = subject.lookup_in_env('reallynone', nil, 'default')
221
- expect(env_var).to be == 'default'
221
+ expect(env_var).to eq 'default'
222
222
  end
223
223
  end
224
224
 
@@ -229,21 +229,21 @@ describe ClassMixedWithDSLInstallUtils do
229
229
  allow(ENV).to receive(:[]).with('PUPPET_FORK').and_return(nil)
230
230
  allow(ENV).to receive(:[]).with('PUPPET_SERVER').and_return(nil)
231
231
  url = subject.build_giturl('puppet')
232
- expect(url).to be == 'https://github.com/puppetlabs/puppet.git'
232
+ expect(url).to eq 'https://github.com/puppetlabs/puppet.git'
233
233
  url = subject.build_giturl('puppet', 'er0ck')
234
- expect(url).to be == 'https://github.com/er0ck/puppet.git'
234
+ expect(url).to eq 'https://github.com/er0ck/puppet.git'
235
235
  url = subject.build_giturl('puppet', 'er0ck', 'bitbucket.com')
236
- expect(url).to be == 'https://bitbucket.com/er0ck-puppet.git'
236
+ expect(url).to eq 'https://bitbucket.com/er0ck-puppet.git'
237
237
  url = subject.build_giturl('puppet', 'er0ck', 'github.com', 'https://')
238
- expect(url).to be == 'https://github.com/er0ck/puppet.git'
238
+ expect(url).to eq 'https://github.com/er0ck/puppet.git'
239
239
  url = subject.build_giturl('puppet', 'er0ck', 'github.com', 'https')
240
- expect(url).to be == 'https://github.com/er0ck/puppet.git'
240
+ expect(url).to eq 'https://github.com/er0ck/puppet.git'
241
241
  url = subject.build_giturl('puppet', 'er0ck', 'github.com', 'git@')
242
- expect(url).to be == 'git@github.com:er0ck/puppet.git'
242
+ expect(url).to eq 'git@github.com:er0ck/puppet.git'
243
243
  url = subject.build_giturl('puppet', 'er0ck', 'github.com', 'git')
244
- expect(url).to be == 'git@github.com:er0ck/puppet.git'
244
+ expect(url).to eq 'git@github.com:er0ck/puppet.git'
245
245
  url = subject.build_giturl('puppet', 'er0ck', 'github.com', 'ssh')
246
- expect(url).to be == 'git@github.com:er0ck/puppet.git'
246
+ expect(url).to eq 'git@github.com:er0ck/puppet.git'
247
247
  end
248
248
 
249
249
  it 'uses ENV to build urls properly' do
@@ -252,21 +252,21 @@ describe ClassMixedWithDSLInstallUtils do
252
252
  allow(ENV).to receive(:[]).with('PUPPET_FORK').and_return('er0ck/repo')
253
253
  allow(ENV).to receive(:[]).with('PUPPET_SERVER').and_return('gitlab.com')
254
254
  url = subject.build_giturl('puppet')
255
- expect(url).to be == 'https://gitlab.com/er0ck/repo-puppet.git'
255
+ expect(url).to eq 'https://gitlab.com/er0ck/repo-puppet.git'
256
256
  url = subject.build_giturl('puppet', 'er0ck')
257
- expect(url).to be == 'https://gitlab.com/er0ck-puppet.git'
257
+ expect(url).to eq 'https://gitlab.com/er0ck-puppet.git'
258
258
  url = subject.build_giturl('puppet', 'er0ck', 'bitbucket.com')
259
- expect(url).to be == 'https://bitbucket.com/er0ck-puppet.git'
259
+ expect(url).to eq 'https://bitbucket.com/er0ck-puppet.git'
260
260
  url = subject.build_giturl('puppet', 'er0ck', 'github.com', 'https://')
261
- expect(url).to be == 'https://github.com/er0ck/puppet.git'
261
+ expect(url).to eq 'https://github.com/er0ck/puppet.git'
262
262
  url = subject.build_giturl('puppet', 'er0ck', 'github.com', 'https')
263
- expect(url).to be == 'https://github.com/er0ck/puppet.git'
263
+ expect(url).to eq 'https://github.com/er0ck/puppet.git'
264
264
  url = subject.build_giturl('puppet', 'er0ck', 'github.com', 'git@')
265
- expect(url).to be == 'git@github.com:er0ck/puppet.git'
265
+ expect(url).to eq 'git@github.com:er0ck/puppet.git'
266
266
  url = subject.build_giturl('puppet', 'er0ck', 'github.com', 'git')
267
- expect(url).to be == 'git@github.com:er0ck/puppet.git'
267
+ expect(url).to eq 'git@github.com:er0ck/puppet.git'
268
268
  url = subject.build_giturl('puppet', 'er0ck', 'github.com', 'ssh')
269
- expect(url).to be == 'git@github.com:er0ck/puppet.git'
269
+ expect(url).to eq 'git@github.com:er0ck/puppet.git'
270
270
  end
271
271
  end
272
272
 
@@ -278,9 +278,9 @@ describe ClassMixedWithDSLInstallUtils do
278
278
  it "handles #{type[:protocol]} uris" do
279
279
  uri = "#{type[:path]}#master"
280
280
  repo_info = subject.extract_repo_info_from uri
281
- expect(repo_info[:name]).to be == 'project'
282
- expect(repo_info[:path]).to be == type[:path]
283
- expect(repo_info[:rev]).to be == 'master'
281
+ expect(repo_info[:name]).to eq 'project'
282
+ expect(repo_info[:path]).to eq type[:path]
283
+ expect(repo_info[:rev]).to eq 'master'
284
284
  end
285
285
  end
286
286
  end
@@ -291,9 +291,9 @@ describe ClassMixedWithDSLInstallUtils do
291
291
  { name: 'puppet_plugin' }, { name: 'puppet' }, { name: 'facter' },
292
292
  ]
293
293
  ordered_repos = subject.order_packages named_repos
294
- expect(ordered_repos[0][:name]).to be == 'facter'
295
- expect(ordered_repos[1][:name]).to be == 'puppet'
296
- expect(ordered_repos[2][:name]).to be == 'puppet_plugin'
294
+ expect(ordered_repos[0][:name]).to eq 'facter'
295
+ expect(ordered_repos[1][:name]).to eq 'puppet'
296
+ expect(ordered_repos[2][:name]).to eq 'puppet_plugin'
297
297
  end
298
298
  end
299
299
 
@@ -313,7 +313,7 @@ describe ClassMixedWithDSLInstallUtils do
313
313
  subject.instance_variable_set(:@metadata, {})
314
314
  version = subject.find_git_repo_versions(host, path, repository)
315
315
 
316
- expect(version).to be == { 'name' => '2' }
316
+ expect(version).to be == { 'name' => '2' } # rubocop:ignore RSpec/Eq
317
317
  end
318
318
  end
319
319
 
@@ -1005,7 +1005,7 @@ describe ClassMixedWithDSLInstallUtils do
1005
1005
  expect(subject).to receive(:install_a_puppet_msi_on).with(host, opts)
1006
1006
 
1007
1007
  subject.install_puppet_agent_from_msi_on(host, opts)
1008
- expect(host['dist']).to be == 'puppet-agent-VERSION-x86'
1008
+ expect(host['dist']).to eq 'puppet-agent-VERSION-x86'
1009
1009
  end
1010
1010
 
1011
1011
  it 'uses x86 msi when host is_x86_64 and install_32 is set on the options' do
@@ -1015,7 +1015,7 @@ describe ClassMixedWithDSLInstallUtils do
1015
1015
  expect(subject).to receive(:install_a_puppet_msi_on).with(host, opts)
1016
1016
 
1017
1017
  subject.install_puppet_agent_from_msi_on(host, opts)
1018
- expect(host['dist']).to be == 'puppet-agent-VERSION-x86'
1018
+ expect(host['dist']).to eq 'puppet-agent-VERSION-x86'
1019
1019
  end
1020
1020
 
1021
1021
  it 'uses x86 msi when host is_x86_64 and ruby_arch is x86 on the host' do
@@ -1025,7 +1025,7 @@ describe ClassMixedWithDSLInstallUtils do
1025
1025
  expect(subject).to receive(:install_a_puppet_msi_on).with(host, opts)
1026
1026
 
1027
1027
  subject.install_puppet_agent_from_msi_on(host, opts)
1028
- expect(host['dist']).to be == 'puppet-agent-VERSION-x86'
1028
+ expect(host['dist']).to eq 'puppet-agent-VERSION-x86'
1029
1029
  end
1030
1030
 
1031
1031
  it 'uses x86 msi when host !is_x86_64' do
@@ -1033,7 +1033,7 @@ describe ClassMixedWithDSLInstallUtils do
1033
1033
  expect(subject).to receive(:install_a_puppet_msi_on).with(host, opts)
1034
1034
 
1035
1035
  subject.install_puppet_agent_from_msi_on(host, opts)
1036
- expect(host['dist']).to be == 'puppet-agent-VERSION-x86'
1036
+ expect(host['dist']).to eq 'puppet-agent-VERSION-x86'
1037
1037
  end
1038
1038
 
1039
1039
  it 'uses x64 msi when host is_x86_64, no install_32 and ruby_arch != x86' do
@@ -1041,7 +1041,7 @@ describe ClassMixedWithDSLInstallUtils do
1041
1041
  expect(subject).to receive(:install_a_puppet_msi_on).with(host, opts)
1042
1042
 
1043
1043
  subject.install_puppet_agent_from_msi_on(host, opts)
1044
- expect(host['dist']).to be == 'puppet-agent-VERSION-x64'
1044
+ expect(host['dist']).to eq 'puppet-agent-VERSION-x64'
1045
1045
  end
1046
1046
  end
1047
1047
 
@@ -1092,435 +1092,6 @@ describe ClassMixedWithDSLInstallUtils do
1092
1092
  end
1093
1093
  end
1094
1094
 
1095
- describe '#install_puppet_agent_dev_repo_on' do
1096
- let(:package_name) { 'puppet-agent' }
1097
- let(:platform) { @platform || 'other' }
1098
- let(:host) do
1099
- FakeHost.create('fakvm', platform, opts)
1100
- end
1101
-
1102
- before :each do
1103
- allow(subject).to receive(:configure_foss_defaults_on).and_return(true)
1104
- end
1105
-
1106
- it 'raises an exception when host platform is unsupported' do
1107
- host = basic_hosts.first
1108
- host['platform'] = Beaker::Platform.new('f5-5-x4')
1109
- opts = { version: '0.1.0' }
1110
- allow(subject).to receive(:options).and_return({})
1111
-
1112
- expect do
1113
- subject.install_puppet_agent_dev_repo_on(host, opts)
1114
- end.to raise_error(RuntimeError, /No repository installation step for/)
1115
- end
1116
-
1117
- it 'runs the correct install for el-based platforms' do
1118
- host = basic_hosts.first
1119
- host['platform'] = Beaker::Platform.new('el-5-x86_64')
1120
- sha_value = 'ereiuwoiur'
1121
- opts = { version: '0.1.0', puppet_agent_sha: sha_value }
1122
- allow(subject).to receive(:options).and_return({})
1123
-
1124
- expect(subject).to receive(:install_puppetlabs_dev_repo).with(
1125
- host, 'puppet-agent', sha_value, nil, anything
1126
- )
1127
- expect(host).to receive(:install_package).with('puppet-agent')
1128
-
1129
- subject.install_puppet_agent_dev_repo_on(host, opts)
1130
- end
1131
-
1132
- it 'runs the correct install for el-based platforms on s390x architectures' do
1133
- host = basic_hosts.first
1134
- host['platform'] = Beaker::Platform.new('el-5-s390x')
1135
- sha_value = 'ereiuwoiur'
1136
- opts = { version: '0.1.0', puppet_agent_sha: sha_value }
1137
- allow(subject).to receive(:options).and_return({})
1138
-
1139
- release_path_end = 'fake_release_path_end'
1140
- release_file = 'fake_29835_release_file'
1141
- expect(host).to receive(:puppet_agent_dev_package_info).and_return(
1142
- [release_path_end, release_file],
1143
- )
1144
-
1145
- expect(subject).not_to receive(:install_puppetlabs_dev_repo)
1146
- expect(host).not_to receive(:install_package)
1147
-
1148
- expect(subject).to receive(:fetch_http_file).once.with(/#{release_path_end}$/, release_file, %r{/el$})
1149
- expect(subject).to receive(:scp_to).once.with(host, /#{release_file}$/, anything)
1150
- expect(subject).to receive(:on).ordered.with(host, /rpm -ivh.*#{release_file}$/)
1151
-
1152
- subject.install_puppet_agent_dev_repo_on(host, opts)
1153
- end
1154
-
1155
- it 'runs the correct agent install for el-based platforms on ec2 hypervisor' do
1156
- host = basic_hosts.first
1157
- host['platform'] = Beaker::Platform.new('el-5-x86_64')
1158
- host['hypervisor'] = 'ec2'
1159
- sha_value = 'ereiuwoiur'
1160
- opts = { version: '0.1.0', puppet_agent_sha: sha_value }
1161
- allow(subject).to receive(:options).and_return({})
1162
-
1163
- release_path_end = 'fake_release_path_end'
1164
- release_file = 'fake_29835_release_file'
1165
- expect(host).to receive(:puppet_agent_dev_package_info).and_return(
1166
- [release_path_end, release_file],
1167
- )
1168
-
1169
- expect(subject).not_to receive(:install_puppetlabs_dev_repo)
1170
- expect(host).not_to receive(:install_package)
1171
-
1172
- expect(subject).to receive(:fetch_http_file).once.with(/#{release_path_end}$/, release_file, %r{/el$})
1173
- expect(subject).to receive(:scp_to).once.with(host, /#{release_file}$/, anything)
1174
- expect(subject).to receive(:on).ordered.with(host, /rpm -ivh.*#{release_file}$/)
1175
-
1176
- subject.install_puppet_agent_dev_repo_on(host, opts)
1177
- end
1178
-
1179
- it 'runs the correct install for debian-based platforms' do
1180
- platform = Beaker::Platform.new('debian-5-x86_64')
1181
- host = basic_hosts.first
1182
- host['platform'] = platform
1183
- sha_value = 'ereigregerge'
1184
- opts = { version: '0.1.0', puppet_agent_sha: sha_value }
1185
- allow(subject).to receive(:options).and_return({})
1186
-
1187
- expect(subject).to receive(:install_puppetlabs_dev_repo).with(
1188
- host, 'puppet-agent', sha_value, nil, anything
1189
- )
1190
- expect(host).to receive(:install_package).with('puppet-agent')
1191
-
1192
- subject.install_puppet_agent_dev_repo_on(host, opts)
1193
- end
1194
-
1195
- it 'runs the correct install for windows platforms' do
1196
- host = winhost
1197
- external_copy_base = 'tmp_install_windows_copy_base_1325'
1198
- allow(host).to receive(:external_copy_base).and_return(external_copy_base)
1199
- opts = { version: '0.1.0' }
1200
- allow(subject).to receive(:options).and_return({})
1201
- copied_path = "#{win_temp}\\puppet-agent-0.1.0-x64.msi"
1202
- mock_echo = Object.new
1203
- allow(mock_echo).to receive(:raw_output).and_return(copied_path)
1204
-
1205
- expect(subject).to receive(:fetch_http_file).once.with(%r{/windows$}, 'puppet-agent-0.1.0-x64.msi', %r{/windows$})
1206
- expect(subject).to receive(:scp_to).once.with(host, %r{/puppet-agent-0.1.0-x64.msi$}, /#{external_copy_base}/)
1207
- expect(subject).to receive(:install_msi_on).with(host, copied_path, {}, { debug: nil }).once
1208
- expect(subject).to receive(:on).ordered.with(host, /echo/).and_return(mock_echo)
1209
-
1210
- subject.install_puppet_agent_dev_repo_on(host, opts)
1211
- end
1212
-
1213
- it 'runs the correct install for osx platforms' do
1214
- host = machost
1215
- host['platform'] = Beaker::Platform.new('osx-109-x86_64')
1216
- sha_value = 'runs the correct install for osx platforms'
1217
- copy_dir_external = 'fake_15_copy_dir_external'
1218
- opts = {
1219
- version: '0.1.0',
1220
- puppet_agent_sha: sha_value,
1221
- copy_dir_external: copy_dir_external,
1222
- }
1223
-
1224
- release_path_end = 'fake_release_path_end'
1225
- release_file = 'fake_29835_release_file'
1226
- expect(host).to receive(:puppet_agent_dev_package_info).and_return(
1227
- [release_path_end, release_file],
1228
- )
1229
-
1230
- expect(subject).to receive(:fetch_http_file).once.with(/#{release_path_end}$/, release_file, %r{/osx$})
1231
- expect(subject).to receive(:scp_to).once.with(host, /#{release_file}$/, copy_dir_external)
1232
- # the star is necessary, as that's not the entire filename, & we rely on
1233
- # the globbing to get this right on OSX SUTs
1234
- expect(host).to receive(:install_package).with(/^puppet-agent-0.1.0\*$/)
1235
-
1236
- subject.install_puppet_agent_dev_repo_on(host, opts)
1237
- end
1238
-
1239
- it 'runs the correct install for solaris platforms' do
1240
- @platform = 'solaris-10-x86_64'
1241
- opts = { version: '0.1.0' }
1242
- allow(subject).to receive(:options).and_return({})
1243
-
1244
- release_path_end = 'fake_release_path_end'
1245
- release_file = 'fake_sol10_8495_release_file'
1246
- expect(host).to receive(:puppet_agent_dev_package_info).and_return(
1247
- [release_path_end, release_file],
1248
- )
1249
-
1250
- expect(subject).to receive(:fetch_http_file).once.with(
1251
- /#{release_path_end}$/, release_file, anything
1252
- )
1253
- expect(subject).to receive(:scp_to).once.with(
1254
- host, /#{release_file}$/, anything
1255
- )
1256
-
1257
- expect(host).to receive(:solaris_install_local_package)
1258
-
1259
- allow(subject).to receive(:configure_type_defaults_on)
1260
- subject.install_puppet_agent_dev_repo_on(host, opts)
1261
- end
1262
-
1263
- it 'allows you to override the local copy directory' do
1264
- # only applies to hosts that don't go down the
1265
- # install_puppetlabs_dev_repo route
1266
- host = eoshost
1267
- host['platform'] = Beaker::Platform.new('eos-5-x86_64')
1268
- sha_value = 'dahdahdahdah'
1269
- copy_base_local_override = 'face'
1270
- opts = {
1271
- version: '0.1.0',
1272
- copy_base_local: copy_base_local_override,
1273
- puppet_agent_sha: sha_value,
1274
- }
1275
- allow(subject).to receive(:options).and_return({})
1276
-
1277
- allow(host).to receive(:puppet_agent_dev_package_info).and_return(['', ''])
1278
-
1279
- allow(host).to receive(:get_remote_file).once.with(anything)
1280
- allow(host).to receive(:install_from_file)
1281
-
1282
- subject.install_puppet_agent_dev_repo_on(host, opts)
1283
- end
1284
-
1285
- it 'allows you to override the external copy directory' do
1286
- host = basic_hosts.first
1287
- host['platform'] = Beaker::Platform.new('osx-5-x86_64')
1288
- copy_dir_custom = 'muppetsBB8-1435'
1289
- opts = { version: '0.1.0', copy_dir_external: copy_dir_custom }
1290
- allow(subject).to receive(:options).and_return({})
1291
-
1292
- allow(host).to receive(:puppet_agent_dev_package_info).and_return(['', ''])
1293
-
1294
- allow(subject).to receive(:fetch_http_file).once
1295
- expect(subject).to receive(:scp_to).once.with(
1296
- host, anything, /#{copy_dir_custom}/
1297
- )
1298
- allow(host).to receive(:install_package)
1299
-
1300
- subject.install_puppet_agent_dev_repo_on(host, opts)
1301
- end
1302
-
1303
- it 'copies package to the cygwin root directory and installs it' do
1304
- @platform = 'windows-7-x86_64'
1305
- expect(subject).to receive(:install_msi_on).with(any_args)
1306
- copy_base = 'copy_base_cygwin'
1307
- allow(host).to receive(:external_copy_base).and_return(copy_base)
1308
- expect(subject).to receive(:scp_to).with(host, /puppet-agent-1\.0\.0-x64\.msi/, /#{copy_base}/)
1309
- expect(subject).to receive(:configure_type_defaults_on).with(host)
1310
- expect(subject).to receive(:fetch_http_file).with(%r{[^/]\z}, anything, anything)
1311
- subject.install_puppet_agent_dev_repo_on(host, opts.merge({ puppet_agent_version: '1.0.0' }))
1312
- end
1313
-
1314
- it 'installs on different hosts without erroring' do
1315
- mhosts = hosts
1316
- mhosts[3] = eoshost
1317
-
1318
- mhosts.each_with_index do |host, index|
1319
- if index == 0
1320
- host['platform'] = Beaker::Platform.new('solaris-5-x4')
1321
- allow(host).to receive(:external_copy_base) { '/host0' }
1322
- elsif index == 1
1323
- host['platform'] = Beaker::Platform.new('windows-5-x4')
1324
- allow(host).to receive(:external_copy_base) { '/host1' }
1325
- elsif index == 2
1326
- host['platform'] = Beaker::Platform.new('osx-5-x4')
1327
- allow(host).to receive(:external_copy_base) { '/host2' }
1328
- elsif index == 3
1329
- host['platform'] = Beaker::Platform.new('eos-5-x4')
1330
- allow(host).to receive(:external_copy_base) { '/host3' }
1331
- end
1332
- allow(host).to receive(:puppet_agent_dev_package_info).with(any_args).and_return(%w[test blah])
1333
- end
1334
-
1335
- expect(subject).to receive(:add_role).with(any_args).exactly(mhosts.length).times
1336
-
1337
- expect(subject).to receive(:fetch_http_file).with(any_args).exactly(3).times
1338
- expect(subject).to receive(:scp_to).with(any_args).exactly(3).times
1339
-
1340
- expect(subject).to receive(:install_msi_on).with(mhosts[1], 'xyz', {}, anything).exactly(1).times
1341
- expect(mhosts[0]).to receive(:solaris_install_local_package).with('blah', '/host0').exactly(1).times
1342
- expect(mhosts[2]).to receive(:install_package).with(any_args).exactly(1).times
1343
- expect(mhosts[3]).to receive(:install_from_file).with('blah').exactly(1).times
1344
-
1345
- result = object_double(Beaker::Result.new({}, 'foo'), raw_output: 'xyz')
1346
- allow(subject).to receive(:on).with(mhosts[1], anything).and_return(result)
1347
-
1348
- expect(subject).to receive(:configure_type_defaults_on).with(any_args).exactly(mhosts.length).times
1349
-
1350
- subject.install_puppet_agent_dev_repo_on(mhosts, opts.merge({ puppet_agent_version: '1.0.0' }))
1351
- end
1352
-
1353
- it 'installs on different hosts with options specifying :copy_dir_external' do
1354
- mhosts = hosts
1355
- mhosts[3] = eoshost
1356
-
1357
- mhosts.each_with_index do |host, index|
1358
- if index == 0
1359
- host['platform'] = Beaker::Platform.new('solaris-5-x4')
1360
- allow(host).to receive(:external_copy_base) { '/host0' }
1361
- elsif index == 1
1362
- host['platform'] = Beaker::Platform.new('windows-5-x4')
1363
- allow(host).to receive(:external_copy_base) { '/host1' }
1364
- elsif index == 2
1365
- host['platform'] = Beaker::Platform.new('osx-5-x4')
1366
- allow(host).to receive(:external_copy_base) { '/host2' }
1367
- elsif index == 3
1368
- host['platform'] = Beaker::Platform.new('eos-5-x4')
1369
- allow(host).to receive(:external_copy_base) { '/host3' }
1370
- end
1371
- allow(host).to receive(:puppet_agent_dev_package_info).with(any_args).and_return(['test', '/blah'])
1372
- end
1373
-
1374
- expect(subject).to receive(:add_role).with(any_args).exactly(mhosts.length).times
1375
-
1376
- expect(subject).to receive(:fetch_http_file).with(any_args).exactly(3).times
1377
- expect(subject).to receive(:scp_to).with(any_args).exactly(3).times
1378
-
1379
- expect(subject).to receive(:install_msi_on).with(mhosts[1], 'xyz', {}, anything).exactly(1).times
1380
- expect(mhosts[0]).to receive(:solaris_install_local_package).with('/blah', '/tmp').exactly(1).times
1381
- expect(mhosts[2]).to receive(:install_package).with(any_args).exactly(1).times
1382
- expect(mhosts[3]).to receive(:install_from_file).with('/blah').exactly(1).times
1383
- expect(mhosts[0]).to receive(:external_copy_base).with(no_args).exactly(0).times
1384
- expect(mhosts[1]).to receive(:external_copy_base).with(no_args).exactly(0).times
1385
- expect(mhosts[2]).to receive(:external_copy_base).with(no_args).exactly(0).times
1386
- expect(mhosts[3]).to receive(:external_copy_base).with(no_args).exactly(0).times
1387
-
1388
- result = object_double(Beaker::Result.new({}, 'foo'), raw_output: 'xyz')
1389
- allow(subject).to receive(:on).with(mhosts[1], anything).and_return(result)
1390
-
1391
- expect(subject).to receive(:configure_type_defaults_on).with(any_args).exactly(mhosts.length).times
1392
-
1393
- subject.install_puppet_agent_dev_repo_on(mhosts,
1394
- opts.merge({ puppet_agent_version: '1.0.0', copy_dir_external: '/tmp' }))
1395
- end
1396
- end
1397
-
1398
- describe '#install_puppet_agent_pe_promoted_repo_on' do
1399
- let(:package_name) { 'puppet-agent' }
1400
- let(:platform) { @platform || 'other' }
1401
- let(:host) do
1402
- FakeHost.create('fakvm', platform, opts)
1403
- end
1404
-
1405
- before :each do
1406
- allow(subject).to receive(:configure_foss_defaults_on).and_return(true)
1407
- allow(subject).to receive(:install_msi_on).with(any_args)
1408
- end
1409
-
1410
- def test_fetch_http_file_no_ending_slash(platform)
1411
- @platform = platform
1412
- allow(subject).to receive(:scp_to)
1413
- allow(subject).to receive(:configure_type_defaults_on).with(host)
1414
-
1415
- expect(subject).to receive(:fetch_http_file).with(%r{[^/]\z}, anything, anything)
1416
- subject.install_puppet_agent_pe_promoted_repo_on(host, opts)
1417
- end
1418
-
1419
- context 'on windows' do
1420
- it 'calls fetch_http_file with no ending slash' do
1421
- test_fetch_http_file_no_ending_slash('windows-7-x86_64')
1422
- end
1423
- end
1424
-
1425
- it 'calls fetch_http_file with no ending slash' do
1426
- test_fetch_http_file_no_ending_slash('debian-5-x86_64')
1427
- end
1428
-
1429
- context 'when setting different agent versions' do
1430
- let(:host) { basic_hosts.first }
1431
- let(:platform) { Beaker::Platform.new('el-6-x86_64') }
1432
- let(:downloadurl) { 'http://pm.puppet.com' }
1433
- before :each do
1434
- allow(subject).to receive(:options).and_return(opts)
1435
- allow(subject).to receive(:scp_to)
1436
- allow(subject).to receive(:configure_type_defaults_on).with(host)
1437
- end
1438
-
1439
- it 'sets correct file paths when agent version is set to latest' do
1440
- host['platform'] = platform
1441
- agentversion = 'latest'
1442
- collection = 'puppet'
1443
- opts = { puppet_agent_version: "#{agentversion}", pe_promoted_builds_url: "#{downloadurl}" }
1444
-
1445
- expect(subject).to receive(:fetch_http_file).once.with(
1446
- %r{pm\.puppet\.com/puppet-agent/.*/#{agentversion}/repos},
1447
- /puppet-agent-el-6*/,
1448
- %r{/el$},
1449
- )
1450
- expect(host).to receive(:pe_puppet_agent_promoted_package_install).with(
1451
- anything,
1452
- /puppet-agent-el-6*/,
1453
- %r{.*/el/6/#{collection}/.*rpm},
1454
- /puppet-agent-el-6/,
1455
- anything,
1456
- )
1457
- subject.install_puppet_agent_pe_promoted_repo_on(host, opts)
1458
- end
1459
-
1460
- it 'sets correct file paths for agent version 1.x.x' do
1461
- host['platform'] = platform
1462
- agentversion = '1.x.x'
1463
- collection = 'pc1'
1464
- opts = { puppet_agent_version: "#{agentversion}", pe_promoted_builds_url: "#{downloadurl}" }
1465
-
1466
- expect(subject).to receive(:fetch_http_file).once.with(
1467
- %r{pm\.puppet\.com/puppet-agent/.*/#{agentversion}/repos},
1468
- /puppet-agent-el-6*/, %r{/el$}
1469
- )
1470
- expect(host).to receive(:pe_puppet_agent_promoted_package_install).with(
1471
- anything,
1472
- /puppet-agent-el-6*/,
1473
- %r{.*/el/6/#{collection}/.*rpm},
1474
- /puppet-agent-el-6/,
1475
- anything,
1476
- )
1477
- subject.install_puppet_agent_pe_promoted_repo_on(host, opts)
1478
- end
1479
-
1480
- it 'sets correct file paths for agent version >= 5.5.4' do
1481
- host['platform'] = platform
1482
- agentversion = '5.5.4'
1483
- collection = 'puppet5'
1484
- opts = { puppet_agent_version: "#{agentversion}", pe_promoted_builds_url: "#{downloadurl}" }
1485
-
1486
- expect(subject).to receive(:fetch_http_file).once.with(
1487
- %r{pm\.puppet\.com/puppet-agent/.*/#{agentversion}/repos},
1488
- /puppet-agent-el-6*/,
1489
- %r{/el$},
1490
- )
1491
- expect(host).to receive(:pe_puppet_agent_promoted_package_install).with(
1492
- anything,
1493
- /puppet-agent-el-6*/,
1494
- %r{.*/el/6/#{collection}/.*rpm},
1495
- /puppet-agent-el-6/,
1496
- anything,
1497
- )
1498
- subject.install_puppet_agent_pe_promoted_repo_on(host, opts)
1499
- end
1500
-
1501
- it 'sets correct file paths for agent version > 5.99' do
1502
- host['platform'] = platform
1503
- agentversion = '6.0.0'
1504
- collection = 'puppet6'
1505
- opts = { puppet_agent_version: "#{agentversion}", pe_promoted_builds_url: "#{downloadurl}" }
1506
-
1507
- expect(subject).to receive(:fetch_http_file).once.with(
1508
- %r{pm\.puppet\.com/puppet-agent/.*/#{agentversion}/repos},
1509
- /puppet-agent-el-6*/,
1510
- %r{/el$},
1511
- )
1512
- expect(host).to receive(:pe_puppet_agent_promoted_package_install).with(
1513
- anything,
1514
- /puppet-agent-el-6*/,
1515
- %r{.*/el/6/#{collection}/.*rpm},
1516
- /puppet-agent-el-6/,
1517
- anything,
1518
- )
1519
- subject.install_puppet_agent_pe_promoted_repo_on(host, opts)
1520
- end
1521
- end
1522
- end
1523
-
1524
1095
  describe '#install_puppetserver_on' do
1525
1096
  let(:host) { make_host('master', platform: 'el-7-x86_64') }
1526
1097
 
@@ -71,11 +71,6 @@ describe ClassMixedWithDSLInstallUtils do
71
71
  subject.configure_defaults_on(hosts, 'aio')
72
72
  end
73
73
 
74
- it 'can set pe defaults' do
75
- expect(subject).to receive(:add_pe_defaults_on).exactly(hosts.length).times
76
- subject.configure_defaults_on(hosts, 'pe')
77
- end
78
-
79
74
  it 'can remove old defaults ands replace with new' do
80
75
  # fake the results of calling configure_pe_defaults_on
81
76
  hosts.each do |host|
@@ -128,24 +123,6 @@ describe ClassMixedWithDSLInstallUtils do
128
123
  expect(subject).to receive(:add_aio_defaults_on).exactly(hosts.length).times
129
124
  subject.configure_type_defaults_on(hosts)
130
125
  end
131
-
132
- it 'can set pe defaults for pe type' do
133
- hosts.each do |host|
134
- host['type'] = 'pe'
135
- end
136
- expect(subject).to receive(:add_pe_defaults_on).exactly(hosts.length).times
137
- subject.configure_type_defaults_on(hosts)
138
- end
139
-
140
- it 'adds aio defaults to pe hosts when they an aio pe version' do
141
- hosts.each do |host|
142
- host['type'] = 'pe'
143
- host['pe_ver'] = '4.0'
144
- end
145
- expect(subject).to receive(:add_pe_defaults_on).exactly(hosts.length).times
146
- expect(subject).to receive(:add_aio_defaults_on).exactly(hosts.length).times
147
- subject.configure_type_defaults_on(hosts)
148
- end
149
126
  end
150
127
 
151
128
  describe '#puppetserver_version_on' do