)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"20292f60b86c30a0a0422e5f8cb34223b0672499","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2018-06-11 15:01:47 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Remove soft-deleted instances from quota_usages"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The resources in quota_usages table will minus 1 while"},{"line_number":10,"context_line":"soft deleting an instance. But the soft-deleted instances"},{"line_number":11,"context_line":"are counted when synchronizing quota_usages using command"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5f7c97a3_b750a92d","line":8,"updated":"2018-06-14 14:26:00.000000000","message":"You should put something in the commit message about how this is a stable-only change because the code was removed in Queens (and link to the change that removed it).","commit_id":"f3cf96e3597892abb2deed6e72383c3d5352550c"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"2715e6f03dce24257bfffb053c520c9f2962ad54","unresolved":false,"context_lines":[{"line_number":13,"context_line":"out soft-deleted instances when synchronizing quota_usage."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"We didn\u0027t need to do this on master as the quota_usage_refresh"},{"line_number":16,"context_line":"command has been removed in 17.0.0 (Queens). And the"},{"line_number":17,"context_line":"_instance_data_get_for_user function is already removed"},{"line_number":18,"context_line":"in commit c881e77819f1b8ca48c0dfd0ebfb75daaabf1033."},{"line_number":19,"context_line":"https://review.openstack.org/#/c/570865/"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5f7c97a3_39ccd05f","line":16,"range":{"start_line":16,"start_character":28,"end_line":16,"end_character":44},"updated":"2018-06-25 02:55:22.000000000","message":"Actually if I understand correctly this was merged on master (Rocky) so the code in question is still in queens.  If that\u0027s correct we need to start this bug fix there and then backport to pike and ocata.\n\nThe good news is that this should cherry-pick cleanly onto queens.","commit_id":"09482629843b91938e2b5a81e20ac83c07c83cac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4a19e16467e22bfdcac89ccf5e2a26d190c4adb1","unresolved":false,"context_lines":[{"line_number":13,"context_line":"out soft-deleted instances when synchronizing quota_usage."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"We didn\u0027t need to do this on master as the quota_usage_refresh"},{"line_number":16,"context_line":"command has been removed in 17.0.0 (Queens). And the"},{"line_number":17,"context_line":"_instance_data_get_for_user function is already removed"},{"line_number":18,"context_line":"in commit c881e77819f1b8ca48c0dfd0ebfb75daaabf1033."},{"line_number":19,"context_line":"https://review.openstack.org/#/c/570865/"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5f7c97a3_e1e216d4","line":16,"range":{"start_line":16,"start_character":28,"end_line":16,"end_character":44},"in_reply_to":"5f7c97a3_39ccd05f","updated":"2018-06-25 12:34:50.000000000","message":"quota_usage_refresh was removed in queens:\n\nhttps://review.openstack.org/#/c/521829/","commit_id":"09482629843b91938e2b5a81e20ac83c07c83cac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4a19e16467e22bfdcac89ccf5e2a26d190c4adb1","unresolved":false,"context_lines":[{"line_number":16,"context_line":"command has been removed in 17.0.0 (Queens). And the"},{"line_number":17,"context_line":"_instance_data_get_for_user function is already removed"},{"line_number":18,"context_line":"in commit c881e77819f1b8ca48c0dfd0ebfb75daaabf1033."},{"line_number":19,"context_line":"https://review.openstack.org/#/c/570865/"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: I8dcbe1e5f3f70ddd7067fed1125ef3379044ab0f"},{"line_number":22,"context_line":"Closes-bug: #1773542"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5f7c97a3_c1f4ba89","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":40},"updated":"2018-06-25 12:34:50.000000000","message":"@Tony: Oh I see you\u0027re saying https://review.openstack.org/#/c/570865/ is in Queens still, yes that\u0027s true.","commit_id":"09482629843b91938e2b5a81e20ac83c07c83cac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b84353b83c9c25f4b01157dfff09e19cc97ead9","unresolved":false,"context_lines":[{"line_number":16,"context_line":"command has been removed in 17.0.0 (Queens). And the"},{"line_number":17,"context_line":"_instance_data_get_for_user function is already removed"},{"line_number":18,"context_line":"in commit c881e77819f1b8ca48c0dfd0ebfb75daaabf1033."},{"line_number":19,"context_line":"https://review.openstack.org/#/c/570865/"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: I8dcbe1e5f3f70ddd7067fed1125ef3379044ab0f"},{"line_number":22,"context_line":"Closes-bug: #1773542"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5f7c97a3_417c2aea","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":40},"in_reply_to":"5f7c97a3_c1f4ba89","updated":"2018-06-25 12:36:15.000000000","message":"You\u0027d also need to do these backports to stable/pike, otherwise if you upgrade from ocata to pike you\u0027re going to lose this fix.","commit_id":"09482629843b91938e2b5a81e20ac83c07c83cac"}],"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"80f9a33ae991028d6c8039995e0c598c832c8a17","unresolved":false,"context_lines":[{"line_number":1824,"context_line":""},{"line_number":1825,"context_line":""},{"line_number":1826,"context_line":"def _instance_data_get_for_user(context, project_id, user_id):"},{"line_number":1827,"context_line":"    not_soft_deleted \u003d or_("},{"line_number":1828,"context_line":"        models.Instance.vm_state !\u003d vm_states.SOFT_DELETED,"},{"line_number":1829,"context_line":"        models.Instance.vm_state \u003d\u003d null()"},{"line_number":1830,"context_line":"    )"},{"line_number":1831,"context_line":"    result \u003d model_query(context, models.Instance, ("},{"line_number":1832,"context_line":"        func.count(models.Instance.id),"},{"line_number":1833,"context_line":"        func.sum(models.Instance.vcpus),"},{"line_number":1834,"context_line":"        func.sum(models.Instance.memory_mb))).\\"},{"line_number":1835,"context_line":"        filter_by(project_id\u003dproject_id).filter(not_soft_deleted)"},{"line_number":1836,"context_line":"    if user_id:"},{"line_number":1837,"context_line":"        result \u003d result.filter_by(user_id\u003duser_id).first()"},{"line_number":1838,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_16220353","line":1835,"range":{"start_line":1827,"start_character":4,"end_line":1835,"end_character":65},"updated":"2018-05-30 07:08:04.000000000","message":"I think we need some unit test for the new logic here..","commit_id":"c12a99ce2cc1efd626a2fe45d33c3d186dd554a4"},{"author":{"_account_id":26286,"name":"huanhongda","email":"hongda.xun@easystack.cn","username":"huanhongda"},"change_message_id":"439b864ea7a9be39a183cf03663ed56c52bab61a","unresolved":false,"context_lines":[{"line_number":1824,"context_line":""},{"line_number":1825,"context_line":""},{"line_number":1826,"context_line":"def _instance_data_get_for_user(context, project_id, user_id):"},{"line_number":1827,"context_line":"    not_soft_deleted \u003d or_("},{"line_number":1828,"context_line":"        models.Instance.vm_state !\u003d vm_states.SOFT_DELETED,"},{"line_number":1829,"context_line":"        models.Instance.vm_state \u003d\u003d null()"},{"line_number":1830,"context_line":"    )"},{"line_number":1831,"context_line":"    result \u003d model_query(context, models.Instance, ("},{"line_number":1832,"context_line":"        func.count(models.Instance.id),"},{"line_number":1833,"context_line":"        func.sum(models.Instance.vcpus),"},{"line_number":1834,"context_line":"        func.sum(models.Instance.memory_mb))).\\"},{"line_number":1835,"context_line":"        filter_by(project_id\u003dproject_id).filter(not_soft_deleted)"},{"line_number":1836,"context_line":"    if user_id:"},{"line_number":1837,"context_line":"        result \u003d result.filter_by(user_id\u003duser_id).first()"},{"line_number":1838,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_cbc2be85","line":1835,"range":{"start_line":1827,"start_character":4,"end_line":1835,"end_character":65},"in_reply_to":"5f7c97a3_16220353","updated":"2018-06-11 07:31:45.000000000","message":"Done","commit_id":"c12a99ce2cc1efd626a2fe45d33c3d186dd554a4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4a19e16467e22bfdcac89ccf5e2a26d190c4adb1","unresolved":false,"context_lines":[{"line_number":2175,"context_line":"            if not filters.pop(\u0027soft_deleted\u0027, False):"},{"line_number":2176,"context_line":"                # It would be better to have vm_state not be nullable"},{"line_number":2177,"context_line":"                # but until then we test it explicitly as a workaround."},{"line_number":2178,"context_line":"                not_soft_deleted \u003d or_("},{"line_number":2179,"context_line":"                    models.Instance.vm_state !\u003d vm_states.SOFT_DELETED,"},{"line_number":2180,"context_line":"                    models.Instance.vm_state \u003d\u003d null()"},{"line_number":2181,"context_line":"                    )"},{"line_number":2182,"context_line":"                query_prefix \u003d query_prefix.filter(not_soft_deleted)"},{"line_number":2183,"context_line":""},{"line_number":2184,"context_line":"    if \u0027cleaned\u0027 in filters:"},{"line_number":2185,"context_line":"        cleaned \u003d 1 if filters.pop(\u0027cleaned\u0027) else 0"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_813fa220","line":2182,"range":{"start_line":2178,"start_character":16,"end_line":2182,"end_character":68},"updated":"2018-06-25 12:34:50.000000000","message":"Review note: new code matches this.","commit_id":"09482629843b91938e2b5a81e20ac83c07c83cac"}]}
