)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"173182344a3588aafeca605a833c52510ff9528e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"trunk: declare port_id as a primary key"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This makes object fields reflect database model. This makes it"},{"line_number":10,"context_line":"impossible to use get_object for a trunk object with just an ID, which"},{"line_number":11,"context_line":"required to switch to get_objects in several places, since this other"},{"line_number":12,"context_line":"method is more forgiving."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bacf61ea_6dacea35","line":9,"updated":"2016-07-28 17:01:52.000000000","message":"port is not primary key though, so what are we reflecting?","commit_id":"8d63251963d6d845c88228a0ef2e058be18a72fc"}],"neutron/objects/trunk.py":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"45c5eaedc7b0af87d6ae0f19569a3ff05ac2edd5","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    fields_no_update \u003d [\u0027tenant_id\u0027, \u0027status\u0027]"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    primary_keys \u003d [\u0027id\u0027, \u0027port_id\u0027]"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    synthetic_fields \u003d [\u0027sub_ports\u0027]"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_ad8f02cb","line":101,"updated":"2016-07-28 17:00:59.000000000","message":"the primary key for trunk is only ID [1]. I thought this was missing because it was by default. I am not sure I am 100% understanding what this attribute is for.\n\n[1] https://github.com/openstack/neutron/blob/master/neutron/db/migration/alembic_migrations/versions/newton/expand/5abc0278ca73_add_support_for_vlan_trunking.py#L41","commit_id":"8d63251963d6d845c88228a0ef2e058be18a72fc"}],"neutron/services/trunk/plugin.py":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"45c5eaedc7b0af87d6ae0f19569a3ff05ac2edd5","unresolved":false,"context_lines":[{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    def _get_trunk(self, context, trunk_id):"},{"line_number":221,"context_line":"        \"\"\"Return the trunk object or raise if not found.\"\"\""},{"line_number":222,"context_line":"        obj \u003d trunk_objects.Trunk.get_objects(context, id\u003dtrunk_id)"},{"line_number":223,"context_line":"        if not obj:"},{"line_number":224,"context_line":"            raise trunk_exc.TrunkNotFound(trunk_id\u003dtrunk_id)"},{"line_number":225,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_4d8486d3","line":222,"updated":"2016-07-28 17:00:59.000000000","message":"why can\u0027t we use get_object() anymore?","commit_id":"8d63251963d6d845c88228a0ef2e058be18a72fc"}]}
