Merge "Revert "Remove parameter nova::compute::pci_passthrough"" into stable/train

This commit is contained in:
Zuul 2021-03-22 18:11:44 +00:00 committed by Gerrit Code Review
commit 7af77edd8d
2 changed files with 70 additions and 0 deletions

View File

@ -197,6 +197,14 @@
# pinned and unpinned instances on the same host.
# Defaults to undef
#
# [*pci_passthrough*]
# DEPRECATED. Use nova::compute::pci::passthrough instead.
# (optional) Pci passthrough list of hash.
# Defaults to undef
# Example of format:
# [ { "vendor_id" => "1234","product_id" => "5678" },
# { "vendor_id" => "4321","product_id" => "8765", "physical_network" => "default" } ]
#
class nova::compute (
$enabled = true,
$manage_service = true,
@ -239,6 +247,7 @@ class nova::compute (
$neutron_enabled = undef,
$install_bridge_utils = undef,
$vcpu_pin_set = undef,
$pci_passthrough = undef,
) {
include ::nova::deps
@ -249,6 +258,12 @@ class nova::compute (
$cpu_dedicated_set_real = pick(join(any2array($cpu_dedicated_set), ','), $::os_service_default)
include ::nova::pci
if $pci_passthrough {
# Note: also remove the pick from nova::compute::pci
warning('The pci_passthrough parameter is deprecated and will be removed in X. Please use nova::compute::pci::passthrough instead.')
}
include ::nova::compute::pci
include ::nova::compute::vgpu
include ::nova::vendordata

View File

@ -77,6 +77,11 @@ describe 'nova::compute' do
is_expected.to contain_package('genisoimage').that_requires('Anchor[nova::install::begin]')
is_expected.to contain_package('genisoimage').that_comes_before('Anchor[nova::install::end]')
end
it 'configures nova pci_passthrough_whitelist' do
is_expected.to contain_class('nova::compute::pci')
is_expected.to contain_nova_config('pci/passthrough_whitelist').with(:value => '<SERVICE DEFAULT>')
end
end
context 'with overridden parameters' do
@ -182,6 +187,56 @@ describe 'nova::compute' do
end
end
context 'with pci params array' do
let :params do
{
:pci_passthrough => [
{
"vendor_id" => "8086",
"product_id" => "0126"
},
{
"vendor_id" => "9096",
"product_id" => "1520",
"physical_network" => "physnet1"
}
],
}
end
it 'configures nova pci_passthrough_whitelist entries' do
is_expected.to contain_class('nova::compute::pci')
is_expected.to contain_nova_config('pci/passthrough_whitelist').with(
'value' => ['{"vendor_id":"8086","product_id":"0126"}','{"vendor_id":"9096","product_id":"1520","physical_network":"physnet1"}']
)
end
end
context 'with pci params JSON encoded string (deprecated)' do
let :params do
{
:pci_passthrough => "[{\"vendor_id\":\"8086\",\"product_id\":\"0126\"},{\"vendor_id\":\"9096\",\"product_id\":\"1520\",\"physical_network\":\"physnet1\"}]",
}
end
it 'configures nova pci_passthrough_whitelist entries' do
is_expected.to contain_class('nova::compute::pci')
is_expected.to contain_nova_config('pci/passthrough_whitelist').with(
'value' => ['{"vendor_id":"8086","product_id":"0126"}','{"vendor_id":"9096","product_id":"1520","physical_network":"physnet1"}']
)
end
end
context 'when vcpu_pin_set and pci params are empty' do
let :params do
{ :pci_passthrough => ""}
end
it 'clears pci_passthrough configuration' do
is_expected.to contain_class('nova::compute::pci')
is_expected.to contain_nova_config('pci/passthrough_whitelist').with(:value => '<SERVICE DEFAULT>')
end
end
context 'with reserved_huge_pages array' do
let :params do
{