beaker 3.37.0 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +32 -1
  3. data/acceptance/lib/helpers/test_helper.rb +0 -28
  4. data/acceptance/pre_suite/subcommands/08_install_beaker.rb +1 -1
  5. data/acceptance/tests/base/dsl/helpers/host_helpers/backup_the_file_test.rb +9 -9
  6. data/acceptance/tests/base/dsl/helpers/host_helpers/create_remote_file_test.rb +106 -103
  7. data/acceptance/tests/base/dsl/helpers/host_helpers/curl_on_test.rb +2 -2
  8. data/acceptance/tests/base/dsl/helpers/host_helpers/install_package_test.rb +1 -50
  9. data/acceptance/tests/base/dsl/helpers/host_helpers/retry_on_test.rb +3 -3
  10. data/acceptance/tests/base/dsl/helpers/host_helpers/rsync_to_test.rb +71 -27
  11. data/acceptance/tests/base/dsl/helpers/host_helpers/scp_from_test.rb +3 -3
  12. data/acceptance/tests/base/dsl/helpers/host_helpers/scp_to_test.rb +3 -3
  13. data/acceptance/tests/base/host/file_test.rb +81 -0
  14. data/beaker.gemspec +6 -14
  15. data/docs/how_to/install_puppet.md +2 -0
  16. data/docs/how_to/the_beaker_dsl.md +150 -150
  17. data/docs/how_to/upgrade_from_3_to_4.md +52 -0
  18. data/lib/beaker.rb +0 -10
  19. data/lib/beaker/dsl.rb +7 -0
  20. data/lib/beaker/dsl/helpers.rb +4 -6
  21. data/lib/beaker/dsl/helpers/host_helpers.rb +10 -34
  22. data/lib/beaker/dsl/install_utils.rb +0 -5
  23. data/lib/beaker/dsl/roles.rb +1 -1
  24. data/lib/beaker/host.rb +12 -11
  25. data/lib/beaker/host/aix/file.rb +2 -2
  26. data/lib/beaker/host/aix/group.rb +1 -0
  27. data/lib/beaker/host/aix/user.rb +1 -0
  28. data/lib/beaker/host/freebsd/pkg.rb +9 -0
  29. data/lib/beaker/host/mac/group.rb +1 -0
  30. data/lib/beaker/host/mac/user.rb +8 -13
  31. data/lib/beaker/host/pswindows/file.rb +2 -2
  32. data/lib/beaker/host/pswindows/group.rb +1 -0
  33. data/lib/beaker/host/pswindows/user.rb +1 -0
  34. data/lib/beaker/host/unix/exec.rb +5 -5
  35. data/lib/beaker/host/unix/file.rb +43 -2
  36. data/lib/beaker/host/unix/group.rb +1 -0
  37. data/lib/beaker/host/unix/user.rb +1 -0
  38. data/lib/beaker/host/windows/file.rb +32 -2
  39. data/lib/beaker/host/windows/group.rb +1 -0
  40. data/lib/beaker/host/windows/user.rb +1 -0
  41. data/lib/beaker/host_prebuilt_steps.rb +0 -4
  42. data/lib/beaker/hypervisor.rb +1 -5
  43. data/lib/beaker/result.rb +4 -0
  44. data/lib/beaker/version.rb +1 -1
  45. data/spec/beaker/dsl/helpers/host_helpers_spec.rb +14 -51
  46. data/spec/beaker/dsl/wrappers_spec.rb +0 -46
  47. data/spec/beaker/host/mac/user_spec.rb +5 -8
  48. data/spec/beaker/host/unix/exec_spec.rb +1 -1
  49. data/spec/beaker/host/unix/file_spec.rb +39 -0
  50. data/spec/beaker/host/windows/file_spec.rb +55 -0
  51. data/spec/beaker/host_prebuilt_steps_spec.rb +16 -67
  52. data/spec/beaker/host_spec.rb +10 -14
  53. data/spec/beaker/hypervisor/hypervisor_spec.rb +1 -1
  54. metadata +47 -165
  55. data/acceptance/lib/beaker/acceptance/install_utils.rb +0 -58
  56. data/acceptance/tests/base/dsl/helpers/host_helpers/create_tmpdir_on_test.rb +0 -68
  57. data/acceptance/tests/base/dsl/install_utils/clone_git_repo_on_test.rb +0 -49
  58. data/lib/beaker/dsl/helpers/facter_helpers.rb +0 -57
  59. data/lib/beaker/dsl/install_utils/pe_defaults.rb +0 -143
  60. data/lib/beaker/dsl/install_utils/windows_utils.rb +0 -223
  61. data/spec/beaker/dsl/ezbake_utils_spec.rb +0 -279
  62. data/spec/beaker/dsl/install_utils/pe_defaults_spec.rb +0 -61
  63. data/spec/beaker/dsl/install_utils/windows_utils_spec.rb +0 -263
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 65affe7f42763474ab6859ece3eecd8804e8e313
4
- data.tar.gz: 72fcac34ef28fc6c15dffa7d71e42a83a65d0676
3
+ metadata.gz: 7d46e3ea54f2a217a78497681c57a24921de8719
4
+ data.tar.gz: 175ef59e2be00d70d0238f49e8f3d49e95257e2f
5
5
  SHA512:
6
- metadata.gz: 2f160ec4f6589e6cf8e5e5eb737ebb896be7123317141ea34d406332c45734916aadd15a7eaa81a4ce7ffa5ffc206c653b0a9fa20421b0dd466b42bfba7b7faa
7
- data.tar.gz: 83a4209a5c18acec0c56ef9d951311972115dc08bffe1da60aac97725b4385517ae94d280d34cbd75d9005179edc590cc62dd8ef6c510047b3c4bbcdeece4395
6
+ metadata.gz: abc5a220b83dd595577f90140ce3b60b1daf282d77e27279f110732cc643e20d46652046be5bec9beb55aa51dec38b82928c15814a34ce78efa8460335654295
7
+ data.tar.gz: ce529642242f5408f0ea4a8bc515f00f496c977854737f21f4787a04769ef02d003d1694bd818b9ae2478af5382329e4f0019f433a09bb2983b2fb4f0acfdbe8
@@ -11,7 +11,33 @@ Tracking in this Changelog began for this project in version 3.25.0.
11
11
  If you're looking for changes from before this, refer to the project's
12
12
  git logs & PR history.
13
13
 
14
- # [Unreleased](https://github.com/puppetlabs/beaker/compare/3.37.0...master)
14
+ # [Unreleased](https://github.com/puppetlabs/beaker/compare/4.0.0...master)
15
+
16
+ # [4.0.0](https://github.com/puppetlabs/beaker/compare/3.37.0...4.0.0) - 2018-08-06
17
+
18
+ ### Fixed
19
+
20
+ - `host.rsync_to` throws `Beaker::Host::CommandFailure` if rsync call fails (BKR-463)
21
+ - `host.rsync_to` throws `Beaker::Host::CommandFailure` if rsync does not exist on remote system (BKR-462)
22
+ - `host.rsync_to` now check through configured SSH keys to use the first valid one
23
+ - Updated some `Beaker::Host` methods to always return a `Result` object
24
+
25
+ ### Added
26
+
27
+ - Adds `Beaker::Host#chown`, `#chgrp`, and `#ls_ld` methods (BKR-1499)
28
+ - `#uninstall_package` host helper, to match `#install_package`
29
+ - `Host.uninstall_package` for FreeBSD
30
+ - Now easily check a command's exit status by calling `Result.success?()` for a simple, truthy result. No need to validate the exit code manually.
31
+
32
+ ### Changed
33
+
34
+ - `#set_env` no longer calls `#configure_type_defaults_on`
35
+ - `beaker-puppet` DSL Extension Library has been formally split into a standard DSL Extension Library and removed as a dependency from Beaker. Please see our [upgrade guidelines](docs/how_to/upgrade_from_3_to_4.md).
36
+ - Beaker's Hypervisor Libraries have been removed as dependencies. Please see our [upgrade guidelines](docs/how_to/upgrade_from_3_to_4.md).
37
+
38
+ ### Removed
39
+
40
+ - `PEDefaults` has been moved to `beaker-pe`
15
41
 
16
42
  # [3.37.0](https://github.com/puppetlabs/beaker/compare/3.36.0...3.37.0) - 2018-07-11
17
43
 
@@ -23,6 +49,11 @@ git logs & PR history.
23
49
 
24
50
  - `Beaker::Shared::FogCredentials.get_fog_credentials()` to parse .fog credential files
25
51
 
52
+ ### Changed
53
+
54
+ - `beaker-pe` is no longer automagically included. See [the upgrade guide](/docs/how_to/upgrade_from_3_to_4.md}) for more info
55
+ - `beaker-puppet` is no longer required as a dependency
56
+
26
57
  # [3.36.0](https://github.com/puppetlabs/beaker/compare/3.35.0...3.36.0) - 2018-06-18
27
58
 
28
59
  ### Fixed
@@ -8,34 +8,6 @@ def test_scp_error_on_close?
8
8
  !!ENV["BEAKER_TEST_SCP_ERROR_ON_CLOSE"]
9
9
  end
10
10
 
11
- # NOTE: currently there is an issue with the tmpdir_on helper on cygwin and OS X
12
- # platforms: the `chown` command always fails with an error about not
13
- # recognizing the Administrator:Administrator user/group. Also, the call to
14
- # check user presence via `getent` also fails. Until this is fixed, we add this
15
- # shim that delegates to a non-`chown`/non-`getent`-executing version for the
16
- # purposes of our test setup.
17
- #
18
- # TODO: fix via: https://tickets.puppetlabs.com/browse/BKR-496
19
- def tmpdir_on(hosts, path_prefix = '', user=nil)
20
- first_host = Array(hosts).first
21
-
22
- return create_tmpdir_on(hosts, path_prefix, user) unless \
23
- first_host.is_cygwin? or first_host.platform =~ /osx/
24
-
25
- block_on hosts do | host |
26
- # use default user logged into this host
27
- if not user
28
- user = host['user']
29
- end
30
-
31
- if defined? host.tmpdir
32
- host.tmpdir(path_prefix)
33
- else
34
- raise "Host platform not supported by `tmpdir_on`."
35
- end
36
- end
37
- end
38
-
39
11
  # Returns the absolute path where file fixtures are located.
40
12
  def fixture_path
41
13
  @fixture_path ||=
@@ -17,6 +17,6 @@ test_name 'Install beaker and checkout branch if necessary' do
17
17
  step 'Build the gem and install it on the local system' do
18
18
  build_output = on(default, 'cd /opt/beaker/;gem build beaker.gemspec').stdout
19
19
  version = build_output.match(/^ File: (.+)$/)[1]
20
- on(default, "cd /opt/beaker/;gem install #{version} --no-rdoc --no-ri")
20
+ on(default, "cd /opt/beaker/;gem install #{version} --no-rdoc --no-ri; gem install beaker-vmpooler")
21
21
  end
22
22
  end
@@ -3,14 +3,14 @@ require "helpers/test_helper"
3
3
  test_name "dsl::helpers::host_helpers #backup_the_file" do
4
4
  step "#backup_the_file CURRENTLY will return nil if the file does not exist in the source directory" do
5
5
  # NOTE: would expect this to fail with Beaker::Host::CommandFailure
6
- remote_source = tmpdir_on default
7
- remote_destination = tmpdir_on default
6
+ remote_source = default.tmpdir()
7
+ remote_destination = default.tmpdir()
8
8
  result = backup_the_file default, remote_source, remote_destination
9
9
  assert_nil result
10
10
  end
11
11
 
12
12
  step "#backup_the_file will fail if the destination directory does not exist" do
13
- remote_source = tmpdir_on default
13
+ remote_source = default.tmpdir()
14
14
  remote_source_filename = File.join(remote_source, "puppet.conf")
15
15
  remote_filename, contents = create_remote_file_from_fixture("simple_text_file", default, remote_source, "puppet.conf")
16
16
 
@@ -20,11 +20,11 @@ test_name "dsl::helpers::host_helpers #backup_the_file" do
20
20
  end
21
21
 
22
22
  step "#backup_the_file copies `puppet.conf` from the source to the destination directory" do
23
- remote_source = tmpdir_on default
23
+ remote_source = default.tmpdir()
24
24
  remote_source_filename = File.join(remote_source, "puppet.conf")
25
25
  remote_filename, contents = create_remote_file_from_fixture("simple_text_file", default, remote_source, "puppet.conf")
26
26
 
27
- remote_destination = tmpdir_on default
27
+ remote_destination = default.tmpdir()
28
28
  remote_destination_filename = File.join(remote_destination, "puppet.conf.bak")
29
29
 
30
30
  result = backup_the_file default, remote_source, remote_destination
@@ -35,11 +35,11 @@ test_name "dsl::helpers::host_helpers #backup_the_file" do
35
35
  end
36
36
 
37
37
  step "#backup_the_file copies a named file from the source to the destination directory" do
38
- remote_source = tmpdir_on default
38
+ remote_source = default.tmpdir()
39
39
  remote_source_filename = File.join(remote_source, "testfile.txt")
40
40
  remote_filename, contents = create_remote_file_from_fixture("simple_text_file", default, remote_source, "testfile.txt")
41
41
 
42
- remote_destination = tmpdir_on default
42
+ remote_destination = default.tmpdir()
43
43
  remote_destination_filename = File.join(remote_destination, "testfile.txt.bak")
44
44
 
45
45
  result = backup_the_file default, remote_source, remote_destination, "testfile.txt"
@@ -50,10 +50,10 @@ test_name "dsl::helpers::host_helpers #backup_the_file" do
50
50
  end
51
51
 
52
52
  step "#backup_the_file CURRENTLY will fail if given a hosts array" do
53
- remote_source = tmpdir_on default
53
+ remote_source = default.tmpdir()
54
54
  remote_source_filename = File.join(remote_source, "testfile.txt")
55
55
  remote_filename, contents = create_remote_file_from_fixture("simple_text_file", default, remote_source, "testfile.txt")
56
- remote_destination = tmpdir_on default
56
+ remote_destination = default.tmpdir()
57
57
 
58
58
  remote_destination_filename = File.join(remote_destination, "testfile.txt.bak")
59
59
 
@@ -2,14 +2,6 @@ require "helpers/test_helper"
2
2
 
3
3
  test_name "dsl::helpers::host_helpers #create_remote_file" do
4
4
 
5
- confine_block :to, :platform => /^centos|el-\d|fedora/ do
6
- step "installing `rsync` on #{default['platform']} for all later test steps" do
7
- hosts.each do |host|
8
- install_package host, "rsync"
9
- end
10
- end
11
- end
12
-
13
5
  if test_scp_error_on_close?
14
6
  step "#create_remote_file fails when the remote path does not exist" do
15
7
  assert_raises Beaker::Host::CommandFailure do
@@ -24,18 +16,8 @@ test_name "dsl::helpers::host_helpers #create_remote_file" do
24
16
  end
25
17
  end
26
18
 
27
- step "#create_remote_file CURRENTLY does not fail and does not create a remote file when the remote path does not exist, using rsync" do
28
- # NOTE: would expect this to fail with Beaker::Host::CommandFailure
29
-
30
- create_remote_file default, "/non/existent/testfile.txt", "contents\n", { :protocol => 'rsync' }
31
-
32
- assert_raises Beaker::Host::CommandFailure do
33
- on(default, "cat /non/existent/testfile.txt").exit_code
34
- end
35
- end
36
-
37
19
  step "#create_remote_file creates a remote file with the specified contents" do
38
- remote_tmpdir = tmpdir_on default
20
+ remote_tmpdir = default.tmpdir("beaker")
39
21
  remote_filename = File.join(remote_tmpdir, "testfile.txt")
40
22
  contents = fixture_contents("simple_text_file")
41
23
 
@@ -46,7 +28,7 @@ test_name "dsl::helpers::host_helpers #create_remote_file" do
46
28
  end
47
29
 
48
30
  step "#create_remote_file creates a remote file with the specified contents, using scp" do
49
- remote_tmpdir = tmpdir_on default
31
+ remote_tmpdir = default.tmpdir("beaker")
50
32
  remote_filename = File.join(remote_tmpdir, "testfile.txt")
51
33
  contents = fixture_contents("simple_text_file")
52
34
 
@@ -56,62 +38,15 @@ test_name "dsl::helpers::host_helpers #create_remote_file" do
56
38
  assert_equal contents, remote_contents
57
39
  end
58
40
 
59
- # NOTE: there does not seem to be a reliable way to confine to cygwin hosts.
60
- confine_block :to, :platform => /windows/ do
61
-
62
- # NOTE: rsync methods are not working currently on windows platforms
63
-
64
- step "#create_remote_file CURRENTLY fails on #{default['platform']}, using rsync" do
65
- remote_tmpdir = tmpdir_on default
66
- remote_filename = File.join(remote_tmpdir, "testfile.txt")
67
- contents = fixture_contents("simple_text_file")
68
-
69
- create_remote_file default, remote_filename, contents, { :protocol => "rsync" }
70
-
71
- assert_raises Beaker::Host::CommandFailure do
72
- remote_contents = on(default, "cat #{remote_filename}").stdout
73
- end
74
- end
75
- end
76
-
77
- confine_block :except, :platform => /windows/ do
78
-
79
- step "#create_remote_file creates a remote file with the specified contents, using rsync" do
80
- remote_tmpdir = tmpdir_on default
81
- remote_filename = File.join(remote_tmpdir, "testfile.txt")
82
- contents = fixture_contents("simple_text_file")
83
-
84
- result = create_remote_file default, remote_filename, contents, { :protocol => "rsync" }
85
-
86
- fails_intermittently("https://tickets.puppetlabs.com/browse/BKR-612",
87
- "default" => default,
88
- "remote_tmpdir" => remote_tmpdir,
89
- "remote_filename" => remote_filename,
90
- "contents" => contents,
91
- "result" => result
92
- ) do
93
- remote_contents = on(default, "cat #{remote_filename}").stdout
94
- assert_equal contents, remote_contents
95
- end
96
- end
97
- end
98
-
99
- step "#create_remote_file' does not create a remote file when an unknown protocol is specified" do
100
- remote_tmpdir = tmpdir_on default
101
- remote_filename = File.join(remote_tmpdir, "testfile.txt")
102
- contents = fixture_contents("simple_text_file")
103
-
104
- create_remote_file default, remote_filename, contents, { :protocol => 'unknown' }
105
-
106
- assert_raises Beaker::Host::CommandFailure do
107
- on(default, "cat #{remote_filename}").exit_code
41
+ step "#create_remote_file creates remote files on all remote hosts, when given an array" do
42
+ remote_dir = "/tmp/beaker_remote_file_test"
43
+ # ensure remote dir exists on all hosts
44
+ hosts.each do |host|
45
+ # we can't use tmpdir here, because some hosts may have different tmpdir behavior.
46
+ host.mkdir_p(remote_dir)
108
47
  end
109
- end
110
48
 
111
- step "#create_remote_file creates remote files on all remote hosts, when given an array" do
112
- remote_tmpdir = tmpdir_on default
113
- on hosts, "mkdir -p #{remote_tmpdir}"
114
- remote_filename = File.join(remote_tmpdir, "testfile.txt")
49
+ remote_filename = File.join(remote_dir, "testfile.txt")
115
50
  contents = fixture_contents("simple_text_file")
116
51
 
117
52
  create_remote_file hosts, remote_filename, contents
@@ -123,9 +58,14 @@ test_name "dsl::helpers::host_helpers #create_remote_file" do
123
58
  end
124
59
 
125
60
  step "#create_remote_file creates remote files on all remote hosts, when given an array, using scp" do
126
- remote_tmpdir = tmpdir_on default
127
- on hosts, "mkdir -p #{remote_tmpdir}"
128
- remote_filename = File.join(remote_tmpdir, "testfile.txt")
61
+ remote_dir = "/tmp/beaker_remote_file_test"
62
+ # ensure remote dir exists on all hosts
63
+ hosts.each do |host|
64
+ # we can't use tmpdir here, because some hosts may have different tmpdir behavior.
65
+ host.mkdir_p(remote_dir)
66
+ end
67
+
68
+ remote_filename = File.join(remote_dir, "testfile.txt")
129
69
  contents = fixture_contents("simple_text_file")
130
70
 
131
71
  create_remote_file hosts, remote_filename, contents, { :protocol => 'scp' }
@@ -136,35 +76,63 @@ test_name "dsl::helpers::host_helpers #create_remote_file" do
136
76
  end
137
77
  end
138
78
 
139
- # NOTE: there does not appear to be a way to confine just to cygwin hosts
140
- confine_block :to, :platform => /windows/ do
141
79
 
142
- # NOTE: rsync methods are not working currently on windows
143
- # platforms. Would expect this to be documented better.
80
+ confine_block :except, :platform => /windows/ do
81
+ # these tests exercise the rsync backend
82
+ # NOTE: rsync works fine on Windows as long as you use POSIX-style paths.
83
+ # However, these tests use Host#tmpdir which outputs mixed-style paths
84
+ # e.g. C:/cygwin64/tmp/beaker.Rp9G6L - Fix me with BKR-1503
85
+
86
+ confine_block :except, :platform => /osx/ do
87
+ # packages are unsupported on OSX
88
+ step "installing rsync on hosts if needed" do
89
+ hosts.each do |host|
90
+ if host.check_for_package('rsync')
91
+ host[:rsync_installed] = true
92
+ else
93
+ host[:rsync_installed] = false
94
+ host.install_package "rsync"
95
+ end
96
+ end
97
+ end
98
+ end
144
99
 
145
- step "#create_remote_file creates remote files on all remote hosts, when given an array, using rsync" do
146
- remote_tmpdir = tmpdir_on default
147
- on hosts, "mkdir -p #{remote_tmpdir}"
100
+ step "#create_remote_file fails and does not create a remote file when the remote path does not exist, using rsync" do
101
+ assert_raises Beaker::Host::CommandFailure do
102
+ create_remote_file default, "/non/existent/testfile.txt", "contents\n", { :protocol => 'rsync' }
103
+ end
104
+
105
+ assert_raises Beaker::Host::CommandFailure do
106
+ on(default, "cat /non/existent/testfile.txt").exit_code
107
+ end
108
+ end
109
+
110
+ step "#create_remote_file creates a remote file with the specified contents, using rsync" do
111
+ remote_tmpdir = default.tmpdir("beaker")
148
112
  remote_filename = File.join(remote_tmpdir, "testfile.txt")
149
113
  contents = fixture_contents("simple_text_file")
150
114
 
151
- create_remote_file hosts, remote_filename, contents, { :protocol => 'rsync' }
115
+ result = create_remote_file default, remote_filename, contents, { :protocol => "rsync" }
152
116
 
153
- hosts.each do |host|
154
- assert_raises Beaker::Host::CommandFailure do
155
- remote_contents = on(host, "cat #{remote_filename}").stdout
156
- end
117
+ fails_intermittently("https://tickets.puppetlabs.com/browse/BKR-612",
118
+ "default" => default,
119
+ "remote_tmpdir" => remote_tmpdir,
120
+ "remote_filename" => remote_filename,
121
+ "contents" => contents,
122
+ "result" => result
123
+ ) do
124
+ remote_contents = on(default, "cat #{remote_filename}").stdout
125
+ assert_equal contents, remote_contents
157
126
  end
158
127
  end
159
- end
160
-
161
- confine_block :except, :platform => /windows|fedora/ do
162
128
 
163
129
  step "#create_remote_file creates remote files on all remote hosts, when given an array, using rsync" do
164
- remote_tmpdir = tmpdir_on default
165
-
166
- # NOTE: we do not do this step in the non-hosts-array version of the test, not sure why
167
- on hosts, "mkdir -p #{remote_tmpdir}"
130
+ remote_tmpdir = "/tmp/beaker_remote_file_test"
131
+ # ensure remote dir exists on all hosts
132
+ hosts.each do |host|
133
+ # we can't use tmpdir here, because some hosts may have different tmpdir behavior.
134
+ host.mkdir_p(remote_tmpdir)
135
+ end
168
136
 
169
137
  remote_filename = File.join(remote_tmpdir, "testfile.txt")
170
138
  contents = fixture_contents("simple_text_file")
@@ -184,17 +152,52 @@ test_name "dsl::helpers::host_helpers #create_remote_file" do
184
152
  end
185
153
  end
186
154
  end
155
+
156
+ confine_block :except, :platform => /osx/ do
157
+ # packages are unsupported on OSX
158
+ step "uninstalling rsync on hosts if needed" do
159
+ hosts.each do |host|
160
+ if !host[:rsync_installed]
161
+ # rsync wasn't installed on #{host} when we started, so we should clean up after ourselves
162
+ rsync_package = "rsync"
163
+ # solaris-10 uses OpenCSW pkgutil, which prepends "CSW" to its provided packages
164
+ # TODO: fix this with BKR-1502
165
+ rsync_package = "CSWrsync" if host['platform'] =~ /solaris-10/
166
+ host.uninstall_package rsync_package
167
+ end
168
+ host.delete(:rsync_installed)
169
+ end
170
+ end
171
+ end
187
172
  end
188
173
 
189
- confine_block :to, :platform => /centos|el-\d|fedora/ do
174
+ step "#create_remote_file' does not create a remote file when an unknown protocol is specified" do
175
+ remote_tmpdir = default.tmpdir("beaker")
176
+ remote_filename = File.join(remote_tmpdir, "testfile.txt")
177
+ contents = fixture_contents("simple_text_file")
190
178
 
191
- step "uninstall rsync package on #{default['platform']} for later test runs" do
192
- # NOTE: this is basically a #teardown section for test isolation
193
- # Could we reorganize tests into different files to make this
194
- # clearer?
179
+ create_remote_file default, remote_filename, contents, { :protocol => 'unknown' }
195
180
 
196
- hosts.each do |host|
197
- on host, "yum -y remove rsync"
181
+ assert_raises Beaker::Host::CommandFailure do
182
+ on(default, "cat #{remote_filename}").exit_code
183
+ end
184
+ end
185
+
186
+ # NOTE: there does not appear to be a way to confine just to cygwin hosts
187
+ confine_block :to, :platform => /windows/ do
188
+ # NOTE: rsync works fine on Windows as long as you use POSIX-style paths.
189
+ # Fix me with BKR-1503
190
+ step "#create_remote_file CURRENTLY fails on #{default['platform']}, using rsync" do
191
+ remote_tmpdir = default.tmpdir("beaker")
192
+ remote_filename = File.join(remote_tmpdir, "testfile.txt")
193
+ contents = fixture_contents("simple_text_file")
194
+
195
+ assert_raises Beaker::Host::CommandFailure do
196
+ create_remote_file default, remote_filename, contents, { :protocol => "rsync" }
197
+ end
198
+
199
+ assert_raises Beaker::Host::CommandFailure do
200
+ remote_contents = on(default, "cat #{remote_filename}").stdout
198
201
  end
199
202
  end
200
203
  end
@@ -17,7 +17,7 @@ test_name "dsl::helpers::host_helpers #curl_on" do
17
17
  end
18
18
 
19
19
  step "#curl_on can retrieve the contents of a URL, using standard curl options" do
20
- remote_tmpdir = tmpdir_on default
20
+ remote_tmpdir = default.tmpdir()
21
21
  remote_filename, contents = create_remote_file_from_fixture("simple_text_file", default, remote_tmpdir, "testfile.txt")
22
22
  remote_targetfilename = File.join remote_tmpdir, "outfile.txt"
23
23
 
@@ -29,7 +29,7 @@ test_name "dsl::helpers::host_helpers #curl_on" do
29
29
  end
30
30
 
31
31
  step "#curl_on can retrieve the contents of a URL, when given a hosts array" do
32
- remote_tmpdir = tmpdir_on default
32
+ remote_tmpdir = default.tmpdir()
33
33
  on hosts, "mkdir -p #{remote_tmpdir}"
34
34
 
35
35
  remote_filename = contents = nil