)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"0b0cf6a5a42039a3579b9adc92a8e6b83e535e81","unresolved":false,"context_lines":[{"line_number":15,"context_line":"rethinking database schema, we dropped the original design for QoS"},{"line_number":16,"context_line":"rules, replacing it with a single model per type."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"This patch cleans up the remnants of those dark ages of QoS."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This should make the code a bit more clear to readers who currently"},{"line_number":21,"context_line":"wonder why we may have multiple database models for the same versioned"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bacf61ea_5da606c2","line":18,"range":{"start_line":18,"start_character":43,"end_line":18,"end_character":47},"updated":"2016-07-28 12:22:23.000000000","message":"bright?","commit_id":"f8121f3e70e81d8dc0d405dc43458d37dcfa80c0"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"ff833390fa9d47a945cc0509045a10630725fec0","unresolved":false,"context_lines":[{"line_number":15,"context_line":"rethinking database schema, we dropped the original design for QoS"},{"line_number":16,"context_line":"rules, replacing it with a single model per type."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"This patch cleans up the remnants of those dark ages of QoS."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This should make the code a bit more clear to readers who currently"},{"line_number":21,"context_line":"wonder why we may have multiple database models for the same versioned"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bacf61ea_7d794afc","line":18,"range":{"start_line":18,"start_character":43,"end_line":18,"end_character":47},"in_reply_to":"bacf61ea_5da606c2","updated":"2016-07-28 12:24:48.000000000","message":"Have you enjoyed it??? :))","commit_id":"f8121f3e70e81d8dc0d405dc43458d37dcfa80c0"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"cb6507fe93522197372fffc9fcd2961fb83de396","unresolved":false,"context_lines":[{"line_number":15,"context_line":"rethinking database schema, we dropped the original design for QoS"},{"line_number":16,"context_line":"rules, replacing it with a single model per type."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"This patch cleans up the remnants of those dark ages of QoS."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This should make the code a bit more clear to readers who currently"},{"line_number":21,"context_line":"wonder why we may have multiple database models for the same versioned"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bacf61ea_4063bddc","line":18,"range":{"start_line":18,"start_character":43,"end_line":18,"end_character":47},"in_reply_to":"bacf61ea_7d794afc","updated":"2016-07-28 12:31:54.000000000","message":"For sure!","commit_id":"f8121f3e70e81d8dc0d405dc43458d37dcfa80c0"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"2de3a9f4d713f0c3868aab89a72ad60cb84cad65","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This was once implemented to allow objects that aggregate attributes"},{"line_number":10,"context_line":"from multiple models. Specifically, that was the original design for QoS"},{"line_number":11,"context_line":"rules, where we had a model with common attributes, and then a separate"},{"line_number":12,"context_line":"model with rule specific attributes."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"After a while, struggling to make it work without huge hacks, and after"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3ac371cc_b2d139fe","line":11,"range":{"start_line":11,"start_character":13,"end_line":11,"end_character":21},"updated":"2016-08-15 14:46:54.000000000","message":"where it has a model...","commit_id":"9bc67ca4a1bdb104bb34e4fcd238646a0990bfeb"}],"neutron/objects/base.py":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"0b0cf6a5a42039a3579b9adc92a8e6b83e535e81","unresolved":false,"context_lines":[{"line_number":279,"context_line":"    # in to_dict()"},{"line_number":280,"context_line":"    # obj_extra_fields \u003d []"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"    def from_db_object(self, db_obj):"},{"line_number":283,"context_line":"        fields \u003d self.modify_fields_from_db(db_obj)"},{"line_number":284,"context_line":"        for field in self.fields:"},{"line_number":285,"context_line":"            if field in fields and not self.is_synthetic(field):"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_bd990271","line":282,"range":{"start_line":282,"start_character":8,"end_line":282,"end_character":22},"updated":"2016-07-28 12:22:23.000000000","message":"Hypothetically, 3rd party libraries might be using this interface with multiple objects as QoS was introduced in Liberty.","commit_id":"f8121f3e70e81d8dc0d405dc43458d37dcfa80c0"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"cb6507fe93522197372fffc9fcd2961fb83de396","unresolved":false,"context_lines":[{"line_number":279,"context_line":"    # in to_dict()"},{"line_number":280,"context_line":"    # obj_extra_fields \u003d []"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"    def from_db_object(self, db_obj):"},{"line_number":283,"context_line":"        fields \u003d self.modify_fields_from_db(db_obj)"},{"line_number":284,"context_line":"        for field in self.fields:"},{"line_number":285,"context_line":"            if field in fields and not self.is_synthetic(field):"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_20b7a93a","line":282,"range":{"start_line":282,"start_character":8,"end_line":282,"end_character":22},"in_reply_to":"bacf61ea_7d602a36","updated":"2016-07-28 12:31:54.000000000","message":"So it\u0027s really just a hypothesis.","commit_id":"f8121f3e70e81d8dc0d405dc43458d37dcfa80c0"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"ff833390fa9d47a945cc0509045a10630725fec0","unresolved":false,"context_lines":[{"line_number":279,"context_line":"    # in to_dict()"},{"line_number":280,"context_line":"    # obj_extra_fields \u003d []"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"    def from_db_object(self, db_obj):"},{"line_number":283,"context_line":"        fields \u003d self.modify_fields_from_db(db_obj)"},{"line_number":284,"context_line":"        for field in self.fields:"},{"line_number":285,"context_line":"            if field in fields and not self.is_synthetic(field):"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_7d602a36","line":282,"range":{"start_line":282,"start_character":8,"end_line":282,"end_character":22},"in_reply_to":"bacf61ea_bd990271","updated":"2016-07-28 12:24:48.000000000","message":"I am not aware of any out of tree object definitions.","commit_id":"f8121f3e70e81d8dc0d405dc43458d37dcfa80c0"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"c35eaa5bf56f9aef848ebee5e129a5b4970c42a8","unresolved":false,"context_lines":[{"line_number":295,"context_line":"    # obj_extra_fields \u003d []"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    def from_db_object(self, db_obj):"},{"line_number":298,"context_line":"        fields \u003d self.modify_fields_from_db(db_obj)"},{"line_number":299,"context_line":"        for field in self.fields:"},{"line_number":300,"context_line":"            if field in fields and not self.is_synthetic(field):"},{"line_number":301,"context_line":"                setattr(self, field, fields[field])"}],"source_content_type":"text/x-python","patch_set":13,"id":"9a89bdaa_7462b73f","line":298,"range":{"start_line":298,"start_character":8,"end_line":298,"end_character":14},"updated":"2016-09-07 11:08:58.000000000","message":"nit: a variable name not so similar to self.fields would make nicer reading.","commit_id":"c8fea2b392d8eb5f43d17b9959540648ea6665b9"}],"neutron/objects/securitygroup.py":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"13d7337ffffeddb410c39ba67d5955936af364e1","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        for obj in objs:"},{"line_number":65,"context_line":"            self._load_is_default(obj)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def _load_is_default(self, db_obj):"},{"line_number":68,"context_line":"        setattr(self, \u0027is_default\u0027, bool(db_obj.get(\u0027default_security_group\u0027)))"},{"line_number":69,"context_line":"        self.obj_reset_changes([\u0027is_default\u0027])"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"9a89bdaa_0be98e80","side":"PARENT","line":67,"range":{"start_line":67,"start_character":8,"end_line":67,"end_character":24},"updated":"2016-09-06 10:33:12.000000000","message":"I used grep and I see comment referencing to this method:\nhttps://github.com/openstack/neutron/blob/master/neutron/tests/unit/objects/test_securitygroup.py#L96\n\nMaybe it would be also good to rephrase that \u0027every time is_default is loaded from DB\u0027 as without having the method, comment is misleading.","commit_id":"86f7cfefb0c253781a9a1d9b417a2043531837f2"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"75bd2aed4f0a4039e22801bb75385d8e05d701a9","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        for obj in objs:"},{"line_number":65,"context_line":"            self._load_is_default(obj)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def _load_is_default(self, db_obj):"},{"line_number":68,"context_line":"        setattr(self, \u0027is_default\u0027, bool(db_obj.get(\u0027default_security_group\u0027)))"},{"line_number":69,"context_line":"        self.obj_reset_changes([\u0027is_default\u0027])"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"9a89bdaa_cd833103","side":"PARENT","line":67,"range":{"start_line":67,"start_character":8,"end_line":67,"end_character":24},"in_reply_to":"9a89bdaa_0be98e80","updated":"2016-09-06 13:23:38.000000000","message":"Done","commit_id":"86f7cfefb0c253781a9a1d9b417a2043531837f2"}]}
