Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions tests/beaker/lib/lvm_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,29 @@ def verify_if_created?(agent, resource_type, resource_name, vg=nil, properties=n
end
end

# Verify if a filesystem resource type is successfully created
#
# ==== Attributes
#
# * +volume_group+ - resorce type name, i.e 'VolumeGroup_1234'
# * +logical_volume+ - resorce type name, i.e 'LogicalVolume_a2b3'
# * +fromat_type+ - type of the format of the logical volume, i.e 'ext3'
#
# ==== Returns
#
# +nil+
#
# ==== Raises
# assert_match failure message
# ==== Examples
#
# is_correct_format?(agent, VolumeGroup_1234, LogicalVolume_a2b3, ext3)
def is_correct_format?(agent, volume_group, logical_volume, format_type)
on(agent, "file -sL /dev/#{volume_group}/#{logical_volume}") do |result|
assert_match(/#{format_type}/, result.stdout, "Unexpected error was detected")
end
end

# Clean the box after each test, make sure the newly created logical volumes, volume groups,
# and physical volumes are removed at the end of each test to make the server ready for the
# next test case.
Expand Down
55 changes: 55 additions & 0 deletions tests/beaker/tests/create_filesystem_non-existing-format.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
require 'master_manipulator'
require 'lvm_helper'
require 'securerandom'

test_name "FM-4615 - C97168 - create non-existing format filesystem"

#initilize
pv = '/dev/sdc'
vg = ("VolumeGroup_" + SecureRandom.hex(2))
lv = ("LogicalVolume_" + SecureRandom.hex(3))

# Teardown
teardown do
confine_block(:except, :roles => %w{master dashboard database}) do
agents.each do |agent|
remove_all(agent, pv, vg, lv)
end
end
end

pp = <<-MANIFEST
physical_volume {'#{pv}':
ensure => present,
}
->
volume_group {'#{vg}':
ensure => present,
physical_volumes => '#{pv}',
}
->
logical_volume{'#{lv}':
ensure => present,
volume_group => '#{vg}',
size => '20M',
}
->
filesystem {'Create_filesystem':
name => '/dev/#{vg}/#{lv}',
ensure => present,
fs_type => 'non-existing-format',
}
MANIFEST

step 'Inject "site.pp" on Master'
site_pp = create_site_pp(master, :manifest => pp)
inject_site_pp(master, get_site_pp_path(master), site_pp)

step 'Run Puppet Agent to create logical volumes'
confine_block(:except, :roles => %w{master dashboard database}) do
agents.each do |agent|
on(agent, puppet('agent -t --environment production'), :acceptable_exit_codes => [1,6]) do |result|
assert_match(/change from absent to present failed/, result.stderr, 'Unexpected error was detected!')
end
end
end
58 changes: 58 additions & 0 deletions tests/beaker/tests/create_filesystem_with_ensure_property_ext2.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
require 'master_manipulator'
require 'lvm_helper'
require 'securerandom'

test_name "FM-4615 - C96567 - create filesystem with property 'ensure' and ext2 format"

#initilize
pv = '/dev/sdc'
vg = ("VolumeGroup_" + SecureRandom.hex(2))
lv = ("LogicalVolume_" + SecureRandom.hex(3))

# Teardown
teardown do
confine_block(:except, :roles => %w{master dashboard database}) do
agents.each do |agent|
remove_all(agent, pv, vg, lv)
end
end
end

pp = <<-MANIFEST
physical_volume {'#{pv}':
ensure => present,
}
->
volume_group {'#{vg}':
ensure => present,
physical_volumes => '#{pv}',
}
->
logical_volume{'#{lv}':
ensure => present,
volume_group => '#{vg}',
size => '20M',
}
->
filesystem {'Create_filesystem':
name => '/dev/#{vg}/#{lv}',
ensure => present,
fs_type => 'ext2',
}
MANIFEST

step 'Inject "site.pp" on Master'
site_pp = create_site_pp(master, :manifest => pp)
inject_site_pp(master, get_site_pp_path(master), site_pp)

step 'Run Puppet Agent to create logical volumes'
confine_block(:except, :roles => %w{master dashboard database}) do
agents.each do |agent|
on(agent, puppet('agent -t --environment production'), :acceptable_exit_codes => [0,2]) do |result|
assert_no_match(/Error:/, result.stderr, 'Unexpected error was detected!')
end

step "Verify the logical volume has correct format type: #{lv}"
is_correct_format?(agent, vg, lv, 'ext2')
end
end
58 changes: 58 additions & 0 deletions tests/beaker/tests/create_filesystem_with_param_fs_type_ext4.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
require 'master_manipulator'
require 'lvm_helper'
require 'securerandom'

test_name "FM-4615 - C96568 - create filesystem with parameter 'fs_type' and ext4 format"

#initilize
pv = '/dev/sdc'
vg = ("VolumeGroup_" + SecureRandom.hex(2))
lv = ("LogicalVolume_" + SecureRandom.hex(3))

# Teardown
teardown do
confine_block(:except, :roles => %w{master dashboard database}) do
agents.each do |agent|
remove_all(agent, pv, vg, lv)
end
end
end

pp = <<-MANIFEST
physical_volume {'#{pv}':
ensure => present,
}
->
volume_group {'#{vg}':
ensure => present,
physical_volumes => '#{pv}',
}
->
logical_volume{'#{lv}':
ensure => present,
volume_group => '#{vg}',
size => '20M',
}
->
filesystem {'Create_filesystem':
name => '/dev/#{vg}/#{lv}',
ensure => present,
fs_type => 'ext4',
}
MANIFEST

step 'Inject "site.pp" on Master'
site_pp = create_site_pp(master, :manifest => pp)
inject_site_pp(master, get_site_pp_path(master), site_pp)

step 'Run Puppet Agent to create logical volumes'
confine_block(:except, :roles => %w{master dashboard database}) do
agents.each do |agent|
on(agent, puppet('agent -t --environment production'), :acceptable_exit_codes => [0,2]) do |result|
assert_no_match(/Error:/, result.stderr, 'Unexpected error was detected!')
end

step "Verify the logical volume has correct format type: #{lv}"
is_correct_format?(agent, vg, lv, 'ext4')
end
end
58 changes: 58 additions & 0 deletions tests/beaker/tests/create_filesystem_with_param_name_ext3.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
require 'master_manipulator'
require 'lvm_helper'
require 'securerandom'

test_name "FM-4615 - C96566 - create filesystem with parameter 'name' and ext3 format"

#initilize
pv = '/dev/sdc'
vg = ("VolumeGroup_" + SecureRandom.hex(2))
lv = ("LogicalVolume_" + SecureRandom.hex(3))

# Teardown
teardown do
confine_block(:except, :roles => %w{master dashboard database}) do
agents.each do |agent|
remove_all(agent, pv, vg, lv)
end
end
end

pp = <<-MANIFEST
physical_volume {'#{pv}':
ensure => present,
}
->
volume_group {'#{vg}':
ensure => present,
physical_volumes => '#{pv}',
}
->
logical_volume{'#{lv}':
ensure => present,
volume_group => '#{vg}',
size => '20M',
}
->
filesystem {'Create_filesystem':
name => '/dev/#{vg}/#{lv}',
ensure => present,
fs_type => 'ext3',
}
MANIFEST

step 'Inject "site.pp" on Master'
site_pp = create_site_pp(master, :manifest => pp)
inject_site_pp(master, get_site_pp_path(master), site_pp)

step 'Run Puppet Agent to create logical volumes'
confine_block(:except, :roles => %w{master dashboard database}) do
agents.each do |agent|
on(agent, puppet('agent -t --environment production'), :acceptable_exit_codes => [0,2]) do |result|
assert_no_match(/Error:/, result.stderr, 'Unexpected error was detected!')
end

step "Verify the logical volume has correct format type: #{lv}"
is_correct_format?(agent, vg, lv, 'ext3')
end
end
59 changes: 59 additions & 0 deletions tests/beaker/tests/create_filesystem_with_param_options.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
require 'master_manipulator'
require 'lvm_helper'
require 'securerandom'

test_name "FM-4615 - C96570 - create filesystem with parameter 'options' and ext4 format"

#initilize
pv = '/dev/sdc'
vg = ("VolumeGroup_" + SecureRandom.hex(2))
lv = ("LogicalVolume_" + SecureRandom.hex(3))

# Teardown
teardown do
confine_block(:except, :roles => %w{master dashboard database}) do
agents.each do |agent|
remove_all(agent, pv, vg, lv)
end
end
end

pp = <<-MANIFEST
physical_volume {'#{pv}':
ensure => present,
}
->
volume_group {'#{vg}':
ensure => present,
physical_volumes => '#{pv}',
}
->
logical_volume{'#{lv}':
ensure => present,
volume_group => '#{vg}',
size => '20M',
}
->
filesystem {'Create_filesystem':
name => '/dev/#{vg}/#{lv}',
ensure => present,
fs_type => 'ext4',
options => '-b 4096 -E stride=32,stripe-width=64',
}
MANIFEST

step 'Inject "site.pp" on Master'
site_pp = create_site_pp(master, :manifest => pp)
inject_site_pp(master, get_site_pp_path(master), site_pp)

step 'Run Puppet Agent to create logical volumes'
confine_block(:except, :roles => %w{master dashboard database}) do
agents.each do |agent|
on(agent, puppet('agent -t --environment production'), :acceptable_exit_codes => [0,2]) do |result|
assert_no_match(/Error:/, result.stderr, 'Unexpected error was detected!')
end

step "Verify the logical volume has correct format type: #{lv}"
is_correct_format?(agent, vg, lv, 'ext4')
end
end