)]}'
{"nova/tests/functional/regressions/test_bug_1843090.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a9b4bbe74f3cf3ff6831a46d8de3a4ecfb755a56","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        def spy_resize_claim("},{"line_number":85,"context_line":"                _tracker, _self, context, instance, instance_type, nodename,"},{"line_number":86,"context_line":"                *args, **kwargs):"},{"line_number":87,"context_line":"            # Keep track of the nodenameZ with which resize was invoked"},{"line_number":88,"context_line":"            _tracker.claim_calls_on_node.append(nodename)"},{"line_number":89,"context_line":"            # Raise only on the first invocation; otherwise let the resize do"},{"line_number":90,"context_line":"            # what it normally does"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_8bcbd570","line":87,"range":{"start_line":87,"start_character":53,"end_line":87,"end_character":59},"updated":"2019-10-02 23:00:00.000000000","message":"resize_claim","commit_id":"0f08b5d24248ba5d0d92a115a3d63840643a1126"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a9b4bbe74f3cf3ff6831a46d8de3a4ecfb755a56","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        with spy.spy("},{"line_number":96,"context_line":"                nova.compute.resource_tracker.ResourceTracker, \u0027resize_claim\u0027,"},{"line_number":97,"context_line":"                before\u003dspy_resize_claim) as tracker:"},{"line_number":98,"context_line":"            # Keep track of the nodenameZ with which resize was invoked"},{"line_number":99,"context_line":"            tracker.claim_calls_on_node \u003d []"},{"line_number":100,"context_line":"            # Now migrate the server which is going to fail on the first"},{"line_number":101,"context_line":"            # destination but then will be rescheduled."}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_2bc8a172","line":98,"range":{"start_line":98,"start_character":53,"end_line":98,"end_character":59},"updated":"2019-10-02 23:00:00.000000000","message":"resize_claim","commit_id":"0f08b5d24248ba5d0d92a115a3d63840643a1126"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"cc88d425b07159501fb469d4dad9c2b6440f7e07","unresolved":false,"context_lines":[{"line_number":95,"context_line":"                nova.compute.resource_tracker.ResourceTracker, \u0027resize_claim\u0027,"},{"line_number":96,"context_line":"                before\u003dspy_resize_claim) as tracker:"},{"line_number":97,"context_line":"            # Keep track of the nodenameZ with which resize was invoked"},{"line_number":98,"context_line":"            tracker.claim_calls_on_node \u003d []"},{"line_number":99,"context_line":"            # Now migrate the server which is going to fail on the first"},{"line_number":100,"context_line":"            # destination but then will be rescheduled."},{"line_number":101,"context_line":"            self.api.post_server_action(server[\u0027id\u0027], {\u0027migrate\u0027: None})"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_42205af8","line":98,"updated":"2019-10-03 09:44:12.000000000","message":"As calls can be asserted on tracker we could write tracker.assert_has_calls([...]) instead of direct tracking, but that assert would be too chatty as it needs to write a lot of attribute. Also we could extract just the nodename parameter from the mock.call() but that is ugly like hell. So I think this is an improvement.","commit_id":"31511acb8f866b4e93b792aa16c1812679352444"}]}
