beaker-puppet 1.29.0 → 2.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/dependabot.yml +9 -0
- data/.github/workflows/release.yml +2 -2
- data/.github/workflows/test.yml +28 -7
- data/.rubocop.yml +5 -0
- data/.rubocop_todo.yml +842 -0
- data/CHANGELOG.md +31 -0
- data/Gemfile +5 -20
- data/Rakefile +64 -169
- data/acceptance/config/acceptance-options.rb +3 -3
- data/acceptance/config/gem/acceptance-options.rb +8 -8
- data/acceptance/config/git/acceptance-options.rb +8 -8
- data/acceptance/config/pkg/acceptance-options.rb +7 -7
- data/acceptance/pre_suite/gem/install.rb +6 -6
- data/acceptance/pre_suite/git/install.rb +22 -22
- data/acceptance/pre_suite/pkg/install.rb +3 -3
- data/acceptance/tests/backwards_compatible.rb +6 -7
- data/acceptance/tests/clone_git_repo_on_test.rb +12 -13
- data/acceptance/tests/create_tmpdir_on_test.rb +13 -9
- data/acceptance/tests/install_smoke_test.rb +5 -4
- data/acceptance/tests/stub_host.rb +11 -10
- data/acceptance/tests/web_helpers_test.rb +11 -10
- data/beaker-puppet.gemspec +16 -23
- data/bin/beaker-puppet +2 -4
- data/lib/beaker-puppet/helpers/facter_helpers.rb +9 -7
- data/lib/beaker-puppet/helpers/host_helpers.rb +10 -7
- data/lib/beaker-puppet/helpers/puppet_helpers.rb +151 -160
- data/lib/beaker-puppet/helpers/rake_helpers.rb +1 -1
- data/lib/beaker-puppet/helpers/tk_helpers.rb +22 -28
- data/lib/beaker-puppet/install_utils/aio_defaults.rb +39 -43
- data/lib/beaker-puppet/install_utils/ezbake_utils.rb +34 -42
- data/lib/beaker-puppet/install_utils/foss_defaults.rb +134 -138
- data/lib/beaker-puppet/install_utils/foss_utils.rb +293 -320
- data/lib/beaker-puppet/install_utils/module_utils.rb +58 -70
- data/lib/beaker-puppet/install_utils/puppet5.rb +30 -35
- data/lib/beaker-puppet/install_utils/puppet_utils.rb +58 -68
- data/lib/beaker-puppet/install_utils/windows_utils.rb +34 -36
- data/lib/beaker-puppet/version.rb +1 -1
- data/lib/beaker-puppet/wrappers.rb +13 -14
- data/lib/beaker-puppet.rb +4 -5
- data/setup/aio/010_Install_Puppet_Agent.rb +5 -6
- data/setup/common/000-delete-puppet-when-none.rb +2 -4
- data/setup/common/003_solaris_cert_fix.rb +74 -70
- data/setup/common/005_redhat_subscription_fix.rb +3 -2
- data/setup/common/011_Install_Puppet_Server.rb +7 -9
- data/setup/common/012_Finalize_Installs.rb +5 -5
- data/setup/common/025_StopFirewall.rb +1 -1
- data/setup/common/030_StopSssd.rb +2 -2
- data/setup/common/040_ValidateSignCert.rb +10 -12
- data/setup/common/045_EnsureMasterStarted.rb +2 -2
- data/setup/gem/010_GemInstall.rb +5 -4
- data/setup/git/000_EnvSetup.rb +48 -48
- data/setup/git/010_TestSetup.rb +13 -12
- data/setup/git/020_PuppetUserAndGroup.rb +3 -2
- data/setup/git/060_InstallModules.rb +14 -14
- data/setup/git/070_InstallCACerts.rb +82 -82
- data/spec/beaker-puppet/helpers/facter_helpers_spec.rb +22 -24
- data/spec/beaker-puppet/helpers/host_helpers_spec.rb +10 -6
- data/spec/beaker-puppet/helpers/puppet_helpers_spec.rb +506 -517
- data/spec/beaker-puppet/helpers/tk_helpers_spec.rb +20 -24
- data/spec/beaker-puppet/install_utils/ezbake_utils_spec.rb +86 -90
- data/spec/beaker-puppet/install_utils/foss_utils_spec.rb +636 -599
- data/spec/beaker-puppet/install_utils/module_utils_spec.rb +125 -116
- data/spec/beaker-puppet/install_utils/puppet5_spec.rb +159 -165
- data/spec/beaker-puppet/install_utils/puppet_utils_spec.rb +92 -77
- data/spec/beaker-puppet/install_utils/windows_utils_spec.rb +101 -89
- data/spec/beaker-puppet/wrappers_spec.rb +10 -10
- data/spec/helpers.rb +85 -91
- data/tasks/ci.rake +171 -179
- metadata +33 -62
- data/setup/common/020_InstallCumulusModules.rb +0 -13
- data/setup/common/021_InstallAristaModuleMasters.rb +0 -12
- data/setup/common/022_InstallAristaModuleAgents.rb +0 -13
@@ -1,34 +1,32 @@
|
|
1
1
|
require 'beaker-puppet'
|
2
2
|
|
3
|
-
confine :except, :
|
3
|
+
confine :except, platform: /^solaris-10/
|
4
4
|
|
5
5
|
test_name 'Clone from git' do
|
6
|
-
|
7
6
|
PACKAGES = {
|
8
|
-
:
|
7
|
+
redhat: [
|
9
8
|
'git',
|
10
9
|
],
|
11
|
-
:
|
12
|
-
[
|
10
|
+
debian: [
|
11
|
+
%w[git git-core],
|
13
12
|
],
|
14
|
-
:
|
13
|
+
solaris_11: [
|
15
14
|
['git', 'developer/versioning/git'],
|
16
15
|
],
|
17
|
-
:
|
16
|
+
solaris_10: [
|
18
17
|
'coreutils',
|
19
18
|
'curl', # update curl to fix "CURLOPT_SSL_VERIFYHOST no longer supports 1 as value!" issue
|
20
19
|
'git',
|
21
20
|
],
|
22
|
-
:
|
21
|
+
windows: [
|
23
22
|
'git',
|
24
23
|
],
|
25
|
-
:
|
24
|
+
sles: [
|
26
25
|
'git-core',
|
27
|
-
]
|
26
|
+
],
|
28
27
|
}
|
29
28
|
|
30
|
-
|
31
|
-
install_packages_on(hosts, PACKAGES, :check_if_exists => true)
|
29
|
+
install_packages_on(hosts, PACKAGES, check_if_exists: true)
|
32
30
|
|
33
31
|
# implicitly tests build_giturl() and lookup_in_env()
|
34
32
|
hosts.each do |host|
|
@@ -37,7 +35,8 @@ test_name 'Clone from git' do
|
|
37
35
|
|
38
36
|
step 'should be able to successfully clone a git repo' do
|
39
37
|
results = clone_git_repo_on(host, "#{testdir}", extract_repo_info_from(build_git_url('hiera')))
|
40
|
-
|
38
|
+
|
39
|
+
assert_match(%r{From.*github\.com[:/]puppetlabs/hiera}, result.output, 'Did not find clone')
|
41
40
|
end
|
42
41
|
end
|
43
42
|
end
|
@@ -1,43 +1,47 @@
|
|
1
|
-
test_name
|
2
|
-
step
|
1
|
+
test_name 'dsl::helpers::host_helpers #create_tmpdir_on' do
|
2
|
+
step '#create_tmpdir_on returns a temporary directory on the remote system' do
|
3
3
|
tmpdir = create_tmpdir_on default
|
4
|
+
|
4
5
|
assert_match %r{/}, tmpdir
|
5
6
|
assert_equal 0, on(default, "touch #{tmpdir}/testfile").exit_code
|
6
7
|
end
|
7
8
|
|
8
|
-
step
|
9
|
-
tmpdir = create_tmpdir_on(default,
|
9
|
+
step '#create_tmpdir_on uses the specified path prefix when provided' do
|
10
|
+
tmpdir = create_tmpdir_on(default, 'mypathprefix')
|
11
|
+
|
10
12
|
assert_match %r{/mypathprefix}, tmpdir
|
11
13
|
assert_equal 0, on(default, "touch #{tmpdir}/testfile").exit_code
|
12
14
|
end
|
13
15
|
|
14
|
-
step
|
16
|
+
step '#create_tmpdir_on fails if a non-existent user is specified' do
|
15
17
|
assert_raises Beaker::Host::CommandFailure do
|
16
18
|
tmpdir = create_tmpdir_on default, '', 'fakeuser'
|
17
19
|
end
|
18
20
|
end
|
19
21
|
|
20
|
-
step
|
22
|
+
step '#create_tmpdir_on sets the user if specified' do
|
21
23
|
default.user_present('tmpdirtestuser')
|
22
24
|
tmpdir = create_tmpdir_on(default, nil, 'tmpdirtestuser', nil)
|
25
|
+
|
23
26
|
assert_match /tmpdirtestuser/, on(default, "ls -ld #{tmpdir}").output
|
24
27
|
default.user_absent('tmpdirtestuser')
|
25
28
|
end
|
26
29
|
|
27
|
-
step
|
30
|
+
step '#create_tmpdir_on fails if a non-existent group is specified' do
|
28
31
|
assert_raises Beaker::Host::CommandFailure do
|
29
32
|
tmpdir = create_tmpdir_on default, '', nil, 'fakegroup'
|
30
33
|
end
|
31
34
|
end
|
32
35
|
|
33
|
-
step
|
36
|
+
step '#create_tmpdir_on sets the group if specified' do
|
34
37
|
default.group_present('tmpdirtestgroup')
|
35
38
|
tmpdir = create_tmpdir_on(default, nil, nil, 'tmpdirtestgroup')
|
39
|
+
|
36
40
|
assert_match /testgroup/, on(default, "ls -ld #{tmpdir}").output
|
37
41
|
default.group_absent('tmpdirtestgroup')
|
38
42
|
end
|
39
43
|
|
40
|
-
step
|
44
|
+
step '#create_tmpdir_on operates on all hosts if given a hosts array' do
|
41
45
|
tmpdirs = create_tmpdir_on hosts
|
42
46
|
hosts.zip(tmpdirs).each do |(host, tmpdir)|
|
43
47
|
assert_match %r{/}, tmpdir
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'beaker-puppet'
|
2
2
|
|
3
|
-
test_name
|
3
|
+
test_name 'puppet install smoketest'
|
4
4
|
|
5
5
|
step 'puppet install smoketest: verify \'facter --help\' can be successfully called on all hosts'
|
6
6
|
hosts.each do |host|
|
@@ -17,7 +17,8 @@ hosts.each do |host|
|
|
17
17
|
on host, puppet('help')
|
18
18
|
end
|
19
19
|
|
20
|
-
step
|
20
|
+
step 'puppet install smoketest: can get a configprint of the puppet server setting on all hosts'
|
21
|
+
|
21
22
|
hosts.each do |host|
|
22
|
-
assert(!host.puppet['server'].empty?,
|
23
|
-
end
|
23
|
+
assert(!host.puppet['server'].empty?, 'can get a configprint of the puppet server setting')
|
24
|
+
end
|
@@ -1,23 +1,22 @@
|
|
1
1
|
require 'beaker-puppet'
|
2
2
|
|
3
|
-
test_name
|
3
|
+
test_name 'validate host stubbing behavior'
|
4
4
|
|
5
5
|
def get_hosts_file(host)
|
6
6
|
if host['platform'] =~ /win/
|
7
|
-
|
7
|
+
'C:\\\\Windows\\\\System32\\\\Drivers\\\\etc\\\\hosts'
|
8
8
|
else
|
9
|
-
|
9
|
+
'/etc/hosts'
|
10
10
|
end
|
11
|
-
return hosts_file
|
12
11
|
end
|
13
12
|
|
14
13
|
step 'verify stub_host_on' do
|
15
14
|
step 'should add entry to hosts file' do
|
16
15
|
hosts.each do |host|
|
17
|
-
stub_hosts_on(host, { 'foo' => '1.1.1.1' }, { 'foo' => [
|
16
|
+
stub_hosts_on(host, { 'foo' => '1.1.1.1' }, { 'foo' => %w[bar baz] })
|
18
17
|
hosts_file = get_hosts_file(host)
|
19
18
|
result = on host, "cat #{hosts_file}"
|
20
|
-
assert_match
|
19
|
+
assert_match(/foo/, result.stdout)
|
21
20
|
end
|
22
21
|
end
|
23
22
|
|
@@ -25,7 +24,7 @@ step 'verify stub_host_on' do
|
|
25
24
|
hosts.each do |host|
|
26
25
|
hosts_file = get_hosts_file(host)
|
27
26
|
result = on host, "cat #{hosts_file}"
|
28
|
-
assert_match
|
27
|
+
assert_match(/foo/, result.stdout)
|
29
28
|
end
|
30
29
|
end
|
31
30
|
end
|
@@ -34,8 +33,10 @@ step 'verify with_stub_host_on' do
|
|
34
33
|
step 'should add entry to hosts file' do
|
35
34
|
hosts.each do |host|
|
36
35
|
hosts_file = get_hosts_file(host)
|
37
|
-
result = with_host_stubbed_on(host, { 'sleepy' => '1.1.1.2' }, { 'sleepy' => [
|
38
|
-
|
36
|
+
result = with_host_stubbed_on(host, { 'sleepy' => '1.1.1.2' }, { 'sleepy' => %w[grumpy dopey] }) do
|
37
|
+
on host, "cat #{hosts_file}"
|
38
|
+
end
|
39
|
+
assert_match(/sleepy/, result.stdout)
|
39
40
|
end
|
40
41
|
end
|
41
42
|
|
@@ -43,7 +44,7 @@ step 'verify with_stub_host_on' do
|
|
43
44
|
hosts.each do |host|
|
44
45
|
hosts_file = get_hosts_file(host)
|
45
46
|
result = on host, "cat #{hosts_file}"
|
46
|
-
assert_no_match
|
47
|
+
assert_no_match(/sleepy/, result.stdout)
|
47
48
|
end
|
48
49
|
end
|
49
50
|
end
|
@@ -5,22 +5,22 @@ require 'webrick/https'
|
|
5
5
|
|
6
6
|
test_name 'dsl::helpers::web_helpers #link_exists?' do
|
7
7
|
cert_name = [
|
8
|
-
|
8
|
+
%w[CN localhost],
|
9
9
|
]
|
10
10
|
http_cmd = "ruby -rwebrick -e'WEBrick::HTTPServer.new(:Port => 80, :DocumentRoot => \"/tmp\").start' > /tmp/mylogfile 2>&1 &"
|
11
11
|
https_cmd = "ruby -rwebrick/https -e'WEBrick::HTTPServer.new(:SSLEnable => true, :SSLCertName => #{cert_name}, :Port => 555,:DocumentRoot => \"/tmp\").start' > /tmp/mylogfile 2>&1 &"
|
12
12
|
on(default, http_cmd)
|
13
13
|
on(default, https_cmd)
|
14
|
-
#allow web servers to start up
|
14
|
+
# allow web servers to start up
|
15
15
|
sleep(3)
|
16
16
|
dir = default.tmpdir('test_dir')
|
17
17
|
file = default.tmpfile('test_file')
|
18
|
-
dir.slice!
|
19
|
-
file.slice!
|
18
|
+
dir.slice! '/tmp'
|
19
|
+
file.slice! '/tmp'
|
20
20
|
dst_dir = 'web_helpers'
|
21
21
|
|
22
22
|
step '#port_open_within? can tell if a port is open' do
|
23
|
-
assert port_open_within?(default,80)
|
23
|
+
assert port_open_within?(default, 80)
|
24
24
|
end
|
25
25
|
|
26
26
|
step '#link_exists? can tell if a basic link exists' do
|
@@ -41,7 +41,8 @@ test_name 'dsl::helpers::web_helpers #link_exists?' do
|
|
41
41
|
|
42
42
|
step '#fetch_http_dir will raise an error if unable fetch a dir' do
|
43
43
|
exception = assert_raises(RuntimeError) { fetch_http_dir("http://#{default}/tmps", dst_dir) }
|
44
|
-
|
44
|
+
|
45
|
+
assert_match /Failed to fetch_remote_dir.*/, exception.message, '#fetch_http_dir raised an unexpected RuntimeError'
|
45
46
|
end
|
46
47
|
|
47
48
|
step '#fetch_http_file can fetch a file' do
|
@@ -49,8 +50,8 @@ test_name 'dsl::helpers::web_helpers #link_exists?' do
|
|
49
50
|
end
|
50
51
|
|
51
52
|
step '#fetch_http_file will raise an error if unable to fetch a file' do
|
52
|
-
exception = assert_raises(RuntimeError) { fetch_http_file("http://#{default}",
|
53
|
-
assert_match /Failed to fetch_remote_file.*/, exception.message, "#fetch_http_dir raised an unexpected RuntimeError"
|
54
|
-
end
|
53
|
+
exception = assert_raises(RuntimeError) { fetch_http_file("http://#{default}", 'test2.txt', dst_dir) }
|
55
54
|
|
56
|
-
|
55
|
+
assert_match /Failed to fetch_remote_file.*/, exception.message, '#fetch_http_dir raised an unexpected RuntimeError'
|
56
|
+
end
|
57
|
+
end
|
data/beaker-puppet.gemspec
CHANGED
@@ -1,41 +1,34 @@
|
|
1
|
-
|
2
|
-
$LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
|
1
|
+
$LOAD_PATH.unshift File.expand_path('lib', __dir__)
|
3
2
|
require 'beaker-puppet/version'
|
4
3
|
|
5
4
|
Gem::Specification.new do |s|
|
6
|
-
s.name =
|
5
|
+
s.name = 'beaker-puppet'
|
7
6
|
s.version = BeakerPuppet::VERSION
|
8
|
-
s.authors = [
|
9
|
-
s.email = [
|
10
|
-
s.homepage =
|
11
|
-
s.summary =
|
12
|
-
s.description =
|
7
|
+
s.authors = ['Vox Pupuli']
|
8
|
+
s.email = ['voxpupuli@groups.io']
|
9
|
+
s.homepage = 'https://github.com/voxpupuli/beaker-puppet'
|
10
|
+
s.summary = "Beaker's Puppet DSL Extension Helpers!"
|
11
|
+
s.description = 'For use for the Beaker acceptance testing tool'
|
13
12
|
s.license = 'Apache-2.0'
|
14
13
|
|
15
|
-
s.required_ruby_version = '>= 2.
|
14
|
+
s.required_ruby_version = '>= 2.7'
|
16
15
|
|
17
16
|
s.files = `git ls-files`.split("\n")
|
18
17
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
-
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
|
-
s.require_paths = [
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
|
19
|
+
s.require_paths = ['lib']
|
21
20
|
|
22
21
|
# Testing dependencies
|
23
|
-
s.add_development_dependency '
|
24
|
-
s.add_development_dependency 'rspec-its'
|
25
|
-
s.add_development_dependency 'fakefs', '>= 0.6', '< 2.0'
|
22
|
+
s.add_development_dependency 'fakefs', '>= 0.6', '< 3.0'
|
26
23
|
s.add_development_dependency 'rake', '~> 13.0'
|
24
|
+
s.add_development_dependency 'rspec', '~> 3.0'
|
25
|
+
s.add_development_dependency 'rspec-its', '~> 1.3'
|
26
|
+
s.add_development_dependency 'voxpupuli-rubocop', '~> 1.2'
|
27
27
|
|
28
28
|
# Acceptance Testing Dependencies
|
29
|
-
s.add_development_dependency 'beaker-vmpooler'
|
30
|
-
|
31
|
-
# Documentation dependencies
|
32
|
-
s.add_development_dependency 'yard'
|
33
|
-
s.add_development_dependency 'thin'
|
29
|
+
s.add_development_dependency 'beaker-vmpooler', '~> 1.4'
|
34
30
|
|
35
31
|
# Run time dependencies
|
36
32
|
s.add_runtime_dependency 'beaker', '~> 4.1'
|
37
|
-
s.add_runtime_dependency '
|
38
|
-
s.add_runtime_dependency 'oga'
|
39
|
-
|
33
|
+
s.add_runtime_dependency 'oga', '~> 3.4'
|
40
34
|
end
|
41
|
-
|
data/bin/beaker-puppet
CHANGED
@@ -4,7 +4,7 @@ require 'rubygems' unless defined?(Gem)
|
|
4
4
|
require 'beaker-puppet'
|
5
5
|
|
6
6
|
VERSION_STRING =
|
7
|
-
"
|
7
|
+
"
|
8
8
|
_ .--.
|
9
9
|
( ` )
|
10
10
|
beaker-puppet .-' `--,
|
@@ -25,8 +25,6 @@ VERSION_STRING =
|
|
25
25
|
'=='
|
26
26
|
"
|
27
27
|
|
28
|
-
|
29
|
-
|
30
|
-
puts VERSION_STRING % [BeakerPuppet::VERSION]
|
28
|
+
puts format(VERSION_STRING, BeakerPuppet::VERSION)
|
31
29
|
|
32
30
|
exit 0
|
@@ -5,7 +5,6 @@ module Beaker
|
|
5
5
|
# for these methods to execute correctly
|
6
6
|
#
|
7
7
|
module FacterHelpers
|
8
|
-
|
9
8
|
# @!macro [new] common_opts
|
10
9
|
# @param [Hash{Symbol=>String}] opts Options to alter execution.
|
11
10
|
# @option opts [Boolean] :silent (false) Do not produce log output
|
@@ -13,7 +12,7 @@ module Beaker
|
|
13
12
|
# (or range) of integer exit codes that should be considered
|
14
13
|
# acceptable. An error will be thrown if the exit code does not
|
15
14
|
# match one of the values in this list.
|
16
|
-
# @option opts [Boolean] :accept_all_exit_codes (false) Consider all
|
15
|
+
# @option opts [Boolean] :accept_all_exit_codes (false) Consider all
|
17
16
|
# exit codes as passing.
|
18
17
|
# @option opts [Boolean] :dry_run (false) Do not actually execute any
|
19
18
|
# commands on the SUT
|
@@ -37,15 +36,19 @@ module Beaker
|
|
37
36
|
# @return String The value of the fact 'name' on the provided host
|
38
37
|
# @raise [FailTest] Raises an exception if call to facter fails
|
39
38
|
def fact_on(host, name, opts = {})
|
40
|
-
|
41
|
-
|
42
|
-
|
39
|
+
unless name.is_a?(String)
|
40
|
+
raise(ArgumentError,
|
41
|
+
"fact_on's `name` option must be a String. You provided a #{name.class}: '#{name}'")
|
42
|
+
end
|
43
|
+
|
44
|
+
if opts.is_a?(Hash)
|
45
|
+
opts.merge!({ json: nil })
|
43
46
|
else
|
44
47
|
opts << ' --json'
|
45
48
|
end
|
46
49
|
|
47
50
|
result = on host, facter("\"#{name}\"", opts)
|
48
|
-
if result.
|
51
|
+
if result.is_a?(Array)
|
49
52
|
result.map { |res| JSON.parse(res.stdout)[name] }
|
50
53
|
else
|
51
54
|
JSON.parse(result.stdout)[name]
|
@@ -57,7 +60,6 @@ module Beaker
|
|
57
60
|
def fact(name, opts = {})
|
58
61
|
fact_on(default, name, opts)
|
59
62
|
end
|
60
|
-
|
61
63
|
end
|
62
64
|
end
|
63
65
|
end
|
@@ -5,7 +5,6 @@ module Beaker
|
|
5
5
|
# for these methods to execute correctly
|
6
6
|
#
|
7
7
|
module HostHelpers
|
8
|
-
|
9
8
|
def ruby_command(host)
|
10
9
|
if host['platform'] =~ /windows/ && !host.is_cygwin?
|
11
10
|
"cmd /V /C \"set PATH=#{host['privatebindir']};!PATH! && ruby\""
|
@@ -20,8 +19,10 @@ module Beaker
|
|
20
19
|
# S_IFDIR 0040000
|
21
20
|
def beaker_stat(host, path)
|
22
21
|
ruby = ruby_command(host)
|
23
|
-
owner = on(host,
|
24
|
-
|
22
|
+
owner = on(host,
|
23
|
+
"#{ruby} -e 'require \"etc\"; puts (Etc.getpwuid(File.stat(\"#{path}\").uid).name)'").stdout.chomp
|
24
|
+
group = on(host,
|
25
|
+
"#{ruby} -e 'require \"etc\"; puts (Etc.getgrgid(File.stat(\"#{path}\").gid).name)'").stdout.chomp
|
25
26
|
mode = on(host, "#{ruby} -e 'puts (File.stat(\"#{path}\").mode & 0777).to_s(8)'").stdout.chomp.to_i
|
26
27
|
|
27
28
|
[owner, group, mode]
|
@@ -29,12 +30,14 @@ module Beaker
|
|
29
30
|
|
30
31
|
def assert_ownership_permissions(host, location, expected_user, expected_group, expected_permissions)
|
31
32
|
permissions = beaker_stat(host, location)
|
32
|
-
assert_equal(expected_user, permissions[0],
|
33
|
-
|
34
|
-
assert_equal(
|
33
|
+
assert_equal(expected_user, permissions[0],
|
34
|
+
"Owner #{permissions[0]} does not match expected #{expected_user}")
|
35
|
+
assert_equal(expected_group, permissions[1],
|
36
|
+
"Group #{permissions[1]} does not match expected #{expected_group}")
|
37
|
+
assert_equal(expected_permissions, permissions[2],
|
38
|
+
"Permissions #{permissions[2]} does not match expected #{expected_permissions}")
|
35
39
|
end
|
36
40
|
end
|
37
41
|
end
|
38
42
|
end
|
39
43
|
end
|
40
|
-
|