Description of problem: "Deprecated: Default quota for resource" is output when executing cinder quota-defaults admin in api.log 2016-12-30 05:42:34.756 30384 WARNING cinder.quota [req-223a20d0-cf69-4cec-86df-0039c4e562bb 5e1991ffc63a4c04855e012e2ea909b9 4784468a061e43d4a6dfa01298c5d12c - - -] Deprecated: Default quota for resource: backups is set by the default quota flag: quota_backups, it is now deprecated. Please use the default quota class for default quota. Version-Release number of selected component (if applicable): OSP8 deployed by Director 8 OSP8 deployed Packstack How reproducible: 100% Steps to Reproduce: 1. 2. 3. Actual results: We can see not all the quotas are in default class for example, "backups" quota. MariaDB [cinder]> select class_name,resource,hard_limit from quota_classes; +------------+-------------------+------------+ | class_name | resource | hard_limit | +------------+-------------------+------------+ | default | volumes | 10 | | default | snapshots | 10 | | default | gigabytes | 1000 | | default | consistencygroups | 10 | +------------+-------------------+------------+ For other deployment tool, all the quotas are added in default class. https://bugs.launchpad.net/cinder/+bug/1435807 Expected results: No deprecated messages should be output. Additional info:
Closing upstream (Invalid)
Sorry for reopening the bug. Would you please explain more about why you close the bug ? The upstream bug is not the solution for our product as they are using different deployment tool. Best Regards, Chen
Please triage for upcoming releases.
Hi, This issue can be 100% reproduced. backups and gigabytes_backups can not be added to database using cinder command line. Best Regards, Chen
With this change to the cinder client we can set the quota-class for backups/backup-gigabytes: # diff -u /usr/lib/python2.7/site-packages/cinderclient/v2/shell.py.org /usr/lib/python2.7/site-packages/cinderclient/v2/shell.py --- /usr/lib/python2.7/site-packages/cinderclient/v2/shell.py.org 2017-02-08 03:37:51.185121349 -0500 +++ /usr/lib/python2.7/site-packages/cinderclient/v2/shell.py 2017-02-08 03:38:51.847084920 -0500 @@ -1139,6 +1139,14 @@ metavar='<volume_type_name>', default=None, help='Volume type. Default=None.') +@utils.arg('--backups', + metavar='<backups>', + type=int, default=None, + help='The new "backups" quota value. Default=None.') +@utils.arg('--backup-gigabytes', + metavar='<backup_gigabytes>', + type=int, default=None, + help='The new "backup_gigabytes" quota value. Default=None.') @utils.service_type('volumev2') def do_quota_class_update(cs, args): """Updates quotas for a quota class.""" # mysql -u root cinder -e "select * from quota_classes;" +---------------------+---------------------+------------+---------+----+------------+----------------------+------------+ | created_at | updated_at | deleted_at | deleted | id | class_name | resource | hard_limit | +---------------------+---------------------+------------+---------+----+------------+----------------------+------------+ | 2016-11-17 05:11:28 | 2017-02-08 08:56:00 | NULL | 0 | 1 | default | volumes | -1 | | 2016-11-17 05:11:28 | 2017-02-08 08:55:52 | NULL | 0 | 2 | default | snapshots | -1 | | 2016-11-17 05:11:28 | 2017-02-08 08:56:07 | NULL | 0 | 3 | default | gigabytes | -1 | | 2016-11-17 05:11:29 | NULL | NULL | 0 | 4 | default | consistencygroups | 10 | | 2016-11-17 10:11:32 | NULL | NULL | 0 | 5 | default | per_volume_gigabytes | -1 | | 2017-02-08 08:36:06 | 2017-02-08 08:45:10 | NULL | 0 | 6 | default | backups | 20 | | 2017-02-08 08:46:00 | 2017-02-08 09:13:36 | NULL | 0 | 7 | default | backup_gigabytes | 1000 | +---------------------+---------------------+------------+---------+----+------------+----------------------+------------+
(In reply to Martin Schuppert from comment #5) This should be: - Change I1fceeb9f: Support Volume Backup Quota | review.openstack Code Review https://review.openstack.org/#/c/111730/ ~~~ Change 111730 - Merged Python-cinderclient support update volume backup quota. Cinder server side commit for this feature was: https://review.openstack.org/#/c/111460/ blueprint volume-backup-quota Change-Id: I1fceeb9fc0eb92370e249c46749a61e4b11420b0 ~~~
This bug is marked as invalid in Upstream because config options for quotas has been deprecated and without config option it's almost being difficult to add the missing values in DB. For more information please refer the below LP bugs, https://bugs.launchpad.net/cinder/+bug/1435807 https://bugs.launchpad.net/cinder/+bug/1465393
Hi Furuta san, Thank you for your help. If we can backport I1fceeb9f to OSP8 then we can use cinder quota-class-update to add backup_* quotas into the DB. But currently we can only add volumes, snapshots and gigabytes. Since you mentioned in OSP9 we got --backup interface, then shall we open another bug to backport this to OSP8 ? Besides, I'm not sure whether there would be any side effect if we turn off use_default_quota_class. So if use_default_quota_class=false, the quota values will be read from config file instead of DB am I right ? Best Regards, Chen
Hi Furuta san, As per my understanding, there should not be any negative side effects if we disable the use_default_quota_class because the quota_classes values in DB are also getting set on the basis of default values set in the config file[1]. [1]: https://github.com/openstack/cinder/blob/38aae0602b124742095044e34c7c9c61df361fab/cinder/db/sqlalchemy/migrate_repo/versions/073_cinder_init.py#L571 And if use_default_quota_class=false, same default values from the config file are getting used and if those are not correct the admin can update the desired values in the config file or update the missing entries in the quota_classes table(using mysql command) by keeping use_default_quota_class=true. Actually, there was only solution [2] by adding the missing rows in the quota_classes table in DB but it also needs config options to set the quota values which was rejected in upstream. [2]: https://review.openstack.org/#/c/174941/4