)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f678854332b26e475b7029d3ee455a20e6c11ac1","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"It turns out that all the callers of methods that return ProviderIds"},{"line_number":10,"context_line":"access the data using attributes that are already present on the object"},{"line_number":11,"context_line":"provided by the sql alchemy RowProxy object. Creating a namedtuple is"},{"line_number":12,"context_line":"redundant and adds some processing cost [1]."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"However, the AnchorIds namedtuple used in the same file _is_ necessary"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7faddb67_28bfb5aa","line":11,"range":{"start_line":11,"start_character":28,"end_line":11,"end_character":36},"updated":"2019-08-01 15:10:19.000000000","message":"Are you sure about this? I think it\u0027s a ResultProxy:\n\nhttps://docs.sqlalchemy.org/en/13/orm/session_api.html?highlight\u003dsession%20execute#sqlalchemy.orm.session.Session.execute\n\nhttps://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ResultProxy","commit_id":"bb91e84d26f77a768ea3cfd3750451b76035aba7"}],"placement/objects/research_context.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f678854332b26e475b7029d3ee455a20e6c11ac1","unresolved":false,"context_lines":[{"line_number":318,"context_line":"    me \u003d sa.alias(_RP_TBL, name\u003d\"me\")"},{"line_number":319,"context_line":"    parent \u003d sa.alias(_RP_TBL, name\u003d\"parent\")"},{"line_number":320,"context_line":"    root \u003d sa.alias(_RP_TBL, name\u003d\"root\")"},{"line_number":321,"context_line":"    cols \u003d ["},{"line_number":322,"context_line":"        me.c.id,"},{"line_number":323,"context_line":"        me.c.uuid,"},{"line_number":324,"context_line":"        parent.c.id.label(\u0027parent_id\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_e8bd1db7","line":321,"updated":"2019-08-01 15:10:19.000000000","message":"Doesn\u0027t match the resource_providers sqla model:\n\nhttps://github.com/openstack/placement/blob/835081ac363a122153323df26c173ddee305801c/placement/db/sqlalchemy/models.py#L48\n\nBut it matches the columns we\u0027re asking for in the select and we get the ResultProxy object back as noted in the commit message which is an object with those attributes (or getattr sugar to get those attributes from the results).","commit_id":"bb91e84d26f77a768ea3cfd3750451b76035aba7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f678854332b26e475b7029d3ee455a20e6c11ac1","unresolved":false,"context_lines":[{"line_number":341,"context_line":""},{"line_number":342,"context_line":"@db_api.placement_context_manager.reader"},{"line_number":343,"context_line":"def provider_ids_from_uuid(context, uuid):"},{"line_number":344,"context_line":"    \"\"\"Given the UUID of a resource provider, returns an object with the"},{"line_number":345,"context_line":"    internal ID, the UUID, the parent provider\u0027s internal ID, parent provider\u0027s"},{"line_number":346,"context_line":"    UUID, the root provider\u0027s internal ID and the root provider UUID."},{"line_number":347,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_888029f9","line":344,"range":{"start_line":344,"start_character":57,"end_line":344,"end_character":63},"updated":"2019-08-01 15:10:19.000000000","message":"nit: could say sqla object to be consistent with above","commit_id":"bb91e84d26f77a768ea3cfd3750451b76035aba7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f678854332b26e475b7029d3ee455a20e6c11ac1","unresolved":false,"context_lines":[{"line_number":345,"context_line":"    internal ID, the UUID, the parent provider\u0027s internal ID, parent provider\u0027s"},{"line_number":346,"context_line":"    UUID, the root provider\u0027s internal ID and the root provider UUID."},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"    :returns: Object containing the internal IDs and UUIDs of the"},{"line_number":349,"context_line":"              provider identified by the supplied UUID"},{"line_number":350,"context_line":"    :param uuid: The UUID of the provider to look up"},{"line_number":351,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_487eb119","line":348,"updated":"2019-08-01 15:10:19.000000000","message":"same","commit_id":"bb91e84d26f77a768ea3cfd3750451b76035aba7"}]}
