Files
puppet-nova/manifests/compute/pci.pp
Takashi Kajinami 9b27968a04 Stop accepting encoded JSON string
... to avoid redundant parsing of json content from a given string.

This also allows us to add more strict validation later using Struct
data type.

Change-Id: I2a8bbd266d5e97a06b89c131bbd86e3710a68923
2025-03-17 01:43:38 +09:00

52 lines
1.4 KiB
Puppet

# Class nova::compute::pci
#
# Configures nova compute pci options
#
# === Parameters:
#
# [*device_specs*]
# (optional) Specify the PCI devices available to VMs.
# Defaults to []
# Example of format:
# [ { "vendor_id" => "1234","product_id" => "5678" },
# { "vendor_id" => "4321","product_id" => "8765", "physical_network" => "default" } ]
#
# [*report_in_placement*]
# (optional) Enable PCI resource inventory reporting to Placement.
# Defaults to $facts['os_service_default']
#
# DEPRECATED PARAMETERS
#
# [*passthrough*]
# (optional) Pci passthrough list of hash.
# Defaults to undef
#
class nova::compute::pci(
Array[Hash] $device_specs = [],
$report_in_placement = $facts['os_service_default'],
# DEPRECATED PARAMETERS
Optional[Array[Hash]] $passthrough = undef,
) {
include nova::deps
if $passthrough != undef {
warning('The passthrough parameter is deprecated. Use the device_specs parameter.')
if empty($passthrough) {
$device_specs_real = $facts['os_service_default']
} else {
$device_specs_real = to_array_of_json_strings($passthrough)
}
} else {
if empty($device_specs) {
$device_specs_real = $facts['os_service_default']
} else {
$device_specs_real = to_array_of_json_strings($device_specs)
}
}
nova_config {
'pci/device_spec': value => $device_specs_real;
'pci/report_in_placement': value => $report_in_placement;
}
}