we had our original volume-type. when we grew enough to add more tiers of storage we created a new type and deleted the old types. we did not remove the old tier of storage, just renamed the type it was specified as. cinder quota keeps these old references even though the volumes were giving a new type. so our guota for gigabytes is accurate, but we have mismatched numbers.
example
+------------------------+--------+----------+-------+
| Type | In_use | Reserved | Limit |
+------------------------+--------+----------+-------+
| gigabytes | 15 | 0 | 1001 |
| gigabytes_Standard-HDD | 13 | 0 | 1000 |
| snapshots | 0 | 0 | 10 |
| snapshots_Standard-HDD | 0 | 0 | 10 |
| volumes | 6 | 0 | 10 |
| volumes_Standard-HDD | 4 | 0 | 10 |
+------------------------+--------+----------+-------+
so I have 2 1GB volumes under that existed prior to the volume type change. the volumes themselves are all of type Standard-HDD, just 2 had their DB records updated to Standard-HDD from "block"
from the db
+---------------------+---------------------+---------------------+---------+-------+----------------------------------+------------------------+--------+----------+---------------+
| created_at | updated_at | deleted_at | deleted | id | project_id | resource | in_use | reserved | until_refresh |
+---------------------+---------------------+---------------------+---------+-------+----------------------------------+------------------------+--------+----------+---------------+
| 2015-05-11 17:39:26 | 2015-07-09 01:03:55 | 2015-07-08 19:26:30 | 0 | 20827 | 695263484ddf44939a972106d8bb6edc | gigabytes | 15 | 0 | NULL |
| 2015-05-11 17:39:26 | 2015-07-08 19:26:30 | 2015-07-08 19:26:30 | 0 | 20830 | 695263484ddf44939a972106d8bb6edc | gigabytes_block | 1 | 0 | 0 |
| 2015-05-11 17:39:26 | 2015-07-08 19:26:30 | 2015-07-08 19:26:30 | 0 | 20833 | 695263484ddf44939a972106d8bb6edc | volumes_block | 1 | 0 | 0 |
| 2015-05-11 17:39:27 | 2015-07-09 01:03:55 | 2015-07-08 19:26:30 | 0 | 20836 | 695263484ddf44939a972106d8bb6edc | volumes | 6 | 0 | NULL |
| 2015-05-11 17:39:43 | 2015-07-08 19:26:30 | 2015-07-08 19:26:30 | 0 | 20839 | 695263484ddf44939a972106d8bb6edc | volumes_ceph | 1 | 0 | 0 |
| 2015-05-11 17:39:43 | 2015-07-08 19:26:30 | 2015-07-08 19:26:30 | 0 | 20842 | 695263484ddf44939a972106d8bb6edc | gigabytes_ceph | 1 | 0 | 0 |
| 2015-05-11 18:46:53 | 2015-07-09 01:03:55 | 2015-07-08 19:26:30 | 0 | 20845 | 695263484ddf44939a972106d8bb6edc | volumes_Standard-HDD | 4 | 0 | NULL |
| 2015-05-11 18:46:53 | 2015-07-09 01:03:55 | 2015-07-08 19:26:30 | 0 | 20848 | 695263484ddf44939a972106d8bb6edc | gigabytes_Standard-HDD | 13 | 0 | NULL |
| 2015-06-09 12:55:53 | 2015-07-08 19:26:30 | 2015-07-08 19:26:30 | 0 | 25846 | 695263484ddf44939a972106d8bb6edc | snapshots_Standard-HDD | 0 | 0 | NULL |
| 2015-06-09 12:55:53 | 2015-07-08 19:26:30 | 2015-07-08 19:26:30 | 0 | 25849 | 695263484ddf44939a972106d8bb6edc | snapshots | 0 | 0 | NULL |
+---------------------+---------------------+---------------------+---------+-------+----------------------------------+------------------------+--------+----------+---------------+
so basically either we need a way to update the quota-usage properly, or have a method to do a type-modify
While this may be viewed as an enhancement it is a real big operator issue.