PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
| Dir : /opt/puppetlabs/puppet/vendor_modules/zfs_core/spec/acceptance/tests/zpool/ |
| Server: Linux server1.ngambekcore.com 4.18.0-553.51.1.el8_10.x86_64 #1 SMP Wed Apr 30 04:00:07 EDT 2025 x86_64 IP: 159.198.77.92 |
| Dir : //opt/puppetlabs/puppet/vendor_modules/zfs_core/spec/acceptance/tests/zpool/basic_tests_spec.rb |
require 'spec_helper_acceptance'
RSpec.context 'ZPool: Basic Tests' do
before(:all) do
# ZPool: setup
solaris_agents.each do |agent|
zpool_setup agent
end
end
after(:all) do
# ZPool: cleanup
solaris_agents.each do |agent|
zpool_clean agent
end
end
solaris_agents.each do |agent|
it 'can create an idempotent zpool resource' do
# ZPool: create zpool disk
apply_manifest_on(agent, "zpool{ tstpool: ensure=>present, disk=>'/ztstpool/dsk1' }") do |result|
assert_match(%r{ensure: created}, result.stdout, "err: #{agent}")
end
# ZPool: zpool should be idempotent
apply_manifest_on(agent, "zpool{ tstpool: ensure=>present, disk=>'/ztstpool/dsk1' }") do |result|
refute_match(%r{ensure: created}, result.stdout, "err: #{agent}")
end
# ZPool: remove zpool
apply_manifest_on(agent, 'zpool{ tstpool: ensure=>absent }') do |result|
assert_match(%r{ensure: removed}, result.stdout, "err: #{agent}")
end
end
it 'can create a zpool resource with a disk array' do
# ZPool: create zpool with a disk array
apply_manifest_on(agent, "zpool{ tstpool: ensure=>present, disk=>['/ztstpool/dsk1','/ztstpool/dsk2'] }") do |result|
assert_match(%r{ensure: created}, result.stdout, "err: #{agent}")
end
# ZPool: verify disk array was created
on(agent, 'zpool list -H') do |result|
assert_match(%r{tstpool}, result.stdout, "err: #{agent}")
end
# ZPool: verify puppet resource reports on the disk array
on(agent, puppet('resource zpool tstpool')) do |result|
assert_match(%r{ensure\s+=> 'present'}, result.stdout, "err: #{agent}")
assert_match(%r{disk +=> .'.+dsk1 .+dsk2'.}, result.stdout, "err: #{agent}")
end
# ZPool: remove zpool in preparation for mirror tests
apply_manifest_on(agent, 'zpool{ tstpool: ensure=>absent }') do |result|
assert_match(%r{ensure: removed}, result.stdout, "err: #{agent}")
end
end
it 'can create a mirrored zpool resource with 3 virtual devices' do
# ZPool: create mirrored zpool with 3 virtual devices
apply_manifest_on(agent, "zpool{ tstpool: ensure=>present, mirror=>['/ztstpool/dsk1 /ztstpool/dsk2 /ztstpool/dsk3'] }") do |result|
assert_match(%r{ensure: created}, result.stdout, "err: #{agent}")
end
# ZPool: verify mirrors were created
on(agent, 'zpool status -v tstpool') do |result|
# NAME STATE READ WRITE CKSUM
# tstpool ONLINE 0 0 0
# mirror-0 ONLINE 0 0 0
# /ztstpool/dsk1 ONLINE 0 0 0
# /ztstpool/dsk2 ONLINE 0 0 0
# /ztstpool/dsk3 ONLINE 0 0 0
assert_match(%r{tstpool.*\n\s+mirror.*\n\s*/ztstpool/dsk1.*\n\s*/ztstpool/dsk2.*\n\s*/ztstpool/dsk3}m, result.stdout, "err: #{agent}")
end
# ZPool: verify puppet resource reports on the mirror
on(agent, puppet('resource zpool tstpool')) do |result|
assert_match(%r{ensure\s+=> 'present'}, result.stdout, "err: #{agent}")
assert_match(%r{mirror\s+=> \['/ztstpool/dsk1 /ztstpool/dsk2 /ztstpool/dsk3'\]}, result.stdout, "err: #{agent}")
end
# ZPool: remove zpool in preparation for multiple mirrors
apply_manifest_on(agent, 'zpool{ tstpool: ensure=>absent }') do |result|
assert_match(%r{ensure: removed}, result.stdout, "err: #{agent}")
end
end
it 'can create two mirrored zpools each with two virtual devices' do
# ZPool: create 2 mirrored zpools each with 2 virtual devices
apply_manifest_on(agent, "zpool{ tstpool: ensure=>present, mirror=>['/ztstpool/dsk1 /ztstpool/dsk2', '/ztstpool/dsk3 /ztstpool/dsk5'] }") do |result|
assert_match(%r{ensure: created}, result.stdout, "err: #{agent}")
end
# ZPool: verify both mirrors were created
on(agent, 'zpool status -v tstpool') do |result|
# NAME STATE READ WRITE CKSUM
# tstpool ONLINE 0 0 0
# mirror-0 ONLINE 0 0 0
# /ztstpool/dsk1 ONLINE 0 0 0
# /ztstpool/dsk2 ONLINE 0 0 0
# mirror-1 ONLINE 0 0 0
# /ztstpool/dsk3 ONLINE 0 0 0
# /ztstpool/dsk5 ONLINE 0 0 0
assert_match(%r{tstpool.*\n\s+mirror.*\n\s*/ztstpool/dsk1.*\n\s*/ztstpool/dsk2.*\n\s+mirror.*\n\s*/ztstpool\/dsk3.*\n\s*/ztstpool/dsk5}m, result.stdout, "err: #{agent}")
end
# ZPool: verify puppet resource reports on both mirrors
on(agent, puppet('resource zpool tstpool')) do |result|
assert_match(%r{ensure\s+=> 'present'}, result.stdout, "err: #{agent}")
assert_match(%r{mirror\s+=> \['/ztstpool/dsk1 /ztstpool/dsk2', '/ztstpool/dsk3 /ztstpool/dsk5'\]}, result.stdout, "err: #{agent}")
end
# ZPool: remove zpool in preparation for raidz test
apply_manifest_on(agent, 'zpool{ tstpool: ensure=>absent }') do |result|
assert_match(%r{ensure: removed}, result.stdout, "err: #{agent}")
end
end
it 'can create raidz pool consisting of three virtual devices' do
# ZPool: create raidz pool consisting of 3 virtual devices
apply_manifest_on(agent, "zpool{ tstpool: ensure=>present, raidz=>['/ztstpool/dsk1 /ztstpool/dsk2 /ztstpool/dsk3'] }") do |result|
pp "THIS IS THE RESULT: #{result} THIS IS THE RESULT'S CLASS #{result.class}"
pp "THIS IS THE RESULT METHODS #{result.methods.sort}"
pp "RESULT.STDOUT IS #{result.stdout} RESULT.STDERR IS #{result.stderr}"
assert_match(%r{ensure: created}, result.stdout, "err: #{agent}")
end
# ZPool: verify raidz pool was created
on(agent, 'zpool status -v tstpool') do |result|
# NAME STATE READ WRITE CKSUM
# tstpool ONLINE 0 0 0
# raidz1-0 ONLINE 0 0 0
# /ztstpool/dsk1 ONLINE 0 0 0
# /ztstpool/dsk2 ONLINE 0 0 0
# /ztstpool/dsk3 ONLINE 0 0 0
assert_match(%r{tstpool.*\n\s+raidz.*\n\s*/ztstpool/dsk1.*\n\s*/ztstpool/dsk2.*\n\s*/ztstpool/dsk3}m, result.stdout, "err: #{agent}")
end
# ZPool: verify puppet reports on the raidz pool
on(agent, puppet('resource zpool tstpool')) do |result|
assert_match(%r{ensure\s+=> 'present'}, result.stdout, "err: #{agent}")
assert_match(%r{raidz\s+=> \['/ztstpool/dsk1 /ztstpool/dsk2 /ztstpool/dsk3'\]}, result.stdout, "err: #{agent}")
end
# ZPool: remove zpool in preparation for multiple raidz pools
apply_manifest_on(agent, 'zpool{ tstpool: ensure=>absent }') do |result|
assert_match(%r{ensure: removed}, result.stdout, "err: #{agent}")
end
end
it 'can create two raidz zpools each with two virtual devices' do
# ZPool: create 2 mirrored zpools each with 2 virtual devices
apply_manifest_on(agent, "zpool{ tstpool: ensure=>present, raidz=>['/ztstpool/dsk1 /ztstpool/dsk2', '/ztstpool/dsk3 /ztstpool/dsk5'] }") do |result|
pp "THIS IS THE RESULT: #{result} THIS IS THE RESULT'S CLASS #{result.class}"
pp "THIS IS THE RESULT METHODS #{result.methods.sort}"
pp "RESULT.STDOUT IS #{result.stdout} RESULT.STDERR IS #{result.stderr}"
assert_match(%r{ensure: created}, result.stdout, "err: #{agent}")
end
# ZPool: verify both raidz were created
on(agent, 'zpool status -v tstpool') do |result|
# NAME STATE READ WRITE CKSUM
# tstpool ONLINE 0 0 0
# raidz1-0 ONLINE 0 0 0
# /ztstpool/dsk1 ONLINE 0 0 0
# /ztstpool/dsk2 ONLINE 0 0 0
# raidz1-1 ONLINE 0 0 0
# /ztstpool/dsk3 ONLINE 0 0 0
# /ztstpool/dsk5 ONLINE 0 0 0
assert_match(%r{tstpool.*\n\s+raidz.*\n\s*/ztstpool/dsk1.*\n\s*/ztstpool/dsk2.*\n\s+raidz.*\n\s*/ztstpool/dsk3.*\n\s*/ztstpool/dsk5}m, result.stdout, "err: #{agent}")
end
# ZPool: verify puppet resource reports on both raidz
on(agent, puppet('resource zpool tstpool')) do |result|
assert_match(%r{ensure\s+=> 'present'}, result.stdout, "err: #{agent}")
assert_match(%r{raidz\s+=> \['/ztstpool/dsk1 /ztstpool/dsk2', '/ztstpool/dsk3 /ztstpool/dsk5'\]}, result.stdout, "err: #{agent}")
end
# ZPool: remove
apply_manifest_on(agent, 'zpool { tstpool: ensure => absent }') do |result|
assert_match(%(ensure: removed), result.stdout, "err: #{agent}")
end
end
end
end