Files
puppet-nova/spec/classes/nova_pci_spec.rb
Takashi Kajinami f8bde51891 pci: Drop support for "broken" json
JSON does not allow usage of single quotes and require double quotes.
We have been converting single quotes to support such invalid usage but
that was deprecated a long ago[1].

This also simplifies the logic to handle aliases. Using undef results
in the value set to service default fact.

[1] 1cd349f893

Change-Id: If1328531f33a9fe778091ce38b5c1f8072b473b8
2023-11-03 23:11:29 +09:00

85 lines
2.3 KiB
Ruby

require 'spec_helper'
describe 'nova::pci' do
shared_examples_for 'nova-pci' do
context 'with default parameters' do
it 'clears pci_alias configuration' do
is_expected.to contain_nova_config('pci/alias').with(:value => '<SERVICE DEFAULT>')
end
end
context 'with aliases array' do
let :params do
{
:aliases => [{
"vendor_id" => "8086",
"product_id" => "0126",
"name" => "graphic_card"
},
{
"vendor_id" => "9096",
"product_id" => "1520",
"name" => "network_card"
}
]
}
end
it 'configures nova pci_alias entries' do
is_expected.to contain_nova_config('pci/alias').with(
'value' => ['{"vendor_id":"8086","product_id":"0126","name":"graphic_card"}','{"vendor_id":"9096","product_id":"1520","name":"network_card"}']
)
end
end
context 'with aliases JSON encoded string' do
let :params do
{
:aliases => "[{\"vendor_id\":\"8086\",\"product_id\":\"0126\",\"name\":\"graphic_card\"},{\"vendor_id\":\"9096\",\"product_id\":\"1520\",\"name\":\"network_card\"}]",
}
end
it 'configures nova pci_alias entries' do
is_expected.to contain_nova_config('pci/alias').with(
'value' => ['{"vendor_id":"8086","product_id":"0126","name":"graphic_card"}','{"vendor_id":"9096","product_id":"1520","name":"network_card"}']
)
end
end
context 'when aliases is empty' do
let :params do
{
:aliases => []
}
end
it 'clears pci_alias configuration' do
is_expected.to contain_nova_config('pci/alias').with(:value => '<SERVICE DEFAULT>')
end
end
context 'when aliases is empty string' do
let :params do
{
:aliases => ""
}
end
it 'clears pci_alias configuration' do
is_expected.to contain_nova_config('pci/alias').with(:value => '<SERVICE DEFAULT>')
end
end
end
on_supported_os({
:supported_os => OSDefaults.get_supported_os
}).each do |os,facts|
context "on #{os}" do
let (:facts) do
facts.merge!(OSDefaults.get_facts())
end
it_configures 'nova-pci'
end
end
end