)]}'
{"nova/api/openstack/placement/objects/resource_provider.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"11ce4deb50a24eb760b5302855fd4d0841c74d4d","unresolved":false,"context_lines":[{"line_number":2349,"context_line":"    cols \u003d ["},{"line_number":2350,"context_line":"        users.c.id,"},{"line_number":2351,"context_line":"        users.c.external_id,"},{"line_number":2352,"context_line":"        users.c.updated_at,"},{"line_number":2353,"context_line":"        users.c.created_at"},{"line_number":2354,"context_line":"    ]"},{"line_number":2355,"context_line":"    sel \u003d sa.select(cols)"},{"line_number":2356,"context_line":"    sel \u003d sel.where(users.c.external_id \u003d\u003d external_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_86eba210","line":2353,"range":{"start_line":2352,"start_character":0,"end_line":2353,"end_character":26},"updated":"2018-05-01 16:37:58.000000000","message":"ditto unused","commit_id":"32e153af55fe09e58b1524d54a8cee6e289bcd4c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a8e4d3a66726160ca6670bc9e02e6ea4636afbde","unresolved":false,"context_lines":[{"line_number":2352,"context_line":"        users.c.updated_at,"},{"line_number":2353,"context_line":"        users.c.created_at"},{"line_number":2354,"context_line":"    ]"},{"line_number":2355,"context_line":"    sel \u003d sa.select(cols)"},{"line_number":2356,"context_line":"    sel \u003d sel.where(users.c.external_id \u003d\u003d external_id)"},{"line_number":2357,"context_line":"    res \u003d ctx.session.execute(sel).fetchone()"},{"line_number":2358,"context_line":"    if not res:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_1a3b67c8","line":2355,"updated":"2018-05-01 14:29:23.000000000","message":"ditto select_from comment\n\nI mean, it must work; just looking for an explanation as to why :)","commit_id":"32e153af55fe09e58b1524d54a8cee6e289bcd4c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a8e4d3a66726160ca6670bc9e02e6ea4636afbde","unresolved":false,"context_lines":[{"line_number":2369,"context_line":"        \u0027external_id\u0027: fields.StringField(nullable\u003dFalse),"},{"line_number":2370,"context_line":"    }"},{"line_number":2371,"context_line":""},{"line_number":2372,"context_line":"    @staticmethod"},{"line_number":2373,"context_line":"    def _from_db_object(ctx, target, source):"},{"line_number":2374,"context_line":"        for field in target.fields:"},{"line_number":2375,"context_line":"            setattr(target, field, source[field])"},{"line_number":2376,"context_line":""},{"line_number":2377,"context_line":"        target._context \u003d ctx"},{"line_number":2378,"context_line":"        target.obj_reset_changes()"},{"line_number":2379,"context_line":"        return target"},{"line_number":2380,"context_line":""},{"line_number":2381,"context_line":"    @classmethod"},{"line_number":2382,"context_line":"    def get_by_external_id(cls, ctx, external_id):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_7a75c397","line":2379,"range":{"start_line":2372,"start_character":0,"end_line":2379,"end_character":21},"updated":"2018-05-01 14:29:23.000000000","message":"This pattern seems to be so common, one wonders why it\u0027s not in the base class.","commit_id":"32e153af55fe09e58b1524d54a8cee6e289bcd4c"}]}
