)]}'
{"placement/objects/allocation_candidate.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"95d6d3ab4597985d31a226be6d9dbe48a844a8ce","unresolved":false,"context_lines":[{"line_number":516,"context_line":"            parent_id \u003d pids.parent_id"},{"line_number":517,"context_line":"            # If there is a parent, we can rely on it being in provider_ids"},{"line_number":518,"context_line":"            # because for any single provider, it also contains the full"},{"line_number":519,"context_line":"            # ancestry."},{"line_number":520,"context_line":"            parent_uuid \u003d provider_ids[parent_id].uuid if parent_id else None"},{"line_number":521,"context_line":"            summary \u003d ProviderSummary("},{"line_number":522,"context_line":"                resource_provider\u003drp_obj.ResourceProvider("}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_bbbf1ba9","line":519,"updated":"2019-08-07 12:59:42.000000000","message":"Even if the parent is not providing any resources for this candidate and therefore not in the usages dict?","commit_id":"549da6a0d7db5ec53a2f14897fa5cb35a73e74f6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5684e5ba61d4616a0353754703fd77441582a2cb","unresolved":false,"context_lines":[{"line_number":516,"context_line":"            parent_id \u003d pids.parent_id"},{"line_number":517,"context_line":"            # If there is a parent, we can rely on it being in provider_ids"},{"line_number":518,"context_line":"            # because for any single provider, it also contains the full"},{"line_number":519,"context_line":"            # ancestry."},{"line_number":520,"context_line":"            parent_uuid \u003d provider_ids[parent_id].uuid if parent_id else None"},{"line_number":521,"context_line":"            summary \u003d ProviderSummary("},{"line_number":522,"context_line":"                resource_provider\u003drp_obj.ResourceProvider("}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_9b733f17","line":519,"in_reply_to":"7faddb67_7b2d23fc","updated":"2019-08-07 13:07:28.000000000","message":"Thanks. I got it.","commit_id":"549da6a0d7db5ec53a2f14897fa5cb35a73e74f6"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"d67c1651e6b298048c72457c59a409055976b9c8","unresolved":false,"context_lines":[{"line_number":516,"context_line":"            parent_id \u003d pids.parent_id"},{"line_number":517,"context_line":"            # If there is a parent, we can rely on it being in provider_ids"},{"line_number":518,"context_line":"            # because for any single provider, it also contains the full"},{"line_number":519,"context_line":"            # ancestry."},{"line_number":520,"context_line":"            parent_uuid \u003d provider_ids[parent_id].uuid if parent_id else None"},{"line_number":521,"context_line":"            summary \u003d ProviderSummary("},{"line_number":522,"context_line":"                resource_provider\u003drp_obj.ResourceProvider("}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_7b2d23fc","line":519,"in_reply_to":"7faddb67_bbbf1ba9","updated":"2019-08-07 13:03:00.000000000","message":"The usages dict is every provider in a tree that shares the same root, even without resources because of the left join in https://opendev.org/openstack/placement/src/branch/master/placement/objects/allocation_candidate.py#L640","commit_id":"549da6a0d7db5ec53a2f14897fa5cb35a73e74f6"}]}
