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.
- checksums.yaml +4 -4
- data/.github/workflows/release.yml +1 -1
- data/.github/workflows/test.yml +2 -2
- data/.github_changelog_generator +3 -0
- data/.rubocop_todo.yml +52 -7
- data/CHANGELOG.md +14 -3
- data/CODEOWNERS +1 -0
- data/README.md +4 -13
- data/acceptance/tests/stub_host.rb +1 -1
- data/beaker-puppet.gemspec +3 -3
- data/lib/beaker-puppet/helpers/puppet_helpers.rb +20 -95
- data/lib/beaker-puppet/install_utils/foss_utils.rb +10 -194
- data/lib/beaker-puppet/install_utils/puppet_utils.rb +0 -17
- data/lib/beaker-puppet/version.rb +1 -1
- data/release-prep.sh +11 -0
- data/setup/aio/010_Install_Puppet_Agent.rb +22 -8
- data/setup/common/040_ValidateSignCert.rb +4 -11
- data/setup/gem/010_GemInstall.rb +1 -1
- data/spec/beaker-puppet/helpers/puppet_helpers_spec.rb +1 -251
- data/spec/beaker-puppet/install_utils/foss_utils_spec.rb +34 -463
- data/spec/beaker-puppet/install_utils/puppet_utils_spec.rb +0 -23
- data/tasks/ci.rake +27 -19
- metadata +11 -6
@@ -98,8 +98,8 @@ module Beaker
|
|
98
98
|
git_protocol = 'https://'
|
99
99
|
end
|
100
100
|
|
101
|
-
repo = git_server == 'github.com' ? "#{git_fork}/#{project_name}.git" : "#{git_fork}-#{project_name}.git"
|
102
|
-
git_protocol == 'git@' ? "#{git_protocol}#{git_server}:#{repo}" : "#{git_protocol}#{git_server}/#{repo}"
|
101
|
+
repo = (git_server == 'github.com') ? "#{git_fork}/#{project_name}.git" : "#{git_fork}-#{project_name}.git"
|
102
|
+
(git_protocol == 'git@') ? "#{git_protocol}#{git_server}:#{repo}" : "#{git_protocol}#{git_server}/#{repo}"
|
103
103
|
end
|
104
104
|
alias build_giturl build_git_url
|
105
105
|
|
@@ -406,7 +406,7 @@ module Beaker
|
|
406
406
|
end
|
407
407
|
|
408
408
|
case host['platform']
|
409
|
-
when /el-|redhat|fedora|sles|centos|cisco_/
|
409
|
+
when /amazon|el-|redhat|fedora|sles|centos|cisco_/
|
410
410
|
package_name = 'puppet-agent'
|
411
411
|
package_name << "-#{opts[:puppet_agent_version]}" if opts[:puppet_agent_version]
|
412
412
|
when /debian|ubuntu|huaweios/
|
@@ -993,7 +993,7 @@ module Beaker
|
|
993
993
|
opts = sanitize_opts(opts)
|
994
994
|
|
995
995
|
case variant
|
996
|
-
when /^(fedora|el|redhat|centos|sles|cisco_nexus|cisco_ios_xr)$/
|
996
|
+
when /^(amazon|fedora|el|redhat|centos|sles|cisco_nexus|cisco_ios_xr)$/
|
997
997
|
variant_url_value = (%w[redhat centos].include?(::Regexp.last_match(1)) ? 'el' : ::Regexp.last_match(1))
|
998
998
|
if variant == 'cisco_nexus'
|
999
999
|
variant_url_value = 'cisco-wrlinux'
|
@@ -1148,7 +1148,7 @@ module Beaker
|
|
1148
1148
|
repo_configs_dir = nil,
|
1149
1149
|
opts = options)
|
1150
1150
|
variant, version, arch, codename = host['platform'].to_array
|
1151
|
-
if variant !~ /^(
|
1151
|
+
if variant !~ /^(fedora|el|redhat|centos|debian|ubuntu|huaweios|cisco_nexus|cisco_ios_xr|sles)$/
|
1152
1152
|
raise "No repository installation step for #{variant} yet..."
|
1153
1153
|
end
|
1154
1154
|
|
@@ -1162,7 +1162,7 @@ module Beaker
|
|
1162
1162
|
# url type
|
1163
1163
|
_, protocol, hostname = opts[:dev_builds_url].partition %r{.*://}
|
1164
1164
|
dev_builds_url = protocol + hostname
|
1165
|
-
dev_builds_url = opts[:dev_builds_url] if variant =~ /^(
|
1165
|
+
dev_builds_url = opts[:dev_builds_url] if variant =~ /^(fedora|el|redhat|centos)$/
|
1166
1166
|
|
1167
1167
|
install_repo_configs(host, dev_builds_url, package_name,
|
1168
1168
|
build_version, platform_configs_dir)
|
@@ -1195,193 +1195,6 @@ module Beaker
|
|
1195
1195
|
configure_type_defaults_on(host)
|
1196
1196
|
end
|
1197
1197
|
|
1198
|
-
# Install development repo of the puppet-agent on the given host(s). Downloaded from
|
1199
|
-
# location of the form DEV_BUILDS_URL/puppet-agent/AGENT_VERSION/repos
|
1200
|
-
#
|
1201
|
-
# @param [Host, Array<Host>, String, Symbol] hosts One or more hosts to act upon,
|
1202
|
-
# or a role (String or Symbol) that identifies one or more hosts.
|
1203
|
-
# @param [Hash{Symbol=>String}] opts An options hash
|
1204
|
-
# @option opts [String] :puppet_agent_version The version of puppet-agent to install. This
|
1205
|
-
# parameter is used by puppet with the +SUITE_VERSION+ environment
|
1206
|
-
# variable to provide a `git describe` value to beaker to create a
|
1207
|
-
# build server URL. Note that +puppet_agent_sha+ will still be used
|
1208
|
-
# instead of this if a value is provided for that option
|
1209
|
-
# @option opts [String] :puppet_agent_sha The sha of puppet-agent to install, defaults to provided
|
1210
|
-
# puppet_agent_version
|
1211
|
-
# @option opts [String] :copy_base_local Directory where puppet-agent artifact
|
1212
|
-
# will be stored locally
|
1213
|
-
# (default: 'tmp/repo_configs')
|
1214
|
-
# @option opts [String] :copy_dir_external Directory where puppet-agent
|
1215
|
-
# artifact will be pushed to on the external machine
|
1216
|
-
# (default: '/root')
|
1217
|
-
# @option opts [String] :puppet_collection Defaults to 'PC1'
|
1218
|
-
# @option opts [String] :dev_builds_url Base URL to pull artifacts from
|
1219
|
-
# @option opts [String] :copy_base_local Directory where puppet-agent artifact
|
1220
|
-
# will be stored locally
|
1221
|
-
# (default: 'tmp/repo_configs')
|
1222
|
-
# @option opts [String] :copy_dir_external Directory where puppet-agent
|
1223
|
-
# artifact will be pushed to on the external machine
|
1224
|
-
# (default: '/root')
|
1225
|
-
#
|
1226
|
-
# @note on windows, the +:ruby_arch+ host parameter can determine in addition
|
1227
|
-
# to other settings whether the 32 or 64bit install is used
|
1228
|
-
#
|
1229
|
-
# @example
|
1230
|
-
# install_puppet_agent_dev_repo_on(host, { :puppet_agent_sha => 'd3377feaeac173aada3a2c2cedd141eb610960a7', :puppet_agent_version => '1.1.1.225.gd3377fe' })
|
1231
|
-
#
|
1232
|
-
# @return nil
|
1233
|
-
def install_puppet_agent_dev_repo_on(hosts, global_opts)
|
1234
|
-
global_opts[:puppet_agent_version] ||= global_opts[:version] # backward compatability
|
1235
|
-
unless global_opts[:puppet_agent_version]
|
1236
|
-
raise 'must provide :puppet_agent_version (puppet-agent version) for install_puppet_agent_dev_repo_on'
|
1237
|
-
end
|
1238
|
-
|
1239
|
-
block_on hosts do |host|
|
1240
|
-
opts = global_opts.dup
|
1241
|
-
|
1242
|
-
# TODO: consolidate these values as they serve no purpose from beaker's side
|
1243
|
-
# you could provide any values you could to one to the other
|
1244
|
-
puppet_agent_version = opts[:puppet_agent_sha] || opts[:puppet_agent_version]
|
1245
|
-
|
1246
|
-
opts = sanitize_opts(opts)
|
1247
|
-
opts[:download_url] = "#{opts[:dev_builds_url]}/puppet-agent/#{puppet_agent_version}/repos/"
|
1248
|
-
opts[:copy_base_local] ||= File.join('tmp', 'repo_configs')
|
1249
|
-
opts[:puppet_collection] ||= 'PC1'
|
1250
|
-
|
1251
|
-
release_path = opts[:download_url]
|
1252
|
-
|
1253
|
-
variant, version, arch, codename = host['platform'].to_array
|
1254
|
-
add_role(host, 'aio') # we are installing agent, so we want aio role
|
1255
|
-
copy_dir_local = File.join(opts[:copy_base_local], variant)
|
1256
|
-
onhost_copy_base = opts[:copy_dir_external] || host.external_copy_base
|
1257
|
-
|
1258
|
-
case variant
|
1259
|
-
when /^(fedora|el|redhat|centos|debian|ubuntu|huaweios|cisco_nexus|cisco_ios_xr)$/
|
1260
|
-
if arch == 's390x' || host['hypervisor'] == 'ec2'
|
1261
|
-
logger.trace("#install_puppet_agent_dev_repo_on: unsupported host #{host} for repo detected. using dev package")
|
1262
|
-
else
|
1263
|
-
install_puppetlabs_dev_repo(host, 'puppet-agent', puppet_agent_version, nil, opts)
|
1264
|
-
host.install_package('puppet-agent')
|
1265
|
-
logger.trace('#install_puppet_agent_dev_repo_on: install_puppetlabs_dev_repo finished')
|
1266
|
-
next
|
1267
|
-
end
|
1268
|
-
when /^(eos|osx|windows|solaris|sles|aix)$/
|
1269
|
-
# Download installer package file & run install manually.
|
1270
|
-
# Done below, so that el hosts with s390x arch or on ec2 can use this
|
1271
|
-
# workflow as well
|
1272
|
-
else
|
1273
|
-
raise "No repository installation step for #{variant} yet..."
|
1274
|
-
end
|
1275
|
-
|
1276
|
-
release_path_end, release_file = host.puppet_agent_dev_package_info(
|
1277
|
-
opts[:puppet_collection], opts[:puppet_agent_version], opts
|
1278
|
-
)
|
1279
|
-
release_path << release_path_end
|
1280
|
-
logger.trace('#install_puppet_agent_dev_repo_on: dev_package_info, continuing...')
|
1281
|
-
|
1282
|
-
if variant =~ /eos/
|
1283
|
-
host.get_remote_file("#{release_path}/#{release_file}")
|
1284
|
-
else
|
1285
|
-
onhost_copied_file = File.join(onhost_copy_base, release_file)
|
1286
|
-
fetch_http_file(release_path, release_file, copy_dir_local)
|
1287
|
-
scp_to host, File.join(copy_dir_local, release_file), onhost_copy_base
|
1288
|
-
end
|
1289
|
-
|
1290
|
-
case variant
|
1291
|
-
when /^eos/
|
1292
|
-
host.install_from_file(release_file)
|
1293
|
-
when /^(sles|aix|fedora|el|redhat|centos)$/
|
1294
|
-
# NOTE: AIX does not support repo management. This block assumes
|
1295
|
-
# that the desired rpm has been mirrored to the 'repos' location.
|
1296
|
-
# NOTE: the AIX 7.1 package will only install on 7.2 with
|
1297
|
-
# --ignoreos. This is a bug in package building on AIX 7.1's RPM
|
1298
|
-
aix_72_ignoreos_hack = '--ignoreos' if variant == 'aix' && version == '7.2'
|
1299
|
-
on host, "rpm -ivh #{aix_72_ignoreos_hack} #{onhost_copied_file}"
|
1300
|
-
when /^windows$/
|
1301
|
-
result = on host, "echo #{onhost_copied_file}"
|
1302
|
-
onhost_copied_file = result.raw_output.chomp
|
1303
|
-
msi_opts = { debug: host[:pe_debug] || opts[:pe_debug] }
|
1304
|
-
install_msi_on(host, onhost_copied_file, {}, msi_opts)
|
1305
|
-
when /^osx$/
|
1306
|
-
host.install_package("puppet-agent-#{opts[:puppet_agent_version]}*")
|
1307
|
-
when /^solaris$/
|
1308
|
-
host.solaris_install_local_package(release_file, onhost_copy_base)
|
1309
|
-
end
|
1310
|
-
configure_type_defaults_on(host)
|
1311
|
-
end
|
1312
|
-
end
|
1313
|
-
alias install_puppetagent_dev_repo install_puppet_agent_dev_repo_on
|
1314
|
-
|
1315
|
-
# Install shared repo of the puppet-agent on the given host(s). Downloaded from
|
1316
|
-
# location of the form PE_PROMOTED_BUILDS_URL/PE_VER/puppet-agent/AGENT_VERSION/repo
|
1317
|
-
#
|
1318
|
-
# @param [Host, Array<Host>, String, Symbol] hosts One or more hosts to act upon,
|
1319
|
-
# or a role (String or Symbol) that identifies one or more hosts.
|
1320
|
-
# @param [Hash{Symbol=>String}] opts An options hash
|
1321
|
-
# @option opts [String] :puppet_agent_version The version of puppet-agent to install, defaults to 'latest'
|
1322
|
-
# @option opts [String] :pe_ver The version of PE (will also use host['pe_ver']), defaults to '4.0'
|
1323
|
-
# @option opts [String] :copy_base_local Directory where puppet-agent artifact
|
1324
|
-
# will be stored locally
|
1325
|
-
# (default: 'tmp/repo_configs')
|
1326
|
-
# @option opts [String] :copy_dir_external Directory where puppet-agent
|
1327
|
-
# artifact will be pushed to on the external machine
|
1328
|
-
# (default: '/root')
|
1329
|
-
# @option opts [String] :puppet_collection Defaults to 'PC1'
|
1330
|
-
# @option opts [String] :pe_promoted_builds_url Base URL to pull artifacts from
|
1331
|
-
#
|
1332
|
-
# @note on windows, the +:ruby_arch+ host parameter can determine in addition
|
1333
|
-
# to other settings whether the 32 or 64bit install is used
|
1334
|
-
#
|
1335
|
-
# @example
|
1336
|
-
# install_puppet_agent_pe_promoted_repo_on(host, { :puppet_agent_version => '1.1.0.227', :pe_ver => '4.0.0-rc1'})
|
1337
|
-
#
|
1338
|
-
# @return nil
|
1339
|
-
def install_puppet_agent_pe_promoted_repo_on(hosts, opts)
|
1340
|
-
opts[:puppet_agent_version] ||= 'latest'
|
1341
|
-
|
1342
|
-
block_on hosts do |host|
|
1343
|
-
pe_ver = host[:pe_ver] || opts[:pe_ver] || '4.0.0-rc1'
|
1344
|
-
opts = sanitize_opts(opts)
|
1345
|
-
opts[:download_url] =
|
1346
|
-
"#{opts[:pe_promoted_builds_url]}/puppet-agent/#{pe_ver}/#{opts[:puppet_agent_version]}/repos"
|
1347
|
-
opts[:copy_base_local] ||= File.join('tmp', 'repo_configs')
|
1348
|
-
opts[:copy_dir_external] ||= host.external_copy_base
|
1349
|
-
opts[:puppet_collection] ||= puppet_collection_for(:puppet_agent, opts[:puppet_agent_version])
|
1350
|
-
add_role(host, 'aio') # we are installing agent, so we want aio role
|
1351
|
-
release_path = opts[:download_url]
|
1352
|
-
variant, version, arch, codename = host['platform'].to_array
|
1353
|
-
copy_dir_local = File.join(opts[:copy_base_local], variant)
|
1354
|
-
onhost_copy_base = opts[:copy_dir_external]
|
1355
|
-
|
1356
|
-
release_path_end, release_file, download_file =
|
1357
|
-
host.pe_puppet_agent_promoted_package_info(
|
1358
|
-
opts[:puppet_collection], opts
|
1359
|
-
)
|
1360
|
-
release_path << release_path_end
|
1361
|
-
|
1362
|
-
onhost_copied_download = File.join(onhost_copy_base, download_file)
|
1363
|
-
onhost_copied_file = File.join(onhost_copy_base, release_file)
|
1364
|
-
fetch_http_file(release_path, download_file, copy_dir_local)
|
1365
|
-
scp_to host, File.join(copy_dir_local, download_file), onhost_copy_base
|
1366
|
-
|
1367
|
-
if variant == 'windows'
|
1368
|
-
result = on host, "echo #{onhost_copied_file}"
|
1369
|
-
onhost_copied_file = result.raw_output.chomp
|
1370
|
-
opts = { debug: host[:pe_debug] || opts[:pe_debug] }
|
1371
|
-
# couldn't pull this out, because it's relying on
|
1372
|
-
# {Beaker::DSL::InstallUtils::WindowsUtils} methods,
|
1373
|
-
# which I didn't want to attack right now. TODO
|
1374
|
-
install_msi_on(host, onhost_copied_file, {}, opts)
|
1375
|
-
else
|
1376
|
-
host.pe_puppet_agent_promoted_package_install(
|
1377
|
-
onhost_copy_base, onhost_copied_download,
|
1378
|
-
onhost_copied_file, download_file, opts
|
1379
|
-
)
|
1380
|
-
end
|
1381
|
-
configure_type_defaults_on(host)
|
1382
|
-
end
|
1383
|
-
end
|
1384
|
-
|
1385
1198
|
# This method will install a pem file certificate on a windows host
|
1386
1199
|
#
|
1387
1200
|
# @param [Host] host A host object
|
@@ -1518,7 +1331,10 @@ module Beaker
|
|
1518
1331
|
end
|
1519
1332
|
|
1520
1333
|
# delete any residual files
|
1521
|
-
on(host, 'find / -name "*puppet*" -print | xargs rm -rf')
|
1334
|
+
result = on(host, 'find / -name "*puppet*" -print | xargs rm -rf', accept_all_exit_codes: true)
|
1335
|
+
unless result.exit_code == 0
|
1336
|
+
logger.notify("Attempt to clean residual puppet files errored, but can maybe be ignored.\n #{result.stderr}")
|
1337
|
+
end
|
1522
1338
|
end
|
1523
1339
|
end
|
1524
1340
|
|
@@ -65,23 +65,6 @@ module Beaker
|
|
65
65
|
end
|
66
66
|
end
|
67
67
|
|
68
|
-
# Given an agent_version, return the puppet collection associated with that agent version
|
69
|
-
#
|
70
|
-
# @param [String] agent_version version string or 'latest'
|
71
|
-
# @deprecated This method returns 'PC1' as the latest puppet collection;
|
72
|
-
# this is incorrect. Use {#puppet_collection_for} instead.
|
73
|
-
def get_puppet_collection(agent_version = 'latest')
|
74
|
-
collection = 'PC1'
|
75
|
-
if agent_version != 'latest'
|
76
|
-
if !version_is_less(agent_version, '5.5.4') and version_is_less(agent_version, '5.99')
|
77
|
-
collection = 'puppet5'
|
78
|
-
elsif !version_is_less(agent_version, '5.99')
|
79
|
-
collection = 'puppet6'
|
80
|
-
end
|
81
|
-
end
|
82
|
-
collection
|
83
|
-
end
|
84
|
-
|
85
68
|
# Determine the puppet collection that matches a given package version. The package
|
86
69
|
# must be one of
|
87
70
|
# * :puppet_agent (you can get this version from the `aio_agent_version_fact`)
|
data/release-prep.sh
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
# Update Gemfile.lock
|
4
|
+
docker run -t --rm \
|
5
|
+
-v $(pwd):/app \
|
6
|
+
ruby:3.1.4 \
|
7
|
+
/bin/bash -c 'apt-get update -qq && apt-get install -y --no-install-recommends git make netbase && cd /app && gem install bundler && bundle install --jobs 3; echo "LOCK_FILE_UPDATE_EXIT_CODE=$?"'
|
8
|
+
|
9
|
+
docker run -t --rm -e CHANGELOG_GITHUB_TOKEN -v $(pwd):/usr/local/src/your-app \
|
10
|
+
githubchangeloggenerator/github-changelog-generator:1.16.2 \
|
11
|
+
github_changelog_generator --future-release $(grep VERSION lib/beaker-puppet/version.rb |rev |cut -d "'" -f 2 |rev)
|
@@ -1,16 +1,30 @@
|
|
1
1
|
test_name 'Install Puppet Agent Packages' do
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
2
|
+
agents.each do |agent|
|
3
|
+
path = ENV.fetch('DEV_BUILD_PATH', nil)
|
4
|
+
if path
|
5
|
+
raise ArgumentError, "The path #{path} does not exist" unless File.exist?(path)
|
6
|
+
|
7
|
+
basename = File.basename(path)
|
8
|
+
scp_to(agent, path, basename)
|
8
9
|
|
9
|
-
|
10
|
+
# configure locations for ruby, puppet, config files, etc
|
11
|
+
add_aio_defaults_on(agent)
|
12
|
+
agent.install_package(basename)
|
13
|
+
else
|
14
|
+
opts = {
|
15
|
+
nightly_builds_url: ENV.fetch('NIGHTLY_BUILDS_URL', nil),
|
16
|
+
dev_builds_url: ENV.fetch('DEV_BUILDS_URL', nil),
|
17
|
+
puppet_agent_version: ENV.fetch('SHA', nil),
|
18
|
+
puppet_collection: ENV.fetch('RELEASE_STREAM', nil),
|
19
|
+
}
|
20
|
+
|
21
|
+
install_puppet_agent_on(hosts, opts)
|
22
|
+
end
|
23
|
+
end
|
10
24
|
|
11
25
|
# make sure install is sane, beaker has already added puppet and ruby
|
12
26
|
# to PATH in ~/.ssh/environment
|
13
|
-
agents.each do |agent|
|
27
|
+
agents.each do |agent| # rubocop:disable Style/CombinableLoops
|
14
28
|
on agent, puppet('--version')
|
15
29
|
ruby = ruby_command(agent)
|
16
30
|
on agent, "#{ruby} --version"
|
@@ -7,15 +7,9 @@ test_name 'Validate Sign Cert' do
|
|
7
7
|
skip_test 'not testing with puppetserver' unless @options['is_puppetserver']
|
8
8
|
hostname = on(master, 'facter hostname').stdout.strip
|
9
9
|
fqdn = on(master, 'facter fqdn').stdout.strip
|
10
|
-
puppet_version = on(master, puppet('--version')).stdout.chomp
|
11
10
|
|
12
|
-
|
13
|
-
|
14
|
-
# Passenger, in particular, must be shutdown for the cert setup steps to work,
|
15
|
-
# but any running puppet master will interfere with webrick starting up and
|
16
|
-
# potentially ignore the puppet.conf changes.
|
17
|
-
on(master, puppet('resource', 'service', master['puppetservice'], 'ensure=stopped'))
|
18
|
-
end
|
11
|
+
step 'Ensure puppet is stopped'
|
12
|
+
on(master, puppet('resource', 'service', master['puppetservice'], 'ensure=stopped'))
|
19
13
|
|
20
14
|
step 'Clear SSL on all hosts'
|
21
15
|
hosts.each do |host|
|
@@ -38,11 +32,10 @@ test_name 'Validate Sign Cert' do
|
|
38
32
|
},
|
39
33
|
}
|
40
34
|
|
41
|
-
|
42
|
-
on master, 'puppetserver ca setup' if !version_is_less(puppet_version, '5.99') && !master['use_existing_container']
|
35
|
+
on(master, 'puppetserver ca setup')
|
43
36
|
with_puppet_running_on(master, master_opts) do
|
44
37
|
step 'Agents: Run agent --test with autosigning enabled to get cert'
|
45
|
-
on
|
38
|
+
on(agents, puppet('agent --test'), acceptable_exit_codes: [0, 2])
|
46
39
|
end
|
47
40
|
end
|
48
41
|
end
|
data/setup/gem/010_GemInstall.rb
CHANGED
@@ -19,7 +19,7 @@ agents.each do |agent|
|
|
19
19
|
on(agent, "rm -rf '#{default_dir}'")
|
20
20
|
|
21
21
|
arch = agent[:ruby_arch] || 'x86'
|
22
|
-
gem_arch = arch == 'x64' ? 'x64-mingw32' : 'x86-mingw32'
|
22
|
+
gem_arch = (arch == 'x64') ? 'x64-mingw32' : 'x86-mingw32'
|
23
23
|
url = "#{base_url}/puppet-#{gem_version}-#{gem_arch}.gem"
|
24
24
|
else
|
25
25
|
url = "#{base_url}/puppet-#{gem_version}.gem"
|