)]}'
{"doc/source/command-objects/quota.rst":[{"author":{"_account_id":21514,"name":"Huanxuan Ao","email":"aohuanxuan@163.com","username":"aohuanxuan"},"change_message_id":"f5cf8af64f6c708dccb5f39964ce62739120aeae","unresolved":false,"context_lines":[{"line_number":5,"context_line":"Resource quotas appear in multiple APIs, OpenStackClient presents them as a"},{"line_number":6,"context_line":"single object with multiple properties."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Block Storage v1/v2, Compute v2, Network v2"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"quota set"},{"line_number":11,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9ad45d7e_a1cbd21d","line":8,"range":{"start_line":8,"start_character":14,"end_line":8,"end_character":19},"updated":"2016-08-08 11:00:51.000000000","message":"I saw this in other place is \"v1, v2\"","commit_id":"43a3fed6f96b50aee34f5c3e1391b7bc4ec3f280"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"e02014df9466dfcfbbf8120812236e346c7508da","unresolved":false,"context_lines":[{"line_number":5,"context_line":"Resource quotas appear in multiple APIs, OpenStackClient presents them as a"},{"line_number":6,"context_line":"single object with multiple properties."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Block Storage v1/v2, Compute v2, Network v2"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"quota set"},{"line_number":11,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9ad45d7e_23686ef5","line":8,"range":{"start_line":8,"start_character":14,"end_line":8,"end_character":19},"in_reply_to":"9ad45d7e_a1cbd21d","updated":"2016-08-08 18:52:11.000000000","message":"++","commit_id":"43a3fed6f96b50aee34f5c3e1391b7bc4ec3f280"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"926cd34fea41bc8b6a906678fb20c9ad039d8972","unresolved":false,"context_lines":[{"line_number":5,"context_line":"Resource quotas appear in multiple APIs, OpenStackClient presents them as a"},{"line_number":6,"context_line":"single object with multiple properties."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Block Storage v1/v2, Compute v2, Network v2"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"quota set"},{"line_number":11,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9ad45d7e_28ae6c85","line":8,"range":{"start_line":8,"start_character":14,"end_line":8,"end_character":19},"in_reply_to":"9ad45d7e_a1cbd21d","updated":"2016-08-09 08:58:27.000000000","message":"Done\n\nthank you","commit_id":"43a3fed6f96b50aee34f5c3e1391b7bc4ec3f280"}],"openstackclient/common/quota.py":[{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"6034e8b0618876d56c8f45af1b5dbb0f981a5e6e","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    \u0027volumes\u0027: \u0027volumes\u0027,"},{"line_number":52,"context_line":"}"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"IMPACT_VOLUME_TYPE_QUOTAS \u003d ["},{"line_number":55,"context_line":"    \u0027gigabytes\u0027,"},{"line_number":56,"context_line":"    \u0027snapshots\u0027,"},{"line_number":57,"context_line":"    \u0027volumes\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_deb033e0","line":54,"range":{"start_line":54,"start_character":0,"end_line":54,"end_character":25},"updated":"2016-08-09 04:08:54.000000000","message":"I\u0027m a little confused here. What does \u0027type\u0027 mean here exactly ?  See from the words, if \u0027volumes\u0027 and \u0027snapshots\u0027 are types, then why is \u0027gigabytes\u0027 a type ?\n\nSorry I don\u0027t quite familiar with the quota. Please correct me if I\u0027m wrong. :)","commit_id":"43a3fed6f96b50aee34f5c3e1391b7bc4ec3f280"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"926cd34fea41bc8b6a906678fb20c9ad039d8972","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    \u0027volumes\u0027: \u0027volumes\u0027,"},{"line_number":52,"context_line":"}"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"IMPACT_VOLUME_TYPE_QUOTAS \u003d ["},{"line_number":55,"context_line":"    \u0027gigabytes\u0027,"},{"line_number":56,"context_line":"    \u0027snapshots\u0027,"},{"line_number":57,"context_line":"    \u0027volumes\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_cd09a233","line":54,"range":{"start_line":54,"start_character":0,"end_line":54,"end_character":25},"in_reply_to":"9ad45d7e_deb033e0","updated":"2016-08-09 08:58:27.000000000","message":"\"--volume-type\" option would impact \"gigabytes\", \"snapshot\" and \"volumes\" quota. If \"--volume-type\" and \"--gigabytes\" options are specified both, the \"gigabytes\" quota is set for the specified volume type backend.\n\ncinder support to set volume_type scope quota, looks like: \"gigabytes_volume_type_name\", \"gigabytes\", \"snapshot\" and \"volumes\" quota can be set in volume_type scope, \"backups\", \"backup_gigabytes\" and \"per_volume_gigabytes\" don\u0027t support, so I split them to 2 groups.","commit_id":"43a3fed6f96b50aee34f5c3e1391b7bc4ec3f280"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"52f6d8319ab63e82c742ea2ac0b19927a1ae2981","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            value \u003d getattr(parsed_args, k, None)"},{"line_number":139,"context_line":"            if value is not None:"},{"line_number":140,"context_line":"                if (parsed_args.volume_type and"},{"line_number":141,"context_line":"                        k in IMPACT_VOLUME_TYPE_QUOTAS):"},{"line_number":142,"context_line":"                    k \u003d k + \u0027_%s\u0027 % parsed_args.volume_type"},{"line_number":143,"context_line":"                volume_kwargs[k] \u003d value"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_9ea9897e","line":141,"updated":"2016-08-09 11:26:16.000000000","message":"How is this related to the new quotas?","commit_id":"5edd91d594305503241de7e186d9455f23ae2161"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"2ca36e59fb5510468b2ec9d89bf460440e2828e2","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            value \u003d getattr(parsed_args, k, None)"},{"line_number":139,"context_line":"            if value is not None:"},{"line_number":140,"context_line":"                if (parsed_args.volume_type and"},{"line_number":141,"context_line":"                        k in IMPACT_VOLUME_TYPE_QUOTAS):"},{"line_number":142,"context_line":"                    k \u003d k + \u0027_%s\u0027 % parsed_args.volume_type"},{"line_number":143,"context_line":"                volume_kwargs[k] \u003d value"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_be85e8cf","line":141,"in_reply_to":"9ad45d7e_3412d009","updated":"2016-08-11 12:59:24.000000000","message":"Okay, I think I understand now.  So if the new quotas are specified with --volume-type option, what will happen?","commit_id":"5edd91d594305503241de7e186d9455f23ae2161"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"8ef0b81df88ee1ea471866884222626e8c86fd79","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            value \u003d getattr(parsed_args, k, None)"},{"line_number":139,"context_line":"            if value is not None:"},{"line_number":140,"context_line":"                if (parsed_args.volume_type and"},{"line_number":141,"context_line":"                        k in IMPACT_VOLUME_TYPE_QUOTAS):"},{"line_number":142,"context_line":"                    k \u003d k + \u0027_%s\u0027 % parsed_args.volume_type"},{"line_number":143,"context_line":"                volume_kwargs[k] \u003d value"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_3412d009","line":141,"in_reply_to":"9ad45d7e_9ea9897e","updated":"2016-08-11 06:44:44.000000000","message":"No, the three new quotas \"backups\", \"backup_gigabytes\" and \"per_volume_gigabytes\" can\u0027t be set for specified volume type in current cinder service, it only impact \"gigabytes\", \"snapshots\" and \"volumes\" quotas, two types of quota exist in cinder:\n\nGlobal scope quota:\n\n1. gigabytes\n2. volumes\n3. snapshots\n4. per_volume_gigabytes\n5. backups\n6. backup_gigabytes\n\nVolume type scope quota:\n\n1. gigabytes_for_volume_type_1\n2. volumes_for_volume_type_1\n3. snapshots_for_volume_type_1\n\nSo we need the option \"--volume-type xxx\" to set the above three quotas for specified volume type.","commit_id":"5edd91d594305503241de7e186d9455f23ae2161"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"7bba644460121c23f85affc0008c09377dd355ef","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            value \u003d getattr(parsed_args, k, None)"},{"line_number":139,"context_line":"            if value is not None:"},{"line_number":140,"context_line":"                if (parsed_args.volume_type and"},{"line_number":141,"context_line":"                        k in IMPACT_VOLUME_TYPE_QUOTAS):"},{"line_number":142,"context_line":"                    k \u003d k + \u0027_%s\u0027 % parsed_args.volume_type"},{"line_number":143,"context_line":"                volume_kwargs[k] \u003d value"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_5352be67","line":141,"in_reply_to":"9ad45d7e_be85e8cf","updated":"2016-08-12 06:43:39.000000000","message":"I got your point, --volume-type option don\u0027t affect the new three quotas, like this:\n\n\"--backups 2 --volume-type lvm\" equals \"--backups 2\"\n\nThat\u0027s same with current \"quota set\" behavior.\n\n\"--instances 2 --volume-type lvm\" equals \"--instances 2\"\n\nI think I can add some describe about \"--volume-type\" option in \"quota set\" command document.\n\n    .. option:: --volume-type \u003cvolume-type\u003e\n\n        Set quotas for a specific \u003cvolume-type\u003e. The support quotas are: gigabytes, volumes, snapshots.","commit_id":"5edd91d594305503241de7e186d9455f23ae2161"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"711cc2ea6b33932370bcb8c459707bb92e48e37b","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            value \u003d getattr(parsed_args, k, None)"},{"line_number":139,"context_line":"            if value is not None:"},{"line_number":140,"context_line":"                if (parsed_args.volume_type and"},{"line_number":141,"context_line":"                        k in IMPACT_VOLUME_TYPE_QUOTAS):"},{"line_number":142,"context_line":"                    k \u003d k + \u0027_%s\u0027 % parsed_args.volume_type"},{"line_number":143,"context_line":"                volume_kwargs[k] \u003d value"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_fd7d47b2","line":141,"updated":"2016-08-19 09:18:34.000000000","message":"If k is not impacting the volume type then shouldn\u0027t this fail.  When the user specifies --volume-type, I think that the expectation is for the quotas to be set for that volume type.","commit_id":"5e6d00958e871e2327e8f9f2ba2075a3f6f8796e"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"5db9768f5c234abb4c0ac00a0e115f5021cdbdb3","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            value \u003d getattr(parsed_args, k, None)"},{"line_number":139,"context_line":"            if value is not None:"},{"line_number":140,"context_line":"                if (parsed_args.volume_type and"},{"line_number":141,"context_line":"                        k in IMPACT_VOLUME_TYPE_QUOTAS):"},{"line_number":142,"context_line":"                    k \u003d k + \u0027_%s\u0027 % parsed_args.volume_type"},{"line_number":143,"context_line":"                volume_kwargs[k] \u003d value"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ac06dbe_fa123608","line":141,"in_reply_to":"1ac06dbe_e98131fd","updated":"2016-08-22 09:29:51.000000000","message":"I prefer to consider three new volume quota to be same with other compute and network quota, like: core, ram and instance, think about following case:\n\n    openstack quota set --core 20 --volume 20 --volume-type lvm-type\n\n\"core\" and \"volume_lvm-type\" quota would be updated and no exception would be raised. If we try to raise exception when three new volume quota \"backups\", \"backup_gigabytes\", \"pre_volume_gigabytes\" are specified with \"--volume-type\", the following case is difficult to handle:\n\n    openstack quota set --backup 20 --volume 20 --volume-type lvm-type\n\nI think we shouldn\u0027t raise exception in the case, because \"backup\" and \"volume_lvm-type\" quota can be updated normally.","commit_id":"5e6d00958e871e2327e8f9f2ba2075a3f6f8796e"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"6912c6ce8a21e4059f2fa7e9c199bd7958166351","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            value \u003d getattr(parsed_args, k, None)"},{"line_number":139,"context_line":"            if value is not None:"},{"line_number":140,"context_line":"                if (parsed_args.volume_type and"},{"line_number":141,"context_line":"                        k in IMPACT_VOLUME_TYPE_QUOTAS):"},{"line_number":142,"context_line":"                    k \u003d k + \u0027_%s\u0027 % parsed_args.volume_type"},{"line_number":143,"context_line":"                volume_kwargs[k] \u003d value"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ac06dbe_16aa1819","line":141,"in_reply_to":"1ac06dbe_fa123608","updated":"2016-08-23 19:20:59.000000000","message":"That\u0027s a good point.  I am fine with this.","commit_id":"5e6d00958e871e2327e8f9f2ba2075a3f6f8796e"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"14c218ee117a89bac10f104a86a116cad7f72ecb","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            value \u003d getattr(parsed_args, k, None)"},{"line_number":139,"context_line":"            if value is not None:"},{"line_number":140,"context_line":"                if (parsed_args.volume_type and"},{"line_number":141,"context_line":"                        k in IMPACT_VOLUME_TYPE_QUOTAS):"},{"line_number":142,"context_line":"                    k \u003d k + \u0027_%s\u0027 % parsed_args.volume_type"},{"line_number":143,"context_line":"                volume_kwargs[k] \u003d value"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ac06dbe_e98131fd","line":141,"in_reply_to":"3ac371cc_12d76d24","updated":"2016-08-19 10:42:35.000000000","message":"Sorry, I wasn\u0027t clear in my comment.  I think this should fail since it doesn\u0027t set volume type quota.","commit_id":"5e6d00958e871e2327e8f9f2ba2075a3f6f8796e"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"8ac0a260cbb6fdcf730c50226a97d12e9fce3711","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            value \u003d getattr(parsed_args, k, None)"},{"line_number":139,"context_line":"            if value is not None:"},{"line_number":140,"context_line":"                if (parsed_args.volume_type and"},{"line_number":141,"context_line":"                        k in IMPACT_VOLUME_TYPE_QUOTAS):"},{"line_number":142,"context_line":"                    k \u003d k + \u0027_%s\u0027 % parsed_args.volume_type"},{"line_number":143,"context_line":"                volume_kwargs[k] \u003d value"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_12d76d24","line":141,"in_reply_to":"3ac371cc_fd7d47b2","updated":"2016-08-19 09:40:54.000000000","message":"Yes, if user input the following command, it wouldn\u0027t fail and \"backups\" quota would be updated. Unit test \"test_quota_set_volume_with_volume_type\" cover this case.\n\n    openstack quota set --backups 5 --volume-type lvm-type","commit_id":"5e6d00958e871e2327e8f9f2ba2075a3f6f8796e"}]}
