beaker 2.9.0 → 2.10.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 +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"
|