puppet-nova/manifests/quota.pp

187 lines
6.1 KiB
Puppet

# == Class: nova::quota
#
# Class for overriding the default quota settings.
#
# === Parameters:
#
# [*quota_instances*]
# (optional) Number of instances
# Defaults to 10
#
# [*quota_cores*]
# (optional) Number of cores
# Defaults to 20
#
# [*quota_ram*]
# (optional) Ram in MB
# Defaults to 51200
#
# [*quota_volumes*]
# (optional) Deprecated. This parameter does nothing and will be removed.
# Defaults to undef
#
# [*quota_gigabytes*]
# (optional) Deprecated. This parameter does nothing and will be removed.
# Defaults to undef
#
# [*quota_floating_ips*]
# (optional) Number of floating IPs
# Defaults to 10
#
# [*quota_fixed_ips*]
# (optional) Number of fixed IPs (this should be at least the number of instances allowed)
# Defaults to -1
#
# [*quota_metadata_items*]
# (optional) Number of metadata items per instance
# Defaults to 128
#
# [*quota_max_injected_files*]
# (optional) Deprecated. Use quota_injected_files instead
# Defaults to undef
#
# [*quota_max_injected_file_content_bytes*]
# (optional) Deprecated. Use quota_injected_file_content_bytes instead
# Defaults to undef
#
# [*quota_max_injected_file_path_bytes*]
# (optional) Deprecated. Use quota_injected_file_path_bytes instead
# Defaults to undef
#
# [*quota_injected_files*]
# (optional) Number of files that can be injected per instance
# Defaults to 5
#
# [*quota_injected_file_content_bytes*]
# (optional) Maximum size in bytes of injected files
# Defaults to 10240
#
# [*quota_injected_file_path_bytes*]
# (optional) Deprecated. Use quota_injected_file_path_length instead
# Defaults to undef
#
# [*quota_injected_file_path_length*]
# (optional) Maximum size in bytes of injected file path
# Defaults to 255
#
# [*quota_security_groups*]
# (optional) Number of security groups
# Defaults to 10
#
# [*quota_security_group_rules*]
# (optional) Number of security group rules
# Defaults to 20
#
# [*quota_key_pairs*]
# (optional) Number of key pairs
# Defaults to 100
#
# [*quota_server_groups*]
# (optional) Number of server groups per project
# Defaults to 10
#
# [*quota_server_group_members*]
# (optional) Number of servers per server group
# Defaults to 10
#
# [*reservation_expire*]
# (optional) Time until reservations expire in seconds
# Defaults to 86400
#
# [*until_refresh*]
# (optional) Count of reservations until usage is refreshed
# Defaults to 0
#
# [*max_age*]
# (optional) Number of seconds between subsequent usage refreshes
# Defaults to 0
#
# [*quota_driver*]
# (optional) Driver to use for quota checks
# Defaults to 'nova.quota.DbQuotaDriver'
#
class nova::quota(
$quota_instances = 10,
$quota_cores = 20,
$quota_ram = 51200,
$quota_floating_ips = 10,
$quota_fixed_ips = -1,
$quota_metadata_items = 128,
$quota_injected_files = 5,
$quota_injected_file_content_bytes = 10240,
$quota_injected_file_path_length = 255,
$quota_security_groups = 10,
$quota_security_group_rules = 20,
$quota_key_pairs = 100,
$quota_server_groups = 10,
$quota_server_group_members = 10,
$reservation_expire = 86400,
$until_refresh = 0,
$max_age = 0,
$quota_driver = 'nova.quota.DbQuotaDriver',
# DEPRECATED PARAMETERS
$quota_volumes = undef,
$quota_gigabytes = undef,
$quota_max_injected_files = undef,
$quota_injected_file_path_bytes = undef,
$quota_max_injected_file_content_bytes = undef,
$quota_max_injected_file_path_bytes = undef
) {
include ::nova::deps
if $quota_volumes {
warning('The quota_volumes parameter is deprecated and has no effect.')
}
if $quota_gigabytes {
warning('The quota_gigabytes parameter is deprecated and has no effect.')
}
if $quota_max_injected_files {
warning('The quota_max_injected_files parameter is deprecated, use quota_injected_files instead.')
$quota_injected_files_real = $quota_max_injected_files
} else {
$quota_injected_files_real = $quota_injected_files
}
if $quota_max_injected_file_content_bytes {
warning('The quota_max_injected_file_content_bytes is deprecated, use quota_injected_file_content_bytes instead.')
$quota_injected_file_content_bytes_real = $quota_max_injected_file_content_bytes
} else {
$quota_injected_file_content_bytes_real = $quota_injected_file_content_bytes
}
if $quota_max_injected_file_path_bytes {
fail('The quota_max_injected_file_path_bytes parameter is deprecated, use quota_injected_file_path_length instead.')
}
if $quota_injected_file_path_bytes {
warning('The quota_injected_file_path_bytes parameter is deprecated, use quota_injected_file_path_length instead.')
$quota_injected_file_path_length_real = $quota_injected_file_path_bytes
} else {
$quota_injected_file_path_length_real = $quota_injected_file_path_length
}
nova_config {
'DEFAULT/quota_instances': value => $quota_instances;
'DEFAULT/quota_cores': value => $quota_cores;
'DEFAULT/quota_ram': value => $quota_ram;
'DEFAULT/quota_floating_ips': value => $quota_floating_ips;
'DEFAULT/quota_fixed_ips': value => $quota_fixed_ips;
'DEFAULT/quota_metadata_items': value => $quota_metadata_items;
'DEFAULT/quota_injected_files': value => $quota_injected_files_real;
'DEFAULT/quota_injected_file_content_bytes': value => $quota_injected_file_content_bytes_real;
'DEFAULT/quota_injected_file_path_length': value => $quota_injected_file_path_length_real;
'DEFAULT/quota_security_groups': value => $quota_security_groups;
'DEFAULT/quota_security_group_rules': value => $quota_security_group_rules;
'DEFAULT/quota_key_pairs': value => $quota_key_pairs;
'DEFAULT/quota_server_groups': value => $quota_server_groups;
'DEFAULT/quota_server_group_members': value => $quota_server_group_members;
'DEFAULT/reservation_expire': value => $reservation_expire;
'DEFAULT/until_refresh': value => $until_refresh;
'DEFAULT/max_age': value => $max_age;
'DEFAULT/quota_driver': value => $quota_driver
}
}