)]}'
{"tempest/api/compute/test_cold_migration.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"02afb84d6a85141159e4c3926f2b94349e35e86f","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    CONF \u003d config.CONF"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    @classmethod"},{"line_number":30,"context_line":"    def setUpClass(cls):"},{"line_number":31,"context_line":"        super(ColdMigrationTestJSON, cls).setUpClass()"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        cls.admin_hosts_client \u003d cls.os_adm.hosts_client"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUX%2F%2FHc0%3D","line":30,"updated":"2014-02-17 01:52:09.000000000","message":"instead of specifying \"CONF.compute_feature_enabled.cold_migration\" of skip_if deco of each test,  please add\n\n if not CONF.compute_feature_enabled.cold_migration:\n     raise self.skipException(\u0027Cold migration is not enabled\u0027)\n\nfor the readability.\n\nsample: tempest/api/identity/admin/v3/test_trusts.py","commit_id":"a421564f1466c08dbe361760201685a040623cca"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"589a00da41237a812c80e40947dc8a00d23340d0","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    CONF \u003d config.CONF"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    @classmethod"},{"line_number":30,"context_line":"    def setUpClass(cls):"},{"line_number":31,"context_line":"        super(ColdMigrationTestJSON, cls).setUpClass()"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        cls.admin_hosts_client \u003d cls.os_adm.hosts_client"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUX%2F%2FHUo%3D","line":30,"in_reply_to":"AAAAUX%2F%2FHc0%3D","updated":"2014-02-17 02:26:18.000000000","message":"hi, Ken\u0027ichi Ohmichi, it\u0027s really a good point, I will copy that.","commit_id":"a421564f1466c08dbe361760201685a040623cca"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"7000563b145c0987f7c3d6c9de000e75505c9eb9","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    def setUpClass(cls):"},{"line_number":29,"context_line":"        super(ColdMigrationTestJSON, cls).setUpClass()"},{"line_number":30,"context_line":"        if not CONF.compute_feature_enabled.cold_migration:"},{"line_number":31,"context_line":"            raise self.skipException(\"Cold migration aren\u0027t enabled\")"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        cls.admin_hosts_client \u003d cls.os_adm.hosts_client"},{"line_number":34,"context_line":"        cls.admin_servers_client \u003d cls.os_adm.servers_client"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUX%2F%2FHGM%3D","line":31,"updated":"2014-02-17 03:19:54.000000000","message":"s/are/is/ because of a noun.","commit_id":"251464d854332153220f4e71b9b487836f24ceea"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"98853b5648874d0a8b364eb616b9db4e6a58416b","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    def setUpClass(cls):"},{"line_number":29,"context_line":"        super(ColdMigrationTestJSON, cls).setUpClass()"},{"line_number":30,"context_line":"        if not CONF.compute_feature_enabled.cold_migration:"},{"line_number":31,"context_line":"            raise self.skipException(\"Cold migration aren\u0027t enabled\")"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        cls.admin_hosts_client \u003d cls.os_adm.hosts_client"},{"line_number":34,"context_line":"        cls.admin_servers_client \u003d cls.os_adm.servers_client"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUX%2F%2FG%2BA%3D","line":31,"in_reply_to":"AAAAUX%2F%2FHGM%3D","updated":"2014-02-17 03:45:23.000000000","message":"Done","commit_id":"251464d854332153220f4e71b9b487836f24ceea"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"8394b76d4e6f45127832a7f19fb2859cb56763fe","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAUX%2F%2B4jM%3D","line":1,"updated":"2014-02-18 12:49:43.000000000","message":"Presumably this copyright header is wrong?","commit_id":"488ec95cdfda7321a3b059a77c434c27373fbe55"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"8394b76d4e6f45127832a7f19fb2859cb56763fe","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    @classmethod"},{"line_number":28,"context_line":"    def setUpClass(cls):"},{"line_number":29,"context_line":"        super(ColdMigrationTestJSON, cls).setUpClass()"},{"line_number":30,"context_line":"        if not CONF.compute_feature_enabled.cold_migration:"},{"line_number":31,"context_line":"            raise cls.skipException(\"Cold migration is not enabled\")"},{"line_number":32,"context_line":"        cls.admin_hosts_client \u003d cls.os_adm.hosts_client"},{"line_number":33,"context_line":"        cls.admin_servers_client \u003d cls.os_adm.servers_client"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAUX%2F%2B4gY%3D","line":30,"updated":"2014-02-18 12:49:43.000000000","message":"might be safer to call cls.tearDownClass() here","commit_id":"488ec95cdfda7321a3b059a77c434c27373fbe55"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"03d63bec33631214de5ec4ef8b799b9e75e7df89","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        # Cold migrate an active instance to another host and confirm resize"},{"line_number":73,"context_line":"        if len(self._get_compute_hostnames()) \u003c 2:"},{"line_number":74,"context_line":"            raise self.skipTest("},{"line_number":75,"context_line":"                \"Less than 2 compute nodes, skipping migration test.\")"},{"line_number":76,"context_line":"        server_id \u003d self._get_an_active_server()"},{"line_number":77,"context_line":"        actual_host \u003d self._get_host_for_server(server_id)"},{"line_number":78,"context_line":"        self._cold_migrate_server_to(server_id)"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAUX%2F%2FFMY%3D","line":75,"updated":"2014-02-17 08:57:28.000000000","message":"The previous comment does not seem to be applied.\nSorry if my previous comment is wrong.","commit_id":"488ec95cdfda7321a3b059a77c434c27373fbe55"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"8394b76d4e6f45127832a7f19fb2859cb56763fe","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        # Cold migrate an active instance to another host and confirm resize"},{"line_number":73,"context_line":"        if len(self._get_compute_hostnames()) \u003c 2:"},{"line_number":74,"context_line":"            raise self.skipTest("},{"line_number":75,"context_line":"                \"Less than 2 compute nodes, skipping migration test.\")"},{"line_number":76,"context_line":"        server_id \u003d self._get_an_active_server()"},{"line_number":77,"context_line":"        actual_host \u003d self._get_host_for_server(server_id)"},{"line_number":78,"context_line":"        self._cold_migrate_server_to(server_id)"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAUX%2F%2B4eg%3D","line":75,"in_reply_to":"AAAAUX%2F%2FFKE%3D","updated":"2014-02-18 12:49:43.000000000","message":"I think its better to move this into setupClass. Unless you know for sure there is a test with an exception to this.","commit_id":"488ec95cdfda7321a3b059a77c434c27373fbe55"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"47280d47c4c33991ab31c68be675537079e55f82","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        # Cold migrate an active instance to another host and confirm resize"},{"line_number":73,"context_line":"        if len(self._get_compute_hostnames()) \u003c 2:"},{"line_number":74,"context_line":"            raise self.skipTest("},{"line_number":75,"context_line":"                \"Less than 2 compute nodes, skipping migration test.\")"},{"line_number":76,"context_line":"        server_id \u003d self._get_an_active_server()"},{"line_number":77,"context_line":"        actual_host \u003d self._get_host_for_server(server_id)"},{"line_number":78,"context_line":"        self._cold_migrate_server_to(server_id)"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAUX%2F%2FFKE%3D","line":75,"in_reply_to":"AAAAUX%2F%2FFMY%3D","updated":"2014-02-17 09:00:01.000000000","message":"I hold that we shall leave this judge here, it will be better.","commit_id":"488ec95cdfda7321a3b059a77c434c27373fbe55"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"03d63bec33631214de5ec4ef8b799b9e75e7df89","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        # Cold migrate an active instance to another host and revert resize"},{"line_number":87,"context_line":"        if len(self._get_compute_hostnames()) \u003c 2:"},{"line_number":88,"context_line":"            raise self.skipTest("},{"line_number":89,"context_line":"                \"Less than 2 compute nodes, skipping migration test.\")"},{"line_number":90,"context_line":"        server_id \u003d self._get_an_active_server()"},{"line_number":91,"context_line":"        actual_host \u003d self._get_host_for_server(server_id)"},{"line_number":92,"context_line":"        self._cold_migrate_server_to(server_id)"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAUX%2F%2FFMM%3D","line":89,"updated":"2014-02-17 08:57:28.000000000","message":"ditto","commit_id":"488ec95cdfda7321a3b059a77c434c27373fbe55"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"47280d47c4c33991ab31c68be675537079e55f82","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        # Cold migrate an active instance to another host and revert resize"},{"line_number":87,"context_line":"        if len(self._get_compute_hostnames()) \u003c 2:"},{"line_number":88,"context_line":"            raise self.skipTest("},{"line_number":89,"context_line":"                \"Less than 2 compute nodes, skipping migration test.\")"},{"line_number":90,"context_line":"        server_id \u003d self._get_an_active_server()"},{"line_number":91,"context_line":"        actual_host \u003d self._get_host_for_server(server_id)"},{"line_number":92,"context_line":"        self._cold_migrate_server_to(server_id)"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAUX%2F%2FFKA%3D","line":89,"in_reply_to":"AAAAUX%2F%2FFMM%3D","updated":"2014-02-17 09:00:01.000000000","message":"Done","commit_id":"488ec95cdfda7321a3b059a77c434c27373fbe55"}],"tempest/api/compute/v3/test_cold_migration.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"3351a2ea173773679a1437ab371196e7962d5bbd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2012 OpenStack Foundation"},{"line_number":4,"context_line":"# All Rights Reserved."}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F93Yw%3D","line":1,"updated":"2014-02-03 05:09:13.000000000","message":"Please remove this vim header.\n\nWe have removed a lot of this line already.","commit_id":"121d6778420d5337c0676e0fbe4186b1f48465e3"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"3351a2ea173773679a1437ab371196e7962d5bbd","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from tempest.test import attr"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class ColdMigrationV3TestJSON(base.BaseV3ComputeAdminTest):"},{"line_number":24,"context_line":"    _host_key \u003d \u0027os-extended-server-attributes:host\u0027"},{"line_number":25,"context_line":"    _interface \u003d \u0027json\u0027"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F93ZE%3D","line":23,"updated":"2014-02-03 05:09:13.000000000","message":"s/ColdMigrationV3TestJSON/ColdMigrationV3Test/ because of removing xml support from Nova v3 API and suffix \"JSON\" becomes meaningless.\n\nhttps://review.openstack.org/#/c/70052/\n\nhttp://lists.openstack.org/pipermail/openstack-dev/2014-January/025290.html","commit_id":"121d6778420d5337c0676e0fbe4186b1f48465e3"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"fd35d0feac0c6fb6bea021416fa23b49c269ba3a","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from tempest.test import attr"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class ColdMigrationV3TestJSON(base.BaseV3ComputeAdminTest):"},{"line_number":24,"context_line":"    _host_key \u003d \u0027os-extended-server-attributes:host\u0027"},{"line_number":25,"context_line":"    _interface \u003d \u0027json\u0027"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2F5vo%3D","line":23,"in_reply_to":"AAAAUH%2F93ZE%3D","updated":"2014-02-10 03:33:46.000000000","message":"Done","commit_id":"121d6778420d5337c0676e0fbe4186b1f48465e3"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"3351a2ea173773679a1437ab371196e7962d5bbd","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        return self._get_server_details(server_id)[\u0027status\u0027]"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def _get_an_active_server(self):"},{"line_number":62,"context_line":"        for server_id in self.created_server_ids:"},{"line_number":63,"context_line":"            if \u0027ACTIVE\u0027 \u003d\u003d self._get_server_status(server_id):"},{"line_number":64,"context_line":"                return server_id"},{"line_number":65,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F93Y4%3D","line":62,"updated":"2014-02-03 05:09:13.000000000","message":"You can access self.servers instead of the self.created_server_ids.","commit_id":"121d6778420d5337c0676e0fbe4186b1f48465e3"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"fd35d0feac0c6fb6bea021416fa23b49c269ba3a","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        return self._get_server_details(server_id)[\u0027status\u0027]"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def _get_an_active_server(self):"},{"line_number":62,"context_line":"        for server_id in self.created_server_ids:"},{"line_number":63,"context_line":"            if \u0027ACTIVE\u0027 \u003d\u003d self._get_server_status(server_id):"},{"line_number":64,"context_line":"                return server_id"},{"line_number":65,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2F5uI%3D","line":62,"in_reply_to":"AAAAUH%2F93Y4%3D","updated":"2014-02-10 03:33:46.000000000","message":"hi, I thought the id is enough for this test as others did in live migration test, so I choose to leave it here.","commit_id":"121d6778420d5337c0676e0fbe4186b1f48465e3"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"3351a2ea173773679a1437ab371196e7962d5bbd","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            _, server \u003d self.create_test_server(wait_until\u003d\"ACTIVE\")"},{"line_number":67,"context_line":"            server_id \u003d server[\u0027id\u0027]"},{"line_number":68,"context_line":"            self.password \u003d server[\u0027adminPass\u0027]"},{"line_number":69,"context_line":"            self.password \u003d \u0027password\u0027"},{"line_number":70,"context_line":"            self.created_server_ids.append(server_id)"},{"line_number":71,"context_line":"            return server_id"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F93Y8%3D","line":69,"updated":"2014-02-03 05:09:13.000000000","message":"line 68-69 seems unnecessary because this password is not used in the other places.","commit_id":"121d6778420d5337c0676e0fbe4186b1f48465e3"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"fd35d0feac0c6fb6bea021416fa23b49c269ba3a","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            _, server \u003d self.create_test_server(wait_until\u003d\"ACTIVE\")"},{"line_number":67,"context_line":"            server_id \u003d server[\u0027id\u0027]"},{"line_number":68,"context_line":"            self.password \u003d server[\u0027adminPass\u0027]"},{"line_number":69,"context_line":"            self.password \u003d \u0027password\u0027"},{"line_number":70,"context_line":"            self.created_server_ids.append(server_id)"},{"line_number":71,"context_line":"            return server_id"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2F5rg%3D","line":69,"in_reply_to":"AAAAUH%2F93Y8%3D","updated":"2014-02-10 03:33:46.000000000","message":"Done","commit_id":"121d6778420d5337c0676e0fbe4186b1f48465e3"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"f6b1257394a3b60d1e037537609ef50b67563532","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":74,"context_line":"    def test_resize_confirm_cold_migration(self):"},{"line_number":75,"context_line":"        # Cold migrate an active instance to another host and confirm resize"},{"line_number":76,"context_line":"        if len(self._get_compute_hostnames()) \u003c 2:"},{"line_number":77,"context_line":"            raise self.skipTest("},{"line_number":78,"context_line":"                \"Less than 2 compute nodes, skipping migration test.\")"},{"line_number":79,"context_line":"        server_id \u003d self._get_an_active_server()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F94ak%3D","line":76,"updated":"2014-02-02 16:07:25.000000000","message":"- cold migrartion requires a special setup\n- automated skip decisions can lead false positive suite test run.\n- The livemigration has a config boolean enable/disable flag for this, I think the cold migration should get one as well.","commit_id":"121d6778420d5337c0676e0fbe4186b1f48465e3"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"fd35d0feac0c6fb6bea021416fa23b49c269ba3a","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":74,"context_line":"    def test_resize_confirm_cold_migration(self):"},{"line_number":75,"context_line":"        # Cold migrate an active instance to another host and confirm resize"},{"line_number":76,"context_line":"        if len(self._get_compute_hostnames()) \u003c 2:"},{"line_number":77,"context_line":"            raise self.skipTest("},{"line_number":78,"context_line":"                \"Less than 2 compute nodes, skipping migration test.\")"},{"line_number":79,"context_line":"        server_id \u003d self._get_an_active_server()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2F5rk%3D","line":76,"in_reply_to":"AAAAUH%2F94ak%3D","updated":"2014-02-10 03:33:46.000000000","message":"hi, happy chinese new year and thank you for the comments. I will add the conf to cold migration as well.","commit_id":"121d6778420d5337c0676e0fbe4186b1f48465e3"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"3351a2ea173773679a1437ab371196e7962d5bbd","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    @classmethod"},{"line_number":102,"context_line":"    def tearDownClass(cls):"},{"line_number":103,"context_line":"        for server_id in cls.created_server_ids:"},{"line_number":104,"context_line":"            cls.servers_client.delete_server(server_id)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        super(ColdMigrationV3TestJSON, cls).tearDownClass()"},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F93Y0%3D","line":104,"updated":"2014-02-03 05:09:13.000000000","message":"The servers, which are created with create_test_server(), can be removed in base.py\u0027s tearDownClass() automatically. So this tearDownClass() is not necessary.\n\nPlease see tempest/api/compute/base.py.","commit_id":"121d6778420d5337c0676e0fbe4186b1f48465e3"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"fd35d0feac0c6fb6bea021416fa23b49c269ba3a","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    @classmethod"},{"line_number":102,"context_line":"    def tearDownClass(cls):"},{"line_number":103,"context_line":"        for server_id in cls.created_server_ids:"},{"line_number":104,"context_line":"            cls.servers_client.delete_server(server_id)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        super(ColdMigrationV3TestJSON, cls).tearDownClass()"},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2F5tQ%3D","line":104,"in_reply_to":"AAAAUH%2F93Y0%3D","updated":"2014-02-10 03:33:46.000000000","message":"Done","commit_id":"121d6778420d5337c0676e0fbe4186b1f48465e3"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"3351a2ea173773679a1437ab371196e7962d5bbd","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        super(ColdMigrationV3TestJSON, cls).tearDownClass()"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"class ColdMigrationV3TestXML(ColdMigrationV3TestJSON):"},{"line_number":110,"context_line":"    _host_key \u003d ("},{"line_number":111,"context_line":"        \u0027{http://docs.openstack.org/compute/ext/extended_status/api/v1.1}host\u0027)"},{"line_number":112,"context_line":"    _interface \u003d \u0027xml\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F93ZI%3D","line":109,"updated":"2014-02-03 05:09:13.000000000","message":"Now Nova v3 API does not support xml format.\nPlease remove this class.\n\nref: http://lists.openstack.org/pipermail/openstack-dev/2014-January/025290.html","commit_id":"121d6778420d5337c0676e0fbe4186b1f48465e3"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"fd35d0feac0c6fb6bea021416fa23b49c269ba3a","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        super(ColdMigrationV3TestJSON, cls).tearDownClass()"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"class ColdMigrationV3TestXML(ColdMigrationV3TestJSON):"},{"line_number":110,"context_line":"    _host_key \u003d ("},{"line_number":111,"context_line":"        \u0027{http://docs.openstack.org/compute/ext/extended_status/api/v1.1}host\u0027)"},{"line_number":112,"context_line":"    _interface \u003d \u0027xml\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2F5vg%3D","line":109,"in_reply_to":"AAAAUH%2F93ZI%3D","updated":"2014-02-10 03:33:46.000000000","message":"Done","commit_id":"121d6778420d5337c0676e0fbe4186b1f48465e3"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"a3a5104ee95ea2b7a6f8e09b5aa3576058708a25","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from tempest.api.compute import base"},{"line_number":19,"context_line":"from tempest import config"},{"line_number":20,"context_line":"from tempest.test import attr"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class ColdMigrationV3Test(base.BaseV3ComputeAdminTest):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUX%2F%2F3p8%3D","line":20,"updated":"2014-02-10 09:32:36.000000000","message":"import module is better:\n\nfrom tempest.test import attr -\u003e from tempest import test","commit_id":"e838c066df1179404cae45cbf30d5329c3248951"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"6ac2bb21e1c91e7956446e80f367e8b865c5bb2c","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from tempest.api.compute import base"},{"line_number":19,"context_line":"from tempest import config"},{"line_number":20,"context_line":"from tempest.test import attr"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class ColdMigrationV3Test(base.BaseV3ComputeAdminTest):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUX%2F%2F3d0%3D","line":20,"in_reply_to":"AAAAUX%2F%2F3p8%3D","updated":"2014-02-10 09:45:15.000000000","message":"Done","commit_id":"e838c066df1179404cae45cbf30d5329c3248951"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"a3a5104ee95ea2b7a6f8e09b5aa3576058708a25","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def _cold_migrate_server_to(self, server_id, dest_host):"},{"line_number":54,"context_line":"        _resp, body \u003d self.admin_servers_client.migrate_server("},{"line_number":55,"context_line":"            server_id)"},{"line_number":56,"context_line":"        return body"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def _get_server_status(self, server_id):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUX%2F%2F3o0%3D","line":55,"updated":"2014-02-10 09:32:36.000000000","message":"It\u0027s better to check the response status code like other api tests.","commit_id":"e838c066df1179404cae45cbf30d5329c3248951"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"6ac2bb21e1c91e7956446e80f367e8b865c5bb2c","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def _cold_migrate_server_to(self, server_id, dest_host):"},{"line_number":54,"context_line":"        _resp, body \u003d self.admin_servers_client.migrate_server("},{"line_number":55,"context_line":"            server_id)"},{"line_number":56,"context_line":"        return body"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def _get_server_status(self, server_id):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUX%2F%2F3dg%3D","line":55,"in_reply_to":"AAAAUX%2F%2F3o0%3D","updated":"2014-02-10 09:45:15.000000000","message":"Done","commit_id":"e838c066df1179404cae45cbf30d5329c3248951"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"02afb84d6a85141159e4c3926f2b94349e35e86f","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    CONF \u003d config.CONF"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    @classmethod"},{"line_number":30,"context_line":"    def setUpClass(cls):"},{"line_number":31,"context_line":"        super(ColdMigrationV3Test, cls).setUpClass()"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        cls.admin_hosts_client \u003d cls.os_adm.hosts_client"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUX%2F%2FHdA%3D","line":30,"updated":"2014-02-17 01:52:09.000000000","message":"ditto","commit_id":"a421564f1466c08dbe361760201685a040623cca"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"589a00da41237a812c80e40947dc8a00d23340d0","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    CONF \u003d config.CONF"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    @classmethod"},{"line_number":30,"context_line":"    def setUpClass(cls):"},{"line_number":31,"context_line":"        super(ColdMigrationV3Test, cls).setUpClass()"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        cls.admin_hosts_client \u003d cls.os_adm.hosts_client"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUX%2F%2FHT0%3D","line":30,"in_reply_to":"AAAAUX%2F%2FHdA%3D","updated":"2014-02-17 02:26:18.000000000","message":"Done","commit_id":"a421564f1466c08dbe361760201685a040623cca"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"7000563b145c0987f7c3d6c9de000e75505c9eb9","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    def setUpClass(cls):"},{"line_number":29,"context_line":"        super(ColdMigrationV3Test, cls).setUpClass()"},{"line_number":30,"context_line":"        if not CONF.compute_feature_enabled.cold_migration:"},{"line_number":31,"context_line":"            raise self.skipException(\"Cold migration aren\u0027t enabled\")"},{"line_number":32,"context_line":"        "},{"line_number":33,"context_line":"        cls.admin_hosts_client \u003d cls.os_adm.hosts_client"},{"line_number":34,"context_line":"        cls.admin_servers_client \u003d cls.os_adm.servers_client"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUX%2F%2FHGE%3D","line":31,"updated":"2014-02-17 03:19:54.000000000","message":"ditto","commit_id":"251464d854332153220f4e71b9b487836f24ceea"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"98853b5648874d0a8b364eb616b9db4e6a58416b","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    def setUpClass(cls):"},{"line_number":29,"context_line":"        super(ColdMigrationV3Test, cls).setUpClass()"},{"line_number":30,"context_line":"        if not CONF.compute_feature_enabled.cold_migration:"},{"line_number":31,"context_line":"            raise self.skipException(\"Cold migration aren\u0027t enabled\")"},{"line_number":32,"context_line":"        "},{"line_number":33,"context_line":"        cls.admin_hosts_client \u003d cls.os_adm.hosts_client"},{"line_number":34,"context_line":"        cls.admin_servers_client \u003d cls.os_adm.servers_client"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUX%2F%2FG%2Bo%3D","line":31,"in_reply_to":"AAAAUX%2F%2FHGE%3D","updated":"2014-02-17 03:45:23.000000000","message":"Done","commit_id":"251464d854332153220f4e71b9b487836f24ceea"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"7000563b145c0987f7c3d6c9de000e75505c9eb9","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        super(ColdMigrationV3Test, cls).setUpClass()"},{"line_number":30,"context_line":"        if not CONF.compute_feature_enabled.cold_migration:"},{"line_number":31,"context_line":"            raise self.skipException(\"Cold migration aren\u0027t enabled\")"},{"line_number":32,"context_line":"        "},{"line_number":33,"context_line":"        cls.admin_hosts_client \u003d cls.os_adm.hosts_client"},{"line_number":34,"context_line":"        cls.admin_servers_client \u003d cls.os_adm.servers_client"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUX%2F%2FHF4%3D","line":32,"updated":"2014-02-17 03:19:54.000000000","message":"seems unnecessary spaces","commit_id":"251464d854332153220f4e71b9b487836f24ceea"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"98853b5648874d0a8b364eb616b9db4e6a58416b","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        super(ColdMigrationV3Test, cls).setUpClass()"},{"line_number":30,"context_line":"        if not CONF.compute_feature_enabled.cold_migration:"},{"line_number":31,"context_line":"            raise self.skipException(\"Cold migration aren\u0027t enabled\")"},{"line_number":32,"context_line":"        "},{"line_number":33,"context_line":"        cls.admin_hosts_client \u003d cls.os_adm.hosts_client"},{"line_number":34,"context_line":"        cls.admin_servers_client \u003d cls.os_adm.servers_client"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUX%2F%2FG%2Bg%3D","line":32,"in_reply_to":"AAAAUX%2F%2FHF4%3D","updated":"2014-02-17 03:45:23.000000000","message":"Done","commit_id":"251464d854332153220f4e71b9b487836f24ceea"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"7000563b145c0987f7c3d6c9de000e75505c9eb9","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        # Cold migrate an active instance to another host and confirm resize"},{"line_number":75,"context_line":"        if len(self._get_compute_hostnames()) \u003c 2:"},{"line_number":76,"context_line":"            raise self.skipTest("},{"line_number":77,"context_line":"                \"Less than 2 compute nodes, skipping migration test.\")"},{"line_number":78,"context_line":"        server_id \u003d self._get_an_active_server()"},{"line_number":79,"context_line":"        actual_host \u003d self._get_host_for_server(server_id)"},{"line_number":80,"context_line":"        self._cold_migrate_server_to(server_id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUX%2F%2FHFI%3D","line":77,"updated":"2014-02-17 03:19:54.000000000","message":"Sorry for missing this point in my previous review.\n\nI think the tests for migration need 2 compute nodes at least always. right?\n\nIf yes, how about moving this check also into setUpClass()?","commit_id":"251464d854332153220f4e71b9b487836f24ceea"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"98853b5648874d0a8b364eb616b9db4e6a58416b","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        # Cold migrate an active instance to another host and confirm resize"},{"line_number":75,"context_line":"        if len(self._get_compute_hostnames()) \u003c 2:"},{"line_number":76,"context_line":"            raise self.skipTest("},{"line_number":77,"context_line":"                \"Less than 2 compute nodes, skipping migration test.\")"},{"line_number":78,"context_line":"        server_id \u003d self._get_an_active_server()"},{"line_number":79,"context_line":"        actual_host \u003d self._get_host_for_server(server_id)"},{"line_number":80,"context_line":"        self._cold_migrate_server_to(server_id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUX%2F%2FG%2BM%3D","line":77,"in_reply_to":"AAAAUX%2F%2FHFI%3D","updated":"2014-02-17 03:45:23.000000000","message":"yes, I will move this check to setUpClass.","commit_id":"251464d854332153220f4e71b9b487836f24ceea"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"7000563b145c0987f7c3d6c9de000e75505c9eb9","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        # Cold migrate an active instance to another host and revert resize"},{"line_number":89,"context_line":"        if len(self._get_compute_hostnames()) \u003c 2:"},{"line_number":90,"context_line":"            raise self.skipTest("},{"line_number":91,"context_line":"                \"Less than 2 compute nodes, skipping migration test.\")"},{"line_number":92,"context_line":"        server_id \u003d self._get_an_active_server()"},{"line_number":93,"context_line":"        actual_host \u003d self._get_host_for_server(server_id)"},{"line_number":94,"context_line":"        self._cold_migrate_server_to(server_id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUX%2F%2FHFE%3D","line":91,"updated":"2014-02-17 03:19:54.000000000","message":"ditto","commit_id":"251464d854332153220f4e71b9b487836f24ceea"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"98853b5648874d0a8b364eb616b9db4e6a58416b","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        # Cold migrate an active instance to another host and revert resize"},{"line_number":89,"context_line":"        if len(self._get_compute_hostnames()) \u003c 2:"},{"line_number":90,"context_line":"            raise self.skipTest("},{"line_number":91,"context_line":"                \"Less than 2 compute nodes, skipping migration test.\")"},{"line_number":92,"context_line":"        server_id \u003d self._get_an_active_server()"},{"line_number":93,"context_line":"        actual_host \u003d self._get_host_for_server(server_id)"},{"line_number":94,"context_line":"        self._cold_migrate_server_to(server_id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUX%2F%2FG%2BI%3D","line":91,"in_reply_to":"AAAAUX%2F%2FHFE%3D","updated":"2014-02-17 03:45:23.000000000","message":"Done","commit_id":"251464d854332153220f4e71b9b487836f24ceea"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"8394b76d4e6f45127832a7f19fb2859cb56763fe","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAUX%2F%2B4f8%3D","line":1,"updated":"2014-02-18 12:49:43.000000000","message":"Copyright header correct?","commit_id":"488ec95cdfda7321a3b059a77c434c27373fbe55"}],"tempest/config.py":[{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"8394b76d4e6f45127832a7f19fb2859cb56763fe","unresolved":false,"context_lines":[{"line_number":250,"context_line":"    cfg.BoolOpt(\u0027cold_migration\u0027,"},{"line_number":251,"context_line":"                default\u003dFalse,"},{"line_number":252,"context_line":"                help\u003d\"Does the test environment support cold migration \""},{"line_number":253,"context_line":"                     \"available?\")"},{"line_number":254,"context_line":"]"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAUX%2F%2B4jo%3D","line":253,"updated":"2014-02-18 12:49:43.000000000","message":"nit - simply \"Does the test environment support cold migration\" would be better","commit_id":"488ec95cdfda7321a3b059a77c434c27373fbe55"}]}
