From 2eebb5edc6c236252e2da1ab1a3e0120de160acd Mon Sep 17 00:00:00 2001 From: Pushkar Umaranikar Date: Wed, 22 Jun 2016 15:16:09 +0000 Subject: [PATCH] Improve help text for quota options This commit adds additional help text to the quota config options from "nova/conf/quota.py" Change-Id: I7e1986c5f11356060cc9db12605b1322c39e79c0 Implements: blueprint centralize-config-options-newton --- nova/conf/quota.py | 206 +++++++++++++++++++++++++++++++++++++++------ 1 file changed, 178 insertions(+), 28 deletions(-) diff --git a/nova/conf/quota.py b/nova/conf/quota.py index 904c17aba7e9..fccaddd5c565 100644 --- a/nova/conf/quota.py +++ b/nova/conf/quota.py @@ -26,70 +26,218 @@ from oslo_config import cfg quota_opts = [ cfg.IntOpt('quota_instances', + min=-1, default=10, - help='Number of instances allowed per project'), + help=""" +The number of instances allowed per project. + +Possible Values + + * 10 (default) or any positive integer. + * -1 : treated as unlimited. +"""), cfg.IntOpt('quota_cores', + min=-1, default=20, - help='Number of instance cores allowed per project'), + help=""" +The number of instance cores or VCPUs allowed per project. + +Possible values: + + * 20 (default) or any positive integer. + * -1 : treated as unlimited. +"""), cfg.IntOpt('quota_ram', + min=-1, default=50 * 1024, - help='Megabytes of instance RAM allowed per project'), + help=""" +The number of megabytes of instance RAM allowed per project. + +Possible values: + + * 51200 (default) or any positive integer. + * -1 : treated as unlimited. +"""), cfg.IntOpt('quota_floating_ips', + min=0, default=10, - help='Number of floating IPs allowed per project'), + help=""" +The number of floating IPs allowed per project. Floating IPs are not allocated +to instances by default. Users need to select them from the pool configured by +the OpenStack administrator to attach to their instances. + +Possible values: + + * 10 (default) or any positive integer. +"""), cfg.IntOpt('quota_fixed_ips', + min=-1, default=-1, - help='Number of fixed IPs allowed per project (this should be ' - 'at least the number of instances allowed)'), + help=""" +The number of fixed IPs allowed per project (this should be at least the number +of instances allowed). Unlike floating IPs, fixed IPs are allocated dynamically +by the network component when instances boot up. + +Possible values: + + * -1 (default) : treated as unlimited. + * Any positive integer. +"""), cfg.IntOpt('quota_metadata_items', + min=-1, default=128, - help='Number of metadata items allowed per instance'), + help=""" +The number of metadata items allowed per instance. User can associate metadata +while instance creation in the form of key-value pairs. + +Possible values: + + * 128 (default) or any positive integer. + * -1 : treated as unlimited. +"""), cfg.IntOpt('quota_injected_files', + min=0, default=5, - help='Number of injected files allowed'), + help=""" +The number of injected files allowed. It allow users to customize the +personality of an instance by injecting data into it upon boot. Only text +file injection is permitted. Binary or zip files won't work. During file +injection, any existing files that match specified files are renamed to include +.bak extension appended with a timestamp. + +Possible values: + + * 5 (default) or any positive integer. +"""), cfg.IntOpt('quota_injected_file_content_bytes', + min=0, default=10 * 1024, - help='Number of bytes allowed per injected file'), + help=""" +The number of bytes allowed per injected file. + +Possible values: + + * 10240 (default) or any positive integer representing number of bytes. +"""), cfg.IntOpt('quota_injected_file_path_length', default=255, - help='Length of injected file path'), + help=""" +The maximum allowed injected file path length. + +Possible values: + + * 255 (default) or any positive integer. +"""), cfg.IntOpt('quota_security_groups', + min=0, default=10, - help='Number of security groups per project'), + help=""" +The number of security groups per project. + +Possible values: + + * 10 (default) or any positive integer. +"""), cfg.IntOpt('quota_security_group_rules', + min=0, default=20, - help='Number of security rules per security group'), + help=""" +The number of security rules per security group. The associated rules in each +security group control the traffic to instances in the group. + +Possible values: + + * 20 (default) or any positive integer. +"""), cfg.IntOpt('quota_key_pairs', + min=0, default=100, - help='Number of key pairs per user'), + help=""" +The maximum number of key pairs allowed per user. Users can create at least one +key pair for each project and use the key pair for multiple instances that +belong to that project. + +Possible values: + + * 100 (default) or any positive integer. +"""), cfg.IntOpt('quota_server_groups', + min=-1, default=10, - help='Number of server groups per project'), + help=""" +Add quota values to constrain the number of server groups per project. Server +group used to control the affinity and anti-affinity scheduling policy for a +group of servers or instances. Reducing the quota will not affect any existing +group, but new servers will not be allowed into groups that have become over +quota. + +Possible values: + + * 10 (default) or any positive integer. + * -1 : treated as unlimited. +"""), cfg.IntOpt('quota_server_group_members', + min=-1, default=10, - help='Number of servers per server group'), + help=""" +Add quota values to constrain the number of servers per server group. + +Possible values: + + * 10 (default) or any positive integer. + * -1 : treated as unlimited. +"""), cfg.IntOpt('reservation_expire', default=86400, - help='Number of seconds until a reservation expires'), + help=""" +The number of seconds until a reservation expires. It represents the time +period for invalidating quota reservations. + +Possible values: + + * 86400 (default) or any positive integer representing number of seconds. +"""), cfg.IntOpt('until_refresh', + min=0, default=0, - help='Count of reservations until usage is refreshed. This ' - 'defaults to 0(off) to avoid additional load but it is ' - 'useful to turn on to help keep quota usage up to date ' - 'and reduce the impact of out of sync usage issues.'), + help=""" +The count of reservations until usage is refreshed. This defaults to 0 (off) to +avoid additional load but it is useful to turn on to help keep quota usage +up-to-date and reduce the impact of out of sync usage issues. + +Possible values: + + * 0 (default) or any positive integer. +"""), cfg.IntOpt('max_age', + min=0, default=0, - help='Number of seconds between subsequent usage refreshes. ' - 'This defaults to 0(off) to avoid additional load but it ' - 'is useful to turn on to help keep quota usage up to date ' - 'and reduce the impact of out of sync usage issues. ' - 'Note that quotas are not updated on a periodic task, ' - 'they will update on a new reservation if max_age has ' - 'passed since the last reservation'), + help=""" +The number of seconds between subsequent usage refreshes. This defaults to 0 +(off) to avoid additional load but it is useful to turn on to help keep quota +usage up-to-date and reduce the impact of out of sync usage issues. Note that +quotas are not updated on a periodic task, they will update on a new +reservation if max_age has passed since the last reservation. + +Possible values: + + * 0 (default) or any positive integer representing number of seconds. +"""), + +# TODO(pumaranikar): Add a new config to select between the db_driver and +# the no_op driver using stevedoor. cfg.StrOpt('quota_driver', default='nova.quota.DbQuotaDriver', deprecated_for_removal=True, - help='DEPRECATED: Default driver to use for quota checks'), + help=""" +Provides abstraction for quota checks. Users can configure a specific +driver to use for quota checks. + +Possible values: + + * nova.quota.DbQuotaDriver (default) or any string representing fully + qualified class name. +"""), ] @@ -97,5 +245,7 @@ def register_opts(conf): conf.register_opts(quota_opts) +# TODO(pumaranikar): We can consider moving these options to quota group +# and renaming them all to drop the quota bit. def list_opts(): return {'DEFAULT': quota_opts}