Ensure dhcp hostsdir exists
The dhcp hostsdir used by dnsmasq may not exist (for example in Ubuntu or Debian). Ensure the requested path actually exists to avoid runtime problems. Change-Id: If01afddb7649dead6a61f1eda33cf0488d9f60bc
This commit is contained in:
parent
1b582d17b3
commit
d290940d02
|
@ -315,66 +315,66 @@
|
|||
# Defaults to false
|
||||
#
|
||||
class ironic::inspector (
|
||||
$package_ensure = 'present',
|
||||
Boolean $manage_service = true,
|
||||
Boolean $enabled = true,
|
||||
$listen_address = $facts['os_service_default'],
|
||||
Enum['http', 'tftp'] $pxe_transfer_protocol = 'tftp',
|
||||
Boolean $dhcp_debug = false,
|
||||
$auth_strategy = 'keystone',
|
||||
$timeout = $facts['os_service_default'],
|
||||
$api_max_limit = $facts['os_service_default'],
|
||||
$dnsmasq_interface = 'br-ctlplane',
|
||||
$ramdisk_logs_dir = '/var/log/ironic-inspector/ramdisk/',
|
||||
$always_store_ramdisk_logs = $facts['os_service_default'],
|
||||
$add_ports = $facts['os_service_default'],
|
||||
$keep_ports = $facts['os_service_default'],
|
||||
$store_data = $facts['os_service_default'],
|
||||
Array[Hash] $dnsmasq_ip_subnets = [],
|
||||
$dnsmasq_local_ip = '192.168.0.1',
|
||||
Boolean $dnsmasq_dhcp_sequential_ip = true,
|
||||
$dnsmasq_dhcp_hostsdir = undef,
|
||||
$dnsmasq_log_facility = undef,
|
||||
Boolean $sync_db = true,
|
||||
Optional[String[1]] $ramdisk_collectors = undef,
|
||||
String[1] $ramdisk_filename = 'agent.ramdisk',
|
||||
String[1] $kernel_filename = 'agent.kernel',
|
||||
$additional_processing_hooks = undef,
|
||||
String $ramdisk_kernel_args = '',
|
||||
Integer[0] $ipxe_timeout = 0,
|
||||
$http_port = '8088',
|
||||
$detect_boot_mode = $facts['os_service_default'],
|
||||
Stdlib::Absolutepath $tftp_root = '/tftpboot',
|
||||
Stdlib::Absolutepath $http_root = '/httpboot',
|
||||
$node_not_found_hook = $facts['os_service_default'],
|
||||
$discovery_default_driver = $facts['os_service_default'],
|
||||
Boolean $enable_ppc64le = false,
|
||||
Hash $port_physnet_cidr_map = {},
|
||||
$uefi_ipxe_bootfile_name = $::ironic::params::uefi_ipxe_bootfile_name,
|
||||
$control_exchange = $facts['os_service_default'],
|
||||
$executor_thread_pool_size = $facts['os_service_default'],
|
||||
$rpc_response_timeout = $facts['os_service_default'],
|
||||
$rpc_transport = $facts['os_service_default'],
|
||||
$default_transport_url = 'fake://',
|
||||
$rabbit_use_ssl = $facts['os_service_default'],
|
||||
$rabbit_heartbeat_timeout_threshold = $facts['os_service_default'],
|
||||
$rabbit_heartbeat_rate = $facts['os_service_default'],
|
||||
$rabbit_heartbeat_in_pthread = $facts['os_service_default'],
|
||||
$rabbit_ha_queues = $facts['os_service_default'],
|
||||
$rabbit_quorum_queue = $facts['os_service_default'],
|
||||
$rabbit_transient_quorum_queue = $facts['os_service_default'],
|
||||
$rabbit_quorum_delivery_limit = $facts['os_service_default'],
|
||||
$rabbit_quorum_max_memory_length = $facts['os_service_default'],
|
||||
$rabbit_quorum_max_memory_bytes = $facts['os_service_default'],
|
||||
$kombu_ssl_ca_certs = $facts['os_service_default'],
|
||||
$kombu_ssl_certfile = $facts['os_service_default'],
|
||||
$kombu_ssl_keyfile = $facts['os_service_default'],
|
||||
$kombu_ssl_version = $facts['os_service_default'],
|
||||
$kombu_reconnect_delay = $facts['os_service_default'],
|
||||
$kombu_failover_strategy = $facts['os_service_default'],
|
||||
$kombu_compression = $facts['os_service_default'],
|
||||
$amqp_durable_queues = $facts['os_service_default'],
|
||||
Boolean $standalone = true,
|
||||
$package_ensure = 'present',
|
||||
Boolean $manage_service = true,
|
||||
Boolean $enabled = true,
|
||||
$listen_address = $facts['os_service_default'],
|
||||
Enum['http', 'tftp'] $pxe_transfer_protocol = 'tftp',
|
||||
Boolean $dhcp_debug = false,
|
||||
$auth_strategy = 'keystone',
|
||||
$timeout = $facts['os_service_default'],
|
||||
$api_max_limit = $facts['os_service_default'],
|
||||
$dnsmasq_interface = 'br-ctlplane',
|
||||
$ramdisk_logs_dir = '/var/log/ironic-inspector/ramdisk/',
|
||||
$always_store_ramdisk_logs = $facts['os_service_default'],
|
||||
$add_ports = $facts['os_service_default'],
|
||||
$keep_ports = $facts['os_service_default'],
|
||||
$store_data = $facts['os_service_default'],
|
||||
Array[Hash] $dnsmasq_ip_subnets = [],
|
||||
$dnsmasq_local_ip = '192.168.0.1',
|
||||
Boolean $dnsmasq_dhcp_sequential_ip = true,
|
||||
Optional[Stdlib::Absolutepath] $dnsmasq_dhcp_hostsdir = undef,
|
||||
$dnsmasq_log_facility = undef,
|
||||
Boolean $sync_db = true,
|
||||
Optional[String[1]] $ramdisk_collectors = undef,
|
||||
String[1] $ramdisk_filename = 'agent.ramdisk',
|
||||
String[1] $kernel_filename = 'agent.kernel',
|
||||
$additional_processing_hooks = undef,
|
||||
String $ramdisk_kernel_args = '',
|
||||
Integer[0] $ipxe_timeout = 0,
|
||||
$http_port = '8088',
|
||||
$detect_boot_mode = $facts['os_service_default'],
|
||||
Stdlib::Absolutepath $tftp_root = '/tftpboot',
|
||||
Stdlib::Absolutepath $http_root = '/httpboot',
|
||||
$node_not_found_hook = $facts['os_service_default'],
|
||||
$discovery_default_driver = $facts['os_service_default'],
|
||||
Boolean $enable_ppc64le = false,
|
||||
Hash $port_physnet_cidr_map = {},
|
||||
$uefi_ipxe_bootfile_name = $::ironic::params::uefi_ipxe_bootfile_name,
|
||||
$control_exchange = $facts['os_service_default'],
|
||||
$executor_thread_pool_size = $facts['os_service_default'],
|
||||
$rpc_response_timeout = $facts['os_service_default'],
|
||||
$rpc_transport = $facts['os_service_default'],
|
||||
$default_transport_url = 'fake://',
|
||||
$rabbit_use_ssl = $facts['os_service_default'],
|
||||
$rabbit_heartbeat_timeout_threshold = $facts['os_service_default'],
|
||||
$rabbit_heartbeat_rate = $facts['os_service_default'],
|
||||
$rabbit_heartbeat_in_pthread = $facts['os_service_default'],
|
||||
$rabbit_ha_queues = $facts['os_service_default'],
|
||||
$rabbit_quorum_queue = $facts['os_service_default'],
|
||||
$rabbit_transient_quorum_queue = $facts['os_service_default'],
|
||||
$rabbit_quorum_delivery_limit = $facts['os_service_default'],
|
||||
$rabbit_quorum_max_memory_length = $facts['os_service_default'],
|
||||
$rabbit_quorum_max_memory_bytes = $facts['os_service_default'],
|
||||
$kombu_ssl_ca_certs = $facts['os_service_default'],
|
||||
$kombu_ssl_certfile = $facts['os_service_default'],
|
||||
$kombu_ssl_keyfile = $facts['os_service_default'],
|
||||
$kombu_ssl_version = $facts['os_service_default'],
|
||||
$kombu_reconnect_delay = $facts['os_service_default'],
|
||||
$kombu_failover_strategy = $facts['os_service_default'],
|
||||
$kombu_compression = $facts['os_service_default'],
|
||||
$amqp_durable_queues = $facts['os_service_default'],
|
||||
Boolean $standalone = true,
|
||||
) inherits ironic::params {
|
||||
|
||||
include ironic::deps
|
||||
|
@ -551,6 +551,18 @@ included in the manifest")
|
|||
include ironic::inspector::db::sync
|
||||
}
|
||||
|
||||
if $dnsmasq_dhcp_hostsdir {
|
||||
file { 'ironic-inspector-dnsmasq-dhcp-hostsdir':
|
||||
ensure => directory,
|
||||
path => $dnsmasq_dhcp_hostsdir,
|
||||
owner => $::ironic::params::inspector_user,
|
||||
group => $::ironic::params::inspector_group,
|
||||
mode => '0750',
|
||||
require => Anchor['ironic-inspector::config::begin'],
|
||||
before => Anchor['ironic-inspector::config::end']
|
||||
}
|
||||
}
|
||||
|
||||
if $manage_service {
|
||||
if $enabled {
|
||||
$ensure = 'running'
|
||||
|
|
|
@ -155,6 +155,10 @@ describe 'ironic::inspector' do
|
|||
)
|
||||
end
|
||||
|
||||
it 'should not contain dhcp hostsdir' do
|
||||
is_expected.not_to contain_file('ironic-inspector-dnsmasq-dhcp-hostsdir')
|
||||
end
|
||||
|
||||
it 'should contain file /etc/ironic-inspector/dnsmasq.conf' do
|
||||
is_expected.to contain_file('/etc/ironic-inspector/dnsmasq.conf').with(
|
||||
'ensure' => 'present',
|
||||
|
@ -197,6 +201,9 @@ describe 'ironic::inspector' do
|
|||
is_expected.not_to contain_file('/etc/ironic-inspector/dnsmasq.conf').with_content(
|
||||
/^log-facility=.*$/
|
||||
)
|
||||
is_expected.not_to contain_file('/etc/ironic-inspector/dnsmasq.conf').with_content(
|
||||
/^dhcp-hostsdir=.*$/
|
||||
)
|
||||
end
|
||||
it 'should contain file /tftpboot/pxelinux.cfg/default' do
|
||||
is_expected.to contain_file('/tftpboot/pxelinux.cfg/default').with(
|
||||
|
@ -230,6 +237,7 @@ describe 'ironic::inspector' do
|
|||
:discovery_default_driver => 'pxe_ipmitool',
|
||||
:dnsmasq_ip_subnets => [{'ip_range' => '192.168.0.100,192.168.0.120'}],
|
||||
:dnsmasq_dhcp_sequential_ip => false,
|
||||
:dnsmasq_dhcp_hostsdir => '/etc/ironic-inspector/dhcp-hostsdir',
|
||||
:dnsmasq_log_facility => '/var/log/ironic-inspector/dnsmasq.log',
|
||||
:add_ports => 'all',
|
||||
:always_store_ramdisk_logs => true,
|
||||
|
@ -294,6 +302,15 @@ describe 'ironic::inspector' do
|
|||
)
|
||||
end
|
||||
|
||||
it 'should contain dhcp hostsdir' do
|
||||
is_expected.to contain_file('ironic-inspector-dnsmasq-dhcp-hostsdir').with(
|
||||
:ensure => 'directory',
|
||||
:path => '/etc/ironic-inspector/dhcp-hostsdir',
|
||||
:owner => 'ironic-inspector',
|
||||
:group => 'ironic-inspector',
|
||||
)
|
||||
end
|
||||
|
||||
it 'should contain file /etc/ironic-inspector/dnsmasq.conf' do
|
||||
is_expected.to contain_file('/etc/ironic-inspector/dnsmasq.conf').with(
|
||||
'ensure' => 'present',
|
||||
|
@ -330,6 +347,9 @@ describe 'ironic::inspector' do
|
|||
is_expected.to contain_file('/etc/ironic-inspector/dnsmasq.conf').with_content(
|
||||
/^dhcp-option=tag:efi6,tag:!ipxe6,option6:bootfile-url,tftp:\/\/.*\/otherpxe.efi$/
|
||||
)
|
||||
is_expected.to contain_file('/etc/ironic-inspector/dnsmasq.conf').with_content(
|
||||
/^dhcp-hostsdir=\/etc\/ironic-inspector\/dhcp-hostsdir$/
|
||||
)
|
||||
|
||||
end
|
||||
it 'should contain file /var/www/httpboot/inspector.ipxe' do
|
||||
|
|
Loading…
Reference in New Issue