)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"8fb8fd82f0470d7a8c875f34b8aac3153e682ab6","unresolved":false,"context_lines":[{"line_number":16,"context_line":"that should never have been done in the first place."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"This patch does not try to fix the underlying issue, just the incorrect"},{"line_number":19,"context_line":"attribute assignment in the least intrussive way possible."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: I0dd6b8ab2e726f69ceaaae886058e7a6181dded1"},{"line_number":22,"context_line":"Closes-Bug: #1626704"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5a8bc5a2_afed0af1","line":19,"range":{"start_line":19,"start_character":34,"end_line":19,"end_character":44},"updated":"2016-09-23 12:45:25.000000000","message":"intrusive","commit_id":"d3ded36f7fcc11f69831975549a949669d5a7802"}],"cinder/objects/volume_type.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"66a7df10c44a8401f58b6e98b69b7b6dccf7c601","unresolved":false,"context_lines":[{"line_number":85,"context_line":"            elif specs and isinstance(specs, dict):"},{"line_number":86,"context_line":"                type.extra_specs \u003d specs"},{"line_number":87,"context_line":"        if \u0027projects\u0027 in expected_attrs:"},{"line_number":88,"context_line":"            # NOTE(geguileo): Until projects stops being a polymorphic value we"},{"line_number":89,"context_line":"            # have to do a conversion here for VolumeTypeProjects ORM instance"},{"line_number":90,"context_line":"            # lists."},{"line_number":91,"context_line":"            projects \u003d db_type.get(\u0027projects\u0027, [])"},{"line_number":92,"context_line":"            if projects and not isinstance(projects[0], six.string_types):"},{"line_number":93,"context_line":"                projects \u003d [p.project_id for p in projects]"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a8bc5a2_834035a7","line":90,"range":{"start_line":88,"start_character":1,"end_line":90,"end_character":20},"updated":"2016-09-23 09:48:08.000000000","message":"Oh, I see [1]. This isn\u0027t really the best idea to have a polymorphic field, had you looked into how hard would it be to make that consistent?\n\n[1] https://github.com/openstack/cinder/blob/ab0dfcd4ca52a03b2f5c42e9ad53c07bc1b69f74/cinder/db/sqlalchemy/api.py#L3354-L3355","commit_id":"d3ded36f7fcc11f69831975549a949669d5a7802"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"d14c28bf3b0cf828fd6afc83242559878e636e0d","unresolved":false,"context_lines":[{"line_number":85,"context_line":"            elif specs and isinstance(specs, dict):"},{"line_number":86,"context_line":"                type.extra_specs \u003d specs"},{"line_number":87,"context_line":"        if \u0027projects\u0027 in expected_attrs:"},{"line_number":88,"context_line":"            # NOTE(geguileo): Until projects stops being a polymorphic value we"},{"line_number":89,"context_line":"            # have to do a conversion here for VolumeTypeProjects ORM instance"},{"line_number":90,"context_line":"            # lists."},{"line_number":91,"context_line":"            projects \u003d db_type.get(\u0027projects\u0027, [])"},{"line_number":92,"context_line":"            if projects and not isinstance(projects[0], six.string_types):"},{"line_number":93,"context_line":"                projects \u003d [p.project_id for p in projects]"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a8bc5a2_175ffe41","line":90,"range":{"start_line":88,"start_character":1,"end_line":90,"end_character":20},"in_reply_to":"5a8bc5a2_834035a7","updated":"2016-09-23 11:25:05.000000000","message":"I agree, this is not nice, I had a look at the complexity of fixing it and it doesn\u0027t look to be trivial, since we would have to either change some methods to return dictionaries or others to return ORM instances, and we even have methods like volume_type_get_all that can return a list or a dictionary.\n\nI considered that path to be more prone to introduce bugs and I\u0027m also tight on time to undertake another cleanup with no customer facing effect, so I opted for the surgical fix.","commit_id":"d3ded36f7fcc11f69831975549a949669d5a7802"}]}
