)]}'
{"nova/tests/functional/regressions/test_bug_1741125.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"44909cabb0676e29fb6dcc7556202fac92cac0c7","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"class TestServerResizeReschedule(ProviderUsageBaseTestCase,"},{"line_number":19,"context_line":"        integrated_helpers.InstanceHelperMixin):"},{"line_number":20,"context_line":"    \"\"\"Regression test for bug #1741125"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    During testing in the alternate host series, it was found that retries"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_2ab570cd","line":19,"range":{"start_line":19,"start_character":27,"end_line":19,"end_character":46},"updated":"2018-01-08 14:47:35.000000000","message":"ProviderUsageBaseTestCase already uses InstanceHelperMixin.","commit_id":"3afaf4eac6613dd38cf0c16066f888c734bfd113"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"44909cabb0676e29fb6dcc7556202fac92cac0c7","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        super(TestServerResizeReschedule, self).setUp()"},{"line_number":36,"context_line":"        self.compute1 \u003d self._start_compute(host\u003d\u0027host1\u0027)"},{"line_number":37,"context_line":"        self.compute2 \u003d self._start_compute(host\u003d\u0027host2\u0027)"},{"line_number":38,"context_line":"        self.compute3 \u003d self._start_compute(host\u003d\u0027host3\u0027)"},{"line_number":39,"context_line":"        self.compute4 \u003d self._start_compute(host\u003d\u0027host4\u0027)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        flavors \u003d self.api.get_flavors()"},{"line_number":42,"context_line":"        self.flavor1 \u003d flavors[0]"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_f648d487","line":39,"range":{"start_line":38,"start_character":8,"end_line":39,"end_character":57},"updated":"2018-01-08 14:47:35.000000000","message":"Why do we need the other 2 hosts for this if we\u0027re only going to fail and reschedule from the first host? I assume because of alternate hosts and max_attempts\u003d3, but seems unnecessary.","commit_id":"3afaf4eac6613dd38cf0c16066f888c734bfd113"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"44909cabb0676e29fb6dcc7556202fac92cac0c7","unresolved":false,"context_lines":[{"line_number":46,"context_line":"            self.flavor1, self.flavor2 \u003d self.flavor2, self.flavor1"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def test_resize_reschedule_uses_host_lists(self):"},{"line_number":49,"context_line":"        \"\"\"Test that when a resize attempt fails, the retry comes from the"},{"line_number":50,"context_line":"        supplied host_list, and does not call the scheduler."},{"line_number":51,"context_line":"        \"\"\""},{"line_number":52,"context_line":"        server_req \u003d self._build_minimal_create_server_request("},{"line_number":53,"context_line":"                self.api, \u0027some-server\u0027, flavor_id\u003dself.flavor1[\u0027id\u0027],"},{"line_number":54,"context_line":"                image_uuid\u003d\u0027155d900f-4e14-4e4c-a73d-069cbf4541e6\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_b6756ccd","line":51,"range":{"start_line":49,"start_character":8,"end_line":51,"end_character":11},"updated":"2018-01-08 14:47:35.000000000","message":"This is a bit odd when this patch is coming before the patch that adds host_list to the resize flow for alternate hosts.","commit_id":"3afaf4eac6613dd38cf0c16066f888c734bfd113"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"44909cabb0676e29fb6dcc7556202fac92cac0c7","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        disk_config \u003d server[\"OS-DCF:diskConfig\"]"},{"line_number":76,"context_line":"        server_uuid \u003d server[\"id\"]"},{"line_number":77,"context_line":"        data \u003d {\"resize\": {\"flavorRef\": \"2\", \"OS-DCF:diskConfig\": disk_config}}"},{"line_number":78,"context_line":"        self.api.post_server_action(server_uuid, data)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        # TODO(edleafe): Remove this when the bug is fixed, and uncomment the"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_4a6234b0","line":77,"range":{"start_line":77,"start_character":45,"end_line":77,"end_character":77},"updated":"2018-01-08 14:47:35.000000000","message":"nit: this is an optional parameter so I\u0027d just omit it for simplicity.","commit_id":"3afaf4eac6613dd38cf0c16066f888c734bfd113"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1a827e79ec47908b56ae34ee95156bce69ce69c4","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        disk_config \u003d server[\"OS-DCF:diskConfig\"]"},{"line_number":76,"context_line":"        server_uuid \u003d server[\"id\"]"},{"line_number":77,"context_line":"        data \u003d {\"resize\": {\"flavorRef\": \"2\", \"OS-DCF:diskConfig\": disk_config}}"},{"line_number":78,"context_line":"        self.api.post_server_action(server_uuid, data)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        # TODO(edleafe): Remove this when the bug is fixed, and uncomment the"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_6a537840","line":77,"range":{"start_line":77,"start_character":40,"end_line":77,"end_character":43},"updated":"2018-01-08 14:53:18.000000000","message":"self.flavor2[\u0027id\u0027]","commit_id":"3afaf4eac6613dd38cf0c16066f888c734bfd113"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"44909cabb0676e29fb6dcc7556202fac92cac0c7","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        # TODO(edleafe): Remove this when the bug is fixed, and uncomment the"},{"line_number":81,"context_line":"        # block below that relies on the fix."},{"line_number":82,"context_line":"        self.assertRaises(AssertionError, self._wait_for_state_change,"},{"line_number":83,"context_line":"                self.api, created_server, \u0027VERIFY_RESIZE\u0027)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        # Un-comment this when the bug is fixed."}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_aa1660f0","line":82,"updated":"2018-01-08 14:47:35.000000000","message":"Could be a bit tighter by doing something like:\n\nex \u003d self.assertRaises(AssertionError, ...)\nself.assertIn(\u0027Wait for state change failed\u0027, six.text_type(ex))\n\nAlternatively, I think if you used the CastAsCall fixture, the post_server_action above should fail with HTTPBadRequest with something like \"Exceeded max scheduling attempts\" in the message.","commit_id":"3afaf4eac6613dd38cf0c16066f888c734bfd113"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4c1e76e3367674471964a4395d207660df00f693","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        # TODO(edleafe): Remove this when the bug is fixed, and uncomment the"},{"line_number":81,"context_line":"        # block below that relies on the fix."},{"line_number":82,"context_line":"        self.assertRaises(AssertionError, self._wait_for_state_change,"},{"line_number":83,"context_line":"                self.api, created_server, \u0027VERIFY_RESIZE\u0027)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        # Un-comment this when the bug is fixed."}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_edb0028d","line":82,"in_reply_to":"9f91af0f_aa1660f0","updated":"2018-01-08 15:21:43.000000000","message":"\u003e Alternatively, I think if you used the CastAsCall fixture, the post_server_action above should fail with HTTPBadRequest with something like \"Exceeded max scheduling attempts\" in the message.\n\nActually that\u0027s not what happens, seen here:\n\nhttp://paste.openstack.org/show/640953/\n\nAnd arguably we shouldn\u0027t use CastAsCall in a functional regression test since it masks real API behavior that the user would see.","commit_id":"3afaf4eac6613dd38cf0c16066f888c734bfd113"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"348222b45baf97568059f7d47d25533acf80f31c","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def setUp(self):"},{"line_number":33,"context_line":"        super(TestServerResizeReschedule, self).setUp()"},{"line_number":34,"context_line":"        self.compute1 \u003d self._start_compute(host\u003d\u0027host1\u0027)"},{"line_number":35,"context_line":"        self.compute2 \u003d self._start_compute(host\u003d\u0027host2\u0027)"},{"line_number":36,"context_line":"        self.compute3 \u003d self._start_compute(host\u003d\u0027host3\u0027)"},{"line_number":37,"context_line":"        self.compute4 \u003d self._start_compute(host\u003d\u0027host4\u0027)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        flavors \u003d self.api.get_flavors()"},{"line_number":40,"context_line":"        self.flavor1 \u003d flavors[0]"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f91af0f_23cfdbb0","line":37,"range":{"start_line":34,"start_character":8,"end_line":37,"end_character":57},"updated":"2018-01-08 15:57:07.000000000","message":"We really only need 2 hosts, and don\u0027t need to store them in variables since they aren\u0027t used.","commit_id":"1ce8428f162679a52846b65ba1574090283922f2"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"316249486daa86796b23074576f4e77235a645e6","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            # Make sure that flavor1 is smaller"},{"line_number":44,"context_line":"            self.flavor1, self.flavor2 \u003d self.flavor2, self.flavor1"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def test_resize_reschedule_uses_host_lists(self):"},{"line_number":47,"context_line":"        \"\"\"Test that when a resize attempt fails, the retry comes from the"},{"line_number":48,"context_line":"        supplied host_list, and does not call the scheduler."},{"line_number":49,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f91af0f_79fb5046","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":46},"updated":"2018-01-08 17:18:08.000000000","message":"@Matt - your answer to the 4 hosts is here: this was the original intent of the test, but when the race bug was encountered, I changed this to a regression test, but never updated the name. :)\n\nIf we need to update this patch, I\u0027d suggest renaming this test.","commit_id":"1ce8428f162679a52846b65ba1574090283922f2"}]}
