)]}'
{"nova/scheduler/client/report.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"829a78c13dfddf28f1b0aa11ca707126b13d6b0c","unresolved":false,"context_lines":[{"line_number":930,"context_line":"        r \u003d self.put(url, payload, version\u003d\u00271.10\u0027)"},{"line_number":931,"context_line":"        if r.status_code !\u003d 204:"},{"line_number":932,"context_line":"            # NOTE(jaypipes): Yes, it sucks doing string comparison like this"},{"line_number":933,"context_line":"            # but we have no error codes, only error messages."},{"line_number":934,"context_line":"            if attempt \u003c 3 and \u0027concurrently updated\u0027 in r.text:"},{"line_number":935,"context_line":"                # Another thread updated one or more of the resource providers"},{"line_number":936,"context_line":"                # involved in the claim. It\u0027s safe to retry the claim"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff346bd7_92ec5cf4","line":933,"updated":"2017-07-21 17:24:43.000000000","message":"it was on the list but got delayed by the spring constriction","commit_id":"dcc70d11e98d8279473b6585c3ed6b1546f26e95"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"67e28a1cccf4899d1050928dfac52cb13b6c4681","unresolved":false,"context_lines":[{"line_number":930,"context_line":"        r \u003d self.put(url, payload, version\u003d\u00271.10\u0027)"},{"line_number":931,"context_line":"        if r.status_code !\u003d 204:"},{"line_number":932,"context_line":"            # NOTE(jaypipes): Yes, it sucks doing string comparison like this"},{"line_number":933,"context_line":"            # but we have no error codes, only error messages."},{"line_number":934,"context_line":"            if attempt \u003c 3 and \u0027concurrently updated\u0027 in r.text:"},{"line_number":935,"context_line":"                # Another thread updated one or more of the resource providers"},{"line_number":936,"context_line":"                # involved in the claim. It\u0027s safe to retry the claim"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff346bd7_5e0ef2e5","line":933,"in_reply_to":"ff346bd7_92ec5cf4","updated":"2017-07-22 14:30:25.000000000","message":"https://review.openstack.org/#/c/418393/ yes?","commit_id":"dcc70d11e98d8279473b6585c3ed6b1546f26e95"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"829a78c13dfddf28f1b0aa11ca707126b13d6b0c","unresolved":false,"context_lines":[{"line_number":931,"context_line":"        if r.status_code !\u003d 204:"},{"line_number":932,"context_line":"            # NOTE(jaypipes): Yes, it sucks doing string comparison like this"},{"line_number":933,"context_line":"            # but we have no error codes, only error messages."},{"line_number":934,"context_line":"            if attempt \u003c 3 and \u0027concurrently updated\u0027 in r.text:"},{"line_number":935,"context_line":"                # Another thread updated one or more of the resource providers"},{"line_number":936,"context_line":"                # involved in the claim. It\u0027s safe to retry the claim"},{"line_number":937,"context_line":"                # transaction."}],"source_content_type":"text/x-python","patch_set":1,"id":"ff346bd7_12baacdd","line":934,"updated":"2017-07-21 17:24:43.000000000","message":"where does the choice of \u00273\u0027 come from?","commit_id":"dcc70d11e98d8279473b6585c3ed6b1546f26e95"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"67e28a1cccf4899d1050928dfac52cb13b6c4681","unresolved":false,"context_lines":[{"line_number":931,"context_line":"        if r.status_code !\u003d 204:"},{"line_number":932,"context_line":"            # NOTE(jaypipes): Yes, it sucks doing string comparison like this"},{"line_number":933,"context_line":"            # but we have no error codes, only error messages."},{"line_number":934,"context_line":"            if attempt \u003c 3 and \u0027concurrently updated\u0027 in r.text:"},{"line_number":935,"context_line":"                # Another thread updated one or more of the resource providers"},{"line_number":936,"context_line":"                # involved in the claim. It\u0027s safe to retry the claim"},{"line_number":937,"context_line":"                # transaction."}],"source_content_type":"text/x-python","patch_set":1,"id":"ff346bd7_1ef86ac2","line":934,"in_reply_to":"ff346bd7_12baacdd","updated":"2017-07-22 14:30:25.000000000","message":"I assume because that\u0027s the default for CONF.scheduler.max_attempts.","commit_id":"dcc70d11e98d8279473b6585c3ed6b1546f26e95"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"67e28a1cccf4899d1050928dfac52cb13b6c4681","unresolved":false,"context_lines":[{"line_number":935,"context_line":"                # Another thread updated one or more of the resource providers"},{"line_number":936,"context_line":"                # involved in the claim. It\u0027s safe to retry the claim"},{"line_number":937,"context_line":"                # transaction."},{"line_number":938,"context_line":"                LOG.debug(\"Another process changed the resource providers \""},{"line_number":939,"context_line":"                          \"involved in our claim attempt. Retrying claim.\")"},{"line_number":940,"context_line":"                return self.claim_resources(consumer_uuid, alloc_request,"},{"line_number":941,"context_line":"                    project_id, user_id, attempt\u003d(attempt + 1))"},{"line_number":942,"context_line":"            LOG.warning("}],"source_content_type":"text/x-python","patch_set":1,"id":"ff346bd7_befefeab","line":939,"range":{"start_line":938,"start_character":16,"end_line":939,"end_character":75},"updated":"2017-07-22 14:30:25.000000000","message":"nit: we could log the instance_uuid\u003dconsumer_uuid kwarg for context here, although we\u0027ll have the request ID from the context in the log so that\u0027s sufficient for tracing this.","commit_id":"dcc70d11e98d8279473b6585c3ed6b1546f26e95"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"ca73af2b481a3181f81601d3df679d30d30312b3","unresolved":false,"context_lines":[{"line_number":931,"context_line":"        if r.status_code !\u003d 204:"},{"line_number":932,"context_line":"            # NOTE(jaypipes): Yes, it sucks doing string comparison like this"},{"line_number":933,"context_line":"            # but we have no error codes, only error messages."},{"line_number":934,"context_line":"            if attempt \u003c 3 and \u0027concurrently updated\u0027 in r.text:"},{"line_number":935,"context_line":"                # Another thread updated one or more of the resource providers"},{"line_number":936,"context_line":"                # involved in the claim. It\u0027s safe to retry the claim"},{"line_number":937,"context_line":"                # transaction."}],"source_content_type":"text/x-python","patch_set":2,"id":"ff346bd7_8b719ee3","line":934,"range":{"start_line":934,"start_character":16,"end_line":934,"end_character":26},"updated":"2017-07-24 13:01:06.000000000","message":"should we set that for 3 only or should we rather use an existing conf opt like max_attempts ?","commit_id":"6ab42b77d293313ede24ebdd8bf5c576947c45e2"}],"nova/tests/unit/scheduler/client/test_report.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"67e28a1cccf4899d1050928dfac52cb13b6c4681","unresolved":false,"context_lines":[{"line_number":272,"context_line":"        resp_mocks \u003d ["},{"line_number":273,"context_line":"            mock.Mock("},{"line_number":274,"context_line":"                status_code\u003d409,"},{"line_number":275,"context_line":"                text\u003d\u0027Inventory changed while  attempting to allocate: \u0027"},{"line_number":276,"context_line":"                     \u0027Another thread concurrently updated the data. \u0027"},{"line_number":277,"context_line":"                     \u0027Please retry your update\u0027),"},{"line_number":278,"context_line":"            mock.Mock(status_code\u003d204),"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff346bd7_7e32d6a9","line":275,"range":{"start_line":275,"start_character":45,"end_line":275,"end_character":47},"updated":"2017-07-22 14:30:25.000000000","message":"uh oh!","commit_id":"dcc70d11e98d8279473b6585c3ed6b1546f26e95"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"67e28a1cccf4899d1050928dfac52cb13b6c4681","unresolved":false,"context_lines":[{"line_number":300,"context_line":"        expected_payload \u003d copy.deepcopy(alloc_req)"},{"line_number":301,"context_line":"        expected_payload[\u0027project_id\u0027] \u003d project_id"},{"line_number":302,"context_line":"        expected_payload[\u0027user_id\u0027] \u003d user_id"},{"line_number":303,"context_line":"        # We should have exactly two calls to the placement API that look"},{"line_number":304,"context_line":"        # identical since we\u0027re retrying the same HTTP request"},{"line_number":305,"context_line":"        expected_calls \u003d ["},{"line_number":306,"context_line":"            mock.call(expected_url, endpoint_filter\u003dmock.ANY,"},{"line_number":307,"context_line":"                headers\u003d{\u0027OpenStack-API-Version\u0027: \u0027placement 1.10\u0027},"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff346bd7_fe1da60f","line":304,"range":{"start_line":303,"start_character":8,"end_line":304,"end_character":62},"updated":"2017-07-22 14:30:25.000000000","message":"Melanie has pointed out before that assert_has_calls is a bit misleading in that it doesn\u0027t check the count, so if put() were called 3 times, this would pass. So we should also add self.assertEqual(2, call_count)","commit_id":"dcc70d11e98d8279473b6585c3ed6b1546f26e95"}]}
