)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"1c8105246b2cf0feaa39c775d3ec05da88de0b30","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"New negative tests for live migration of VMs in suspended and shutoff state."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"No negative tests were added for other VM states (migrating, reboot, etc) because those"},{"line_number":12,"context_line":"are transitional states which cannot be tested against reliably."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Renamed negative live migration file so that it gets run up by multi node gate."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9f0e0f27_ebf5f984","line":11,"updated":"2017-06-09 09:39:18.000000000","message":"Nit: It\u0027s a bit long for one line. Please check the others, too. See https://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure","commit_id":"15cffec3e5f4713714e03174d6f9aa5435ef6da8"},{"author":{"_account_id":23709,"name":"Duc Truong","email":"dkt26111@gmail.com","username":"dtruong"},"change_message_id":"90836ffa98f007dd7979ca68523f7db5e00f1c08","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"New negative tests for live migration of VMs in suspended and shutoff state."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"No negative tests were added for other VM states (migrating, reboot, etc) because those"},{"line_number":12,"context_line":"are transitional states which cannot be tested against reliably."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Renamed negative live migration file so that it gets run up by multi node gate."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7f231b9d_8ad1db5a","line":11,"in_reply_to":"9f0e0f27_ebf5f984","updated":"2017-06-09 18:08:43.000000000","message":"Done","commit_id":"15cffec3e5f4713714e03174d6f9aa5435ef6da8"}],"tempest/api/compute/admin/test_live_migration.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4ae5d4aea53856b0a2aea1cfa3ec3bddf3c20636","unresolved":false,"context_lines":[{"line_number":29,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"class LiveMigrationTest(base.BaseV2ComputeAdminTest):"},{"line_number":33,"context_line":"    max_microversion \u003d \u00272.24\u0027"},{"line_number":34,"context_line":"    block_migration \u003d None"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3f1d235d_a4b3e0e8","line":32,"range":{"start_line":32,"start_character":6,"end_line":32,"end_character":23},"updated":"2017-07-11 02:11:18.000000000","message":"we should have mentioned about class name change reason in commit msg.","commit_id":"0994120b404d2a5d805164cb158c238bd6261b39"}],"tempest/api/compute/admin/test_live_migration_negative.py":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"e94246e09905d1caaee620896d67f9ac3ef82543","unresolved":false,"context_lines":[{"line_number":23,"context_line":"CONF \u003d config.CONF"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class LiveBlockMigrationNegativeTestJSON(base.BaseV2ComputeAdminTest):"},{"line_number":27,"context_line":"    @classmethod"},{"line_number":28,"context_line":"    def skip_checks(cls):"},{"line_number":29,"context_line":"        super(LiveBlockMigrationNegativeTestJSON, cls).skip_checks()"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f231b9d_b02cef99","line":26,"updated":"2017-06-12 05:14:35.000000000","message":"Why not change the class name, too?","commit_id":"1092ba44024a0a89dc77fc446bcdf54086fc6730"},{"author":{"_account_id":23709,"name":"Duc Truong","email":"dkt26111@gmail.com","username":"dtruong"},"change_message_id":"e2faeb5c5a4ae2e1ed9b165445a4a289d31e527f","unresolved":false,"context_lines":[{"line_number":23,"context_line":"CONF \u003d config.CONF"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class LiveBlockMigrationNegativeTestJSON(base.BaseV2ComputeAdminTest):"},{"line_number":27,"context_line":"    @classmethod"},{"line_number":28,"context_line":"    def skip_checks(cls):"},{"line_number":29,"context_line":"        super(LiveBlockMigrationNegativeTestJSON, cls).skip_checks()"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f201791_3bcdb230","line":26,"in_reply_to":"5f201791_c6a84721","updated":"2017-06-27 17:58:55.000000000","message":"Done","commit_id":"1092ba44024a0a89dc77fc446bcdf54086fc6730"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"fc976c2a7d04c1c66e0e52b7ae40b165d483665c","unresolved":false,"context_lines":[{"line_number":23,"context_line":"CONF \u003d config.CONF"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class LiveBlockMigrationNegativeTestJSON(base.BaseV2ComputeAdminTest):"},{"line_number":27,"context_line":"    @classmethod"},{"line_number":28,"context_line":"    def skip_checks(cls):"},{"line_number":29,"context_line":"        super(LiveBlockMigrationNegativeTestJSON, cls).skip_checks()"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f201791_c6a84721","line":26,"in_reply_to":"7f231b9d_220f5ce2","updated":"2017-06-26 22:42:17.000000000","message":"From what I\u0027ve seen JSON is now considered superfluous and can be dropped.","commit_id":"1092ba44024a0a89dc77fc446bcdf54086fc6730"},{"author":{"_account_id":23709,"name":"Duc Truong","email":"dkt26111@gmail.com","username":"dtruong"},"change_message_id":"8e516b1632434b3b69665012e2b2807b32a1d140","unresolved":false,"context_lines":[{"line_number":23,"context_line":"CONF \u003d config.CONF"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class LiveBlockMigrationNegativeTestJSON(base.BaseV2ComputeAdminTest):"},{"line_number":27,"context_line":"    @classmethod"},{"line_number":28,"context_line":"    def skip_checks(cls):"},{"line_number":29,"context_line":"        super(LiveBlockMigrationNegativeTestJSON, cls).skip_checks()"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f231b9d_220f5ce2","line":26,"in_reply_to":"7f231b9d_b02cef99","updated":"2017-06-12 16:08:02.000000000","message":"I considered changing it but the positive test is called LiveBlockMigrationTestJSON in test_live_migration.py.  So I decided to keep the name consistent with the positive test.\nI could change the class name for both the positive and negative tests to match their respective file names if you feel it adds value.","commit_id":"1092ba44024a0a89dc77fc446bcdf54086fc6730"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"fc976c2a7d04c1c66e0e52b7ae40b165d483665c","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        server \u003d self.create_test_server(wait_until\u003d\"ACTIVE\")"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        self.admin_servers_client.suspend_server(server[\u0027id\u0027])"},{"line_number":57,"context_line":"        waiters.wait_for_server_status(self.admin_servers_client,"},{"line_number":58,"context_line":"                                       server[\u0027id\u0027], \u0027SUSPENDED\u0027)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        destination_host \u003d self.get_host_other_than(server[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f201791_c68f27cb","line":57,"range":{"start_line":57,"start_character":44,"end_line":57,"end_character":64},"updated":"2017-06-26 22:42:17.000000000","message":"nit: This can just be servers_client, as show action is non-admin.","commit_id":"1092ba44024a0a89dc77fc446bcdf54086fc6730"},{"author":{"_account_id":23709,"name":"Duc Truong","email":"dkt26111@gmail.com","username":"dtruong"},"change_message_id":"e2faeb5c5a4ae2e1ed9b165445a4a289d31e527f","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        server \u003d self.create_test_server(wait_until\u003d\"ACTIVE\")"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        self.admin_servers_client.suspend_server(server[\u0027id\u0027])"},{"line_number":57,"context_line":"        waiters.wait_for_server_status(self.admin_servers_client,"},{"line_number":58,"context_line":"                                       server[\u0027id\u0027], \u0027SUSPENDED\u0027)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        destination_host \u003d self.get_host_other_than(server[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f201791_9be3a6a4","line":57,"range":{"start_line":57,"start_character":44,"end_line":57,"end_character":64},"in_reply_to":"5f201791_c68f27cb","updated":"2017-06-27 17:58:55.000000000","message":"Done","commit_id":"1092ba44024a0a89dc77fc446bcdf54086fc6730"}]}
