Refactor nova quota usage

Remove deprecated options and introduce new quota options.

Right now we use some deprecated parameters from onva module:
quota_volumes, quota_gigabytes and have no ability to use new options,
like: quota_ram, quota_fixed_ips, quota_security_group_rules,
quota_server_groups, quota_server_group_members.

This patch switches to usage of new parameters.

Change-Id: Id3c6aaafaf98836091974db9060ac628837c1e22
Closes-Bug: #1519722
This commit is contained in:
Alexey Deryugin 2016-03-23 16:23:47 +03:00 committed by Alex Schultz
parent 96da5b4a1e
commit 3560151909
2 changed files with 51 additions and 42 deletions

View File

@ -219,18 +219,24 @@ class openstack_tasks::openstack_controller::openstack_controller {
}
class { '::nova::quota':
quota_instances => pick($nova_hash['quota_instances'], 100),
quota_cores => pick($nova_hash['quota_cores'], 100),
quota_volumes => pick($nova_hash['quota_volumes'], 100),
quota_gigabytes => pick($nova_hash['quota_gigabytes'], 1000),
quota_floating_ips => pick($nova_hash['quota_floating_ips'], 100),
quota_metadata_items => pick($nova_hash['quota_metadata_items'], 1024),
quota_max_injected_files => pick($nova_hash['quota_max_injected_files'], 50),
quota_max_injected_file_content_bytes => pick($nova_hash['quota_max_injected_file_content_bytes'], 102400),
quota_injected_file_path_length => pick($nova_hash['quota_injected_file_path_length'], 4096),
quota_security_groups => pick($nova_hash['quota_security_groups'], 10),
quota_key_pairs => pick($nova_hash['quota_key_pairs'], 10),
quota_driver => $nova_quota_driver
quota_instances => pick($nova_hash['quota_instances'], 100),
quota_cores => pick($nova_hash['quota_cores'], 100),
quota_ram => pick($nova_hash['quota_ram'], 51200),
quota_floating_ips => pick($nova_hash['quota_floating_ips'], 100),
quota_fixed_ips => pick($nova_hash['quota_fixed_ips'], -1),
quota_metadata_items => pick($nova_hash['quota_metadata_items'], 1024),
quota_injected_files => pick($nova_hash['quota_injected_files'], 50),
quota_injected_file_content_bytes => pick($nova_hash['quota_injected_file_content_bytes'], 102400),
quota_injected_file_path_length => pick($nova_hash['quota_injected_file_path_length'], 4096),
quota_security_groups => pick($nova_hash['quota_security_groups'], 10),
quota_security_group_rules => pick($nova_hash['quota_security_group_rules'], 20),
quota_key_pairs => pick($nova_hash['quota_key_pairs'], 10),
quota_server_groups => pick($nova_hash['quota_server_groups'], 10),
quota_server_group_members => pick($nova_hash['quota_server_group_members'], 10),
reservation_expire => pick($nova_hash['reservation_expire'], 86400),
until_refresh => pick($nova_hash['until_refresh'], 0),
max_age => pick($nova_hash['max_age'], 0),
quota_driver => $nova_quota_driver
}
$default_limits = {

View File

@ -95,14 +95,6 @@ describe manifest do
Noop.hiera_hash('use_ssl', {}), {}, 'nova', 'internal', 'hostname',
[nova_endpoint]
let(:nova_quota_driver) do
if Noop.hiera 'nova_quota'
'nova.quota.DbQuotaDriver'
else
'nova.quota.NoopQuotaDriver'
end
end
let(:auto_assign_floating_ip) { Noop.hiera 'auto_assign_floating_ip', false }
let(:amqp_hosts) { Noop.hiera 'amqp_hosts', '' }
let(:rabbit_hash) { Noop.hiera_hash 'rabbit', {} }
@ -128,6 +120,8 @@ describe manifest do
end
end
let(:nova_quota) { Noop.hiera 'nova_quota', false }
let(:glance_protocol) { Noop.puppet_function 'get_ssl_property',ssl_hash,{},'glance','internal','protocol','http' }
let(:glance_endpoint) { Noop.puppet_function 'get_ssl_property',ssl_hash,{},'glance','internal','hostname',[Noop.hiera('glance_endpoint', ''), management_vip] }
let(:glance_ssl) { Noop.puppet_function 'get_ssl_property',ssl_hash,{},'glance','internal','usage',false }
@ -246,23 +240,6 @@ describe manifest do
)
end
it 'should configure nova::quota with correct options' do
should contain_class('nova::quota').with(
:quota_instances => Noop.puppet_function('pick', nova_hash['quota_instances'], 100),
:quota_cores => Noop.puppet_function('pick', nova_hash['quota_cores'], 100),
:quota_volumes => Noop.puppet_function('pick', nova_hash['quota_volumes'], 100),
:quota_gigabytes => Noop.puppet_function('pick', nova_hash['quota_gigabytes'], 1000),
:quota_floating_ips => Noop.puppet_function('pick', nova_hash['quota_floating_ips'], 100),
:quota_metadata_items => Noop.puppet_function('pick', nova_hash['quota_metadata_items'], 1024),
:quota_max_injected_files => Noop.puppet_function('pick', nova_hash['quota_max_injected_files'], 50),
:quota_max_injected_file_content_bytes => Noop.puppet_function('pick', nova_hash['quota_max_injected_file_content_bytes'], 102400),
:quota_injected_file_path_length => Noop.puppet_function('pick', nova_hash['quota_injected_file_path_length'], 4096),
:quota_security_groups => Noop.puppet_function('pick', nova_hash['quota_security_groups'], 10),
:quota_key_pairs => Noop.puppet_function('pick', nova_hash['quota_key_pairs'], 10),
:quota_driver => nova_quota_driver
)
end
it 'should configure nova::api' do
# FIXME(aschultz): check rate limits
should contain_class('nova::api').with(
@ -353,11 +330,37 @@ describe manifest do
)
end
it 'should configure nova quota for injected file path length' do
should contain_class('nova::quota').with('quota_injected_file_path_length' => '4096')
should contain_nova_config('DEFAULT/quota_injected_file_path_length').with(
'value' => '4096',
)
it 'should configure nova quota if required' do
if nova_quota
should contain_class('nova::quota').with('quota_driver' => 'nova.quota.DbQuotaDriver')
{
:quota_instances => Noop.puppet_function('pick', nova_hash['quota_instances'], 100),
:quota_cores => Noop.puppet_function('pick', nova_hash['quota_cores'], 100),
:quota_ram => Noop.puppet_function('pick', nova_hash['quota_ram'], 51200),
:quota_floating_ips => Noop.puppet_function('pick', nova_hash['quota_floating_ips'], 100),
:quota_fixed_ips => Noop.puppet_function('pick', nova_hash['quota_fixed_ips'], -1),
:quota_metadata_items => Noop.puppet_function('pick', nova_hash['quota_metadata_items'], 1024),
:quota_injected_files => Noop.puppet_function('pick', nova_hash['quota_injected_files'], 50),
:quota_injected_file_content_bytes => Noop.puppet_function('pick', nova_hash['quota_injected_file_content_bytes'], 102400),
:quota_injected_file_path_length => Noop.puppet_function('pick', nova_hash['quota_injected_file_path_length'], 4096),
:quota_security_groups => Noop.puppet_function('pick', nova_hash['quota_security_groups'], 10),
:quota_security_group_rules => Noop.puppet_function('pick', nova_hash['quota_security_group_rules'], 20),
:quota_key_pairs => Noop.puppet_function('pick', nova_hash['quota_key_pairs'], 10),
:quota_server_groups => Noop.puppet_function('pick', nova_hash['quota_server_groups'], 10),
:quota_server_group_members => Noop.puppet_function('pick', nova_hash['quota_server_group_members'], 10),
:reservation_expire => Noop.puppet_function('pick', nova_hash['reservation_expire'], 86400),
:until_refresh => Noop.puppet_function('pick', nova_hash['until_refresh'], 0),
:max_age => Noop.puppet_function('pick', nova_hash['max_age'], 0),
}.each_pair do |config, value|
should contain_class('nova::quota').with(config => value)
should contain_nova_config("DEFAULT/#{config}").with(
'value' => value,
)
end
else
should contain_class('nova::quota').with('quota_driver' => 'nova.quota.NoopQuotaDriver')
end
end
it 'nova config should be modified by override_resources' do