From 1ce00db066c21579245a58b5c4f765039922fd13 Mon Sep 17 00:00:00 2001 From: Radoslaw Smigielski Date: Thu, 10 Mar 2016 14:10:17 +0100 Subject: [PATCH] Add missing block_device_allocate_* params in nova.conf Support for 2 new parameters in [DEFAULT] section of nova.conf: - block_device_allocate_retries - block_device_allocate_retries_interval Change-Id: I6d52b0dbfe49eb29e5e68ecb38a855e01cf610df --- manifests/init.pp | 205 ++++++++++++++++++--------------- spec/classes/nova_init_spec.rb | 83 +++++++------ 2 files changed, 156 insertions(+), 132 deletions(-) diff --git a/manifests/init.pp b/manifests/init.pp index b53516c14..8b7012c1a 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -396,6 +396,15 @@ # in the nova config. # Defaults to false. # +# [*block_device_allocate_retries*] +# (optional) Number of times to retry block device allocation on failures +# Defaults to $::os_service_default +# +# [*block_device_allocate_retries_interval*] +# (optional) Waiting time interval (seconds) between block device allocation +# retries on failures +# Defaults to $::os_service_default +# # DEPRECATED PARAMETERS # # [*verbose*] @@ -403,98 +412,100 @@ # Defaults to undef # class nova( - $ensure_package = 'present', - $database_connection = undef, - $slave_connection = undef, - $api_database_connection = undef, - $api_slave_connection = undef, - $database_idle_timeout = undef, - $database_min_pool_size = undef, - $database_max_pool_size = undef, - $database_max_retries = undef, - $database_retry_interval = undef, - $database_max_overflow = undef, - $default_transport_url = $::os_service_default, - $rpc_response_timeout = $::os_service_default, - $rpc_backend = $::os_service_default, - $image_service = 'nova.image.glance.GlanceImageService', + $ensure_package = 'present', + $database_connection = undef, + $slave_connection = undef, + $api_database_connection = undef, + $api_slave_connection = undef, + $block_device_allocate_retries = $::os_service_default, + $block_device_allocate_retries_interval = $::os_service_default, + $database_idle_timeout = undef, + $database_min_pool_size = undef, + $database_max_pool_size = undef, + $database_max_retries = undef, + $database_retry_interval = undef, + $database_max_overflow = undef, + $default_transport_url = $::os_service_default, + $rpc_response_timeout = $::os_service_default, + $rpc_backend = $::os_service_default, + $image_service = 'nova.image.glance.GlanceImageService', # these glance params should be optional # this should probably just be configured as a glance client - $glance_api_servers = 'http://localhost:9292', - $memcached_servers = $::os_service_default, - $rabbit_host = $::os_service_default, - $rabbit_hosts = $::os_service_default, - $rabbit_password = $::os_service_default, - $rabbit_port = $::os_service_default, - $rabbit_userid = $::os_service_default, - $rabbit_virtual_host = $::os_service_default, - $rabbit_use_ssl = $::os_service_default, - $rabbit_heartbeat_timeout_threshold = $::os_service_default, - $rabbit_heartbeat_rate = $::os_service_default, - $rabbit_ha_queues = $::os_service_default, - $kombu_ssl_ca_certs = $::os_service_default, - $kombu_ssl_certfile = $::os_service_default, - $kombu_ssl_keyfile = $::os_service_default, - $kombu_ssl_version = $::os_service_default, - $kombu_reconnect_delay = $::os_service_default, - $kombu_compression = $::os_service_default, - $amqp_durable_queues = $::os_service_default, - $amqp_server_request_prefix = $::os_service_default, - $amqp_broadcast_prefix = $::os_service_default, - $amqp_group_request_prefix = $::os_service_default, - $amqp_container_name = $::os_service_default, - $amqp_idle_timeout = $::os_service_default, - $amqp_trace = $::os_service_default, - $amqp_ssl_ca_file = $::os_service_default, - $amqp_ssl_cert_file = $::os_service_default, - $amqp_ssl_key_file = $::os_service_default, - $amqp_ssl_key_password = $::os_service_default, - $amqp_allow_insecure_clients = $::os_service_default, - $amqp_sasl_mechanisms = $::os_service_default, - $amqp_sasl_config_dir = $::os_service_default, - $amqp_sasl_config_name = $::os_service_default, - $amqp_username = $::os_service_default, - $amqp_password = $::os_service_default, - $host = $::os_service_default, - $auth_strategy = 'keystone', - $service_down_time = 60, - $log_dir = undef, - $state_path = '/var/lib/nova', - $lock_path = $::nova::params::lock_path, - $debug = undef, - $periodic_interval = '60', - $report_interval = '10', - $rootwrap_config = '/etc/nova/rootwrap.conf', - $use_ssl = false, - $enabled_ssl_apis = ['metadata', 'osapi_compute'], - $ca_file = false, - $cert_file = false, - $key_file = false, - $nova_public_key = undef, - $nova_private_key = undef, - $use_syslog = undef, - $use_stderr = undef, - $log_facility = undef, - $notification_transport_url = $::os_service_default, - $notification_driver = $::os_service_default, - $notification_topics = $::os_service_default, - $notify_api_faults = false, - $notify_on_state_change = undef, - $os_region_name = undef, - $cinder_catalog_info = 'volumev2:cinderv2:publicURL', - $upgrade_level_cells = undef, - $upgrade_level_cert = undef, - $upgrade_level_compute = undef, - $upgrade_level_conductor = undef, - $upgrade_level_console = undef, - $upgrade_level_consoleauth = undef, - $upgrade_level_intercell = undef, - $upgrade_level_network = undef, - $upgrade_level_scheduler = undef, - $use_ipv6 = $::os_service_default, - $purge_config = false, + $glance_api_servers = 'http://localhost:9292', + $memcached_servers = $::os_service_default, + $rabbit_host = $::os_service_default, + $rabbit_hosts = $::os_service_default, + $rabbit_password = $::os_service_default, + $rabbit_port = $::os_service_default, + $rabbit_userid = $::os_service_default, + $rabbit_virtual_host = $::os_service_default, + $rabbit_use_ssl = $::os_service_default, + $rabbit_heartbeat_timeout_threshold = $::os_service_default, + $rabbit_heartbeat_rate = $::os_service_default, + $rabbit_ha_queues = $::os_service_default, + $kombu_ssl_ca_certs = $::os_service_default, + $kombu_ssl_certfile = $::os_service_default, + $kombu_ssl_keyfile = $::os_service_default, + $kombu_ssl_version = $::os_service_default, + $kombu_reconnect_delay = $::os_service_default, + $kombu_compression = $::os_service_default, + $amqp_durable_queues = $::os_service_default, + $amqp_server_request_prefix = $::os_service_default, + $amqp_broadcast_prefix = $::os_service_default, + $amqp_group_request_prefix = $::os_service_default, + $amqp_container_name = $::os_service_default, + $amqp_idle_timeout = $::os_service_default, + $amqp_trace = $::os_service_default, + $amqp_ssl_ca_file = $::os_service_default, + $amqp_ssl_cert_file = $::os_service_default, + $amqp_ssl_key_file = $::os_service_default, + $amqp_ssl_key_password = $::os_service_default, + $amqp_allow_insecure_clients = $::os_service_default, + $amqp_sasl_mechanisms = $::os_service_default, + $amqp_sasl_config_dir = $::os_service_default, + $amqp_sasl_config_name = $::os_service_default, + $amqp_username = $::os_service_default, + $amqp_password = $::os_service_default, + $host = $::os_service_default, + $auth_strategy = 'keystone', + $service_down_time = 60, + $log_dir = undef, + $state_path = '/var/lib/nova', + $lock_path = $::nova::params::lock_path, + $debug = undef, + $periodic_interval = '60', + $report_interval = '10', + $rootwrap_config = '/etc/nova/rootwrap.conf', + $use_ssl = false, + $enabled_ssl_apis = ['metadata', 'osapi_compute'], + $ca_file = false, + $cert_file = false, + $key_file = false, + $nova_public_key = undef, + $nova_private_key = undef, + $use_syslog = undef, + $use_stderr = undef, + $log_facility = undef, + $notification_transport_url = $::os_service_default, + $notification_driver = $::os_service_default, + $notification_topics = $::os_service_default, + $notify_api_faults = false, + $notify_on_state_change = undef, + $os_region_name = undef, + $cinder_catalog_info = 'volumev2:cinderv2:publicURL', + $upgrade_level_cells = undef, + $upgrade_level_cert = undef, + $upgrade_level_compute = undef, + $upgrade_level_conductor = undef, + $upgrade_level_console = undef, + $upgrade_level_consoleauth = undef, + $upgrade_level_intercell = undef, + $upgrade_level_network = undef, + $upgrade_level_scheduler = undef, + $use_ipv6 = $::os_service_default, + $purge_config = false, # DEPRECATED PARAMETERS - $verbose = undef, + $verbose = undef, ) inherits nova::params { include ::nova::deps @@ -694,14 +705,16 @@ class nova( } nova_config { - 'cinder/catalog_info': value => $cinder_catalog_info; - 'DEFAULT/notify_api_faults': value => $notify_api_faults; + 'cinder/catalog_info': value => $cinder_catalog_info; + 'DEFAULT/notify_api_faults': value => $notify_api_faults; # Following may need to be broken out to different nova services - 'DEFAULT/state_path': value => $state_path; - 'DEFAULT/service_down_time': value => $service_down_time; - 'DEFAULT/rootwrap_config': value => $rootwrap_config; - 'DEFAULT/report_interval': value => $report_interval; - 'DEFAULT/use_ipv6': value => $use_ipv6; + 'DEFAULT/state_path': value => $state_path; + 'DEFAULT/service_down_time': value => $service_down_time; + 'DEFAULT/rootwrap_config': value => $rootwrap_config; + 'DEFAULT/report_interval': value => $report_interval; + 'DEFAULT/use_ipv6': value => $use_ipv6; + 'DEFAULT/block_device_allocate_retries': value => $block_device_allocate_retries; + 'DEFAULT/block_device_allocate_retries_interval': value => $block_device_allocate_retries_interval; } oslo::concurrency { 'nova_config': lock_path => $lock_path } diff --git a/spec/classes/nova_init_spec.rb b/spec/classes/nova_init_spec.rb index 0e988c101..44099e1fd 100644 --- a/spec/classes/nova_init_spec.rb +++ b/spec/classes/nova_init_spec.rb @@ -65,47 +65,54 @@ describe 'nova' do is_expected.to contain_nova_config('cinder/catalog_info').with('value' => 'volumev2:cinderv2:publicURL') end + it 'configures block_device_allocate params' do + is_expected.to contain_nova_config('DEFAULT/block_device_allocate_retries').with_value('') + is_expected.to contain_nova_config('DEFAULT/block_device_allocate_retries_interval').with_value('') + end end context 'with overridden parameters' do let :params do - { :debug => true, - :log_dir => '/var/log/nova2', - :image_service => 'nova.image.local.LocalImageService', - :default_transport_url => 'rabbit://rabbit_user:password@localhost:5673', - :rpc_response_timeout => '30', - :rpc_backend => 'rabbit', - :rabbit_host => 'rabbit', - :rabbit_userid => 'rabbit_user', - :rabbit_port => '5673', - :rabbit_password => 'password', - :rabbit_heartbeat_timeout_threshold => '60', - :rabbit_heartbeat_rate => '10', - :lock_path => '/var/locky/path', - :state_path => '/var/lib/nova2', - :service_down_time => '120', - :auth_strategy => 'foo', - :ensure_package => '2012.1.1-15.el6', - :memcached_servers => ['memcached01:11211', 'memcached02:11211'], - :host => 'test-001.example.org', - :notification_transport_url => 'rabbit://rabbit_user:password@localhost:5673', - :notification_driver => 'ceilometer.compute.nova_notifier', - :notification_topics => 'openstack', - :notify_api_faults => true, - :report_interval => '60', - :os_region_name => 'MyRegion', - :use_ipv6 => true, - :upgrade_level_cells => '1.0.0', - :upgrade_level_cert => '1.0.0', - :upgrade_level_compute => '1.0.0', - :upgrade_level_conductor => '1.0.0', - :upgrade_level_console => '1.0.0', - :upgrade_level_consoleauth => '1.0.0', - :upgrade_level_intercell => '1.0.0', - :upgrade_level_network => '1.0.0', - :upgrade_level_scheduler => '1.0.0', - :purge_config => false, } + { :debug => true, + :log_dir => '/var/log/nova2', + :image_service => 'nova.image.local.LocalImageService', + :default_transport_url => 'rabbit://rabbit_user:password@localhost:5673', + :rpc_response_timeout => '30', + :rpc_backend => 'rabbit', + :rabbit_host => 'rabbit', + :rabbit_userid => 'rabbit_user', + :rabbit_port => '5673', + :rabbit_password => 'password', + :rabbit_heartbeat_timeout_threshold => '60', + :rabbit_heartbeat_rate => '10', + :lock_path => '/var/locky/path', + :state_path => '/var/lib/nova2', + :service_down_time => '120', + :auth_strategy => 'foo', + :ensure_package => '2012.1.1-15.el6', + :memcached_servers => ['memcached01:11211', 'memcached02:11211'], + :host => 'test-001.example.org', + :notification_transport_url => 'rabbit://rabbit_user:password@localhost:5673', + :notification_driver => 'ceilometer.compute.nova_notifier', + :notification_topics => 'openstack', + :notify_api_faults => true, + :report_interval => '60', + :os_region_name => 'MyRegion', + :use_ipv6 => true, + :upgrade_level_cells => '1.0.0', + :upgrade_level_cert => '1.0.0', + :upgrade_level_compute => '1.0.0', + :upgrade_level_conductor => '1.0.0', + :upgrade_level_console => '1.0.0', + :upgrade_level_consoleauth => '1.0.0', + :upgrade_level_intercell => '1.0.0', + :upgrade_level_network => '1.0.0', + :upgrade_level_scheduler => '1.0.0', + :purge_config => false, + :block_device_allocate_retries => '60', + :block_device_allocate_retries_interval => '3', + } end it 'installs packages' do @@ -183,6 +190,10 @@ describe 'nova' do ) } end + it 'configures block_device_allocate params' do + is_expected.to contain_nova_config('DEFAULT/block_device_allocate_retries').with_value('60') + is_expected.to contain_nova_config('DEFAULT/block_device_allocate_retries_interval').with_value('3') + end end context 'with wrong notify_on_state_change parameter' do