beaker 2.9.0 → 2.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/HISTORY.md +191 -2
- data/acceptance/tests/base/host.rb +6 -0
- data/lib/beaker/answers/version32.rb +5 -0
- data/lib/beaker/cli.rb +88 -2
- data/lib/beaker/dsl/install_utils/puppet_utils.rb +46 -29
- data/lib/beaker/host.rb +2 -1
- data/lib/beaker/host/aix/exec.rb +4 -0
- data/lib/beaker/host/freebsd.rb +8 -0
- data/lib/beaker/host/freebsd/exec.rb +10 -0
- data/lib/beaker/host/pswindows/exec.rb +4 -0
- data/lib/beaker/host/unix/exec.rb +8 -0
- data/lib/beaker/host/unix/pkg.rb +4 -1
- data/lib/beaker/host/windows/exec.rb +4 -0
- data/lib/beaker/host_prebuilt_steps.rb +25 -1
- data/lib/beaker/hypervisor/openstack.rb +28 -13
- data/lib/beaker/hypervisor/vagrant.rb +19 -0
- data/lib/beaker/network_manager.rb +1 -1
- data/lib/beaker/options/presets.rb +1 -0
- data/lib/beaker/version.rb +1 -1
- data/spec/beaker/answers_spec.rb +32 -0
- data/spec/beaker/cli_spec.rb +207 -0
- data/spec/beaker/dsl/install_utils/puppet_utils_spec.rb +78 -20
- data/spec/beaker/network_manager_spec.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YmY2Mjc5OTAyMTE2ODI4ZWNkMGYwMTkyMjE2NDVjNTRmM2FiYzA5Nw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MzMyODZhZDIwMzJkNzYwZjdlYmVjNTNlODdjODg5NmJjNjdkNGJiNQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZjRmYmIzOGJmMzE2YWNiYjVmMWUzMGQyYjgwNTg3NzU0NDdmNGQ4ZDhiNThl
|
10
|
+
MmE2NmU3MWU3OWRhMGYwZjQ0ZDQ2ZTc2M2U1NGVjNDJhNDZhYTI4MzkzOWEz
|
11
|
+
N2JiNmVhNjRiYmJmM2U2NzM1Mjg0NDA5ZTg2MGFjYTA4NGM5ZmI=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YTk0ZThhMGRkYzEwMWRjNjdkNTBkZmE3NzI0Y2E3YjcyOWI5NmYwOTExYjg4
|
14
|
+
MDA1MzY5YzE4NDVjMWE5N2MzYTczZjdhMjRlOWQwZGUzMGUxZmJhNWM4N2E2
|
15
|
+
YTU2YjFmN2JiNmZlMjgyNmRiYzMyYWE3ZDZiNzJlMjY0MTQ1NDg=
|
data/HISTORY.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# default - History
|
2
2
|
## Tags
|
3
|
-
* [LATEST -
|
3
|
+
* [LATEST - 22 Apr, 2015 (2f834676)](#LATEST)
|
4
|
+
* [2.9.0 - 9 Apr, 2015 (b161d325)](#2.9.0)
|
4
5
|
* [beaker2.8.0 - 26 Mar, 2015 (2d25d06d)](#beaker2.8.0)
|
5
6
|
* [beaker2.7.1 - 19 Mar, 2015 (45b2bf10)](#beaker2.7.1)
|
6
7
|
* [beaker2.7.0 - 19 Mar, 2015 (38b14ef8)](#beaker2.7.0)
|
@@ -77,7 +78,195 @@
|
|
77
78
|
* [pe1.2 - 6 Sep, 2011 (ba3dadd2)](#pe1.2)
|
78
79
|
|
79
80
|
## Details
|
80
|
-
### <a name = "LATEST">LATEST -
|
81
|
+
### <a name = "LATEST">LATEST - 22 Apr, 2015 (2f834676)
|
82
|
+
|
83
|
+
* (GEM) update beaker version to 2.10.0 (2f834676)
|
84
|
+
|
85
|
+
* Merge pull request #777 from kevpl/bkr184_repos_addoption (c68967e3)
|
86
|
+
|
87
|
+
|
88
|
+
```
|
89
|
+
Merge pull request #777 from kevpl/bkr184_repos_addoption
|
90
|
+
|
91
|
+
(BKR-184) generalized repo selection code for install_puppetlabs_dev_repo
|
92
|
+
```
|
93
|
+
* Merge pull request #775 from kevpl/bkr4_hostsfile_reuse (433d7ccd)
|
94
|
+
|
95
|
+
|
96
|
+
```
|
97
|
+
Merge pull request #775 from kevpl/bkr4_hostsfile_reuse
|
98
|
+
|
99
|
+
(BKR-4) Beaker now dumps re-usable hosts file when SUTs are preserved
|
100
|
+
```
|
101
|
+
* Merge pull request #787 from er0ck/fix/master/BKR-209-check_for_package_and_host_prebuild_sles10 (c256ebd7)
|
102
|
+
|
103
|
+
|
104
|
+
```
|
105
|
+
Merge pull request #787 from er0ck/fix/master/BKR-209-check_for_package_and_host_prebuild_sles10
|
106
|
+
|
107
|
+
(BKR-209) check for package and host prebuild sles10
|
108
|
+
```
|
109
|
+
* (BKR-209) check for package and host prebuild sles10 (f21ad513)
|
110
|
+
|
111
|
+
|
112
|
+
```
|
113
|
+
(BKR-209) check for package and host prebuild sles10
|
114
|
+
|
115
|
+
this change fixes check_for_package on sles10 in which zypper always
|
116
|
+
returns 0, even if a package is not found.
|
117
|
+
This change also removes ntp package from the host pre-build steps.
|
118
|
+
sles10 comes with ntp_command installed.
|
119
|
+
```
|
120
|
+
* Merge pull request #785 from anodelman/cherry (8eb9a543)
|
121
|
+
|
122
|
+
|
123
|
+
```
|
124
|
+
Merge pull request #785 from anodelman/cherry
|
125
|
+
|
126
|
+
(BKR-196) add 'reboot' host method
|
127
|
+
```
|
128
|
+
* (BKR-196) add 'reboot' host method (53cd051b)
|
129
|
+
|
130
|
+
|
131
|
+
```
|
132
|
+
(BKR-196) add 'reboot' host method
|
133
|
+
|
134
|
+
- added host.reboot method
|
135
|
+
- added acceptance test to ensure functionality
|
136
|
+
```
|
137
|
+
* Merge pull request #733 from fiddyspence/feature/better_openstack_ip_assignment_handling (d854fcae)
|
138
|
+
|
139
|
+
|
140
|
+
```
|
141
|
+
Merge pull request #733 from fiddyspence/feature/better_openstack_ip_assignment_handling
|
142
|
+
|
143
|
+
(gh-732) Better Openstack IP address assignment
|
144
|
+
```
|
145
|
+
* Merge pull request #752 from petems/MAINT-fix_install_puppet_from_msi_on_cygwin (1333f9bd)
|
146
|
+
|
147
|
+
|
148
|
+
```
|
149
|
+
Merge pull request #752 from petems/MAINT-fix_install_puppet_from_msi_on_cygwin
|
150
|
+
|
151
|
+
(MAINT) Fix install_puppet_from msi_on non-cygwin
|
152
|
+
```
|
153
|
+
* Merge pull request #765 from petems/BKR-113-add_freesbd_vagrant_options (6bec19f7)
|
154
|
+
|
155
|
+
|
156
|
+
```
|
157
|
+
Merge pull request #765 from petems/BKR-113-add_freesbd_vagrant_options
|
158
|
+
|
159
|
+
(BKR-113) Adds FreeBSD Vagrantfile logic
|
160
|
+
```
|
161
|
+
* Merge pull request #766 from petems/BKR-113-host_prebuild_steps_for_freebsd (59873206)
|
162
|
+
|
163
|
+
|
164
|
+
```
|
165
|
+
Merge pull request #766 from petems/BKR-113-host_prebuild_steps_for_freebsd
|
166
|
+
|
167
|
+
(BKR-113) Host Prebuilt commands for FreeBSD
|
168
|
+
```
|
169
|
+
* Merge pull request #774 from electrical/centos7 (00434a4f)
|
170
|
+
|
171
|
+
|
172
|
+
```
|
173
|
+
Merge pull request #774 from electrical/centos7
|
174
|
+
|
175
|
+
modifications for CentOS-7
|
176
|
+
```
|
177
|
+
* Merge pull request #779 from kevpl/bkr150_sut_changename (85e45d64)
|
178
|
+
|
179
|
+
|
180
|
+
```
|
181
|
+
Merge pull request #779 from kevpl/bkr150_sut_changename
|
182
|
+
|
183
|
+
(BKR-150) changed host name to host.log_prefix for extra context in sut.log
|
184
|
+
```
|
185
|
+
* Merge pull request #683 from fiddyspence/bug/openstack_multi_host_blurn (57e398a5)
|
186
|
+
|
187
|
+
|
188
|
+
```
|
189
|
+
Merge pull request #683 from fiddyspence/bug/openstack_multi_host_blurn
|
190
|
+
|
191
|
+
(gh-687) [openstack] multi node root user enable
|
192
|
+
```
|
193
|
+
* Merge pull request #784 from anodelman/answers (35632798)
|
194
|
+
|
195
|
+
|
196
|
+
```
|
197
|
+
Merge pull request #784 from anodelman/answers
|
198
|
+
|
199
|
+
(BKR-182) Disable check_for_updates by default with beaker
|
200
|
+
```
|
201
|
+
* (BKR-182) Disable check_for_updates by default with beaker (75384994)
|
202
|
+
|
203
|
+
|
204
|
+
```
|
205
|
+
(BKR-182) Disable check_for_updates by default with beaker
|
206
|
+
|
207
|
+
- added to version 3.2+
|
208
|
+
```
|
209
|
+
* (BKR-150) changed host name to host.log_prefix for extra context in sut.log (7ec8d8e8)
|
210
|
+
|
211
|
+
* (BKR-184) generalized repo selection code for install_puppetlabs_dev_repo (b3b519ea)
|
212
|
+
|
213
|
+
* (BKR-4) Beaker now dumps re-usable hosts file when SUTs are preserved (03f7262f)
|
214
|
+
|
215
|
+
* (BKR-116) modifications for CentOS-7 (1d961ccc)
|
216
|
+
|
217
|
+
* (BKR-113) Host Prebuilt commands for FreeBSD (39038ad3)
|
218
|
+
|
219
|
+
|
220
|
+
```
|
221
|
+
(BKR-113) Host Prebuilt commands for FreeBSD
|
222
|
+
|
223
|
+
Since FreeBSD echo is different from Linux-y echo, it's much easier to just use printf and escape the strings using gsub.
|
224
|
+
```
|
225
|
+
* (BKR-113) Adds FreeBSD Vagrantfile logic (95429ad7)
|
226
|
+
|
227
|
+
|
228
|
+
```
|
229
|
+
(BKR-113) Adds FreeBSD Vagrantfile logic
|
230
|
+
|
231
|
+
With Vagrant we use rsync for folder sync, as nfs has a character restriction of 88 characters. So depending on the module name and where it's being stored, it can error out:
|
232
|
+
|
233
|
+
|
234
|
+
|
235
|
+
==> default: Mounting NFS shared folders...
|
236
|
+
The following SSH command responded with a non-zero exit status.
|
237
|
+
Vagrant assumes that this means the command failed!
|
238
|
+
|
239
|
+
mount -t nfs '10.0.1.1:/Users/petersouter/projects/reallylongpathnameover88characterssothatmountfswillfail12345678910111213141516' '/vagrant'
|
240
|
+
|
241
|
+
Stdout from the command:
|
242
|
+
|
243
|
+
Stderr from the command:
|
244
|
+
|
245
|
+
mount_nfs: 10.0.1.1:/Users/petersouter/projects/reallylongpathnameover88characterssothatmountfswillfail12345678910111213141516: File name too long
|
246
|
+
|
247
|
+
|
248
|
+
|
249
|
+
Further reading if interested:
|
250
|
+
http://www.secnetix.de/olli/FreeBSD/mnamelen.hawk
|
251
|
+
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=167105
|
252
|
+
```
|
253
|
+
* (MAINT) Changes msi install commands run when on non-cygwin (89dabc69)
|
254
|
+
|
255
|
+
* (MAINT) Changes msi install commands ran... (effcde41)
|
256
|
+
|
257
|
+
|
258
|
+
```
|
259
|
+
(MAINT) Changes msi install commands ran...
|
260
|
+
|
261
|
+
When on non-cygwin Windows, use `start` not cmd
|
262
|
+
```
|
263
|
+
* (gh-732) Better Openstack IP address assignment (e1fcd580)
|
264
|
+
|
265
|
+
* (gh-687) [openstack] Previously, the method attemped to set root on all nodes, even if the node was not up yet (802db0e9)
|
266
|
+
|
267
|
+
### <a name = "2.9.0">2.9.0 - 9 Apr, 2015 (b161d325)
|
268
|
+
|
269
|
+
* (HISTORY) update beaker history for gem release 2.9.0 (b161d325)
|
81
270
|
|
82
271
|
* (GEM) update beaker version to 2.9.0 (901c4a94)
|
83
272
|
|
@@ -152,3 +152,9 @@ hosts.each do |host|
|
|
152
152
|
assert_equal(0, host_paths.length, "there are extra paths on #{host} (#{host_paths})")
|
153
153
|
end
|
154
154
|
end
|
155
|
+
|
156
|
+
step "#reboot: can reboot the host"
|
157
|
+
hosts.each do |host|
|
158
|
+
host.reboot
|
159
|
+
on host, "echo #{host} rebooted!"
|
160
|
+
end
|
@@ -23,6 +23,11 @@ module Beaker
|
|
23
23
|
the_answers[dashboard.name][:q_puppetmaster_certname] = master
|
24
24
|
end
|
25
25
|
|
26
|
+
# do we want to check for updates?
|
27
|
+
pe_check_for_updates = answer_for(@options, :q_pe_check_for_updates, 'n')
|
28
|
+
the_answers[dashboard.name][:q_pe_check_for_updates] = pe_check_for_updates
|
29
|
+
the_answers[master.name][:q_pe_check_for_updates] = pe_check_for_updates
|
30
|
+
|
26
31
|
if @options[:type] == :upgrade && dashboard != database
|
27
32
|
# In a split configuration, there is no way for the upgrader
|
28
33
|
# to know how much disk space is available for the database
|
data/lib/beaker/cli.rb
CHANGED
@@ -126,6 +126,8 @@ module Beaker
|
|
126
126
|
if @network_manager
|
127
127
|
@network_manager.cleanup
|
128
128
|
end
|
129
|
+
else
|
130
|
+
preserve_hosts_file if @options[:provision]
|
129
131
|
end
|
130
132
|
|
131
133
|
if @logger.is_debug?
|
@@ -149,7 +151,38 @@ module Beaker
|
|
149
151
|
).run_and_raise_on_failure
|
150
152
|
end
|
151
153
|
|
152
|
-
#
|
154
|
+
# Sets aside the current hosts file for re-use with the --no-provision flag.
|
155
|
+
# This is originally intended for use on a successful tests where the hosts
|
156
|
+
# are preserved (the --preserve-hosts option is set accordingly).
|
157
|
+
# It copies the current hosts file to the log directory, and rewrites the SUT
|
158
|
+
# names to match their names during the finishing run.
|
159
|
+
#
|
160
|
+
# @return nil
|
161
|
+
def preserve_hosts_file
|
162
|
+
preserved_hosts_filename = File.join(@options[:log_dated_dir], File.basename(@options[:hosts_file]))
|
163
|
+
FileUtils.cp(@options[:hosts_file], preserved_hosts_filename)
|
164
|
+
hosts_yaml = YAML.load_file(preserved_hosts_filename)
|
165
|
+
newly_keyed_hosts_entries = {}
|
166
|
+
hosts_yaml['HOSTS'].each do |host_name, host_hash|
|
167
|
+
@hosts.each do |host|
|
168
|
+
if host_name == host.instance_variable_get(:@name)
|
169
|
+
newly_keyed_hosts_entries[host.to_s] = host_hash
|
170
|
+
break
|
171
|
+
end
|
172
|
+
end
|
173
|
+
end
|
174
|
+
hosts_yaml['HOSTS'] = newly_keyed_hosts_entries
|
175
|
+
File.open(preserved_hosts_filename, 'w') do |file|
|
176
|
+
YAML.dump(hosts_yaml, file)
|
177
|
+
end
|
178
|
+
@options[:hosts_preserved_yaml_file] = preserved_hosts_filename
|
179
|
+
end
|
180
|
+
|
181
|
+
# Prints all information required to reproduce the current run & results to the log
|
182
|
+
# @see #print_env_vars_affecting_beaker
|
183
|
+
# @see #print_command_line
|
184
|
+
#
|
185
|
+
# @return nil
|
153
186
|
def print_reproduction_info( log_level = :debug )
|
154
187
|
print_command_line( log_level )
|
155
188
|
print_env_vars_affecting_beaker( log_level )
|
@@ -187,13 +220,66 @@ module Beaker
|
|
187
220
|
# Prints the command line that can be called to reproduce this run
|
188
221
|
# (assuming the environment is the same)
|
189
222
|
# @param [Symbol] log_level The log level (coloring) to print the message at
|
190
|
-
# @example Print pertinent env vars using error
|
223
|
+
# @example Print pertinent env vars using error level reporting (red)
|
191
224
|
# print_command_line :error
|
192
225
|
#
|
226
|
+
# @note Re-use of already provisioned SUTs has been tested against the vmpooler & vagrant boxes.
|
227
|
+
# Fusion doesn't need this, as it has no cleanup steps. Docker is untested at this time.
|
228
|
+
# Please contact @electrical or the Puppet QE Team for more info, or for requests to support this.
|
229
|
+
#
|
193
230
|
# @return nil
|
194
231
|
def print_command_line( log_level = :debug )
|
195
232
|
@logger.send(log_level, "\nYou can reproduce this run with:\n")
|
196
233
|
@logger.send(log_level, @options[:command_line])
|
234
|
+
if @options[:hosts_preserved_yaml_file]
|
235
|
+
set_docker_warning = false
|
236
|
+
has_supported_hypervisor = false
|
237
|
+
@hosts.each do |host|
|
238
|
+
case host[:hypervisor]
|
239
|
+
when /vagrant|fusion|vmpooler|vcloud/
|
240
|
+
has_supported_hypervisor = true
|
241
|
+
when /docker/
|
242
|
+
set_docker_warning = true
|
243
|
+
end
|
244
|
+
end
|
245
|
+
if has_supported_hypervisor
|
246
|
+
reproducing_command = build_hosts_preserved_reproducing_command(@options[:command_line], @options[:hosts_preserved_yaml_file])
|
247
|
+
@logger.send(log_level, "\nYou can re-run commands against the already provisioned SUT(s) with:\n")
|
248
|
+
@logger.send(log_level, '(docker support is untested for this feature. please reference the docs for more info)') if set_docker_warning
|
249
|
+
@logger.send(log_level, reproducing_command)
|
250
|
+
end
|
251
|
+
end
|
252
|
+
end
|
253
|
+
|
254
|
+
# provides a new version of the command given, edited for re-use with a
|
255
|
+
# preserved host. It does this by swapping the hosts file out for the
|
256
|
+
# new_hostsfile argument and setting the --no-provision flag, removing
|
257
|
+
# any previously set provisioning flags that it finds.
|
258
|
+
#
|
259
|
+
# @param [String] command Command line parameters to edit.
|
260
|
+
# @param [String] new_hostsfile Path to the new hosts file to use.
|
261
|
+
#
|
262
|
+
# @return [String] The command line parameters edited for re-use
|
263
|
+
def build_hosts_preserved_reproducing_command(command, new_hostsfile)
|
264
|
+
command_parts = command.split(' ')
|
265
|
+
has_no_provision_flag = false
|
266
|
+
replace_hosts_file_next = false
|
267
|
+
reproducing_command = []
|
268
|
+
command_parts.each do |part|
|
269
|
+
if replace_hosts_file_next
|
270
|
+
reproducing_command << new_hostsfile
|
271
|
+
replace_hosts_file_next = false
|
272
|
+
next
|
273
|
+
elsif part == '--provision' || part == '--no-provision'
|
274
|
+
has_no_provision_flag = true
|
275
|
+
next
|
276
|
+
elsif part == '--hosts'
|
277
|
+
replace_hosts_file_next = true
|
278
|
+
end
|
279
|
+
reproducing_command << part
|
280
|
+
end
|
281
|
+
reproducing_command << '--no-provision' unless has_no_provision_flag
|
282
|
+
reproducing_command.join(' ')
|
197
283
|
end
|
198
284
|
end
|
199
285
|
end
|
@@ -369,15 +369,16 @@ module Beaker
|
|
369
369
|
else
|
370
370
|
dest = "C:\\Windows\\Temp\\#{host['dist']}.msi"
|
371
371
|
|
372
|
-
on host, "set PATH=\"%PATH%;#{host['puppetbindir']}\""
|
373
|
-
on host, "setx PATH \"%PATH%;#{host['puppetbindir']}\""
|
374
|
-
|
375
372
|
on host, powershell("$webclient = New-Object System.Net.WebClient; $webclient.DownloadFile('#{link}','#{dest}')")
|
376
373
|
|
377
|
-
|
374
|
+
host.mkdir_p host['distmoduledir']
|
378
375
|
end
|
379
376
|
|
380
|
-
|
377
|
+
if host.is_cygwin?
|
378
|
+
on host, "cmd /C 'start /w msiexec.exe /qn /i #{dest}'"
|
379
|
+
else
|
380
|
+
on host, "start /w msiexec.exe /qn /i #{dest}"
|
381
|
+
end
|
381
382
|
end
|
382
383
|
|
383
384
|
# Installs Puppet and dependencies from dmg
|
@@ -542,18 +543,23 @@ module Beaker
|
|
542
543
|
# @param [String] repo_configs_dir A local directory where repository files will be
|
543
544
|
# stored as an intermediate step before
|
544
545
|
# pushing them to the given host.
|
546
|
+
# @param [Hash{Symbol=>String}] opts Options to alter execution.
|
547
|
+
# @option opts [String] :dev_builds_url The URL to look for dev builds.
|
548
|
+
# @option opts [String, Array<String>] :dev_builds_repos The repo(s)
|
549
|
+
# to check for dev builds in.
|
545
550
|
#
|
546
551
|
# @note This method only works on redhat-like and debian-like hosts.
|
547
552
|
#
|
548
553
|
def install_puppetlabs_dev_repo ( host, package_name, build_version,
|
549
|
-
repo_configs_dir = 'tmp/repo_configs'
|
554
|
+
repo_configs_dir = 'tmp/repo_configs',
|
555
|
+
opts = options )
|
550
556
|
variant, version, arch, codename = host['platform'].to_array
|
551
557
|
platform_configs_dir = File.join(repo_configs_dir, variant)
|
552
558
|
|
553
559
|
# some of the uses of dev_builds_url below can't include protocol info,
|
554
560
|
# plus this opens up possibility of switching the behavior on provided
|
555
561
|
# url type
|
556
|
-
_, protocol, hostname =
|
562
|
+
_, protocol, hostname = opts[:dev_builds_url].partition /.*:\/\//
|
557
563
|
dev_builds_url = protocol + hostname
|
558
564
|
|
559
565
|
on host, "mkdir -p /root/#{package_name}"
|
@@ -583,25 +589,22 @@ module Beaker
|
|
583
589
|
repo_filename,
|
584
590
|
platform_configs_dir)
|
585
591
|
|
586
|
-
link =
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
link = "%s/%s/%s/repos/%s/%s%s/products/%s/" %
|
592
|
+
link = nil
|
593
|
+
package_repos = opts[:dev_builds_repos].nil? ? [] : [opts[:dev_builds_repos]]
|
594
|
+
package_repos.push(['products', 'devel']).flatten!
|
595
|
+
package_repos.each do |repo|
|
596
|
+
link = "%s/%s/%s/repos/%s/%s%s/%s/%s/" %
|
592
597
|
[ dev_builds_url, package_name, build_version, variant,
|
593
|
-
fedora_prefix, version, arch ]
|
594
|
-
end
|
595
|
-
|
596
|
-
if not link_exists?( link )
|
597
|
-
link = "%s/%s/%s/repos/%s/%s%s/devel/%s/" %
|
598
|
-
[ dev_builds_url, package_name, build_version, variant,
|
599
|
-
fedora_prefix, version, arch ]
|
600
|
-
end
|
598
|
+
fedora_prefix, version, repo, arch ]
|
601
599
|
|
602
|
-
|
603
|
-
|
600
|
+
unless link_exists?( link )
|
601
|
+
@logger.debug("couldn't find link at '#{repo}', falling back to next option...")
|
602
|
+
else
|
603
|
+
@logger.debug("found link at '#{repo}'")
|
604
|
+
break
|
605
|
+
end
|
604
606
|
end
|
607
|
+
raise "Unable to reach a repo directory at #{link}" unless link_exists?( link )
|
605
608
|
|
606
609
|
repo_dir = fetch_http_dir( link, platform_configs_dir )
|
607
610
|
|
@@ -632,11 +635,25 @@ module Beaker
|
|
632
635
|
scp_to host, list, config_dir
|
633
636
|
scp_to host, repo_dir, "/root/#{package_name}"
|
634
637
|
|
635
|
-
|
636
|
-
|
637
|
-
|
638
|
+
repo_name = nil
|
639
|
+
package_repos = opts[:dev_builds_repos].nil? ? [] : [opts[:dev_builds_repos]]
|
640
|
+
package_repos.flatten!
|
641
|
+
package_repos.each do |repo|
|
642
|
+
repo_path = "/root/#{package_name}/#{codename}/#{repo}"
|
643
|
+
repo_check = on(host, "[[ -d #{repo_path} ]]", :acceptable_exit_codes => [0,1])
|
644
|
+
if repo_check.exit_code == 0
|
645
|
+
@logger.debug("found repo at '#{repo_path}'")
|
646
|
+
repo_name = repo
|
647
|
+
break
|
648
|
+
else
|
649
|
+
@logger.debug("couldn't find repo at '#{repo_path}', falling back to next option...")
|
650
|
+
end
|
651
|
+
end
|
652
|
+
if repo_name.nil?
|
653
|
+
repo_name = 'main'
|
654
|
+
@logger.debug("using default repo '#{repo_name}'")
|
655
|
+
end
|
638
656
|
|
639
|
-
repo_name = pc1_check.exit_code == 0 ? 'PC1' : 'main'
|
640
657
|
search = "deb\\s\\+http:\\/\\/#{hostname}.*$"
|
641
658
|
replace = "deb file:\\/\\/\\/root\\/#{package_name}\\/#{codename} #{codename} #{repo_name}"
|
642
659
|
sed_command = "sed -i 's/#{search}/#{replace}/'"
|
@@ -728,11 +745,11 @@ module Beaker
|
|
728
745
|
end
|
729
746
|
|
730
747
|
# This method will install a pem file certifcate on a windows host
|
731
|
-
#
|
748
|
+
#
|
732
749
|
# @param [Host] host A host object
|
733
750
|
# @param [String] cert_name The name of the pem file
|
734
751
|
# @param [String] cert The contents of the certificate
|
735
|
-
#
|
752
|
+
#
|
736
753
|
def install_cert_on_windows(host, cert_name, cert)
|
737
754
|
create_remote_file(host, "C:\\Windows\\Temp\\#{cert_name}.pem", cert)
|
738
755
|
on host, "certutil -v -addstore Root C:\\Windows\\Temp\\#{cert_name}.pem"
|