Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
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