)]}'
{"neutron/db/api.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"3036fca6020a8cc5a1b993a86d1708448290110d","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    with context.session.begin(subtransactions\u003dTrue):"},{"line_number":97,"context_line":"        return (common_db_mixin.model_query(context, model)"},{"line_number":98,"context_line":"                .filter_by(**kwargs)"},{"line_number":99,"context_line":"                .first())"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"def get_object(context, model, id):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_2d2e4f43","line":99,"updated":"2015-07-02 08:29:42.000000000","message":"I understand \"first\" works for most cases. Precisely speaking we need to consider a case where there are multiple objects.\nWhen we revisit here for better method name, we need to consider the situation and explore a better name.","commit_id":"adc9b1a71c12a58c20348f5a04823f51cb5382fa"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"b52a0232e8627c5b1bb2d6d046c002461fa671f4","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    with context.session.begin(subtransactions\u003dTrue):"},{"line_number":97,"context_line":"        return (common_db_mixin.model_query(context, model)"},{"line_number":98,"context_line":"                .filter_by(**kwargs)"},{"line_number":99,"context_line":"                .first())"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"def get_object(context, model, id):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_6dabf775","line":99,"in_reply_to":"ba3cc151_2d2e4f43","updated":"2015-07-02 08:38:08.000000000","message":"Yeah, that\u0027s why it\u0027s not public for now, it serves the \u0027unique\u0027 case only (which is valid for qos).","commit_id":"adc9b1a71c12a58c20348f5a04823f51cb5382fa"}],"neutron/objects/qos/policy.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"3036fca6020a8cc5a1b993a86d1708448290110d","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    @classmethod"},{"line_number":45,"context_line":"    def _get_object_policy(cls, context, model, **kwargs):"},{"line_number":46,"context_line":"        # TODO(QoS): we should make sure we use public functions"},{"line_number":47,"context_line":"        binding_db_obj \u003d qos_api._find_object(context, model, **kwargs)"},{"line_number":48,"context_line":"        # TODO(QoS): rethink handling missing binding case"},{"line_number":49,"context_line":"        if binding_db_obj:"},{"line_number":50,"context_line":"            return cls.get_by_id(context, binding_db_obj[\u0027policy_id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_8de2fb2d","line":47,"updated":"2015-07-02 08:29:42.000000000","message":"Isn\u0027t _find_object defined in neutron.db.api?","commit_id":"adc9b1a71c12a58c20348f5a04823f51cb5382fa"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"b52a0232e8627c5b1bb2d6d046c002461fa671f4","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    @classmethod"},{"line_number":45,"context_line":"    def _get_object_policy(cls, context, model, **kwargs):"},{"line_number":46,"context_line":"        # TODO(QoS): we should make sure we use public functions"},{"line_number":47,"context_line":"        binding_db_obj \u003d qos_api._find_object(context, model, **kwargs)"},{"line_number":48,"context_line":"        # TODO(QoS): rethink handling missing binding case"},{"line_number":49,"context_line":"        if binding_db_obj:"},{"line_number":50,"context_line":"            return cls.get_by_id(context, binding_db_obj[\u0027policy_id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_ad281fe3","line":47,"in_reply_to":"ba3cc151_8de2fb2d","updated":"2015-07-02 08:38:08.000000000","message":"Oh right, thanks :)","commit_id":"adc9b1a71c12a58c20348f5a04823f51cb5382fa"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"2abc2fdc45828eb6c125f034ad222c8d488f760a","unresolved":false,"context_lines":[{"line_number":69,"context_line":"                                              port_id\u003dport_id)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def detach_network(self, network_id):"},{"line_number":72,"context_line":"        # TODO(QoS): implement it, in the next life maybe"},{"line_number":73,"context_line":"        pass"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def detach_port(self, port_id):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_73c2f435","line":72,"range":{"start_line":72,"start_character":35,"end_line":72,"end_character":57},"updated":"2015-07-02 09:23:08.000000000","message":"can we drop the \"in the next life maybe\"\n\nunless we want to be zen about things","commit_id":"b167ec6d4f5577c54a1a02e6a835b875a6e2150a"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"5e9a3045caa38c28024f51b80b76e202105228a6","unresolved":false,"context_lines":[{"line_number":69,"context_line":"                                              port_id\u003dport_id)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def detach_network(self, network_id):"},{"line_number":72,"context_line":"        # TODO(QoS): implement it, in the next life maybe"},{"line_number":73,"context_line":"        pass"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def detach_port(self, port_id):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_93721810","line":72,"in_reply_to":"ba3cc151_73c2f435","updated":"2015-07-02 09:26:27.000000000","message":"We\u0027ll implement it in follow ups and will obviously kill the TODO.\n\nWe won\u0027t leave any TODO(QoS) before merge back to master.","commit_id":"b167ec6d4f5577c54a1a02e6a835b875a6e2150a"}]}
