)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"83691bac12bd1ef700e6201f0a243311aa404abe","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Un-safe_connect and publicize get_providers_in_tree"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In the continuing saga to wipe @safe_connect from the annals of history,"},{"line_number":10,"context_line":"and in preparation, for its use outside of SchedulerReportClient, this"},{"line_number":11,"context_line":"commit does two things to _get_providers_in_tree:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"- Removes @safe_connect from it. Callers now need to be aware that they"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9fb8cfa7_3ed5981c","line":10,"range":{"start_line":10,"start_character":18,"end_line":10,"end_character":19},"updated":"2019-06-28 00:07:22.000000000","message":"nix?","commit_id":"0652a4c7a5cbe99654a7e878edcfb477b6df38c0"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"af931fa750352bc2c4b460b591f5c0c8cb71704f","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Un-safe_connect and publicize get_providers_in_tree"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In the continuing saga to wipe @safe_connect from the annals of history,"},{"line_number":10,"context_line":"and in preparation, for its use outside of SchedulerReportClient, this"},{"line_number":11,"context_line":"commit does two things to _get_providers_in_tree:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"- Removes @safe_connect from it. Callers now need to be aware that they"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9fb8cfa7_d700da68","line":10,"range":{"start_line":10,"start_character":18,"end_line":10,"end_character":19},"in_reply_to":"9fb8cfa7_3ed5981c","updated":"2019-06-28 12:46:43.000000000","message":"whoops","commit_id":"0652a4c7a5cbe99654a7e878edcfb477b6df38c0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"83691bac12bd1ef700e6201f0a243311aa404abe","unresolved":false,"context_lines":[{"line_number":11,"context_line":"commit does two things to _get_providers_in_tree:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"- Removes @safe_connect from it. Callers now need to be aware that they"},{"line_number":14,"context_line":"  can get ClientExceptionZ from ksa. (The two existing callers were"},{"line_number":15,"context_line":"  vetted and needed no additional handling - it\u0027s way more appropriate"},{"line_number":16,"context_line":"  for them to raise ClientException than a mysterious NoneType error"},{"line_number":17,"context_line":"  somewhere down the line as they would have been doing previously.)"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9fb8cfa7_9e14c4ea","line":14,"range":{"start_line":14,"start_character":25,"end_line":14,"end_character":26},"updated":"2019-06-28 00:07:22.000000000","message":"Intentional?","commit_id":"0652a4c7a5cbe99654a7e878edcfb477b6df38c0"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"af931fa750352bc2c4b460b591f5c0c8cb71704f","unresolved":false,"context_lines":[{"line_number":11,"context_line":"commit does two things to _get_providers_in_tree:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"- Removes @safe_connect from it. Callers now need to be aware that they"},{"line_number":14,"context_line":"  can get ClientExceptionZ from ksa. (The two existing callers were"},{"line_number":15,"context_line":"  vetted and needed no additional handling - it\u0027s way more appropriate"},{"line_number":16,"context_line":"  for them to raise ClientException than a mysterious NoneType error"},{"line_number":17,"context_line":"  somewhere down the line as they would have been doing previously.)"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9fb8cfa7_b7fd266f","line":14,"range":{"start_line":14,"start_character":25,"end_line":14,"end_character":26},"in_reply_to":"9fb8cfa7_9e14c4ea","updated":"2019-06-28 12:46:43.000000000","message":"Yes, obnoxious way of pluralizing `ClientException` without making it look like the token is `ClientExceptions`.","commit_id":"0652a4c7a5cbe99654a7e878edcfb477b6df38c0"}],"nova/scheduler/client/report.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4c68040131ba8bd1f8257f6a418c8dd871bdf4a1","unresolved":false,"context_lines":[{"line_number":680,"context_line":"            self._provider_tree.populate_from_iterable("},{"line_number":681,"context_line":"                rps_to_refresh or [created_rp])"},{"line_number":682,"context_line":""},{"line_number":683,"context_line":"            uuids_to_refresh \u003d [rp[\u0027uuid\u0027] for rp in rps_to_refresh]"},{"line_number":684,"context_line":""},{"line_number":685,"context_line":"        # At this point, the whole tree exists in the local cache."},{"line_number":686,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_27379a50","line":683,"range":{"start_line":683,"start_character":53,"end_line":683,"end_character":67},"updated":"2019-07-02 14:38:48.000000000","message":"when rps_to_refresh was None due to @safe_connect his blow anyhow","commit_id":"0652a4c7a5cbe99654a7e878edcfb477b6df38c0"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"d4da5ca36c6a9eb62cdde27e60520c331cc144d2","unresolved":false,"context_lines":[{"line_number":680,"context_line":"            self._provider_tree.populate_from_iterable("},{"line_number":681,"context_line":"                rps_to_refresh or [created_rp])"},{"line_number":682,"context_line":""},{"line_number":683,"context_line":"            uuids_to_refresh \u003d [rp[\u0027uuid\u0027] for rp in rps_to_refresh]"},{"line_number":684,"context_line":""},{"line_number":685,"context_line":"        # At this point, the whole tree exists in the local cache."},{"line_number":686,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_e7abc21b","line":683,"range":{"start_line":683,"start_character":53,"end_line":683,"end_character":67},"in_reply_to":"9fb8cfa7_27379a50","updated":"2019-07-02 14:40:53.000000000","message":"yup, it just blows up cleaner now :)","commit_id":"0652a4c7a5cbe99654a7e878edcfb477b6df38c0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"83691bac12bd1ef700e6201f0a243311aa404abe","unresolved":false,"context_lines":[{"line_number":1791,"context_line":"        :param context: The security context"},{"line_number":1792,"context_line":"        :param consumer_uuid: The UUID of the consumer to manipulate"},{"line_number":1793,"context_line":"        :param root_rp_uuid: The root of the provider tree"},{"line_number":1794,"context_line":"        :raises: keystoneauth1.exceptions.base.ClientException on failure to"},{"line_number":1795,"context_line":"                 communicate with the placement API"},{"line_number":1796,"context_line":"        :raises: ConsumerAllocationRetrievalFailed if this call cannot read"},{"line_number":1797,"context_line":"                 the current state of the allocations from placement"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_dee31c04","line":1794,"updated":"2019-06-28 00:07:22.000000000","message":"Already raises because of get_allocs_for_consumer.","commit_id":"0652a4c7a5cbe99654a7e878edcfb477b6df38c0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"83691bac12bd1ef700e6201f0a243311aa404abe","unresolved":false,"context_lines":[{"line_number":1795,"context_line":"                 communicate with the placement API"},{"line_number":1796,"context_line":"        :raises: ConsumerAllocationRetrievalFailed if this call cannot read"},{"line_number":1797,"context_line":"                 the current state of the allocations from placement"},{"line_number":1798,"context_line":"        :raises: ResourceProviderRetrievalFailed if it cannot collect the RPs"},{"line_number":1799,"context_line":"                 in the tree specified by root_rp_uuid."},{"line_number":1800,"context_line":"        \"\"\""},{"line_number":1801,"context_line":"        current_allocs \u003d self.get_allocs_for_consumer(context, consumer_uuid)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_7eeeb0ed","line":1798,"updated":"2019-06-28 00:07:22.000000000","message":"ack","commit_id":"0652a4c7a5cbe99654a7e878edcfb477b6df38c0"}]}
