Browse Source

Revert "Remove parameter nova::compute::pci_passthrough"

This should never have been merged.
It removed more than the deprecated param, breaking the pci config on
computes.
Also should have warned for at least 1 cycle before removal.
It also wasn't removed correctly as the pick remained in nova::compute::pci
so (IIUC) the deprecated param still works today if set in hieradata.

This reverts commit d845b6f0ae.

Change-Id: I5b3d9dbbd41d060134444609458b3e8bba606ae6
changes/52/764352/3
Oliver Walsh 7 months ago
parent
commit
e7f323a1f4
2 changed files with 70 additions and 0 deletions
  1. +15
    -0
      manifests/compute.pp
  2. +55
    -0
      spec/classes/nova_compute_spec.rb

+ 15
- 0
manifests/compute.pp View File

@ -290,6 +290,14 @@
# this should be set in the api.pp class instead.
# 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,
@ -347,6 +355,7 @@ class nova::compute (
$install_bridge_utils = undef,
$vcpu_pin_set = undef,
$allow_resize_to_same_host = undef,
$pci_passthrough = undef,
) {
include nova::deps
@ -360,6 +369,12 @@ class nova::compute (
$max_concurrent_builds)
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
if $neutron_enabled {


+ 55
- 0
spec/classes/nova_compute_spec.rb View File

@ -85,6 +85,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
@ -211,6 +216,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
{


Loading…
Cancel
Save