fog--fog/tests/xenserver/requests/compute/unplug_pbd_tests.rb

49 lines
1.4 KiB
Ruby

#
# @rubiojr
#
# Testing this requires a very specific setup:
#
# I use VirtualBox to virtualize XenServer/XCP and create the XenServer VM using
# two virtual disks under the same SATA controller. One of the virtual disks
# will be /dev/sdb, used to perform the tests.
#
Shindo.tests('Fog::Compute[:xenserver] | unplug_pbd request', ['xenserver']) do
compute = Fog::Compute[:xenserver]
# Creating a new SR automatically plugs the PBD
# We need the SR available for this to work, so create it first
ref = compute.create_sr compute.hosts.first.reference,
'FOG TEST SR',
'ext',
'',
{ :device => '/dev/sdb' },
'0',
'user',
false,
{}
tests('#unplug_pbd') do
test('unplugged') do
sr = compute.storage_repositories.find { |sr| sr.name == 'FOG TEST SR' }
pbd = sr.pbds.first
compute.unplug_pbd pbd.reference
pbd.reload
pbd.currently_attached == false
end
end
tests('The expected options') do
raises(ArgumentError, 'raises ArgumentError when arguments missing') \
{ compute.unplug_pbd }
end
# Clean-up
compute.storage_repositories.each do |sr|
next unless sr.name == 'FOG TEST SR'
sr.pbds.each { |pbd| pbd.unplug }
sr.destroy
end
end