)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8fb131b6c54b4088779f32d78aabded5588416cd","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Resource allocation test case:"},{"line_number":10,"context_line":"Initiate evacuation when no valid host to evacuate to and"},{"line_number":11,"context_line":"check all resource usages and allocations after."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Related-Bug: #1713783"},{"line_number":14,"context_line":"Change-Id: I4ced19bd9259f0b5a50b89dd5908abe35ca73894"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7f287b81_bd8bb9bd","line":12,"updated":"2017-08-31 10:41:00.000000000","message":"I suggest to not here that this test case uncovers a bug and therefore contains some asserts that checks the bad behavior","commit_id":"e8072169a5b0fb5b9f7323d0f0c3a43d0b0848b1"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"4f72cc5636602a75cf33f45badaaa0f3ee99ac69","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Resource allocation test case:"},{"line_number":10,"context_line":"Initiate evacuation when no valid host to evacuate to and"},{"line_number":11,"context_line":"check all resource usages and allocations after."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Related-Bug: #1713783"},{"line_number":14,"context_line":"Change-Id: I4ced19bd9259f0b5a50b89dd5908abe35ca73894"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9f5c4f37_2d730783","line":12,"in_reply_to":"7f287b81_bd8bb9bd","updated":"2017-09-21 12:24:32.000000000","message":"Bug is fixed already, but a comment added about it. Done.","commit_id":"e8072169a5b0fb5b9f7323d0f0c3a43d0b0848b1"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"dcaf6a2779e1160f662957d009449d897b32ec8c","unresolved":false,"context_lines":[{"line_number":11,"context_line":"check all resource usages and allocations after."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This testcase uncovered the bug below. Bug is fixed already, so the"},{"line_number":14,"context_line":"test contains asserts the correct behavior now."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Related-Bug: #1713783"},{"line_number":17,"context_line":"Change-Id: I4ced19bd9259f0b5a50b89dd5908abe35ca73894"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"5f4e5783_1404e27a","line":14,"range":{"start_line":14,"start_character":14,"end_line":14,"end_character":33},"updated":"2017-10-10 05:22:00.000000000","message":"Perhaps: ...asserts that cover the correct behavior... ?","commit_id":"c11c2c54c522fd6e04dd3f5779a7395e42401f9b"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"82d53ee0b3e2d6d1b4f6b5b195371c2c63260586","unresolved":false,"context_lines":[{"line_number":11,"context_line":"check all resource usages and allocations after."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This testcase uncovered the bug below. Bug is fixed already, so the"},{"line_number":14,"context_line":"test contains asserts the correct behavior now."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Related-Bug: #1713783"},{"line_number":17,"context_line":"Change-Id: I4ced19bd9259f0b5a50b89dd5908abe35ca73894"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"5f4e5783_9836bcb4","line":14,"range":{"start_line":14,"start_character":14,"end_line":14,"end_character":33},"in_reply_to":"5f4e5783_1404e27a","updated":"2017-10-10 10:20:45.000000000","message":"Done","commit_id":"c11c2c54c522fd6e04dd3f5779a7395e42401f9b"}],"nova/tests/functional/test_servers.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"dec149bd21d6bb695acab3e48b7e893b716067ac","unresolved":false,"context_lines":[{"line_number":1621,"context_line":"        # because there is no other host to evacuate to"},{"line_number":1622,"context_line":"        expected_params \u003d {\u0027OS-EXT-SRV-ATTR:host\u0027: source_hostname,"},{"line_number":1623,"context_line":"                           \u0027status\u0027: \u0027ACTIVE\u0027}"},{"line_number":1624,"context_line":"        server \u003d self._wait_for_server_parameter(self.api, server,"},{"line_number":1625,"context_line":"                                                 expected_params)"},{"line_number":1626,"context_line":""},{"line_number":1627,"context_line":"        # Restart source host"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f287b81_b90c31ec","line":1624,"updated":"2017-08-29 09:53:21.000000000","message":"This could return earlier than the scheduling of the evacuation really started as the instance was in ACTIVE state in the source host in that case as well.\nI suggest to either try to match for the task_state of the instance that is updated to REBUILDING before the scheduling or wait for the instance.evacuate notification","commit_id":"6bcfe571550e7d625420df2b6e97889f1fddf430"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8fb131b6c54b4088779f32d78aabded5588416cd","unresolved":false,"context_lines":[{"line_number":1626,"context_line":"            source_compute_id, {\u0027forced_down\u0027: \u0027true\u0027})"},{"line_number":1627,"context_line":""},{"line_number":1628,"context_line":"        fake_notifier.stub_notifier(self)"},{"line_number":1629,"context_line":"        fake_notifier.NOTIFICATIONS \u003d []"},{"line_number":1630,"context_line":""},{"line_number":1631,"context_line":"        # Initiate evacuation"},{"line_number":1632,"context_line":"        post \u003d {\u0027evacuate\u0027: {}}"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_5d9df507","line":1629,"updated":"2017-08-31 10:41:00.000000000","message":"There is fake_notifier.reset() for this.","commit_id":"e8072169a5b0fb5b9f7323d0f0c3a43d0b0848b1"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"4f72cc5636602a75cf33f45badaaa0f3ee99ac69","unresolved":false,"context_lines":[{"line_number":1626,"context_line":"            source_compute_id, {\u0027forced_down\u0027: \u0027true\u0027})"},{"line_number":1627,"context_line":""},{"line_number":1628,"context_line":"        fake_notifier.stub_notifier(self)"},{"line_number":1629,"context_line":"        fake_notifier.NOTIFICATIONS \u003d []"},{"line_number":1630,"context_line":""},{"line_number":1631,"context_line":"        # Initiate evacuation"},{"line_number":1632,"context_line":"        post \u003d {\u0027evacuate\u0027: {}}"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f5c4f37_6d0e9fe6","line":1629,"in_reply_to":"7f287b81_5d9df507","updated":"2017-09-21 12:24:32.000000000","message":"Done","commit_id":"e8072169a5b0fb5b9f7323d0f0c3a43d0b0848b1"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8fb131b6c54b4088779f32d78aabded5588416cd","unresolved":false,"context_lines":[{"line_number":1634,"context_line":""},{"line_number":1635,"context_line":"        # NOTE(elod.illes): Should be changed to non-polling solution when"},{"line_number":1636,"context_line":"        # patch https://review.openstack.org/#/c/489637/ gets merged"},{"line_number":1637,"context_line":"        self._wait_for_notification_event_type(\u0027compute_task.rebuild_server\u0027)"},{"line_number":1638,"context_line":""},{"line_number":1639,"context_line":"        self._run_periodics()"},{"line_number":1640,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_dd744500","line":1637,"updated":"2017-08-31 10:41:00.000000000","message":"Actually you either need https://review.openstack.org/#/c/489654 to be able to wait for unversioned notifications or need https://review.openstack.org/#/c/482629/ to have the conductor rebuild notification to transformed to versioned notification.\n(This was my mistake about the exact patch when we discussed this patch offline)","commit_id":"e8072169a5b0fb5b9f7323d0f0c3a43d0b0848b1"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8fb131b6c54b4088779f32d78aabded5588416cd","unresolved":false,"context_lines":[{"line_number":1652,"context_line":"        self.assertEqual(server[\u0027id\u0027], migrations[0][\u0027instance_uuid\u0027])"},{"line_number":1653,"context_line":"        self.assertEqual(source_hostname, migrations[0][\u0027source_compute\u0027])"},{"line_number":1654,"context_line":"        self.assertEqual(\u0027accepted\u0027, migrations[0][\u0027status\u0027])"},{"line_number":1655,"context_line":"        # NOTE(elod.illes): Should be \u0027failed\u0027 and not \u0027accepted\u0027"},{"line_number":1656,"context_line":"        # self.assertEqual(\u0027failed\u0027, migrations[0][\u0027status\u0027])"},{"line_number":1657,"context_line":""},{"line_number":1658,"context_line":"        # Restart source host"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_7dc311ee","line":1655,"updated":"2017-08-31 10:41:00.000000000","message":"I would add a bug number here","commit_id":"e8072169a5b0fb5b9f7323d0f0c3a43d0b0848b1"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"4f72cc5636602a75cf33f45badaaa0f3ee99ac69","unresolved":false,"context_lines":[{"line_number":1652,"context_line":"        self.assertEqual(server[\u0027id\u0027], migrations[0][\u0027instance_uuid\u0027])"},{"line_number":1653,"context_line":"        self.assertEqual(source_hostname, migrations[0][\u0027source_compute\u0027])"},{"line_number":1654,"context_line":"        self.assertEqual(\u0027accepted\u0027, migrations[0][\u0027status\u0027])"},{"line_number":1655,"context_line":"        # NOTE(elod.illes): Should be \u0027failed\u0027 and not \u0027accepted\u0027"},{"line_number":1656,"context_line":"        # self.assertEqual(\u0027failed\u0027, migrations[0][\u0027status\u0027])"},{"line_number":1657,"context_line":""},{"line_number":1658,"context_line":"        # Restart source host"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f5c4f37_add25733","line":1655,"in_reply_to":"7f287b81_7dc311ee","updated":"2017-09-21 12:24:32.000000000","message":"Since bug is fixed, there\u0027s no need for the comment (and the bug number) here.","commit_id":"e8072169a5b0fb5b9f7323d0f0c3a43d0b0848b1"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"dcaf6a2779e1160f662957d009449d897b32ec8c","unresolved":false,"context_lines":[{"line_number":1637,"context_line":"        self.admin_api.put_service("},{"line_number":1638,"context_line":"            source_compute_id, {\u0027forced_down\u0027: \u0027true\u0027})"},{"line_number":1639,"context_line":""},{"line_number":1640,"context_line":"        fake_notifier.stub_notifier(self)"},{"line_number":1641,"context_line":"        fake_notifier.reset()"},{"line_number":1642,"context_line":""},{"line_number":1643,"context_line":"        # Initiate evacuation"},{"line_number":1644,"context_line":"        post \u003d {\u0027evacuate\u0027: {}}"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f4e5783_f426e616","line":1641,"range":{"start_line":1640,"start_character":8,"end_line":1641,"end_character":29},"updated":"2017-10-10 05:22:00.000000000","message":"Could you add a short comment why this is necessary?","commit_id":"c11c2c54c522fd6e04dd3f5779a7395e42401f9b"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"82d53ee0b3e2d6d1b4f6b5b195371c2c63260586","unresolved":false,"context_lines":[{"line_number":1637,"context_line":"        self.admin_api.put_service("},{"line_number":1638,"context_line":"            source_compute_id, {\u0027forced_down\u0027: \u0027true\u0027})"},{"line_number":1639,"context_line":""},{"line_number":1640,"context_line":"        fake_notifier.stub_notifier(self)"},{"line_number":1641,"context_line":"        fake_notifier.reset()"},{"line_number":1642,"context_line":""},{"line_number":1643,"context_line":"        # Initiate evacuation"},{"line_number":1644,"context_line":"        post \u003d {\u0027evacuate\u0027: {}}"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f4e5783_38a908df","line":1641,"range":{"start_line":1640,"start_character":8,"end_line":1641,"end_character":29},"in_reply_to":"5f4e5783_f426e616","updated":"2017-10-10 10:20:45.000000000","message":"I hope this is what you meant. :) In that case: Done.","commit_id":"c11c2c54c522fd6e04dd3f5779a7395e42401f9b"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"dcaf6a2779e1160f662957d009449d897b32ec8c","unresolved":false,"context_lines":[{"line_number":1645,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], post)"},{"line_number":1646,"context_line":""},{"line_number":1647,"context_line":"        # NOTE(elod.illes): Should be changed to non-polling solution when"},{"line_number":1648,"context_line":"        # patch https://review.openstack.org/#/c/489654/ gets merged"},{"line_number":1649,"context_line":"        self._wait_for_notification_event_type(\u0027compute_task.rebuild_server\u0027)"},{"line_number":1650,"context_line":""},{"line_number":1651,"context_line":"        self._run_periodics()"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f4e5783_94e0d298","line":1648,"range":{"start_line":1648,"start_character":10,"end_line":1648,"end_character":68},"updated":"2017-10-10 05:22:00.000000000","message":"The patch is abandoned. I suppose one of these should be the one good for you:\nhttps://review.openstack.org/#/q/topic:bug/1686703","commit_id":"c11c2c54c522fd6e04dd3f5779a7395e42401f9b"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"82d53ee0b3e2d6d1b4f6b5b195371c2c63260586","unresolved":false,"context_lines":[{"line_number":1645,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], post)"},{"line_number":1646,"context_line":""},{"line_number":1647,"context_line":"        # NOTE(elod.illes): Should be changed to non-polling solution when"},{"line_number":1648,"context_line":"        # patch https://review.openstack.org/#/c/489654/ gets merged"},{"line_number":1649,"context_line":"        self._wait_for_notification_event_type(\u0027compute_task.rebuild_server\u0027)"},{"line_number":1650,"context_line":""},{"line_number":1651,"context_line":"        self._run_periodics()"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f4e5783_18c52c8f","line":1648,"range":{"start_line":1648,"start_character":10,"end_line":1648,"end_character":68},"in_reply_to":"5f4e5783_94e0d298","updated":"2017-10-10 10:20:45.000000000","message":"Thanks, yes, updated.","commit_id":"c11c2c54c522fd6e04dd3f5779a7395e42401f9b"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"87ad5034bbc5b44a63aa99393ac6570ff413716b","unresolved":false,"context_lines":[{"line_number":1662,"context_line":"                self.fail(\u0027Wait for notification event type (%s) failed\u0027"},{"line_number":1663,"context_line":"                          % event_type)"},{"line_number":1664,"context_line":"            retry_counter +\u003d 1"},{"line_number":1665,"context_line":"            time.sleep(0.5)"},{"line_number":1666,"context_line":""},{"line_number":1667,"context_line":"    def test_evacuate_with_no_compute(self):"},{"line_number":1668,"context_line":"        source_hostname \u003d self.compute1.host"}],"source_content_type":"text/x-python","patch_set":8,"id":"1f485f77_f3048a7d","line":1665,"range":{"start_line":1665,"start_character":23,"end_line":1665,"end_character":26},"updated":"2017-11-13 08:25:28.000000000","message":"To keep the test execution time minimal could you try it with 0.1, please?","commit_id":"874e7cedf7b0b223c7c8637e4634f5fee6b07d85"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"bc7cf6c13f714cffb9a7bac117f2503bf8a0fa95","unresolved":false,"context_lines":[{"line_number":1662,"context_line":"                self.fail(\u0027Wait for notification event type (%s) failed\u0027"},{"line_number":1663,"context_line":"                          % event_type)"},{"line_number":1664,"context_line":"            retry_counter +\u003d 1"},{"line_number":1665,"context_line":"            time.sleep(0.5)"},{"line_number":1666,"context_line":""},{"line_number":1667,"context_line":"    def test_evacuate_with_no_compute(self):"},{"line_number":1668,"context_line":"        source_hostname \u003d self.compute1.host"}],"source_content_type":"text/x-python","patch_set":8,"id":"1f485f77_da8cf180","line":1665,"range":{"start_line":1665,"start_character":23,"end_line":1665,"end_character":26},"in_reply_to":"1f485f77_f3048a7d","updated":"2017-11-13 17:39:50.000000000","message":"Thanks for the review! Done.","commit_id":"874e7cedf7b0b223c7c8637e4634f5fee6b07d85"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ebedafe5931d1488e03d0999364147742b84248a","unresolved":false,"context_lines":[{"line_number":1735,"context_line":"        dest_usages \u003d self._get_provider_usages(dest_rp_uuid)"},{"line_number":1736,"context_line":"        self.assertEqual(zero_usage, dest_usages)"},{"line_number":1737,"context_line":""},{"line_number":1738,"context_line":"        self._delete_and_check_allocations("},{"line_number":1739,"context_line":"            server, source_rp_uuid, dest_rp_uuid)"},{"line_number":1740,"context_line":""},{"line_number":1741,"context_line":"    def test_evacuate(self):"},{"line_number":1742,"context_line":"        source_hostname \u003d self.compute1.host"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f93b717_3ad36cd7","line":1739,"range":{"start_line":1738,"start_character":0,"end_line":1739,"end_character":49},"updated":"2018-01-31 08:33:55.000000000","message":"This needs to be change as the signature of the function changed in during the rebase. Just pass a single \u0027server\u0027 parameter to make the functional test pass.","commit_id":"39f666d61210effaa12583751b07185a4dcb2e76"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"7b117d5b92b768d8d1e269151b5663f2715c8ab3","unresolved":false,"context_lines":[{"line_number":1735,"context_line":"        dest_usages \u003d self._get_provider_usages(dest_rp_uuid)"},{"line_number":1736,"context_line":"        self.assertEqual(zero_usage, dest_usages)"},{"line_number":1737,"context_line":""},{"line_number":1738,"context_line":"        self._delete_and_check_allocations("},{"line_number":1739,"context_line":"            server, source_rp_uuid, dest_rp_uuid)"},{"line_number":1740,"context_line":""},{"line_number":1741,"context_line":"    def test_evacuate(self):"},{"line_number":1742,"context_line":"        source_hostname \u003d self.compute1.host"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f93b717_a80644cd","line":1739,"range":{"start_line":1738,"start_character":0,"end_line":1739,"end_character":49},"in_reply_to":"5f93b717_3ad36cd7","updated":"2018-01-31 17:32:29.000000000","message":"Done","commit_id":"39f666d61210effaa12583751b07185a4dcb2e76"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ca09c622e414d7bacf6a499fa154f27fff4a6caf","unresolved":false,"context_lines":[{"line_number":2034,"context_line":""},{"line_number":2035,"context_line":"        self._run_periodics()"},{"line_number":2036,"context_line":""},{"line_number":2037,"context_line":"        # Check that instance remained ACTIVE on source compute"},{"line_number":2038,"context_line":"        # because there is no other host to evacuate to"},{"line_number":2039,"context_line":"        expected_params \u003d {\u0027OS-EXT-SRV-ATTR:host\u0027: source_hostname,"},{"line_number":2040,"context_line":"                           \u0027status\u0027: \u0027ERROR\u0027}"},{"line_number":2041,"context_line":"        server \u003d self._wait_for_server_parameter(self.api, server,"}],"source_content_type":"text/x-python","patch_set":11,"id":"5f93b717_39983173","line":2038,"range":{"start_line":2037,"start_character":8,"end_line":2038,"end_character":55},"updated":"2018-02-01 13:40:48.000000000","message":"this needs to be synced with the code change below","commit_id":"2f85ba31973628b3cab4c3977e7d01dbe3ab575a"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"063f9fe9943f2e21511bd0333e326aa865c548aa","unresolved":false,"context_lines":[{"line_number":2034,"context_line":""},{"line_number":2035,"context_line":"        self._run_periodics()"},{"line_number":2036,"context_line":""},{"line_number":2037,"context_line":"        # Check that instance remained ACTIVE on source compute"},{"line_number":2038,"context_line":"        # because there is no other host to evacuate to"},{"line_number":2039,"context_line":"        expected_params \u003d {\u0027OS-EXT-SRV-ATTR:host\u0027: source_hostname,"},{"line_number":2040,"context_line":"                           \u0027status\u0027: \u0027ERROR\u0027}"},{"line_number":2041,"context_line":"        server \u003d self._wait_for_server_parameter(self.api, server,"}],"source_content_type":"text/x-python","patch_set":11,"id":"5f93b717_fc04f716","line":2038,"range":{"start_line":2037,"start_character":8,"end_line":2038,"end_character":55},"in_reply_to":"5f93b717_39983173","updated":"2018-02-01 14:03:58.000000000","message":"oh, thanks, fixed.","commit_id":"2f85ba31973628b3cab4c3977e7d01dbe3ab575a"}]}
