)]}'
{"neutron/common/eventlet_utils.py":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"89761471bf0f6f53cf0030029c524e548273d5ee","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        #       eventletmonkey_patch-breaks"},{"line_number":30,"context_line":"        eventlet.monkey_patch(os\u003dFalse, thread\u003dFalse)"},{"line_number":31,"context_line":"    else:"},{"line_number":32,"context_line":"        eventlet.monkey_patch(os\u003dFalse, thread\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa1b9901_d532dda6","line":32,"updated":"2015-08-25 22:21:08.000000000","message":"An if whose branches do the same thing? That\u0027s a bit ludicrous isn\u0027t it?","commit_id":"6919a71e530b9ddd4561ba12eecb8320ab82b678"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"23dcb8d807d709a7f0f96b1e4d6eab895341e72a","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        #       eventletmonkey_patch-breaks"},{"line_number":30,"context_line":"        eventlet.monkey_patch(os\u003dFalse, thread\u003dFalse)"},{"line_number":31,"context_line":"    else:"},{"line_number":32,"context_line":"        eventlet.monkey_patch(os\u003dFalse, thread\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa1b9901_796443b8","line":32,"updated":"2015-08-26 08:56:02.000000000","message":"unrelated.","commit_id":"6919a71e530b9ddd4561ba12eecb8320ab82b678"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"96b870ad53d552245fb8bd82b13cc8adc15c055a","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        #       eventletmonkey_patch-breaks"},{"line_number":30,"context_line":"        eventlet.monkey_patch(os\u003dFalse, thread\u003dFalse)"},{"line_number":31,"context_line":"    else:"},{"line_number":32,"context_line":"        eventlet.monkey_patch(os\u003dFalse, thread\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa1b9901_895c494c","line":32,"in_reply_to":"fa1b9901_d532dda6","updated":"2015-08-26 03:16:40.000000000","message":"it is mistake","commit_id":"6919a71e530b9ddd4561ba12eecb8320ab82b678"}],"neutron/services/qos/qos_plugin.py":[{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"23dcb8d807d709a7f0f96b1e4d6eab895341e72a","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        with db_api.autonested_transaction(context.session):"},{"line_number":109,"context_line":"            # first, validate that we have access to the policy"},{"line_number":110,"context_line":"            policy \u003d self._get_policy_obj(context, policy_id)"},{"line_number":111,"context_line":"            rule_in_policy_flag \u003d False"},{"line_number":112,"context_line":"            for rule in policy.rules:"},{"line_number":113,"context_line":"                if rule_id \u003d\u003d rule.id:"},{"line_number":114,"context_line":"                    rule_in_policy_flag \u003d True"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa1b9901_5c7826c4","line":111,"updated":"2015-08-26 08:56:02.000000000","message":"I think that it\u0027s cleaner if we move all this business logic to a function in the policy neutron object.\n\nget_rule(id\u003d....)\n\n\nmay be then changing L118-120 into something that updates the retrieved rule from the request, and then calls .update.","commit_id":"6919a71e530b9ddd4561ba12eecb8320ab82b678"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"b5a5198c94e3e4b34ce0f1b1781c50b6452b93e8","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        with db_api.autonested_transaction(context.session):"},{"line_number":109,"context_line":"            # first, validate that we have access to the policy"},{"line_number":110,"context_line":"            policy \u003d self._get_policy_obj(context, policy_id)"},{"line_number":111,"context_line":"            rule_in_policy_flag \u003d False"},{"line_number":112,"context_line":"            for rule in policy.rules:"},{"line_number":113,"context_line":"                if rule_id \u003d\u003d rule.id:"},{"line_number":114,"context_line":"                    rule_in_policy_flag \u003d True"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa1b9901_ba405fa6","line":111,"in_reply_to":"fa1b9901_5c7826c4","updated":"2015-08-26 10:30:10.000000000","message":"Done","commit_id":"6919a71e530b9ddd4561ba12eecb8320ab82b678"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"23dcb8d807d709a7f0f96b1e4d6eab895341e72a","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        with db_api.autonested_transaction(context.session):"},{"line_number":129,"context_line":"            # first, validate that we have access to the policy"},{"line_number":130,"context_line":"            policy \u003d self._get_policy_obj(context, policy_id)"},{"line_number":131,"context_line":"            rule_in_policy_flag \u003d False"},{"line_number":132,"context_line":"            for rule in policy.rules:"},{"line_number":133,"context_line":"                if rule_id \u003d\u003d rule.id:"},{"line_number":134,"context_line":"                    rule_in_policy_flag \u003d True"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa1b9901_9c379efd","line":131,"updated":"2015-08-26 08:56:02.000000000","message":"same thing, and you also save L138:139, by just saying rule.delete() on the retrieved rule.","commit_id":"6919a71e530b9ddd4561ba12eecb8320ab82b678"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"21670b77b37b9733b886079b09b0ad90387d4341","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                if rule_id \u003d\u003d rule.id:"},{"line_number":115,"context_line":"                    rule_in_policy_flag \u003d True"},{"line_number":116,"context_line":"            if not rule_in_policy_flag:"},{"line_number":117,"context_line":"                raise n_exc.QosRuleNotFound(policy_id\u003dpolicy_id,"},{"line_number":118,"context_line":"                                            rule_id\u003drule_id)"},{"line_number":119,"context_line":"            rule \u003d rule_object.QosBandwidthLimitRule("},{"line_number":120,"context_line":"                context, **bandwidth_limit_rule[\u0027bandwidth_limit_rule\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_97fa1776","line":117,"updated":"2015-08-26 09:11:49.000000000","message":"check my comments in PS1, I guess I sent them late for this PS :)","commit_id":"9c105d45798dc9efe69cee5b59703394315298ae"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"24a8a04dbb0f325145128892a6ae27a2ef132ed5","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                if rule_id \u003d\u003d rule.id:"},{"line_number":115,"context_line":"                    rule_in_policy_flag \u003d True"},{"line_number":116,"context_line":"            if not rule_in_policy_flag:"},{"line_number":117,"context_line":"                raise n_exc.QosRuleNotFound(policy_id\u003dpolicy_id,"},{"line_number":118,"context_line":"                                            rule_id\u003drule_id)"},{"line_number":119,"context_line":"            rule \u003d rule_object.QosBandwidthLimitRule("},{"line_number":120,"context_line":"                context, **bandwidth_limit_rule[\u0027bandwidth_limit_rule\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_fa7fb7dc","line":117,"in_reply_to":"fa1b9901_97fa1776","updated":"2015-08-26 10:30:52.000000000","message":"Done","commit_id":"9c105d45798dc9efe69cee5b59703394315298ae"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"0b0257ba647d9a18e9a6dd41fdf31cb6c9f548df","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            # first, validate that we have access to the policy"},{"line_number":111,"context_line":"            policy \u003d self._get_policy_obj(context, policy_id)"},{"line_number":112,"context_line":"            if not policy.get_rule_by_id(rule_id):"},{"line_number":113,"context_line":"                raise n_exc.QosRuleNotFound(policy_id\u003dpolicy_id,"},{"line_number":114,"context_line":"                                            rule_id\u003drule_id)"},{"line_number":115,"context_line":"            rule \u003d rule_object.QosBandwidthLimitRule("},{"line_number":116,"context_line":"                context, **bandwidth_limit_rule[\u0027bandwidth_limit_rule\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_43796ec7","line":113,"updated":"2015-08-28 07:08:45.000000000","message":"I believe we should raise the exception inside the get_rule_by_id instead of returning None, as it happens when we get a policy, when not existing, we will raise the exception inside.\n\nThis way the business logic here becomes super-clean.","commit_id":"4405c4509b00dc9ed52e1ecf067af550c6942373"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"a124899580912c824909f984b17cbda458bbd463","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            # first, validate that we have access to the policy"},{"line_number":111,"context_line":"            policy \u003d self._get_policy_obj(context, policy_id)"},{"line_number":112,"context_line":"            if not policy.get_rule_by_id(rule_id):"},{"line_number":113,"context_line":"                raise n_exc.QosRuleNotFound(policy_id\u003dpolicy_id,"},{"line_number":114,"context_line":"                                            rule_id\u003drule_id)"},{"line_number":115,"context_line":"            rule \u003d rule_object.QosBandwidthLimitRule("},{"line_number":116,"context_line":"                context, **bandwidth_limit_rule[\u0027bandwidth_limit_rule\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_66928059","line":113,"in_reply_to":"da20952f_43796ec7","updated":"2015-08-28 07:16:03.000000000","message":"Done","commit_id":"4405c4509b00dc9ed52e1ecf067af550c6942373"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"0b0257ba647d9a18e9a6dd41fdf31cb6c9f548df","unresolved":false,"context_lines":[{"line_number":127,"context_line":"            policy \u003d self._get_policy_obj(context, policy_id)"},{"line_number":128,"context_line":"            if not policy.get_rule_by_id(rule_id):"},{"line_number":129,"context_line":"                raise n_exc.QosRuleNotFound(policy_id\u003dpolicy_id,"},{"line_number":130,"context_line":"                                            rule_id\u003drule_id)"},{"line_number":131,"context_line":"            rule \u003d rule_object.QosBandwidthLimitRule(context)"},{"line_number":132,"context_line":"            rule.id \u003d rule_id"},{"line_number":133,"context_line":"            rule.delete()"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_a3488a88","line":130,"updated":"2015-08-28 07:08:45.000000000","message":"ditto.","commit_id":"4405c4509b00dc9ed52e1ecf067af550c6942373"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"a124899580912c824909f984b17cbda458bbd463","unresolved":false,"context_lines":[{"line_number":127,"context_line":"            policy \u003d self._get_policy_obj(context, policy_id)"},{"line_number":128,"context_line":"            if not policy.get_rule_by_id(rule_id):"},{"line_number":129,"context_line":"                raise n_exc.QosRuleNotFound(policy_id\u003dpolicy_id,"},{"line_number":130,"context_line":"                                            rule_id\u003drule_id)"},{"line_number":131,"context_line":"            rule \u003d rule_object.QosBandwidthLimitRule(context)"},{"line_number":132,"context_line":"            rule.id \u003d rule_id"},{"line_number":133,"context_line":"            rule.delete()"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_46973c48","line":130,"in_reply_to":"da20952f_a3488a88","updated":"2015-08-28 07:16:03.000000000","message":"Done","commit_id":"4405c4509b00dc9ed52e1ecf067af550c6942373"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"0b0257ba647d9a18e9a6dd41fdf31cb6c9f548df","unresolved":false,"context_lines":[{"line_number":128,"context_line":"            if not policy.get_rule_by_id(rule_id):"},{"line_number":129,"context_line":"                raise n_exc.QosRuleNotFound(policy_id\u003dpolicy_id,"},{"line_number":130,"context_line":"                                            rule_id\u003drule_id)"},{"line_number":131,"context_line":"            rule \u003d rule_object.QosBandwidthLimitRule(context)"},{"line_number":132,"context_line":"            rule.id \u003d rule_id"},{"line_number":133,"context_line":"            rule.delete()"},{"line_number":134,"context_line":"            policy.reload_rules()"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_a33f2ad5","line":131,"updated":"2015-08-28 07:08:45.000000000","message":"could you try?:\n\n    rule \u003d policy.get_rule_by_id(rule_id) \n    rule.delete()\n    policy.reload_rules()","commit_id":"4405c4509b00dc9ed52e1ecf067af550c6942373"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"a124899580912c824909f984b17cbda458bbd463","unresolved":false,"context_lines":[{"line_number":128,"context_line":"            if not policy.get_rule_by_id(rule_id):"},{"line_number":129,"context_line":"                raise n_exc.QosRuleNotFound(policy_id\u003dpolicy_id,"},{"line_number":130,"context_line":"                                            rule_id\u003drule_id)"},{"line_number":131,"context_line":"            rule \u003d rule_object.QosBandwidthLimitRule(context)"},{"line_number":132,"context_line":"            rule.id \u003d rule_id"},{"line_number":133,"context_line":"            rule.delete()"},{"line_number":134,"context_line":"            policy.reload_rules()"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_26eec8ec","line":131,"in_reply_to":"da20952f_a33f2ad5","updated":"2015-08-28 07:16:03.000000000","message":"Done","commit_id":"4405c4509b00dc9ed52e1ecf067af550c6942373"}]}
