)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"66b217f6da154f9529f179345dadc8b8114da671","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add functional migrate force_complete test"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Force complete was failing in the same way as live migration."},{"line_number":10,"context_line":"This adds a test for that path as well."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Co-Authored-By: Dan Smith \u003cdms@danplanet.com\u003e"},{"line_number":13,"context_line":"Related-Bug: #1712045"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7f287b81_0c70badb","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":39},"updated":"2017-08-28 13:47:45.000000000","message":"It seems to me that the problem already fixed and the test was updated accordingly so this sentence is not valid any more.","commit_id":"2023efae7e1b722bd41f34050dd8fdf7cc11b5cf"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"ab12ae55da9622e0fee8879a80ef8d3ecc212c01","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add functional migrate force_complete test"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Force complete was failing in the same way as live migration."},{"line_number":10,"context_line":"This adds a test for that path as well."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Co-Authored-By: Dan Smith \u003cdms@danplanet.com\u003e"},{"line_number":13,"context_line":"Related-Bug: #1712045"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7f287b81_92010708","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":39},"in_reply_to":"7f287b81_0c70badb","updated":"2017-08-31 11:54:25.000000000","message":"Done","commit_id":"2023efae7e1b722bd41f34050dd8fdf7cc11b5cf"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"aa7ece7a0359bc2d656f6214cf48277458310993","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2017-09-06 09:27:49 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add functional migrate force_complete test"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Co-Authored-By: Dan Smith \u003cdms@danplanet.com\u003e"},{"line_number":10,"context_line":"Related-Bug: #1712045"},{"line_number":11,"context_line":"Change-Id: If958e64eda1260a8dd08078de2dae167c6a147bc"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"7f287b81_354abd54","line":8,"updated":"2017-09-06 13:50:06.000000000","message":"Could you shortly explain the reason of the change in the rpc.py based on my comments in patch set 5?","commit_id":"56e0d07bbde220d2129aeafe7ea1c60a7a11e774"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"b4e6f21c115fee9728b94b17a7d782583a26431c","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2017-09-06 09:27:49 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add functional migrate force_complete test"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Co-Authored-By: Dan Smith \u003cdms@danplanet.com\u003e"},{"line_number":10,"context_line":"Related-Bug: #1712045"},{"line_number":11,"context_line":"Change-Id: If958e64eda1260a8dd08078de2dae167c6a147bc"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"5f2577a7_03d42b1f","line":8,"in_reply_to":"7f287b81_354abd54","updated":"2017-09-14 03:41:17.000000000","message":"Something like this? I am not really familiar with the notification history:-)","commit_id":"56e0d07bbde220d2129aeafe7ea1c60a7a11e774"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4d9c282206f972343c12b7cbe2477b77ac2a9f4e","unresolved":false,"context_lines":[{"line_number":9,"context_line":"In rpc.py the migration force_complete start and end legacy events must"},{"line_number":10,"context_line":"be whitelisted as it seems that these legacy notification were added to"},{"line_number":11,"context_line":"nova."},{"line_number":12,"context_line":"The patch https://review.openstack.org/#/c/480561/ also contains tests"},{"line_number":13,"context_line":"for the legacy events for migration force_complete, and thus it contains"},{"line_number":14,"context_line":"the whitelisting as well."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Co-Authored-By: Dan Smith \u003cdms@danplanet.com\u003e"},{"line_number":17,"context_line":"Related-Bug: #1712045"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"bf57530f_b5505534","line":14,"range":{"start_line":12,"start_character":0,"end_line":14,"end_character":25},"updated":"2017-09-20 16:08:14.000000000","message":"I\u0027m not sure why this is pointed out...it\u0027s a competing patch for essentially the same thing isn\u0027t it?\n\nBasically, we have a bug where these force complete notifications weren\u0027t whitelisted because they weren\u0027t tested anywhere, so we\u0027re whitelisting them and adding a test.","commit_id":"460d9bcff919f2a7a33946600833fbb55aab37eb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4d9c282206f972343c12b7cbe2477b77ac2a9f4e","unresolved":false,"context_lines":[{"line_number":14,"context_line":"the whitelisting as well."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Co-Authored-By: Dan Smith \u003cdms@danplanet.com\u003e"},{"line_number":17,"context_line":"Related-Bug: #1712045"},{"line_number":18,"context_line":"Change-Id: If958e64eda1260a8dd08078de2dae167c6a147bc"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"bf57530f_55b1198f","line":17,"updated":"2017-09-20 16:08:14.000000000","message":"This seems like a different bug...","commit_id":"460d9bcff919f2a7a33946600833fbb55aab37eb"}],"nova/rpc.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"461ced17f6b21b2e4ffc68b185088ed240cda876","unresolved":false,"context_lines":[{"line_number":282,"context_line":"        # See the original patch: https://review.openstack.org/480561"},{"line_number":283,"context_line":"        \u0027compute.instance.live.migration.force.complete.start\u0027,"},{"line_number":284,"context_line":"        \u0027compute.instance.live.migration.force.complete.end\u0027,"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        \u0027compute.instance.live_migration.post.dest.end\u0027,"},{"line_number":287,"context_line":"        \u0027compute.instance.live_migration.post.dest.start\u0027,"},{"line_number":288,"context_line":"        \u0027compute.instance.live_migration._post.end\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f287b81_b8e2962e","line":285,"updated":"2017-08-22 13:55:58.000000000","message":"I don\u0027t think we need these extra comments and whitespace here.","commit_id":"b5fb66b866d47368bca1b8067ddb01a6690b3f53"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4d9c282206f972343c12b7cbe2477b77ac2a9f4e","unresolved":false,"context_lines":[{"line_number":276,"context_line":"        \u0027compute.instance.finish_resize.start\u0027,"},{"line_number":277,"context_line":"        \u0027compute.instance.live.migration.abort.start\u0027,"},{"line_number":278,"context_line":"        \u0027compute.instance.live.migration.abort.end\u0027,"},{"line_number":279,"context_line":"        \u0027compute.instance.live.migration.force.complete.start\u0027,"},{"line_number":280,"context_line":"        \u0027compute.instance.live.migration.force.complete.end\u0027,"},{"line_number":281,"context_line":"        \u0027compute.instance.live_migration.post.dest.end\u0027,"},{"line_number":282,"context_line":"        \u0027compute.instance.live_migration.post.dest.start\u0027,"},{"line_number":283,"context_line":"        \u0027compute.instance.live_migration._post.end\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf57530f_753f7dd6","line":280,"range":{"start_line":279,"start_character":8,"end_line":280,"end_character":61},"updated":"2017-09-20 16:08:14.000000000","message":"If you\u0027re going to munge this in, we should validate that these notifications are sent, right?","commit_id":"460d9bcff919f2a7a33946600833fbb55aab37eb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7f8d91b06d9177da95e938a763765ba3494451ac","unresolved":false,"context_lines":[{"line_number":276,"context_line":"        \u0027compute.instance.finish_resize.start\u0027,"},{"line_number":277,"context_line":"        \u0027compute.instance.live.migration.abort.start\u0027,"},{"line_number":278,"context_line":"        \u0027compute.instance.live.migration.abort.end\u0027,"},{"line_number":279,"context_line":"        \u0027compute.instance.live.migration.force.complete.start\u0027,"},{"line_number":280,"context_line":"        \u0027compute.instance.live.migration.force.complete.end\u0027,"},{"line_number":281,"context_line":"        \u0027compute.instance.live_migration.post.dest.end\u0027,"},{"line_number":282,"context_line":"        \u0027compute.instance.live_migration.post.dest.start\u0027,"},{"line_number":283,"context_line":"        \u0027compute.instance.live_migration._post.end\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf57530f_b09f43b3","line":280,"range":{"start_line":279,"start_character":8,"end_line":280,"end_character":61},"in_reply_to":"bf57530f_753f7dd6","updated":"2017-09-20 16:11:08.000000000","message":"Here is an example for a similar bug.\n\nhttps://review.openstack.org/#/c/504978/","commit_id":"460d9bcff919f2a7a33946600833fbb55aab37eb"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1ecc1c696cd3768c51022209695ab8fa55084af8","unresolved":false,"context_lines":[{"line_number":276,"context_line":"        \u0027compute.instance.finish_resize.start\u0027,"},{"line_number":277,"context_line":"        \u0027compute.instance.live.migration.abort.start\u0027,"},{"line_number":278,"context_line":"        \u0027compute.instance.live.migration.abort.end\u0027,"},{"line_number":279,"context_line":"        \u0027compute.instance.live.migration.force.complete.start\u0027,"},{"line_number":280,"context_line":"        \u0027compute.instance.live.migration.force.complete.end\u0027,"},{"line_number":281,"context_line":"        \u0027compute.instance.live_migration.post.dest.end\u0027,"},{"line_number":282,"context_line":"        \u0027compute.instance.live_migration.post.dest.start\u0027,"},{"line_number":283,"context_line":"        \u0027compute.instance.live_migration._post.end\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"9f5c4f37_5c182f80","line":280,"range":{"start_line":279,"start_character":8,"end_line":280,"end_character":61},"in_reply_to":"bf57530f_b09f43b3","updated":"2017-09-21 10:48:30.000000000","message":"Done in a separate patch","commit_id":"460d9bcff919f2a7a33946600833fbb55aab37eb"}],"nova/tests/functional/api/client.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"178daef59a78523ca36e0654ed3b74c0f01ddd63","unresolved":false,"context_lines":[{"line_number":453,"context_line":"    def force_complete_migration(self, server_id, migration_id):"},{"line_number":454,"context_line":"        return self.api_post("},{"line_number":455,"context_line":"            \u0027/servers/%s/migrations/%s/action\u0027 % (server_id, migration_id),"},{"line_number":456,"context_line":"            {\u0027force_complete\u0027: None}).body"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f515b1d_d9b1c3e3","line":456,"range":{"start_line":456,"start_character":38,"end_line":456,"end_character":42},"updated":"2017-09-22 20:47:24.000000000","message":"Seems weird that we\u0027re returning the body from the POST request here. There is no actual body in the response for this API.","commit_id":"18057e37b2cb4bcb1e4d53f80bbce422a23cd46b"}],"nova/tests/functional/test_servers.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"461ced17f6b21b2e4ffc68b185088ed240cda876","unresolved":false,"context_lines":[{"line_number":1922,"context_line":"    def _mock_live_migration(self, context, instance, dest,"},{"line_number":1923,"context_line":"                             post_method, recover_method,"},{"line_number":1924,"context_line":"                             block_migration\u003dFalse, migrate_data\u003dNone):"},{"line_number":1925,"context_line":"        time.sleep(5.0)"},{"line_number":1926,"context_line":"        post_method(context, instance, dest, block_migration,"},{"line_number":1927,"context_line":"                    migrate_data)"},{"line_number":1928,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f287b81_38134610","line":1925,"updated":"2017-08-22 13:55:58.000000000","message":"This is way too long to sleep in a test, IMHO. Further, the only kind of sleeps we can/should have in a functional test like this are for polling loops. This five seconds on your machine may not be long enough on mine, or may be way too long for others.\n\nI think the better thing to do would be to also mock out the driver.live_migration_force_complete() method, and have it set some shared state that this method is polling for in a loop.","commit_id":"b5fb66b866d47368bca1b8067ddb01a6690b3f53"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},"change_message_id":"78830559107cc8ae9c45965ceb976543576690b7","unresolved":false,"context_lines":[{"line_number":1880,"context_line":"                             post_method, recover_method,"},{"line_number":1881,"context_line":"                             block_migration\u003dFalse, migrate_data\u003dNone):"},{"line_number":1882,"context_line":"        while self._migrating:"},{"line_number":1883,"context_line":"            time.sleep(0.5)"},{"line_number":1884,"context_line":"        post_method(context, instance, dest, block_migration,"},{"line_number":1885,"context_line":"                    migrate_data)"},{"line_number":1886,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_f4221701","line":1883,"updated":"2017-08-25 06:16:04.000000000","message":"nit: I\u0027d put an empty line here, otherwise the next line at first glance looks like an indent error.","commit_id":"d1de17ac64b653118c0cf816c662f0f3b5613ba3"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"7734361937f896fbf91666330d439a7a301bbb29","unresolved":false,"context_lines":[{"line_number":1880,"context_line":"                             post_method, recover_method,"},{"line_number":1881,"context_line":"                             block_migration\u003dFalse, migrate_data\u003dNone):"},{"line_number":1882,"context_line":"        while self._migrating:"},{"line_number":1883,"context_line":"            time.sleep(0.5)"},{"line_number":1884,"context_line":"        post_method(context, instance, dest, block_migration,"},{"line_number":1885,"context_line":"                    migrate_data)"},{"line_number":1886,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_33c6554a","line":1883,"in_reply_to":"7f287b81_f4221701","updated":"2017-08-25 19:34:06.000000000","message":"Done","commit_id":"d1de17ac64b653118c0cf816c662f0f3b5613ba3"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},"change_message_id":"78830559107cc8ae9c45965ceb976543576690b7","unresolved":false,"context_lines":[{"line_number":1883,"context_line":"            time.sleep(0.5)"},{"line_number":1884,"context_line":"        post_method(context, instance, dest, block_migration,"},{"line_number":1885,"context_line":"                    migrate_data)"},{"line_number":1886,"context_line":"        return"},{"line_number":1887,"context_line":""},{"line_number":1888,"context_line":"    def _mock_force_complete(self, instance):"},{"line_number":1889,"context_line":"        self._migrating \u003d False"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_d4215bfd","line":1886,"range":{"start_line":1886,"start_character":8,"end_line":1886,"end_character":14},"updated":"2017-08-25 06:16:04.000000000","message":"nit: This is just what python does anyway.","commit_id":"d1de17ac64b653118c0cf816c662f0f3b5613ba3"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"7734361937f896fbf91666330d439a7a301bbb29","unresolved":false,"context_lines":[{"line_number":1883,"context_line":"            time.sleep(0.5)"},{"line_number":1884,"context_line":"        post_method(context, instance, dest, block_migration,"},{"line_number":1885,"context_line":"                    migrate_data)"},{"line_number":1886,"context_line":"        return"},{"line_number":1887,"context_line":""},{"line_number":1888,"context_line":"    def _mock_force_complete(self, instance):"},{"line_number":1889,"context_line":"        self._migrating \u003d False"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_13c1192f","line":1886,"range":{"start_line":1886,"start_character":8,"end_line":1886,"end_character":14},"in_reply_to":"7f287b81_d4215bfd","updated":"2017-08-25 19:34:06.000000000","message":"Done","commit_id":"d1de17ac64b653118c0cf816c662f0f3b5613ba3"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},"change_message_id":"78830559107cc8ae9c45965ceb976543576690b7","unresolved":false,"context_lines":[{"line_number":1895,"context_line":"            if len(migrations) \u003e 0 and migrations[0][\u0027status\u0027] \u003d\u003d \u0027running\u0027:"},{"line_number":1896,"context_line":"                return migrations[0]"},{"line_number":1897,"context_line":"            if time.time() \u003e stop_time:"},{"line_number":1898,"context_line":"                self.fail(\u0027The migration state for instance %s is not\u0027"},{"line_number":1899,"context_line":"                          \u0027 running!\u0027 % server_id)"},{"line_number":1900,"context_line":"            time.sleep(0.5)"},{"line_number":1901,"context_line":""},{"line_number":1902,"context_line":"    @mock.patch(\u0027nova.virt.fake.FakeDriver.live_migration\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_f467b750","line":1899,"range":{"start_line":1898,"start_character":26,"end_line":1899,"end_character":49},"updated":"2017-08-25 06:16:04.000000000","message":"What about this message?\n\n\u0027Timed out waiting for migration state \"running\" for instance: %(server_id)s\u0027\n\nAlso I\u0027m not sure if you want to fail() the test from a utility method. If this method would ever be called from another test, then it\u0027d be better to raise on timeout, then let the test decide to catch it or not.\n\nI could also imagine the migration state passed as a parameter to this method, but I don\u0027t know if that generalization makes any sense here.","commit_id":"d1de17ac64b653118c0cf816c662f0f3b5613ba3"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"7734361937f896fbf91666330d439a7a301bbb29","unresolved":false,"context_lines":[{"line_number":1895,"context_line":"            if len(migrations) \u003e 0 and migrations[0][\u0027status\u0027] \u003d\u003d \u0027running\u0027:"},{"line_number":1896,"context_line":"                return migrations[0]"},{"line_number":1897,"context_line":"            if time.time() \u003e stop_time:"},{"line_number":1898,"context_line":"                self.fail(\u0027The migration state for instance %s is not\u0027"},{"line_number":1899,"context_line":"                          \u0027 running!\u0027 % server_id)"},{"line_number":1900,"context_line":"            time.sleep(0.5)"},{"line_number":1901,"context_line":""},{"line_number":1902,"context_line":"    @mock.patch(\u0027nova.virt.fake.FakeDriver.live_migration\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_73d17dfb","line":1899,"range":{"start_line":1898,"start_character":26,"end_line":1899,"end_character":49},"in_reply_to":"7f287b81_f467b750","updated":"2017-08-25 19:34:06.000000000","message":"Message changed. The raise of exception is a good idea, I used the fail way because other waiters use the same method.\nPerhaps a new exception should be used for throwing from these helpers.","commit_id":"d1de17ac64b653118c0cf816c662f0f3b5613ba3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a36b834f68c49f388be5788cf9d98d4911766011","unresolved":false,"context_lines":[{"line_number":1312,"context_line":"        self.api.delete_server(server[\u0027id\u0027])"},{"line_number":1313,"context_line":"        self._wait_until_deleted(server)"},{"line_number":1314,"context_line":""},{"line_number":1315,"context_line":"        self._run_periodics()"},{"line_number":1316,"context_line":""},{"line_number":1317,"context_line":"        source_usages \u003d self._get_provider_usages(source_rp_uuid)"},{"line_number":1318,"context_line":"        self.assertEqual({\u0027VCPU\u0027: 0,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_8ce14a2d","line":1315,"updated":"2017-08-28 13:28:08.000000000","message":"What is the reason to run the periodics here? It seems unnecessary. At least the test passes without it.","commit_id":"2023efae7e1b722bd41f34050dd8fdf7cc11b5cf"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"ab12ae55da9622e0fee8879a80ef8d3ecc212c01","unresolved":false,"context_lines":[{"line_number":1312,"context_line":"        self.api.delete_server(server[\u0027id\u0027])"},{"line_number":1313,"context_line":"        self._wait_until_deleted(server)"},{"line_number":1314,"context_line":""},{"line_number":1315,"context_line":"        self._run_periodics()"},{"line_number":1316,"context_line":""},{"line_number":1317,"context_line":"        source_usages \u003d self._get_provider_usages(source_rp_uuid)"},{"line_number":1318,"context_line":"        self.assertEqual({\u0027VCPU\u0027: 0,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_f20f2b2b","line":1315,"in_reply_to":"7f287b81_8ce14a2d","updated":"2017-08-31 11:54:25.000000000","message":"Done","commit_id":"2023efae7e1b722bd41f34050dd8fdf7cc11b5cf"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"aa7ece7a0359bc2d656f6214cf48277458310993","unresolved":false,"context_lines":[{"line_number":2260,"context_line":"    def _mock_force_complete(self, instance):"},{"line_number":2261,"context_line":"        self._migrating \u003d False"},{"line_number":2262,"context_line":""},{"line_number":2263,"context_line":"    def _wait_for_migration_state_running(self, server_id, timeout\u003d5.0):"},{"line_number":2264,"context_line":"        stop_time \u003d time.time() + timeout"},{"line_number":2265,"context_line":"        while True:"},{"line_number":2266,"context_line":"            migrations \u003d self.api.get_active_migrations(server_id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f287b81_550d4933","line":2263,"range":{"start_line":2263,"start_character":8,"end_line":2263,"end_character":41},"updated":"2017-09-06 13:50:06.000000000","message":"There is _wait_for_migration_status() call from the new base. Can we reuse that instead of adding a new?","commit_id":"56e0d07bbde220d2129aeafe7ea1c60a7a11e774"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"b4e6f21c115fee9728b94b17a7d782583a26431c","unresolved":false,"context_lines":[{"line_number":2260,"context_line":"    def _mock_force_complete(self, instance):"},{"line_number":2261,"context_line":"        self._migrating \u003d False"},{"line_number":2262,"context_line":""},{"line_number":2263,"context_line":"    def _wait_for_migration_state_running(self, server_id, timeout\u003d5.0):"},{"line_number":2264,"context_line":"        stop_time \u003d time.time() + timeout"},{"line_number":2265,"context_line":"        while True:"},{"line_number":2266,"context_line":"            migrations \u003d self.api.get_active_migrations(server_id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f2577a7_a3e0b7fb","line":2263,"range":{"start_line":2263,"start_character":8,"end_line":2263,"end_character":41},"in_reply_to":"7f287b81_550d4933","updated":"2017-09-14 03:41:17.000000000","message":"Done","commit_id":"56e0d07bbde220d2129aeafe7ea1c60a7a11e774"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4a340da827234b3a05f0cc8ba847458155b36799","unresolved":false,"context_lines":[{"line_number":1152,"context_line":"        self.addCleanup(fake.restore_nodes)"},{"line_number":1153,"context_line":"        self.flags(host\u003d\u0027host2\u0027)"},{"line_number":1154,"context_line":"        self.compute2 \u003d self.start_service(\u0027compute\u0027, host\u003d\u0027host2\u0027)"},{"line_number":1155,"context_line":"        fake_network.set_stub_network_methods(self)"},{"line_number":1156,"context_line":""},{"line_number":1157,"context_line":"        flavors \u003d self.api.get_flavors()"},{"line_number":1158,"context_line":"        self.flavor1 \u003d flavors[0]"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f2577a7_278a6abe","line":1155,"updated":"2017-09-15 16:44:51.000000000","message":"This is already in ProviderUsageBaseTestCase.setUp() do we really need this here as well?","commit_id":"838fbec4b8f198c5c3c5dec3c392d07d5b8250f5"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"a250eed6c227b4e963277f608e5f487276b86665","unresolved":false,"context_lines":[{"line_number":1152,"context_line":"        self.addCleanup(fake.restore_nodes)"},{"line_number":1153,"context_line":"        self.flags(host\u003d\u0027host2\u0027)"},{"line_number":1154,"context_line":"        self.compute2 \u003d self.start_service(\u0027compute\u0027, host\u003d\u0027host2\u0027)"},{"line_number":1155,"context_line":"        fake_network.set_stub_network_methods(self)"},{"line_number":1156,"context_line":""},{"line_number":1157,"context_line":"        flavors \u003d self.api.get_flavors()"},{"line_number":1158,"context_line":"        self.flavor1 \u003d flavors[0]"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f2577a7_b02c5202","line":1155,"in_reply_to":"5f2577a7_278a6abe","updated":"2017-09-15 18:45:15.000000000","message":"My fault, I missed during the rebase, thanks for noticing.","commit_id":"838fbec4b8f198c5c3c5dec3c392d07d5b8250f5"}]}
