)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"018a8087447f338ddb98b24a719cb55972fbc67f","unresolved":false,"context_lines":[{"line_number":20,"context_line":"`GET /allocation_candidates`."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"This patch is a PoC for the under_subtree feature in the DB layer."},{"line_number":23,"context_line":"-W this since there is no use case or spec for this."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Change-Id: I726ed72cd8b5974d86cd35a36b24948a56227e5b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9fdfeff1_abce6457","line":23,"updated":"2019-02-12 10:16:49.000000000","message":"I seem to recall gibi wanting something like this, as an optimization.\n\nYeah, here it is: https://review.openstack.org/#/c/595236/","commit_id":"d9b4d7efb1e7954800db2f5b936fd271d058ad45"}],"placement/objects/resource_provider.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"018a8087447f338ddb98b24a719cb55972fbc67f","unresolved":false,"context_lines":[{"line_number":1425,"context_line":"    return [r[0] for r in ctx.session.execute(sel)]"},{"line_number":1426,"context_line":""},{"line_number":1427,"context_line":""},{"line_number":1428,"context_line":"@db_api.placement_context_manager.reader"},{"line_number":1429,"context_line":"def _get_resource_providers_subtree(ctx, subtree_id):"},{"line_number":1430,"context_line":"    \"\"\"Returns a set of resource provider IDs (internal IDs, not UUIDs) that"},{"line_number":1431,"context_line":"    are under the subtree, at top of which is a resource provider with the"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_ab01843a","line":1428,"updated":"2019-02-12 10:16:49.000000000","message":"If the only place this method is going to be called from is from things which are already in a reader context, isn\u0027t it redundant to start another?\n\nCleaning up our context management is probably a thing we should look into.","commit_id":"d9b4d7efb1e7954800db2f5b936fd271d058ad45"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"018a8087447f338ddb98b24a719cb55972fbc67f","unresolved":false,"context_lines":[{"line_number":1441,"context_line":"    #    FROM resource_providers AS rp_alias, sub_tree AS subtree_alias"},{"line_number":1442,"context_line":"    #    WHERE rp_alias.parent_provider_id \u003d subtree_alias.id"},{"line_number":1443,"context_line":"    #  )"},{"line_number":1444,"context_line":"    # SELECT sub_tree.id FROM sub_tree"},{"line_number":1445,"context_line":"    rpt \u003d sa.alias(_RP_TBL, name\u003d\u0027rpt\u0027)"},{"line_number":1446,"context_line":"    subtree \u003d ctx.session.query(rpt.c.id, rpt.c.parent_provider_id).filter("},{"line_number":1447,"context_line":"        rpt.c.id \u003d\u003d subtree_id).cte(name\u003d\u0027sub_tree\u0027, recursive\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_8b56005c","line":1444,"updated":"2019-02-12 10:16:49.000000000","message":"TIL","commit_id":"d9b4d7efb1e7954800db2f5b936fd271d058ad45"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"018a8087447f338ddb98b24a719cb55972fbc67f","unresolved":false,"context_lines":[{"line_number":1549,"context_line":"                rp.c.root_provider_id \u003d\u003d root_id)"},{"line_number":1550,"context_line":"            query \u003d query.where(where_cond)"},{"line_number":1551,"context_line":"        if \u0027under_subtree\u0027 in filters:"},{"line_number":1552,"context_line":"            # The \u0027under_tree\u0027 parameter is the UUID of a resource provider"},{"line_number":1553,"context_line":"            # that the caller wants to limit the returned providers to only"},{"line_number":1554,"context_line":"            # those under its \"provider tree\"."},{"line_number":1555,"context_line":"            subtree_uuid \u003d filters.pop(\u0027under_subtree\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_ab53c46a","line":1552,"range":{"start_line":1552,"start_character":25,"end_line":1552,"end_character":29},"updated":"2019-02-12 10:16:49.000000000","message":"subtree?","commit_id":"d9b4d7efb1e7954800db2f5b936fd271d058ad45"}]}
