)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8881704ba54f1840256a1e89da7b6cbcb40b8ffc","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Almost all proxy APIs were deprecated in microversion 2.36."},{"line_number":10,"context_line":"But the sub-resource image-metadata of image was forgotten to deprecate."},{"line_number":11,"context_line":"This patch deprecats the image-metdata API from 2.39."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"APIImpact"},{"line_number":14,"context_line":"Implements blueprint deprecate-image-meta-proxy-api"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a71b18c_096fe4c5","line":11,"range":{"start_line":11,"start_character":11,"end_line":11,"end_character":20},"updated":"2016-12-02 16:17:29.000000000","message":"deprecates","commit_id":"7bcdecb6ae7cfc29a64fa4f1b7153237952f8fc3"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"259680f00a83a3b29e304674f92e6ec6f59c31c2","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Almost all proxy APIs were deprecated in microversion 2.36."},{"line_number":10,"context_line":"But the sub-resource image-metadata of image was forgotten to deprecate."},{"line_number":11,"context_line":"This patch deprecats the image-metdata API from 2.39."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"APIImpact"},{"line_number":14,"context_line":"Implements blueprint deprecate-image-meta-proxy-api"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a71b18c_fb2175b5","line":11,"range":{"start_line":11,"start_character":11,"end_line":11,"end_character":20},"in_reply_to":"3a71b18c_096fe4c5","updated":"2016-12-03 12:30:04.000000000","message":"Done","commit_id":"7bcdecb6ae7cfc29a64fa4f1b7153237952f8fc3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8881704ba54f1840256a1e89da7b6cbcb40b8ffc","unresolved":false,"context_lines":[{"line_number":10,"context_line":"But the sub-resource image-metadata of image was forgotten to deprecate."},{"line_number":11,"context_line":"This patch deprecats the image-metdata API from 2.39."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"APIImpact"},{"line_number":14,"context_line":"Implements blueprint deprecate-image-meta-proxy-api"},{"line_number":15,"context_line":"Closes-bug: #1614578"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a71b18c_8935b4db","line":13,"updated":"2016-12-02 16:17:29.000000000","message":"We can drop this tag, it doesn\u0027t mean anything in code patches, only specs.","commit_id":"7bcdecb6ae7cfc29a64fa4f1b7153237952f8fc3"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"259680f00a83a3b29e304674f92e6ec6f59c31c2","unresolved":false,"context_lines":[{"line_number":10,"context_line":"But the sub-resource image-metadata of image was forgotten to deprecate."},{"line_number":11,"context_line":"This patch deprecats the image-metdata API from 2.39."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"APIImpact"},{"line_number":14,"context_line":"Implements blueprint deprecate-image-meta-proxy-api"},{"line_number":15,"context_line":"Closes-bug: #1614578"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a71b18c_5b198987","line":13,"in_reply_to":"3a71b18c_8935b4db","updated":"2016-12-03 12:30:04.000000000","message":"Done","commit_id":"7bcdecb6ae7cfc29a64fa4f1b7153237952f8fc3"}],"api-ref/source/parameters.yaml":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"bfb324bb75a2010da9902e0820269a8df1d259f3","unresolved":false,"context_lines":[{"line_number":2365,"context_line":"  description: |"},{"line_number":2366,"context_line":"    The number of allowed metadata items for each image. Starting from"},{"line_number":2367,"context_line":"    version 2.38 this field is dropped from \u0027os-limits\u0027 response, because"},{"line_number":2368,"context_line":"    \u0027image-metadata\u0027 proxy API was deprecated."},{"line_number":2369,"context_line":"  in: body"},{"line_number":2370,"context_line":"  required: true"},{"line_number":2371,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3a71b18c_d5d19d58","line":2368,"updated":"2016-12-06 06:02:26.000000000","message":"And create_image/backup won\u0027t enforce that quota.  We\u0027d better to have note in create_image/backup action also","commit_id":"db6f80ef1fd43c32c934efe8d732f508e65a18b6"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"6b9014b0576caf94c25c7eb7e4b843be4a2c25ab","unresolved":false,"context_lines":[{"line_number":2364,"context_line":"image_metadata_items:"},{"line_number":2365,"context_line":"  description: |"},{"line_number":2366,"context_line":"    The number of allowed metadata items for each image. Starting from"},{"line_number":2367,"context_line":"    version 2.38 this field is dropped from \u0027os-limits\u0027 response, because"},{"line_number":2368,"context_line":"    \u0027image-metadata\u0027 proxy API was deprecated."},{"line_number":2369,"context_line":"  in: body"},{"line_number":2370,"context_line":"  required: true"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3a71b18c_a82ac32d","line":2367,"range":{"start_line":2367,"start_character":14,"end_line":2367,"end_character":16},"updated":"2016-12-07 13:27:58.000000000","message":"I think this should be 2.39","commit_id":"46a37acd64ae472b9ea4c191c17c7db568a42898"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f68754611bd218820709cbe4becf568dbfc73ab2","unresolved":false,"context_lines":[{"line_number":2364,"context_line":"image_metadata_items:"},{"line_number":2365,"context_line":"  description: |"},{"line_number":2366,"context_line":"    The number of allowed metadata items for each image. Starting from"},{"line_number":2367,"context_line":"    version 2.38 this field is dropped from \u0027os-limits\u0027 response, because"},{"line_number":2368,"context_line":"    \u0027image-metadata\u0027 proxy API was deprecated."},{"line_number":2369,"context_line":"  in: body"},{"line_number":2370,"context_line":"  required: true"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3a71b18c_684a6b57","line":2367,"range":{"start_line":2367,"start_character":12,"end_line":2367,"end_character":16},"updated":"2016-12-07 13:35:15.000000000","message":"Wouldn\u0027t it be starting from 2.39 it\u0027s dropped? The max_version is 2.38 where this shows up, but we dropped it starting in 2.39.","commit_id":"46a37acd64ae472b9ea4c191c17c7db568a42898"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"2327348da5170f73220eb7b89e96cd21d78efde6","unresolved":false,"context_lines":[{"line_number":2364,"context_line":"image_metadata_items:"},{"line_number":2365,"context_line":"  description: |"},{"line_number":2366,"context_line":"    The number of allowed metadata items for each image. Starting from"},{"line_number":2367,"context_line":"    version 2.38 this field is dropped from \u0027os-limits\u0027 response, because"},{"line_number":2368,"context_line":"    \u0027image-metadata\u0027 proxy API was deprecated."},{"line_number":2369,"context_line":"  in: body"},{"line_number":2370,"context_line":"  required: true"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3a71b18c_e91e7d5e","line":2367,"range":{"start_line":2367,"start_character":12,"end_line":2367,"end_character":16},"in_reply_to":"3a71b18c_684a6b57","updated":"2016-12-07 14:25:38.000000000","message":"Done","commit_id":"46a37acd64ae472b9ea4c191c17c7db568a42898"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"94da44a4b402770d17538ae87a3169ca1f7f65c8","unresolved":false,"context_lines":[{"line_number":2364,"context_line":"image_metadata_items:"},{"line_number":2365,"context_line":"  description: |"},{"line_number":2366,"context_line":"    The number of allowed metadata items for each image. Starting from"},{"line_number":2367,"context_line":"    version 2.38 this field is dropped from \u0027os-limits\u0027 response, because"},{"line_number":2368,"context_line":"    \u0027image-metadata\u0027 proxy API was deprecated."},{"line_number":2369,"context_line":"  in: body"},{"line_number":2370,"context_line":"  required: true"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3a71b18c_089d7759","line":2367,"range":{"start_line":2367,"start_character":14,"end_line":2367,"end_character":16},"in_reply_to":"3a71b18c_a82ac32d","updated":"2016-12-07 13:33:15.000000000","message":"yes, sorry","commit_id":"46a37acd64ae472b9ea4c191c17c7db568a42898"}],"nova/api/openstack/api_version_request.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8547cd8d8cbaa6115a0c6d763c850a6fb5776b22","unresolved":false,"context_lines":[{"line_number":95,"context_line":"             UUID format."},{"line_number":96,"context_line":"    * 2.38 - Add a condition to return HTTPBadRequest if invalid status is"},{"line_number":97,"context_line":"             provided for listing servers."},{"line_number":98,"context_line":"    * 2.39 - Deprecates image-metadata proxy API"},{"line_number":99,"context_line":"\"\"\""},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"# The minimum and maximum versions of the API supported"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_fb770700","line":98,"updated":"2016-12-01 17:12:03.000000000","message":"Don\u0027t forget to update this:\n\nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/rest_api_version_history.rst","commit_id":"08d5969938417bdb75ece0bdc9d3ef90df7178b7"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"f3615b716086c6c3e372893392ec0c95d6b8b7f8","unresolved":false,"context_lines":[{"line_number":95,"context_line":"             UUID format."},{"line_number":96,"context_line":"    * 2.38 - Add a condition to return HTTPBadRequest if invalid status is"},{"line_number":97,"context_line":"             provided for listing servers."},{"line_number":98,"context_line":"    * 2.39 - Deprecates image-metadata proxy API"},{"line_number":99,"context_line":"\"\"\""},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"# The minimum and maximum versions of the API supported"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_7e20459c","line":98,"in_reply_to":"3a71b18c_fb770700","updated":"2016-12-01 17:21:03.000000000","message":"yes, sure, I remember that","commit_id":"08d5969938417bdb75ece0bdc9d3ef90df7178b7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8547cd8d8cbaa6115a0c6d763c850a6fb5776b22","unresolved":false,"context_lines":[{"line_number":112,"context_line":"MAX_PROXY_API_SUPPORT_VERSION \u003d \u00272.35\u0027"},{"line_number":113,"context_line":"MIN_WITHOUT_PROXY_API_SUPPORT_VERSION \u003d \u00272.36\u0027"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"# Starting from microversion 2.39 all proxe APIs are deprecated."},{"line_number":116,"context_line":"ONLY_IMAGE_METADATA_PROXY_API_SUPPORT_VERSION \u003d \u00272.38\u0027"},{"line_number":117,"context_line":"NO_PROXY_API_SUPPORT_VERSION \u003d \u00272.39\u0027"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_db488b30","line":115,"updated":"2016-12-01 17:12:03.000000000","message":"This isn\u0027t accurate, see below.","commit_id":"08d5969938417bdb75ece0bdc9d3ef90df7178b7"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"f3615b716086c6c3e372893392ec0c95d6b8b7f8","unresolved":false,"context_lines":[{"line_number":112,"context_line":"MAX_PROXY_API_SUPPORT_VERSION \u003d \u00272.35\u0027"},{"line_number":113,"context_line":"MIN_WITHOUT_PROXY_API_SUPPORT_VERSION \u003d \u00272.36\u0027"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"# Starting from microversion 2.39 all proxe APIs are deprecated."},{"line_number":116,"context_line":"ONLY_IMAGE_METADATA_PROXY_API_SUPPORT_VERSION \u003d \u00272.38\u0027"},{"line_number":117,"context_line":"NO_PROXY_API_SUPPORT_VERSION \u003d \u00272.39\u0027"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_1e32f1f1","line":115,"in_reply_to":"3a71b18c_db488b30","updated":"2016-12-01 17:21:03.000000000","message":"will think once again and fix the names","commit_id":"08d5969938417bdb75ece0bdc9d3ef90df7178b7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8547cd8d8cbaa6115a0c6d763c850a6fb5776b22","unresolved":false,"context_lines":[{"line_number":113,"context_line":"MIN_WITHOUT_PROXY_API_SUPPORT_VERSION \u003d \u00272.36\u0027"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"# Starting from microversion 2.39 all proxe APIs are deprecated."},{"line_number":116,"context_line":"ONLY_IMAGE_METADATA_PROXY_API_SUPPORT_VERSION \u003d \u00272.38\u0027"},{"line_number":117,"context_line":"NO_PROXY_API_SUPPORT_VERSION \u003d \u00272.39\u0027"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"# NOTE(cyeoh): min and max versions declared as functions so we can"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_db6fab90","line":116,"updated":"2016-12-01 17:12:03.000000000","message":"I might call this MAX_IMAGE_META_PROXY_API_SUPPORT_VERSION to be consistent with L112.","commit_id":"08d5969938417bdb75ece0bdc9d3ef90df7178b7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8547cd8d8cbaa6115a0c6d763c850a6fb5776b22","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"# Starting from microversion 2.39 all proxe APIs are deprecated."},{"line_number":116,"context_line":"ONLY_IMAGE_METADATA_PROXY_API_SUPPORT_VERSION \u003d \u00272.38\u0027"},{"line_number":117,"context_line":"NO_PROXY_API_SUPPORT_VERSION \u003d \u00272.39\u0027"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"# NOTE(cyeoh): min and max versions declared as functions so we can"},{"line_number":120,"context_line":"# mock them for unittests. Do not use the constants directly anywhere"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_9b461322","line":117,"updated":"2016-12-01 17:12:03.000000000","message":"The naming on this variable isn\u0027t quite right, as we still have proxy APIs for other things, like in the os-interface extension to list ports for a given server. So maybe call this MIN_WITHOUT_IMAGE_META_PROXY_API_SUPPORT_VERSION.","commit_id":"08d5969938417bdb75ece0bdc9d3ef90df7178b7"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"f3615b716086c6c3e372893392ec0c95d6b8b7f8","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"# Starting from microversion 2.39 all proxe APIs are deprecated."},{"line_number":116,"context_line":"ONLY_IMAGE_METADATA_PROXY_API_SUPPORT_VERSION \u003d \u00272.38\u0027"},{"line_number":117,"context_line":"NO_PROXY_API_SUPPORT_VERSION \u003d \u00272.39\u0027"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"# NOTE(cyeoh): min and max versions declared as functions so we can"},{"line_number":120,"context_line":"# mock them for unittests. Do not use the constants directly anywhere"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_3e4ded72","line":117,"in_reply_to":"3a71b18c_9b461322","updated":"2016-12-01 17:21:03.000000000","message":"hm, understand","commit_id":"08d5969938417bdb75ece0bdc9d3ef90df7178b7"}],"nova/api/openstack/compute/create_backup.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8547cd8d8cbaa6115a0c6d763c850a6fb5776b22","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        rotation \u003d int(entity[\"rotation\"])"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        props \u003d {}"},{"line_number":60,"context_line":"        metadata \u003d entity.get(\u0027metadata\u0027, {})"},{"line_number":61,"context_line":"        # Starting from microversion 2.39 we don\u0027t check quotas on createBackup"},{"line_number":62,"context_line":"        if not api_version_request.is_supported("},{"line_number":63,"context_line":"                req,"},{"line_number":64,"context_line":"                min_version\u003dapi_version_request.NO_PROXY_API_SUPPORT_VERSION):"},{"line_number":65,"context_line":"            common.check_img_metadata_properties_quota(context, metadata)"},{"line_number":66,"context_line":"        props.update(metadata)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        instance \u003d common.get_instance(self.compute_api, context, id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_bbce6f81","line":65,"range":{"start_line":60,"start_character":8,"end_line":65,"end_character":73},"updated":"2016-12-01 17:12:03.000000000","message":"Hmm, I\u0027m not sure about this. I\u0027d need to look at the spec again to see if this is called out. I was initially thinking we\u0027d fail if metadata was passed in, but I think the spec says that we just don\u0027t need to check anymore because glance already has a similar quota check for this when you create the image.","commit_id":"08d5969938417bdb75ece0bdc9d3ef90df7178b7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a94e1e1a8107bcbf1e265f996214ac16b489dbe7","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        rotation \u003d int(entity[\"rotation\"])"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        props \u003d {}"},{"line_number":60,"context_line":"        metadata \u003d entity.get(\u0027metadata\u0027, {})"},{"line_number":61,"context_line":"        # Starting from microversion 2.39 we don\u0027t check quotas on createBackup"},{"line_number":62,"context_line":"        if not api_version_request.is_supported("},{"line_number":63,"context_line":"                req,"},{"line_number":64,"context_line":"                min_version\u003dapi_version_request.NO_PROXY_API_SUPPORT_VERSION):"},{"line_number":65,"context_line":"            common.check_img_metadata_properties_quota(context, metadata)"},{"line_number":66,"context_line":"        props.update(metadata)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        instance \u003d common.get_instance(self.compute_api, context, id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_7e0f65e1","line":65,"range":{"start_line":60,"start_character":8,"end_line":65,"end_character":73},"in_reply_to":"3a71b18c_7ef3e50a","updated":"2016-12-01 17:23:04.000000000","message":"Yeah this is correct as you have it.","commit_id":"08d5969938417bdb75ece0bdc9d3ef90df7178b7"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"f3615b716086c6c3e372893392ec0c95d6b8b7f8","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        rotation \u003d int(entity[\"rotation\"])"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        props \u003d {}"},{"line_number":60,"context_line":"        metadata \u003d entity.get(\u0027metadata\u0027, {})"},{"line_number":61,"context_line":"        # Starting from microversion 2.39 we don\u0027t check quotas on createBackup"},{"line_number":62,"context_line":"        if not api_version_request.is_supported("},{"line_number":63,"context_line":"                req,"},{"line_number":64,"context_line":"                min_version\u003dapi_version_request.NO_PROXY_API_SUPPORT_VERSION):"},{"line_number":65,"context_line":"            common.check_img_metadata_properties_quota(context, metadata)"},{"line_number":66,"context_line":"        props.update(metadata)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        instance \u003d common.get_instance(self.compute_api, context, id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_7ef3e50a","line":65,"range":{"start_line":60,"start_character":8,"end_line":65,"end_character":73},"in_reply_to":"3a71b18c_bbce6f81","updated":"2016-12-01 17:21:03.000000000","message":"I\u0027m not sure in this and it needs attention, I found it in action items in the spec","commit_id":"08d5969938417bdb75ece0bdc9d3ef90df7178b7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"112ae8c291d6c2f41fa0962115b7c1983857842e","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        rotation \u003d int(entity[\"rotation\"])"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        props \u003d {}"},{"line_number":60,"context_line":"        metadata \u003d entity.get(\u0027metadata\u0027, {})"},{"line_number":61,"context_line":"        # Starting from microversion 2.39 we don\u0027t check quotas on createBackup"},{"line_number":62,"context_line":"        if not api_version_request.is_supported("},{"line_number":63,"context_line":"                req,"},{"line_number":64,"context_line":"                min_version\u003dapi_version_request.NO_PROXY_API_SUPPORT_VERSION):"},{"line_number":65,"context_line":"            common.check_img_metadata_properties_quota(context, metadata)"},{"line_number":66,"context_line":"        props.update(metadata)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        instance \u003d common.get_instance(self.compute_api, context, id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_de9319a2","line":65,"range":{"start_line":60,"start_character":8,"end_line":65,"end_character":73},"in_reply_to":"3a71b18c_bbce6f81","updated":"2016-12-01 17:20:09.000000000","message":"Yeah we just let glance handle it, as noted in the spec:\n\nhttps://review.openstack.org/#/c/377528/4/specs/ocata/approved/deprecate-image-meta-proxy-api.rst@24","commit_id":"08d5969938417bdb75ece0bdc9d3ef90df7178b7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8881704ba54f1840256a1e89da7b6cbcb40b8ffc","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        props \u003d {}"},{"line_number":60,"context_line":"        metadata \u003d entity.get(\u0027metadata\u0027, {})"},{"line_number":61,"context_line":"        # Starting from microversion 2.39 we don\u0027t check quotas on createBackup"},{"line_number":62,"context_line":"        if not api_version_request.is_supported("},{"line_number":63,"context_line":"                req, min_version\u003d"},{"line_number":64,"context_line":"                api_version_request.MIN_WITHOUT_IMAGE_META_PROXY_API_VERSION):"},{"line_number":65,"context_line":"            common.check_img_metadata_properties_quota(context, metadata)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_89f3f49d","line":62,"updated":"2016-12-02 16:17:29.000000000","message":"needs a unit test","commit_id":"7bcdecb6ae7cfc29a64fa4f1b7153237952f8fc3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f68754611bd218820709cbe4becf568dbfc73ab2","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        props \u003d {}"},{"line_number":60,"context_line":"        metadata \u003d entity.get(\u0027metadata\u0027, {})"},{"line_number":61,"context_line":"        # Starting from microversion 2.39 we don\u0027t check quotas on createBackup"},{"line_number":62,"context_line":"        if not api_version_request.is_supported("},{"line_number":63,"context_line":"                req, min_version\u003d"},{"line_number":64,"context_line":"                api_version_request.MIN_WITHOUT_IMAGE_META_PROXY_API_VERSION):"},{"line_number":65,"context_line":"            common.check_img_metadata_properties_quota(context, metadata)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a71b18c_e80d9be9","line":62,"updated":"2016-12-07 13:35:15.000000000","message":"The logic here is a bit hard to process for me but I don\u0027t have better suggestions.","commit_id":"46a37acd64ae472b9ea4c191c17c7db568a42898"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8efb2d178ed1364378c559887cb2f926ce155826","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        props \u003d {}"},{"line_number":60,"context_line":"        metadata \u003d entity.get(\u0027metadata\u0027, {})"},{"line_number":61,"context_line":"        # Starting from microversion 2.39 we don\u0027t check quotas on createBackup"},{"line_number":62,"context_line":"        if not api_version_request.is_supported("},{"line_number":63,"context_line":"                req, min_version\u003d"},{"line_number":64,"context_line":"                api_version_request.MIN_WITHOUT_IMAGE_META_PROXY_API_VERSION):"},{"line_number":65,"context_line":"            common.check_img_metadata_properties_quota(context, metadata)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a71b18c_d1d6c326","line":62,"in_reply_to":"3a71b18c_c902a109","updated":"2016-12-07 15:12:08.000000000","message":"Yeah, it\u0027s the negative logic that\u0027s a bit hard to read. This might be cleaner:\n\nif api_version_request.is_supported(\n        max_version\u003dMAX_IMAGE_META_PROXY_API_VERSION):\n    common.check_img_metadata_properties_quota(...)","commit_id":"46a37acd64ae472b9ea4c191c17c7db568a42898"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"2327348da5170f73220eb7b89e96cd21d78efde6","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        props \u003d {}"},{"line_number":60,"context_line":"        metadata \u003d entity.get(\u0027metadata\u0027, {})"},{"line_number":61,"context_line":"        # Starting from microversion 2.39 we don\u0027t check quotas on createBackup"},{"line_number":62,"context_line":"        if not api_version_request.is_supported("},{"line_number":63,"context_line":"                req, min_version\u003d"},{"line_number":64,"context_line":"                api_version_request.MIN_WITHOUT_IMAGE_META_PROXY_API_VERSION):"},{"line_number":65,"context_line":"            common.check_img_metadata_properties_quota(context, metadata)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a71b18c_c902a109","line":62,"in_reply_to":"3a71b18c_e80d9be9","updated":"2016-12-07 14:25:38.000000000","message":"I think this is ok, we want to check quotas only for versions \u003c\u003d 2.38, that means API is not supported \u003e\u003d 2.39","commit_id":"46a37acd64ae472b9ea4c191c17c7db568a42898"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"6b9014b0576caf94c25c7eb7e4b843be4a2c25ab","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        if not api_version_request.is_supported("},{"line_number":63,"context_line":"                req, min_version\u003d"},{"line_number":64,"context_line":"                api_version_request.MIN_WITHOUT_IMAGE_META_PROXY_API_VERSION):"},{"line_number":65,"context_line":"            common.check_img_metadata_properties_quota(context, metadata)"},{"line_number":66,"context_line":"        props.update(metadata)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        instance \u003d common.get_instance(self.compute_api, context, id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a71b18c_88c42760","line":65,"range":{"start_line":65,"start_character":19,"end_line":65,"end_character":54},"updated":"2016-12-07 13:27:58.000000000","message":"what kind of exception will be returned if overquota?\nshould we catch and handle the exception here?","commit_id":"46a37acd64ae472b9ea4c191c17c7db568a42898"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"94da44a4b402770d17538ae87a3169ca1f7f65c8","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        if not api_version_request.is_supported("},{"line_number":63,"context_line":"                req, min_version\u003d"},{"line_number":64,"context_line":"                api_version_request.MIN_WITHOUT_IMAGE_META_PROXY_API_VERSION):"},{"line_number":65,"context_line":"            common.check_img_metadata_properties_quota(context, metadata)"},{"line_number":66,"context_line":"        props.update(metadata)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        instance \u003d common.get_instance(self.compute_api, context, id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a71b18c_684d0bc4","line":65,"range":{"start_line":65,"start_character":19,"end_line":65,"end_character":54},"in_reply_to":"3a71b18c_88c42760","updated":"2016-12-07 13:33:15.000000000","message":"this https://github.com/openstack/nova/blob/365fcedf63ff37edc91af71e55466fa9c42b7eb7/nova/api/openstack/common.py#L284\n\nwe should not catch anything here, just not make any checks, this will be handled in Glance, it is written in the spec, too","commit_id":"46a37acd64ae472b9ea4c191c17c7db568a42898"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"13856d80ba659aeb48d5ec92ba673d3c0e5ed42d","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        props \u003d {}"},{"line_number":60,"context_line":"        metadata \u003d entity.get(\u0027metadata\u0027, {})"},{"line_number":61,"context_line":"        # Starting from microversion 2.39 we don\u0027t check quotas on createBackup"},{"line_number":62,"context_line":"        if not api_version_request.is_supported("},{"line_number":63,"context_line":"                req, min_version\u003d"},{"line_number":64,"context_line":"                api_version_request.MIN_WITHOUT_IMAGE_META_PROXY_API_VERSION):"},{"line_number":65,"context_line":"            common.check_img_metadata_properties_quota(context, metadata)"},{"line_number":66,"context_line":"        props.update(metadata)"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3a71b18c_911c4bc3","line":64,"range":{"start_line":62,"start_character":8,"end_line":64,"end_character":78},"updated":"2016-12-07 15:17:12.000000000","message":"As noted in IRC, this could use positive logic like this:\n\nif api_version_request.is_supported(\n        req, max_version\u003dMAX_IMAGE_META_PROXY_API_VERSION):\n    common.check_img_metadata_properties_quota(context, metadata)","commit_id":"3019dff912a6d1a1788514a8c7d54e0bb2972c9c"}],"nova/api/openstack/compute/servers.py":[{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"f3615b716086c6c3e372893392ec0c95d6b8b7f8","unresolved":false,"context_lines":[{"line_number":1053,"context_line":"        image_name \u003d common.normalize_name(entity[\"name\"])"},{"line_number":1054,"context_line":"        metadata \u003d entity.get(\u0027metadata\u0027, {})"},{"line_number":1055,"context_line":""},{"line_number":1056,"context_line":"        # Starting from microversion 2.39 we don\u0027t check quotas on createImage"},{"line_number":1057,"context_line":"        if not api_version_request.is_supported("},{"line_number":1058,"context_line":"                req,"},{"line_number":1059,"context_line":"                min_version\u003dapi_version_request.NO_PROXY_API_SUPPORT_VERSION):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_7eca05a3","line":1056,"updated":"2016-12-01 17:21:03.000000000","message":"the same here","commit_id":"08d5969938417bdb75ece0bdc9d3ef90df7178b7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a94e1e1a8107bcbf1e265f996214ac16b489dbe7","unresolved":false,"context_lines":[{"line_number":1053,"context_line":"        image_name \u003d common.normalize_name(entity[\"name\"])"},{"line_number":1054,"context_line":"        metadata \u003d entity.get(\u0027metadata\u0027, {})"},{"line_number":1055,"context_line":""},{"line_number":1056,"context_line":"        # Starting from microversion 2.39 we don\u0027t check quotas on createImage"},{"line_number":1057,"context_line":"        if not api_version_request.is_supported("},{"line_number":1058,"context_line":"                req,"},{"line_number":1059,"context_line":"                min_version\u003dapi_version_request.NO_PROXY_API_SUPPORT_VERSION):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_1e18311d","line":1056,"in_reply_to":"3a71b18c_7eca05a3","updated":"2016-12-01 17:23:04.000000000","message":"This is correct.","commit_id":"08d5969938417bdb75ece0bdc9d3ef90df7178b7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8881704ba54f1840256a1e89da7b6cbcb40b8ffc","unresolved":false,"context_lines":[{"line_number":1054,"context_line":"        metadata \u003d entity.get(\u0027metadata\u0027, {})"},{"line_number":1055,"context_line":""},{"line_number":1056,"context_line":"        # Starting from microversion 2.39 we don\u0027t check quotas on createImage"},{"line_number":1057,"context_line":"        if not api_version_request.is_supported("},{"line_number":1058,"context_line":"                req, min_version\u003d"},{"line_number":1059,"context_line":"                api_version_request.MIN_WITHOUT_IMAGE_META_PROXY_API_VERSION):"},{"line_number":1060,"context_line":"            common.check_img_metadata_properties_quota(context, metadata)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_49f9dc7f","line":1057,"updated":"2016-12-02 16:17:29.000000000","message":"needs a unit test","commit_id":"7bcdecb6ae7cfc29a64fa4f1b7153237952f8fc3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"13856d80ba659aeb48d5ec92ba673d3c0e5ed42d","unresolved":false,"context_lines":[{"line_number":1054,"context_line":"        metadata \u003d entity.get(\u0027metadata\u0027, {})"},{"line_number":1055,"context_line":""},{"line_number":1056,"context_line":"        # Starting from microversion 2.39 we don\u0027t check quotas on createImage"},{"line_number":1057,"context_line":"        if not api_version_request.is_supported("},{"line_number":1058,"context_line":"                req, min_version\u003d"},{"line_number":1059,"context_line":"                api_version_request.MIN_WITHOUT_IMAGE_META_PROXY_API_VERSION):"},{"line_number":1060,"context_line":"            common.check_img_metadata_properties_quota(context, metadata)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a71b18c_f181ffc4","line":1057,"updated":"2016-12-07 15:17:12.000000000","message":"Same comment as in https://review.openstack.org/#/c/405461/9/nova/api/openstack/compute/create_backup.py","commit_id":"3019dff912a6d1a1788514a8c7d54e0bb2972c9c"}],"nova/api/openstack/compute/views/limits.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8547cd8d8cbaa6115a0c6d763c850a6fb5776b22","unresolved":false,"context_lines":[{"line_number":71,"context_line":"            if (name in self.limit_names and"},{"line_number":72,"context_line":"                    value is not None and name not in filtered_limits):"},{"line_number":73,"context_line":"                for limit_name in self.limit_names[name]:"},{"line_number":74,"context_line":"                    if not max_image_meta and limit_name \u003d\u003d \"maxImageMeta\":"},{"line_number":75,"context_line":"                        continue"},{"line_number":76,"context_line":"                    limits[limit_name] \u003d value"},{"line_number":77,"context_line":"        return limits"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_3b797ffd","line":75,"range":{"start_line":74,"start_character":20,"end_line":75,"end_character":32},"updated":"2016-12-01 17:12:03.000000000","message":"nit: instead of this, could we make a copy of filtered_limits above and if not max_image_meta, we append \u0027maxImageMeta\u0027 to it?","commit_id":"08d5969938417bdb75ece0bdc9d3ef90df7178b7"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"f3615b716086c6c3e372893392ec0c95d6b8b7f8","unresolved":false,"context_lines":[{"line_number":71,"context_line":"            if (name in self.limit_names and"},{"line_number":72,"context_line":"                    value is not None and name not in filtered_limits):"},{"line_number":73,"context_line":"                for limit_name in self.limit_names[name]:"},{"line_number":74,"context_line":"                    if not max_image_meta and limit_name \u003d\u003d \"maxImageMeta\":"},{"line_number":75,"context_line":"                        continue"},{"line_number":76,"context_line":"                    limits[limit_name] \u003d value"},{"line_number":77,"context_line":"        return limits"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_1e1bd173","line":75,"range":{"start_line":74,"start_character":20,"end_line":75,"end_character":32},"in_reply_to":"3a71b18c_3b797ffd","updated":"2016-12-01 17:21:03.000000000","message":"will think, the problem here is that \u0027filtered_limits\u0027 are \u0027names\u0027 (first loop) and \u0027maxImageMeta\u0027 is \u0027limit_name\u0027 (second loop)","commit_id":"08d5969938417bdb75ece0bdc9d3ef90df7178b7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8881704ba54f1840256a1e89da7b6cbcb40b8ffc","unresolved":false,"context_lines":[{"line_number":71,"context_line":"            if (name in self.limit_names and"},{"line_number":72,"context_line":"                    value is not None and name not in filtered_limits):"},{"line_number":73,"context_line":"                for limit_name in self.limit_names[name]:"},{"line_number":74,"context_line":"                    if not max_image_meta and limit_name \u003d\u003d \"maxImageMeta\":"},{"line_number":75,"context_line":"                        continue"},{"line_number":76,"context_line":"                    limits[limit_name] \u003d value"},{"line_number":77,"context_line":"        return limits"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_e907087f","line":74,"updated":"2016-12-02 16:17:29.000000000","message":"We need a unit test for this filtering.","commit_id":"7bcdecb6ae7cfc29a64fa4f1b7153237952f8fc3"}],"nova/api/openstack/rest_api_version_history.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8881704ba54f1840256a1e89da7b6cbcb40b8ffc","unresolved":false,"context_lines":[{"line_number":422,"context_line":"  Deprecates image-metadata proxy API that is just a proxy for Glance API"},{"line_number":423,"context_line":"  to operate the image metadata. Also removes the extra quota enforcement with"},{"line_number":424,"context_line":"  Nova `metadata` quota (quota checks for \u0027createImage\u0027 and \u0027createBackup\u0027"},{"line_number":425,"context_line":"  actions in Nova were removed). After this version Glance configure"},{"line_number":426,"context_line":"  option `image_property_quota` should be used to control the quota of"},{"line_number":427,"context_line":"  image metadatas. Also, removes the `maxImageMeta` field will from"},{"line_number":428,"context_line":"  `os-limits` API."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a71b18c_099a8463","line":425,"range":{"start_line":425,"start_character":59,"end_line":425,"end_character":68},"updated":"2016-12-02 16:17:29.000000000","message":"configuration","commit_id":"7bcdecb6ae7cfc29a64fa4f1b7153237952f8fc3"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"259680f00a83a3b29e304674f92e6ec6f59c31c2","unresolved":false,"context_lines":[{"line_number":422,"context_line":"  Deprecates image-metadata proxy API that is just a proxy for Glance API"},{"line_number":423,"context_line":"  to operate the image metadata. Also removes the extra quota enforcement with"},{"line_number":424,"context_line":"  Nova `metadata` quota (quota checks for \u0027createImage\u0027 and \u0027createBackup\u0027"},{"line_number":425,"context_line":"  actions in Nova were removed). After this version Glance configure"},{"line_number":426,"context_line":"  option `image_property_quota` should be used to control the quota of"},{"line_number":427,"context_line":"  image metadatas. Also, removes the `maxImageMeta` field will from"},{"line_number":428,"context_line":"  `os-limits` API."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a71b18c_862108a2","line":425,"range":{"start_line":425,"start_character":59,"end_line":425,"end_character":68},"in_reply_to":"3a71b18c_099a8463","updated":"2016-12-03 12:30:04.000000000","message":"Done","commit_id":"7bcdecb6ae7cfc29a64fa4f1b7153237952f8fc3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8881704ba54f1840256a1e89da7b6cbcb40b8ffc","unresolved":false,"context_lines":[{"line_number":424,"context_line":"  Nova `metadata` quota (quota checks for \u0027createImage\u0027 and \u0027createBackup\u0027"},{"line_number":425,"context_line":"  actions in Nova were removed). After this version Glance configure"},{"line_number":426,"context_line":"  option `image_property_quota` should be used to control the quota of"},{"line_number":427,"context_line":"  image metadatas. Also, removes the `maxImageMeta` field will from"},{"line_number":428,"context_line":"  `os-limits` API."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a71b18c_299d8059","line":427,"range":{"start_line":427,"start_character":58,"end_line":427,"end_character":62},"updated":"2016-12-02 16:17:29.000000000","message":"remove \u0027will\u0027.","commit_id":"7bcdecb6ae7cfc29a64fa4f1b7153237952f8fc3"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"259680f00a83a3b29e304674f92e6ec6f59c31c2","unresolved":false,"context_lines":[{"line_number":424,"context_line":"  Nova `metadata` quota (quota checks for \u0027createImage\u0027 and \u0027createBackup\u0027"},{"line_number":425,"context_line":"  actions in Nova were removed). After this version Glance configure"},{"line_number":426,"context_line":"  option `image_property_quota` should be used to control the quota of"},{"line_number":427,"context_line":"  image metadatas. Also, removes the `maxImageMeta` field will from"},{"line_number":428,"context_line":"  `os-limits` API."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a71b18c_e6363ce6","line":427,"range":{"start_line":427,"start_character":58,"end_line":427,"end_character":62},"in_reply_to":"3a71b18c_299d8059","updated":"2016-12-03 12:30:04.000000000","message":"sorry)","commit_id":"7bcdecb6ae7cfc29a64fa4f1b7153237952f8fc3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8881704ba54f1840256a1e89da7b6cbcb40b8ffc","unresolved":false,"context_lines":[{"line_number":425,"context_line":"  actions in Nova were removed). After this version Glance configure"},{"line_number":426,"context_line":"  option `image_property_quota` should be used to control the quota of"},{"line_number":427,"context_line":"  image metadatas. Also, removes the `maxImageMeta` field will from"},{"line_number":428,"context_line":"  `os-limits` API."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a71b18c_a9a9907d","line":428,"range":{"start_line":428,"start_character":14,"end_line":428,"end_character":17},"updated":"2016-12-02 16:17:29.000000000","message":"s/API/API response/.","commit_id":"7bcdecb6ae7cfc29a64fa4f1b7153237952f8fc3"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"259680f00a83a3b29e304674f92e6ec6f59c31c2","unresolved":false,"context_lines":[{"line_number":425,"context_line":"  actions in Nova were removed). After this version Glance configure"},{"line_number":426,"context_line":"  option `image_property_quota` should be used to control the quota of"},{"line_number":427,"context_line":"  image metadatas. Also, removes the `maxImageMeta` field will from"},{"line_number":428,"context_line":"  `os-limits` API."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a71b18c_263114ed","line":428,"range":{"start_line":428,"start_character":14,"end_line":428,"end_character":17},"in_reply_to":"3a71b18c_a9a9907d","updated":"2016-12-03 12:30:04.000000000","message":"Done","commit_id":"7bcdecb6ae7cfc29a64fa4f1b7153237952f8fc3"}],"nova/tests/unit/api/openstack/compute/test_create_backup.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f68754611bd218820709cbe4becf568dbfc73ab2","unresolved":false,"context_lines":[{"line_number":383,"context_line":"                          fakes.FAKE_UUID, body\u003dbody)"},{"line_number":384,"context_line":"        # starting from version 2.39 no quota checks on Nova side are performed"},{"line_number":385,"context_line":"        # for \u0027createBackup\u0027 action after removing \u0027image-metadata\u0027 proxy API"},{"line_number":386,"context_line":"        self.assertFalse(mock_check_quotas.called)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a71b18c_68750b31","line":386,"updated":"2016-12-07 13:35:15.000000000","message":"nit: might be cleaner to use mock_check_quotas.assert_not_called()\n\nhttps://github.com/testing-cabal/mock/blob/2.0.0/mock/mock.py#L890","commit_id":"46a37acd64ae472b9ea4c191c17c7db568a42898"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"2327348da5170f73220eb7b89e96cd21d78efde6","unresolved":false,"context_lines":[{"line_number":383,"context_line":"                          fakes.FAKE_UUID, body\u003dbody)"},{"line_number":384,"context_line":"        # starting from version 2.39 no quota checks on Nova side are performed"},{"line_number":385,"context_line":"        # for \u0027createBackup\u0027 action after removing \u0027image-metadata\u0027 proxy API"},{"line_number":386,"context_line":"        self.assertFalse(mock_check_quotas.called)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a71b18c_a980054b","line":386,"in_reply_to":"3a71b18c_68750b31","updated":"2016-12-07 14:25:38.000000000","message":"Done","commit_id":"46a37acd64ae472b9ea4c191c17c7db568a42898"}],"nova/tests/unit/api/openstack/compute/test_image_metadata.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f68754611bd218820709cbe4becf568dbfc73ab2","unresolved":false,"context_lines":[{"line_number":350,"context_line":"                          body\u003dbody)"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"class ImageMetadataControllerDeprecationTest(test.NoDBTestCase):"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"    def setUp(self):"},{"line_number":356,"context_line":"        super(ImageMetadataControllerDeprecationTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a71b18c_48c68f4a","line":353,"range":{"start_line":353,"start_character":29,"end_line":353,"end_character":44},"updated":"2016-12-07 13:35:15.000000000","message":"Rather than say deprecation in the test class name, let\u0027s use V239 for consistency.","commit_id":"46a37acd64ae472b9ea4c191c17c7db568a42898"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"2327348da5170f73220eb7b89e96cd21d78efde6","unresolved":false,"context_lines":[{"line_number":350,"context_line":"                          body\u003dbody)"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"class ImageMetadataControllerDeprecationTest(test.NoDBTestCase):"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"    def setUp(self):"},{"line_number":356,"context_line":"        super(ImageMetadataControllerDeprecationTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a71b18c_2ef79b8d","line":353,"range":{"start_line":353,"start_character":29,"end_line":353,"end_character":44},"in_reply_to":"3a71b18c_48c68f4a","updated":"2016-12-07 14:25:38.000000000","message":"Done","commit_id":"46a37acd64ae472b9ea4c191c17c7db568a42898"}],"nova/tests/unit/api/openstack/compute/test_serversV21.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f68754611bd218820709cbe4becf568dbfc73ab2","unresolved":false,"context_lines":[{"line_number":4859,"context_line":"                          FAKE_UUID, body\u003dbody)"},{"line_number":4860,"context_line":"        # starting from version 2.39 no quota checks on Nova side are performed"},{"line_number":4861,"context_line":"        # for \u0027createImage\u0027 action after removing \u0027image-metadata\u0027 proxy API"},{"line_number":4862,"context_line":"        self.assertFalse(mock_check_quotas.called)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a71b18c_48d76fbf","line":4862,"updated":"2016-12-07 13:35:15.000000000","message":"Use assert_not_called() instead.","commit_id":"46a37acd64ae472b9ea4c191c17c7db568a42898"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"2327348da5170f73220eb7b89e96cd21d78efde6","unresolved":false,"context_lines":[{"line_number":4859,"context_line":"                          FAKE_UUID, body\u003dbody)"},{"line_number":4860,"context_line":"        # starting from version 2.39 no quota checks on Nova side are performed"},{"line_number":4861,"context_line":"        # for \u0027createImage\u0027 action after removing \u0027image-metadata\u0027 proxy API"},{"line_number":4862,"context_line":"        self.assertFalse(mock_check_quotas.called)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a71b18c_89ba6909","line":4862,"in_reply_to":"3a71b18c_48d76fbf","updated":"2016-12-07 14:25:38.000000000","message":"Done","commit_id":"46a37acd64ae472b9ea4c191c17c7db568a42898"}],"releasenotes/notes/bp-deprecate-image-meta-proxy-api-7f21e1e6a94944ee.yaml":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8881704ba54f1840256a1e89da7b6cbcb40b8ffc","unresolved":false,"context_lines":[{"line_number":2,"context_line":"deprecations:"},{"line_number":3,"context_line":"  - Implemented microversion v2.39 that deprecates `image-metadata` proxy API,"},{"line_number":4,"context_line":"    removes quota checks for \u0027createImage\u0027 and \u0027createBackup\u0027 actions,"},{"line_number":5,"context_line":"    after this version Glance configure option `image_property_quota` should"},{"line_number":6,"context_line":"    be used to control the quota of image metadatas. Also, removes the"},{"line_number":7,"context_line":"    `maxImageMeta` field will from `os-limits` API."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3a71b18c_a9c0b02b","line":5,"range":{"start_line":5,"start_character":30,"end_line":5,"end_character":39},"updated":"2016-12-02 16:17:29.000000000","message":"configuration","commit_id":"7bcdecb6ae7cfc29a64fa4f1b7153237952f8fc3"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"259680f00a83a3b29e304674f92e6ec6f59c31c2","unresolved":false,"context_lines":[{"line_number":2,"context_line":"deprecations:"},{"line_number":3,"context_line":"  - Implemented microversion v2.39 that deprecates `image-metadata` proxy API,"},{"line_number":4,"context_line":"    removes quota checks for \u0027createImage\u0027 and \u0027createBackup\u0027 actions,"},{"line_number":5,"context_line":"    after this version Glance configure option `image_property_quota` should"},{"line_number":6,"context_line":"    be used to control the quota of image metadatas. Also, removes the"},{"line_number":7,"context_line":"    `maxImageMeta` field will from `os-limits` API."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3a71b18c_2648345b","line":5,"range":{"start_line":5,"start_character":30,"end_line":5,"end_character":39},"in_reply_to":"3a71b18c_a9c0b02b","updated":"2016-12-03 12:30:04.000000000","message":"Done","commit_id":"7bcdecb6ae7cfc29a64fa4f1b7153237952f8fc3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8881704ba54f1840256a1e89da7b6cbcb40b8ffc","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    removes quota checks for \u0027createImage\u0027 and \u0027createBackup\u0027 actions,"},{"line_number":5,"context_line":"    after this version Glance configure option `image_property_quota` should"},{"line_number":6,"context_line":"    be used to control the quota of image metadatas. Also, removes the"},{"line_number":7,"context_line":"    `maxImageMeta` field will from `os-limits` API."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3a71b18c_49d2bc01","line":7,"range":{"start_line":7,"start_character":47,"end_line":7,"end_character":50},"updated":"2016-12-02 16:17:29.000000000","message":"API response","commit_id":"7bcdecb6ae7cfc29a64fa4f1b7153237952f8fc3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8881704ba54f1840256a1e89da7b6cbcb40b8ffc","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    removes quota checks for \u0027createImage\u0027 and \u0027createBackup\u0027 actions,"},{"line_number":5,"context_line":"    after this version Glance configure option `image_property_quota` should"},{"line_number":6,"context_line":"    be used to control the quota of image metadatas. Also, removes the"},{"line_number":7,"context_line":"    `maxImageMeta` field will from `os-limits` API."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3a71b18c_29ebc0b1","line":7,"range":{"start_line":7,"start_character":25,"end_line":7,"end_character":29},"updated":"2016-12-02 16:17:29.000000000","message":"remove","commit_id":"7bcdecb6ae7cfc29a64fa4f1b7153237952f8fc3"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"259680f00a83a3b29e304674f92e6ec6f59c31c2","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    removes quota checks for \u0027createImage\u0027 and \u0027createBackup\u0027 actions,"},{"line_number":5,"context_line":"    after this version Glance configure option `image_property_quota` should"},{"line_number":6,"context_line":"    be used to control the quota of image metadatas. Also, removes the"},{"line_number":7,"context_line":"    `maxImageMeta` field will from `os-limits` API."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3a71b18c_66786c90","line":7,"range":{"start_line":7,"start_character":25,"end_line":7,"end_character":29},"in_reply_to":"3a71b18c_29ebc0b1","updated":"2016-12-03 12:30:04.000000000","message":"Done","commit_id":"7bcdecb6ae7cfc29a64fa4f1b7153237952f8fc3"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"259680f00a83a3b29e304674f92e6ec6f59c31c2","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    removes quota checks for \u0027createImage\u0027 and \u0027createBackup\u0027 actions,"},{"line_number":5,"context_line":"    after this version Glance configure option `image_property_quota` should"},{"line_number":6,"context_line":"    be used to control the quota of image metadatas. Also, removes the"},{"line_number":7,"context_line":"    `maxImageMeta` field will from `os-limits` API."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3a71b18c_866f48c4","line":7,"range":{"start_line":7,"start_character":47,"end_line":7,"end_character":50},"in_reply_to":"3a71b18c_49d2bc01","updated":"2016-12-03 12:30:04.000000000","message":"Done","commit_id":"7bcdecb6ae7cfc29a64fa4f1b7153237952f8fc3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f68754611bd218820709cbe4becf568dbfc73ab2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"deprecations:"},{"line_number":3,"context_line":"  - Implemented microversion v2.39 that deprecates `image-metadata` proxy API,"},{"line_number":4,"context_line":"    removes quota checks for \u0027createImage\u0027 and \u0027createBackup\u0027 actions,"},{"line_number":5,"context_line":"    after this version Glance configuration option `image_property_quota`"},{"line_number":6,"context_line":"    should be used to control the quota of image metadatas. Also, removes the"},{"line_number":7,"context_line":"    `maxImageMeta` field from `os-limits` API response."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3a71b18c_e8b4bb83","line":4,"range":{"start_line":4,"start_character":12,"end_line":4,"end_character":17},"updated":"2016-12-07 13:35:15.000000000","message":"We should probably qualify this as saying \"image metadata quota checks\".","commit_id":"46a37acd64ae472b9ea4c191c17c7db568a42898"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"2327348da5170f73220eb7b89e96cd21d78efde6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"deprecations:"},{"line_number":3,"context_line":"  - Implemented microversion v2.39 that deprecates `image-metadata` proxy API,"},{"line_number":4,"context_line":"    removes quota checks for \u0027createImage\u0027 and \u0027createBackup\u0027 actions,"},{"line_number":5,"context_line":"    after this version Glance configuration option `image_property_quota`"},{"line_number":6,"context_line":"    should be used to control the quota of image metadatas. Also, removes the"},{"line_number":7,"context_line":"    `maxImageMeta` field from `os-limits` API response."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3a71b18c_0e39ff41","line":4,"range":{"start_line":4,"start_character":12,"end_line":4,"end_character":17},"in_reply_to":"3a71b18c_e8b4bb83","updated":"2016-12-07 14:25:38.000000000","message":"Done","commit_id":"46a37acd64ae472b9ea4c191c17c7db568a42898"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f68754611bd218820709cbe4becf568dbfc73ab2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"deprecations:"},{"line_number":3,"context_line":"  - Implemented microversion v2.39 that deprecates `image-metadata` proxy API,"},{"line_number":4,"context_line":"    removes quota checks for \u0027createImage\u0027 and \u0027createBackup\u0027 actions,"},{"line_number":5,"context_line":"    after this version Glance configuration option `image_property_quota`"},{"line_number":6,"context_line":"    should be used to control the quota of image metadatas. Also, removes the"},{"line_number":7,"context_line":"    `maxImageMeta` field from `os-limits` API response."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3a71b18c_28af932c","line":5,"range":{"start_line":4,"start_character":69,"end_line":5,"end_character":9},"updated":"2016-12-07 13:35:15.000000000","message":"s/, after/. After/","commit_id":"46a37acd64ae472b9ea4c191c17c7db568a42898"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"2327348da5170f73220eb7b89e96cd21d78efde6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"deprecations:"},{"line_number":3,"context_line":"  - Implemented microversion v2.39 that deprecates `image-metadata` proxy API,"},{"line_number":4,"context_line":"    removes quota checks for \u0027createImage\u0027 and \u0027createBackup\u0027 actions,"},{"line_number":5,"context_line":"    after this version Glance configuration option `image_property_quota`"},{"line_number":6,"context_line":"    should be used to control the quota of image metadatas. Also, removes the"},{"line_number":7,"context_line":"    `maxImageMeta` field from `os-limits` API response."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3a71b18c_2e3ebb29","line":5,"range":{"start_line":4,"start_character":69,"end_line":5,"end_character":9},"in_reply_to":"3a71b18c_28af932c","updated":"2016-12-07 14:25:38.000000000","message":"Done","commit_id":"46a37acd64ae472b9ea4c191c17c7db568a42898"}]}
