)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d6ed70d4c92b2ef3d519fb1bb769c6ad33552e17","unresolved":false,"context_lines":[{"line_number":10,"context_line":"instances in rescued state."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: If7237d3921d7abf1f7d6ecb3c63ef5ecadebf9ac"},{"line_number":13,"context_line":"Depends-on: Ie1fc20fe5e028dd53116d5549814442232ddfe49"},{"line_number":14,"context_line":"Implements: blueprint live-migrate-rescued-instances"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3aaa91ec_bdf00068","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":10},"updated":"2016-07-01 17:49:41.000000000","message":"I think zuul actually needs this to be Depends-On?","commit_id":"bcd015699198bcf41e4733757f7dbb36ef2d8240"}],"doc/source/microversion_testing.rst":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7a92d91a3933f720d4f4da7f2785e487c8ce8af0","unresolved":false,"context_lines":[{"line_number":220,"context_line":""},{"line_number":221,"context_line":" * `2.34`_"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":" .. _2.34: http://docs.openstack.org/developer/nova/api_microversion_history.html#id32"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1aa78d24_70292637","line":223,"range":{"start_line":223,"start_character":11,"end_line":223,"end_character":86},"updated":"2016-07-06 03:31:24.000000000","message":"this might need update as not yet exist but no big deal and can be updated once Nova patch land.","commit_id":"3f8c28ec25080acae28476fe43855486a2128550"}],"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":"bdfa59694be1f3683b19fa005c60b8e9d1101ad5","unresolved":false,"context_lines":[{"line_number":25,"context_line":"CONF \u003d config.CONF"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class LiveBlockMigrationTestJSON(base.BaseV2ComputeAdminTest):"},{"line_number":29,"context_line":"    _host_key \u003d \u0027OS-EXT-SRV-ATTR:host\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @classmethod"},{"line_number":32,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_a9446646","line":29,"range":{"start_line":28,"start_character":0,"end_line":29,"end_character":38},"updated":"2016-07-01 08:16:05.000000000","message":"If you are inheriting new microversion test class from this then we should cap this to avoid running the redundant tests.\n\nclass LiveBlockMigrationTestJSON(base.BaseV2ComputeAdminTest):\n    _host_key \u003d \u0027OS-EXT-SRV-ATTR:host\u0027\n    max_microversion \u003d \u00272.31\u0027","commit_id":"908867039fcf3189cbfead7caf81f64bef874386"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"428596e1e9cb405bfa2fd2ca1fd2bc278a139ff0","unresolved":false,"context_lines":[{"line_number":25,"context_line":"CONF \u003d config.CONF"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class LiveBlockMigrationTestJSON(base.BaseV2ComputeAdminTest):"},{"line_number":29,"context_line":"    _host_key \u003d \u0027OS-EXT-SRV-ATTR:host\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @classmethod"},{"line_number":32,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_79eb65a4","line":29,"range":{"start_line":28,"start_character":0,"end_line":29,"end_character":38},"in_reply_to":"3aaa91ec_6dc6079b","updated":"2016-07-01 10:14:48.000000000","message":"Done","commit_id":"908867039fcf3189cbfead7caf81f64bef874386"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"cfa542409eb3670d8b7736eca881a4d68ae62688","unresolved":false,"context_lines":[{"line_number":25,"context_line":"CONF \u003d config.CONF"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class LiveBlockMigrationTestJSON(base.BaseV2ComputeAdminTest):"},{"line_number":29,"context_line":"    _host_key \u003d \u0027OS-EXT-SRV-ATTR:host\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @classmethod"},{"line_number":32,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_6dc6079b","line":29,"range":{"start_line":28,"start_character":0,"end_line":29,"end_character":38},"in_reply_to":"3aaa91ec_a9446646","updated":"2016-07-01 09:14:01.000000000","message":"Yeah I think this is a fair point.","commit_id":"908867039fcf3189cbfead7caf81f64bef874386"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"cfa542409eb3670d8b7736eca881a4d68ae62688","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        kwargs \u003d {\u0027host\u0027: dest_host,"},{"line_number":71,"context_line":"                  \u0027block_migration\u0027: block_migration,"},{"line_number":72,"context_line":"                  \u0027disk_over_commit\u0027: False}"},{"line_number":73,"context_line":"        if self.min_microversion \u003e\u003d \u00272.25\u0027 and \u0027disk_over_commit\u0027 in kwargs:"},{"line_number":74,"context_line":"            del kwargs[\u0027disk_over_commit\u0027]"},{"line_number":75,"context_line":"        body \u003d self.admin_servers_client.live_migrate_server("},{"line_number":76,"context_line":"            server_id, **kwargs)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_8d441347","line":73,"range":{"start_line":73,"start_character":43,"end_line":73,"end_character":65},"updated":"2016-07-01 09:14:01.000000000","message":"You probably don\u0027t need this check since you just defined it in L72","commit_id":"908867039fcf3189cbfead7caf81f64bef874386"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"428596e1e9cb405bfa2fd2ca1fd2bc278a139ff0","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        kwargs \u003d {\u0027host\u0027: dest_host,"},{"line_number":71,"context_line":"                  \u0027block_migration\u0027: block_migration,"},{"line_number":72,"context_line":"                  \u0027disk_over_commit\u0027: False}"},{"line_number":73,"context_line":"        if self.min_microversion \u003e\u003d \u00272.25\u0027 and \u0027disk_over_commit\u0027 in kwargs:"},{"line_number":74,"context_line":"            del kwargs[\u0027disk_over_commit\u0027]"},{"line_number":75,"context_line":"        body \u003d self.admin_servers_client.live_migrate_server("},{"line_number":76,"context_line":"            server_id, **kwargs)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_f9359544","line":73,"range":{"start_line":73,"start_character":43,"end_line":73,"end_character":65},"in_reply_to":"3aaa91ec_8d441347","updated":"2016-07-01 10:14:48.000000000","message":"Done","commit_id":"908867039fcf3189cbfead7caf81f64bef874386"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"767630365c7131622d03cc3039f73324e35dd8e4","unresolved":false,"context_lines":[{"line_number":184,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    @test.idempotent_id(\u002731567274-3ebc-452a-9e48-89b4fa4aa397\u0027)"},{"line_number":187,"context_line":"    def test_live_block_migration_rescued(self):"},{"line_number":188,"context_line":"        self._test_live_migration(state\u003d\u0027RESCUE\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_ded49fbe","line":187,"range":{"start_line":187,"start_character":0,"end_line":187,"end_character":48},"updated":"2016-07-05 08:37:15.000000000","message":"You need to skip this method if no rescue allowed. \njust add this decorator on this test.    @testtools.skipUnless(CONF.compute_feature_enabled.rescue,\n                          \u0027Server Rescue is not available.\u0027)","commit_id":"b12e8308d7f3ee9263e109375636b85a4f597296"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"71e0fd481ec080ceb7fa472ef252980004b0ba31","unresolved":false,"context_lines":[{"line_number":184,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    @test.idempotent_id(\u002731567274-3ebc-452a-9e48-89b4fa4aa397\u0027)"},{"line_number":187,"context_line":"    def test_live_block_migration_rescued(self):"},{"line_number":188,"context_line":"        self._test_live_migration(state\u003d\u0027RESCUE\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_de793afe","line":187,"range":{"start_line":187,"start_character":0,"end_line":187,"end_character":48},"in_reply_to":"1aa78d24_ded49fbe","updated":"2016-07-05 10:42:50.000000000","message":"Done","commit_id":"b12e8308d7f3ee9263e109375636b85a4f597296"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7a92d91a3933f720d4f4da7f2785e487c8ce8af0","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class LiveBlockMigrationTestJSON(base.BaseV2ComputeAdminTest):"},{"line_number":29,"context_line":"    _host_key \u003d \u0027OS-EXT-SRV-ATTR:host\u0027"},{"line_number":30,"context_line":"    max_microversion \u003d \u00272.33\u0027"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    @classmethod"},{"line_number":33,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":7,"id":"1aa78d24_a40a3377","line":30,"range":{"start_line":30,"start_character":3,"end_line":30,"end_character":29},"updated":"2016-07-06 03:31:24.000000000","message":"this can be removed once class inheritance is changed.","commit_id":"3f8c28ec25080acae28476fe43855486a2128550"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7a92d91a3933f720d4f4da7f2785e487c8ce8af0","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    _host_key \u003d \u0027OS-EXT-SRV-ATTR:host\u0027"},{"line_number":30,"context_line":"    max_microversion \u003d \u00272.33\u0027"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    @classmethod"},{"line_number":33,"context_line":"    def skip_checks(cls):"},{"line_number":34,"context_line":"        super(LiveBlockMigrationTestJSON, cls).skip_checks()"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        if not CONF.compute_feature_enabled.live_migration:"},{"line_number":37,"context_line":"            skip_msg \u003d (\"%s skipped as live-migration is \""},{"line_number":38,"context_line":"                        \"not available\" % cls.__name__)"},{"line_number":39,"context_line":"            raise cls.skipException(skip_msg)"},{"line_number":40,"context_line":"        if CONF.compute.min_compute_nodes \u003c 2:"},{"line_number":41,"context_line":"            raise cls.skipException("},{"line_number":42,"context_line":"                \"Less than 2 compute nodes, skipping migration test.\")"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    @classmethod"},{"line_number":45,"context_line":"    def setup_clients(cls):"},{"line_number":46,"context_line":"        super(LiveBlockMigrationTestJSON, cls).setup_clients()"},{"line_number":47,"context_line":"        cls.admin_hosts_client \u003d cls.os_adm.hosts_client"},{"line_number":48,"context_line":"        cls.admin_servers_client \u003d cls.os_adm.servers_client"},{"line_number":49,"context_line":"        cls.admin_migration_client \u003d cls.os_adm.migrations_client"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    @classmethod"},{"line_number":52,"context_line":"    def _get_compute_hostnames(cls):"},{"line_number":53,"context_line":"        body \u003d cls.admin_hosts_client.list_hosts()[\u0027hosts\u0027]"},{"line_number":54,"context_line":"        return ["},{"line_number":55,"context_line":"            host_record[\u0027host_name\u0027]"},{"line_number":56,"context_line":"            for host_record in body"},{"line_number":57,"context_line":"            if host_record[\u0027service\u0027] \u003d\u003d \u0027compute\u0027"},{"line_number":58,"context_line":"        ]"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def _get_server_details(self, server_id):"},{"line_number":61,"context_line":"        body \u003d self.admin_servers_client.show_server(server_id)[\u0027server\u0027]"},{"line_number":62,"context_line":"        return body"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def _get_host_for_server(self, server_id):"},{"line_number":65,"context_line":"        return self._get_server_details(server_id)[self._host_key]"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def _migrate_server_to(self, server_id, dest_host, volume_backed\u003dFalse):"},{"line_number":68,"context_line":"        block_migration \u003d (CONF.compute_feature_enabled."},{"line_number":69,"context_line":"                           block_migration_for_live_migration and"},{"line_number":70,"context_line":"                           not volume_backed)"},{"line_number":71,"context_line":"        kwargs \u003d {\u0027host\u0027: dest_host,"},{"line_number":72,"context_line":"                  \u0027block_migration\u0027: block_migration,"},{"line_number":73,"context_line":"                  \u0027disk_over_commit\u0027: False}"},{"line_number":74,"context_line":"        if self.min_microversion \u003e\u003d \u00272.25\u0027:"},{"line_number":75,"context_line":"            del kwargs[\u0027disk_over_commit\u0027]"},{"line_number":76,"context_line":"        body \u003d self.admin_servers_client.live_migrate_server("},{"line_number":77,"context_line":"            server_id, **kwargs)"},{"line_number":78,"context_line":"        return body"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def _get_host_other_than(self, host):"},{"line_number":81,"context_line":"        for target_host in self._get_compute_hostnames():"},{"line_number":82,"context_line":"            if host !\u003d target_host:"},{"line_number":83,"context_line":"                return target_host"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def _volume_clean_up(self, server_id, volume_id):"},{"line_number":86,"context_line":"        body \u003d self.volumes_client.show_volume(volume_id)[\u0027volume\u0027]"},{"line_number":87,"context_line":"        if body[\u0027status\u0027] \u003d\u003d \u0027in-use\u0027:"},{"line_number":88,"context_line":"            self.servers_client.detach_volume(server_id, volume_id)"},{"line_number":89,"context_line":"            waiters.wait_for_volume_status(self.volumes_client,"},{"line_number":90,"context_line":"                                           volume_id, \u0027available\u0027)"},{"line_number":91,"context_line":"        self.volumes_client.delete_volume(volume_id)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def _test_live_migration(self, state\u003d\u0027ACTIVE\u0027, volume_backed\u003dFalse):"},{"line_number":94,"context_line":"        \"\"\"Tests live migration between two hosts."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        Requires CONF.compute_feature_enabled.live_migration to be True."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        :param state: The vm_state the migrated server should be in before and"},{"line_number":99,"context_line":"                      after the live migration. Supported values are \u0027ACTIVE\u0027"},{"line_number":100,"context_line":"                      and \u0027PAUSED\u0027."},{"line_number":101,"context_line":"        :param volume_backed: If the instance is volume backed or not. If"},{"line_number":102,"context_line":"                              volume_backed, *block* migration is not used."},{"line_number":103,"context_line":"        \"\"\""},{"line_number":104,"context_line":"        # Live migrate an instance to another host"},{"line_number":105,"context_line":"        server_id \u003d self.create_test_server(wait_until\u003d\"ACTIVE\","},{"line_number":106,"context_line":"                                            volume_backed\u003dvolume_backed)[\u0027id\u0027]"},{"line_number":107,"context_line":"        actual_host \u003d self._get_host_for_server(server_id)"},{"line_number":108,"context_line":"        target_host \u003d self._get_host_other_than(actual_host)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        if state \u003d\u003d \u0027PAUSED\u0027:"},{"line_number":111,"context_line":"            self.admin_servers_client.pause_server(server_id)"},{"line_number":112,"context_line":"            waiters.wait_for_server_status(self.admin_servers_client,"},{"line_number":113,"context_line":"                                           server_id, state)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        if state \u003d\u003d \u0027RESCUE\u0027:"},{"line_number":116,"context_line":"            self.admin_servers_client.rescue_server(server_id)"},{"line_number":117,"context_line":"            waiters.wait_for_server_status(self.admin_servers_client,"},{"line_number":118,"context_line":"                                           server_id, state)"},{"line_number":119,"context_line":"        self._migrate_server_to(server_id, target_host, volume_backed)"},{"line_number":120,"context_line":"        waiters.wait_for_server_status(self.servers_client, server_id, state)"},{"line_number":121,"context_line":"        migration_list \u003d (self.admin_migration_client.list_migrations()"},{"line_number":122,"context_line":"                          [\u0027migrations\u0027])"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        msg \u003d (\"Live Migration failed. Migrations list for Instance \""},{"line_number":125,"context_line":"               \"%s: [\" % server_id)"},{"line_number":126,"context_line":"        for live_migration in migration_list:"},{"line_number":127,"context_line":"            if (live_migration[\u0027instance_uuid\u0027] \u003d\u003d server_id):"},{"line_number":128,"context_line":"                msg +\u003d \"\\n%s\" % live_migration"},{"line_number":129,"context_line":"        msg +\u003d \"]\""},{"line_number":130,"context_line":"        self.assertEqual(target_host, self._get_host_for_server(server_id),"},{"line_number":131,"context_line":"                         msg)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    @test.idempotent_id(\u00271dce86b8-eb04-4c03-a9d8-9c1dc3ee0c7b\u0027)"},{"line_number":134,"context_line":"    def test_live_block_migration(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"1aa78d24_64dfab0d","line":131,"range":{"start_line":32,"start_character":0,"end_line":131,"end_character":29},"updated":"2016-07-06 03:31:24.000000000","message":"Moving this common code to base class  - class BaseLiveBlockMigrationTest(base.BaseV2ComputeAdminTest)\n\nand then drive LiveBlockMigrationTestJSON and LiveBlockMigrationTestV234 from that base class. So that both can have their specific tests and we can avoid redundant test execution.","commit_id":"3f8c28ec25080acae28476fe43855486a2128550"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7a92d91a3933f720d4f4da7f2785e487c8ce8af0","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        self.assertEqual(target_host, self._get_host_for_server(server_id))"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"class LiveBlockMigrationTestV234(LiveBlockMigrationTestJSON):"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    min_microversion \u003d \u00272.34\u0027"},{"line_number":184,"context_line":"    max_microversion \u003d \u0027latest\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"1aa78d24_84857708","line":181,"range":{"start_line":181,"start_character":0,"end_line":181,"end_character":61},"updated":"2016-07-06 03:31:24.000000000","message":"another thing is it will run parent class tests cases also for 2.34 version which seems redundant. How about splitting the common code on base class and inherit this test class from base class.","commit_id":"3f8c28ec25080acae28476fe43855486a2128550"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7a92d91a3933f720d4f4da7f2785e487c8ce8af0","unresolved":false,"context_lines":[{"line_number":183,"context_line":"    min_microversion \u003d \u00272.34\u0027"},{"line_number":184,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    @test.idempotent_id(\u002731567274-3ebc-452a-9e48-89b4fa4aa397\u0027)"},{"line_number":187,"context_line":"    @testtools.skipUnless(CONF.compute_feature_enabled.rescue,"},{"line_number":188,"context_line":"                          \u0027Server Rescue is not available.\u0027)"},{"line_number":189,"context_line":"    def test_live_block_migration_rescued(self):"},{"line_number":190,"context_line":"        self._test_live_migration(state\u003d\u0027RESCUE\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1aa78d24_f0ed16b8","line":190,"range":{"start_line":186,"start_character":0,"end_line":190,"end_character":49},"updated":"2016-07-06 03:31:24.000000000","message":"After that this class can have 2 test case which we have to tests for version 2.34 -\n\n    @classmethod\n    def skip_checks(cls):\n        super(LiveBlockMigrationTestV234, cls).skip_checks()\n\n        if not CONF.compute_feature_enabled.rescue:\n            skip_msg \u003d (\"%s skipped as Server Rescue is \"\n                        \"not available\" % cls.__name__)\n            raise cls.skipException(skip_msg)\n\n\n    def test_live_block_migration_rescued(self):\n        self._test_live_migration(state\u003d\u0027RESCUE\u0027)\n\n\n    @decorators.skip_because(bug\u003d\"1549511\", condition\u003dCONF.service_available.neutron)\n    @test.idempotent_id(\u00275071...\u0027)\n    @test.services(\u0027volume\u0027)\n    def test_volume_backed_live_migration_rescued(self):\n        self._test_live_migration(state\u003d\u0027RESCUE\u0027, volume_backed\u003dTrue)","commit_id":"3f8c28ec25080acae28476fe43855486a2128550"}],"tempest/lib/api_schema/response/compute/v2_23/servers.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"767630365c7131622d03cc3039f73324e35dd8e4","unresolved":false,"context_lines":[{"line_number":19,"context_line":"# The 2.23 microversion changes the migrations LIST responses to"},{"line_number":20,"context_line":"# include\u0027migration_type\u0027."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"list_migrations \u003d copy.deepcopy(mig21.list_migrations)"},{"line_number":23,"context_line":"list_migrations[\u0027response_body\u0027][\u0027properties\u0027][\u0027migrations\u0027][\u0027items\u0027]["},{"line_number":24,"context_line":"    \u0027properties\u0027].update({\u0027migration_type\u0027: {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]}})"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_fee87b7e","line":24,"range":{"start_line":22,"start_character":0,"end_line":24,"end_character":74},"updated":"2016-07-05 08:37:15.000000000","message":"2.23 added \"links\" also and \u0027migration_type\u0027 as mandatory. So need below lines also- \n\nlist_migrations[\u0027response_body\u0027][\u0027properties\u0027][\u0027migrations\u0027][\u0027items\u0027][\n    \u0027properties\u0027].update({\u0027links\u0027: parameter_types.links})\nlist_migrations[\u0027response_body\u0027][\u0027properties\u0027][\u0027migrations\u0027][\u0027items\u0027][\n    \u0027required\u0027].append(\u0027migration_type\u0027)","commit_id":"b12e8308d7f3ee9263e109375636b85a4f597296"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"71e0fd481ec080ceb7fa472ef252980004b0ba31","unresolved":false,"context_lines":[{"line_number":19,"context_line":"# The 2.23 microversion changes the migrations LIST responses to"},{"line_number":20,"context_line":"# include\u0027migration_type\u0027."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"list_migrations \u003d copy.deepcopy(mig21.list_migrations)"},{"line_number":23,"context_line":"list_migrations[\u0027response_body\u0027][\u0027properties\u0027][\u0027migrations\u0027][\u0027items\u0027]["},{"line_number":24,"context_line":"    \u0027properties\u0027].update({\u0027migration_type\u0027: {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]}})"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_d7d3dd36","line":24,"range":{"start_line":22,"start_character":0,"end_line":24,"end_character":74},"in_reply_to":"1aa78d24_fee87b7e","updated":"2016-07-05 10:42:50.000000000","message":"Done","commit_id":"b12e8308d7f3ee9263e109375636b85a4f597296"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"b2ac6800172109982442dbc3629761fe20cd0249","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from tempest.lib.api_schema.response.compute.v2_1 import parameter_types"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# The 2.23 microversion changes the migrations LIST responses to"},{"line_number":21,"context_line":"# include\u0027migration_type\u0027."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"list_migrations \u003d copy.deepcopy(mig21.list_migrations)"},{"line_number":24,"context_line":"list_migrations[\u0027response_body\u0027][\u0027properties\u0027][\u0027migrations\u0027][\u0027items\u0027]["}],"source_content_type":"text/x-python","patch_set":9,"id":"ffe62b97_cceb70da","line":21,"range":{"start_line":21,"start_character":9,"end_line":21,"end_character":10},"updated":"2017-03-30 12:10:44.000000000","message":"NIT: missing space","commit_id":"008993e4f17e0a5592c8dc60a7ae0647428089ef"}],"tempest/lib/api_schema/response/compute/v2_26/servers.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"cf9ad392197a19a9efaa52a6ece4d757adea0e35","unresolved":false,"context_lines":[{"line_number":24,"context_line":"get_server[\u0027response_body\u0027][\u0027properties\u0027][\u0027server\u0027]["},{"line_number":25,"context_line":"    \u0027properties\u0027].update({\u0027tags\u0027: {\u0027type\u0027: \u0027array\u0027,"},{"line_number":26,"context_line":"                          \u0027items\u0027: {\u0027type\u0027: \u0027string\u0027}}})"},{"line_number":27,"context_line":"get_server[\u0027response_body\u0027][\u0027properties\u0027][\u0027server\u0027]["},{"line_number":28,"context_line":"    \u0027properties\u0027].update({\u0027OS-EXT-SRV-ATTR:ramdisk_id\u0027:"},{"line_number":29,"context_line":"                          {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]}})"},{"line_number":30,"context_line":"get_server[\u0027response_body\u0027][\u0027properties\u0027][\u0027server\u0027]["},{"line_number":31,"context_line":"    \u0027properties\u0027].update({\u0027OS-EXT-SRV-ATTR:kernel_id\u0027:"},{"line_number":32,"context_line":"                          {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]}})"},{"line_number":33,"context_line":"get_server[\u0027response_body\u0027][\u0027properties\u0027][\u0027server\u0027]["},{"line_number":34,"context_line":"    \u0027properties\u0027].update({\u0027OS-EXT-SRV-ATTR:reservation_id\u0027:"},{"line_number":35,"context_line":"                          {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]}})"},{"line_number":36,"context_line":"get_server[\u0027response_body\u0027][\u0027properties\u0027][\u0027server\u0027]["},{"line_number":37,"context_line":"    \u0027properties\u0027].update({\u0027OS-EXT-SRV-ATTR:launch_index\u0027:"},{"line_number":38,"context_line":"                          {\u0027type\u0027: \u0027integer\u0027}})"},{"line_number":39,"context_line":"get_server[\u0027response_body\u0027][\u0027properties\u0027][\u0027server\u0027]["},{"line_number":40,"context_line":"    \u0027properties\u0027].update({\u0027OS-EXT-SRV-ATTR:hostname\u0027:"},{"line_number":41,"context_line":"                          {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]}})"},{"line_number":42,"context_line":"get_server[\u0027response_body\u0027][\u0027properties\u0027][\u0027server\u0027]["},{"line_number":43,"context_line":"    \u0027properties\u0027].update({\u0027OS-EXT-SRV-ATTR:user_data\u0027:"},{"line_number":44,"context_line":"                          {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]}})"},{"line_number":45,"context_line":"get_server[\u0027response_body\u0027][\u0027properties\u0027][\u0027server\u0027]["},{"line_number":46,"context_line":"    \u0027properties\u0027].update({\u0027host_status\u0027: {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]}})"},{"line_number":47,"context_line":"get_server[\u0027response_body\u0027][\u0027properties\u0027][\u0027server\u0027]["},{"line_number":48,"context_line":"    \u0027properties\u0027].update({\u0027OS-EXT-SRV-ATTR:root_device_name\u0027:"},{"line_number":49,"context_line":"                          {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]}})"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"get_server[\u0027response_body\u0027][\u0027properties\u0027][\u0027server\u0027]["},{"line_number":52,"context_line":"    \u0027required\u0027].append(\u0027tags\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_e90f27df","line":49,"range":{"start_line":27,"start_character":0,"end_line":49,"end_character":56},"updated":"2016-07-05 08:38:56.000000000","message":"I am surprised now how 2.20 tests passing. let me check with 2.3 tests.","commit_id":"b12e8308d7f3ee9263e109375636b85a4f597296"}],"tempest/lib/services/compute/servers_client.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"bdfa59694be1f3683b19fa005c60b8e9d1101ad5","unresolved":false,"context_lines":[{"line_number":397,"context_line":"        Available params: http://developer.openstack.org/"},{"line_number":398,"context_line":"                          api-ref-compute-v2.1.html#migrate"},{"line_number":399,"context_line":"        \"\"\""},{"line_number":400,"context_line":"        schema \u003d self.get_schema(self.schema_versions_info)"},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"        return self.action(server_id, \u0027migrate\u0027, **kwargs)"},{"line_number":403,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_4efce871","line":400,"range":{"start_line":400,"start_character":0,"end_line":400,"end_character":59},"updated":"2016-07-01 08:16:05.000000000","message":"i think we do not need this, migrate server response is not changed in this microversion.","commit_id":"908867039fcf3189cbfead7caf81f64bef874386"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"428596e1e9cb405bfa2fd2ca1fd2bc278a139ff0","unresolved":false,"context_lines":[{"line_number":397,"context_line":"        Available params: http://developer.openstack.org/"},{"line_number":398,"context_line":"                          api-ref-compute-v2.1.html#migrate"},{"line_number":399,"context_line":"        \"\"\""},{"line_number":400,"context_line":"        schema \u003d self.get_schema(self.schema_versions_info)"},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"        return self.action(server_id, \u0027migrate\u0027, **kwargs)"},{"line_number":403,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_f983d5c8","line":400,"range":{"start_line":400,"start_character":0,"end_line":400,"end_character":59},"in_reply_to":"3aaa91ec_4efce871","updated":"2016-07-01 10:14:48.000000000","message":"Done","commit_id":"908867039fcf3189cbfead7caf81f64bef874386"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"767630365c7131622d03cc3039f73324e35dd8e4","unresolved":false,"context_lines":[{"line_number":156,"context_line":"    def action(self, server_id, action_name,"},{"line_number":157,"context_line":"               schema\u003dschema.server_actions_common_schema,"},{"line_number":158,"context_line":"               **kwargs):"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        post_body \u003d json.dumps({action_name: kwargs})"},{"line_number":161,"context_line":"        resp, body \u003d self.post(\u0027servers/%s/action\u0027 % server_id,"},{"line_number":162,"context_line":"                               post_body)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_1e8587ac","line":159,"range":{"start_line":159,"start_character":0,"end_line":159,"end_character":0},"updated":"2016-07-05 08:37:15.000000000","message":"unnecessary change. I think left from previous patch.","commit_id":"b12e8308d7f3ee9263e109375636b85a4f597296"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"71e0fd481ec080ceb7fa472ef252980004b0ba31","unresolved":false,"context_lines":[{"line_number":156,"context_line":"    def action(self, server_id, action_name,"},{"line_number":157,"context_line":"               schema\u003dschema.server_actions_common_schema,"},{"line_number":158,"context_line":"               **kwargs):"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        post_body \u003d json.dumps({action_name: kwargs})"},{"line_number":161,"context_line":"        resp, body \u003d self.post(\u0027servers/%s/action\u0027 % server_id,"},{"line_number":162,"context_line":"                               post_body)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_37e34107","line":159,"range":{"start_line":159,"start_character":0,"end_line":159,"end_character":0},"in_reply_to":"1aa78d24_1e8587ac","updated":"2016-07-05 10:42:50.000000000","message":"Done","commit_id":"b12e8308d7f3ee9263e109375636b85a4f597296"}]}
