)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"7e8400074bda5699d6f1e9e274e6ccae97810dfc","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add extra list servers by host test"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add list servers by exist host"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I287ac53709beb8274f9abf6a5b2ad51503a7f49d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"AAAAUH%2F%2FHg8%3D","line":9,"updated":"2014-01-17 09:20:32.000000000","message":"Typo: exist-\u003eexisting","commit_id":"014dab70884b3b75a598b70776c63edc7bfe11ba"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"f027cba6e3c23dae5e3c7eddc91cfc2d12396941","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add extra list servers by host test"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add list servers by exist host"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I287ac53709beb8274f9abf6a5b2ad51503a7f49d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"AAAAUH%2F%2FGpY%3D","line":9,"in_reply_to":"AAAAUH%2F%2FHg8%3D","updated":"2014-01-17 12:03:27.000000000","message":"Done","commit_id":"014dab70884b3b75a598b70776c63edc7bfe11ba"}],"tempest/api/compute/admin/test_servers.py":[{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"7e8400074bda5699d6f1e9e274e6ccae97810dfc","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":97,"context_line":"    def test_list_servers_filter_by_exist_host(self):"},{"line_number":98,"context_line":"        # Filter the list of servers by existed host"},{"line_number":99,"context_line":"        name \u003d data_utils.rand_name(\u0027server\u0027)"},{"line_number":100,"context_line":"        flavor \u003d self.flavor_ref"},{"line_number":101,"context_line":"        image_id \u003d self.image_ref"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAAUH%2F%2FHjg%3D","line":98,"updated":"2014-01-17 09:20:32.000000000","message":"Typo: existed-\u003eexisting","commit_id":"014dab70884b3b75a598b70776c63edc7bfe11ba"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"f027cba6e3c23dae5e3c7eddc91cfc2d12396941","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":97,"context_line":"    def test_list_servers_filter_by_exist_host(self):"},{"line_number":98,"context_line":"        # Filter the list of servers by existed host"},{"line_number":99,"context_line":"        name \u003d data_utils.rand_name(\u0027server\u0027)"},{"line_number":100,"context_line":"        flavor \u003d self.flavor_ref"},{"line_number":101,"context_line":"        image_id \u003d self.image_ref"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAAUH%2F%2FGrA%3D","line":98,"in_reply_to":"AAAAUH%2F%2FHjg%3D","updated":"2014-01-17 12:03:27.000000000","message":"Done","commit_id":"014dab70884b3b75a598b70776c63edc7bfe11ba"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"7e8400074bda5699d6f1e9e274e6ccae97810dfc","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        resp, hosts \u003d self.hosts_client.list_hosts()"},{"line_number":106,"context_line":"        hosts \u003d [host for host in hosts if host[\u0027service\u0027] \u003d\u003d \u0027compute\u0027]"},{"line_number":107,"context_line":"        for host in hosts:"},{"line_number":108,"context_line":"            hostname \u003d host[\u0027host_name\u0027]"},{"line_number":109,"context_line":"        params \u003d {\u0027host\u0027: hostname}"},{"line_number":110,"context_line":"        resp, body \u003d self.client.list_servers(params)"},{"line_number":111,"context_line":"        servers \u003d body[\u0027servers\u0027]"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAAUH%2F%2FHhU%3D","line":108,"updated":"2014-01-17 09:20:32.000000000","message":"There is no reason for rewritng hostname\u0027s value in a loop when you only need a name of any existent host. You\u0027d better replace it with\n    \n    hosts[0][\u0027host_name\u0027] \n\nBut in any case consider the situation when you have more then one host (say 2) with server running only on one of them. In this case you can accidentally pick the wrong host and the test will fail.","commit_id":"014dab70884b3b75a598b70776c63edc7bfe11ba"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"f027cba6e3c23dae5e3c7eddc91cfc2d12396941","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        resp, hosts \u003d self.hosts_client.list_hosts()"},{"line_number":106,"context_line":"        hosts \u003d [host for host in hosts if host[\u0027service\u0027] \u003d\u003d \u0027compute\u0027]"},{"line_number":107,"context_line":"        for host in hosts:"},{"line_number":108,"context_line":"            hostname \u003d host[\u0027host_name\u0027]"},{"line_number":109,"context_line":"        params \u003d {\u0027host\u0027: hostname}"},{"line_number":110,"context_line":"        resp, body \u003d self.client.list_servers(params)"},{"line_number":111,"context_line":"        servers \u003d body[\u0027servers\u0027]"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAAUH%2F%2FGpI%3D","line":108,"in_reply_to":"AAAAUH%2F%2FHhU%3D","updated":"2014-01-17 12:03:27.000000000","message":"Thanks for the comments. Elena Ezhova.\nI will change it to boot a new instance and use this instance hostname to test the list function. That will not be affected by the env of test.","commit_id":"014dab70884b3b75a598b70776c63edc7bfe11ba"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"7e8400074bda5699d6f1e9e274e6ccae97810dfc","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        params \u003d {\u0027host\u0027: hostname}"},{"line_number":110,"context_line":"        resp, body \u003d self.client.list_servers(params)"},{"line_number":111,"context_line":"        servers \u003d body[\u0027servers\u0027]"},{"line_number":112,"context_line":"        nonexisted_params \u003d {\u0027host\u0027: \u0027nonexisted_host\u0027}"},{"line_number":113,"context_line":"        resp, nonexisted_body \u003d self.client.list_servers("},{"line_number":114,"context_line":"            nonexisted_params)"},{"line_number":115,"context_line":"        nonexisted_servers \u003d nonexisted_body[\u0027servers\u0027]"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAAUH%2F%2FHhM%3D","line":112,"updated":"2014-01-17 09:20:32.000000000","message":"Nonexisted-\u003enonexisting","commit_id":"014dab70884b3b75a598b70776c63edc7bfe11ba"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"f027cba6e3c23dae5e3c7eddc91cfc2d12396941","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        params \u003d {\u0027host\u0027: hostname}"},{"line_number":110,"context_line":"        resp, body \u003d self.client.list_servers(params)"},{"line_number":111,"context_line":"        servers \u003d body[\u0027servers\u0027]"},{"line_number":112,"context_line":"        nonexisted_params \u003d {\u0027host\u0027: \u0027nonexisted_host\u0027}"},{"line_number":113,"context_line":"        resp, nonexisted_body \u003d self.client.list_servers("},{"line_number":114,"context_line":"            nonexisted_params)"},{"line_number":115,"context_line":"        nonexisted_servers \u003d nonexisted_body[\u0027servers\u0027]"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAAUH%2F%2FGq4%3D","line":112,"in_reply_to":"AAAAUH%2F%2FHhM%3D","updated":"2014-01-17 12:03:27.000000000","message":"Done","commit_id":"014dab70884b3b75a598b70776c63edc7bfe11ba"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"256f2c6a5f49878f2077753c690f43f941511025","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    def test_list_servers_filter_by_exist_host(self):"},{"line_number":96,"context_line":"        # Filter the list of servers by existent host"},{"line_number":97,"context_line":"        resp, test_server \u003d self.create_test_server(wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":98,"context_line":"        self.client.wait_for_server_status(test_server[\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":99,"context_line":"        resp, server \u003d self.client.get_server(test_server[\u0027id\u0027])"},{"line_number":100,"context_line":"        hostname \u003d server[self._host_key]"},{"line_number":101,"context_line":"        params \u003d {\u0027host\u0027: hostname}"}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAAUX%2F%2F5vE%3D","line":98,"updated":"2014-02-10 03:19:50.000000000","message":"this code can be removed because line97 already waits for server ACTIVE.","commit_id":"5144883fbf69143488c00ceb2313c8e36e4fb367"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"1a3c559a5ebd669b0bf7d201d6e661e16723d63a","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        resp, nonexistent_body \u003d self.client.list_servers("},{"line_number":109,"context_line":"            nonexistent_params)"},{"line_number":110,"context_line":"        nonexistent_servers \u003d nonexistent_body[\u0027servers\u0027]"},{"line_number":111,"context_line":"        resp, _ \u003d self.client.delete_server(test_server[\u0027id\u0027])"},{"line_number":112,"context_line":"        self.assertEqual(\u0027204\u0027, resp[\u0027status\u0027])"},{"line_number":113,"context_line":"        self.assertIn(test_server[\u0027id\u0027], map(lambda x: x[\u0027id\u0027], servers))"},{"line_number":114,"context_line":"        self.assertNotIn(test_server[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":30,"id":"AAAAUX%2F%2FjpY%3D","line":111,"updated":"2014-02-12 11:25:55.000000000","message":"This delete could be replaced with\n\n    self.addCleanup(self.client.delete_server, test_server[\u0027id\u0027]),\n\nwhich is to be placed right after you create a server. Doing so, you can be sure that, even if something that goes after the creation of a server fails, the resource will still be deleted.","commit_id":"fc6aa4ff1deed1608e0b0b91798fbd7bfd70f0f2"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"6f4de05608a60ef160d0436b47d21f413df1453f","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        resp, nonexistent_body \u003d self.client.list_servers("},{"line_number":109,"context_line":"            nonexistent_params)"},{"line_number":110,"context_line":"        nonexistent_servers \u003d nonexistent_body[\u0027servers\u0027]"},{"line_number":111,"context_line":"        resp, _ \u003d self.client.delete_server(test_server[\u0027id\u0027])"},{"line_number":112,"context_line":"        self.assertEqual(\u0027204\u0027, resp[\u0027status\u0027])"},{"line_number":113,"context_line":"        self.assertIn(test_server[\u0027id\u0027], map(lambda x: x[\u0027id\u0027], servers))"},{"line_number":114,"context_line":"        self.assertNotIn(test_server[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":30,"id":"AAAAUX%2F%2Fdlc%3D","line":111,"in_reply_to":"AAAAUX%2F%2FjpY%3D","updated":"2014-02-13 01:46:40.000000000","message":"Thanks Ezhova, I will change it, thx for the comments.","commit_id":"fc6aa4ff1deed1608e0b0b91798fbd7bfd70f0f2"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"949ea7564ccf5c84d95bafc7e6357f70971d0732","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        flavor \u003d self.flavor_ref"},{"line_number":98,"context_line":"        image_id \u003d self.image_ref"},{"line_number":99,"context_line":"        resp, test_server \u003d self.client.create_server("},{"line_number":100,"context_line":"            name, image_id, flavor)"},{"line_number":101,"context_line":"        self.client.wait_for_server_status(test_server[\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":102,"context_line":"        self.addCleanup(self.client.delete_server, test_server[\u0027id\u0027])"},{"line_number":103,"context_line":"        resp, server \u003d self.client.get_server(test_server[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":31,"id":"AAAAUX%2F%2FayE%3D","line":100,"updated":"2014-02-13 11:01:04.000000000","message":"self.addCleanup should go right here, before you start waiting for a server\u0027s status.","commit_id":"723e446af5810a5a719b6582a7e547d62f9e0bf9"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"84336ac803e554400b487bfded3fe1b03c9d8050","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        flavor \u003d self.flavor_ref"},{"line_number":98,"context_line":"        image_id \u003d self.image_ref"},{"line_number":99,"context_line":"        resp, test_server \u003d self.client.create_server("},{"line_number":100,"context_line":"            name, image_id, flavor)"},{"line_number":101,"context_line":"        self.client.wait_for_server_status(test_server[\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":102,"context_line":"        self.addCleanup(self.client.delete_server, test_server[\u0027id\u0027])"},{"line_number":103,"context_line":"        resp, server \u003d self.client.get_server(test_server[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":31,"id":"AAAAUX%2F%2FHGU%3D","line":100,"in_reply_to":"AAAAUX%2F%2FayE%3D","updated":"2014-02-17 03:35:00.000000000","message":"Done","commit_id":"723e446af5810a5a719b6582a7e547d62f9e0bf9"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"a8e06dd745ab4de28c78060abdd40f367e0f252c","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        self.assertIn(self.s1_name, servers_name)"},{"line_number":91,"context_line":"        self.assertIn(self.s2_name, servers_name)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":94,"context_line":"    def test_list_servers_filter_by_exist_host(self):"},{"line_number":95,"context_line":"        # Filter the list of servers by existent host"},{"line_number":96,"context_line":"        name \u003d data_utils.rand_name(\u0027server\u0027)"}],"source_content_type":"text/x-python","patch_set":33,"id":"AAAAUX%2F%2FC6c%3D","line":93,"updated":"2014-02-17 13:23:00.000000000","message":"This should be skipped if the host extension is disabled.","commit_id":"d4acec4ef5dffeaab531d54e64746688a56e3e8d"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"a8e06dd745ab4de28c78060abdd40f367e0f252c","unresolved":false,"context_lines":[{"line_number":197,"context_line":""},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"class ServersAdminTestXML(ServersAdminTestJSON):"},{"line_number":200,"context_line":"    _host_key \u003d ("},{"line_number":201,"context_line":"        \u0027{http://docs.openstack.org/compute/ext/extended_status/api/v1.1}host\u0027)"},{"line_number":202,"context_line":"    _interface \u003d \u0027xml\u0027"}],"source_content_type":"text/x-python","patch_set":33,"id":"AAAAUX%2F%2FC6w%3D","line":200,"updated":"2014-02-17 13:23:00.000000000","message":"This should be mapped in the https://github.com/openstack/tempest/blob/master/tempest/services/compute/xml/servers_client.py#L125.","commit_id":"d4acec4ef5dffeaab531d54e64746688a56e3e8d"}],"tempest/api/compute/servers/test_list_server_filters.py":[{"author":{"_account_id":8625,"name":"Anju Tiwari","username":"Anju5","inactive":true},"change_message_id":"06cf0b8615870bbdf9321b393a570944b766ff19","unresolved":false,"context_lines":[{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":124,"context_line":"    def test_list_servers_filter_by_exist_host(self):"},{"line_number":125,"context_line":"        # Filter the list of servers by server status"},{"line_number":126,"context_line":"        s1_host \u003d s1[\u0027os-extended-server-attributes:host\u0027]"},{"line_number":127,"context_line":"        params \u003d {\u0027host\u0027: s1_host}"},{"line_number":128,"context_line":"        resp, body \u003d self.client.list_servers(params)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUH%2F%2F4pY%3D","line":125,"updated":"2014-01-07 08:37:38.000000000","message":"I am not understanding this comment for this test.","commit_id":"ee6a49e7f75ce9e2c12470b007a6894708fecc17"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"660351708df233f681d801d953d3445add058f4a","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        resp, body \u003d self.client.list_servers(params)"},{"line_number":129,"context_line":"        servers \u003d body[\u0027servers\u0027]"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        self.assertIn(self.s1[\u0027id\u0027], map(lambda x: x[\u0027id\u0027], servers))"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":134,"context_line":"    def test_list_servers_filter_by_limit(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUH%2F%2F4mY%3D","line":131,"updated":"2014-01-07 08:51:02.000000000","message":"I think you should also add an assert to verify the server is not in the response servers list, when the host !\u003d s1_host. Otherwise, I will think if the filter may be ignored.\n\nBTW, can you make this change also in v3 tests? thanks","commit_id":"ee6a49e7f75ce9e2c12470b007a6894708fecc17"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"01751d44c22bbb927e343b57265c98141e2b49d8","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        nonexisted_servers \u003d nonexisted_body[\u0027servers\u0027]"},{"line_number":133,"context_line":"        self.assertIn(self.s1[\u0027id\u0027], map(lambda x: x[\u0027id\u0027], servers))"},{"line_number":134,"context_line":"        self.assertNotIn(self.s1[\u0027id\u0027],"},{"line_number":135,"context_line":"                         map(lambda x: x[\u0027id\u0027], nonexisted_servers))"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":138,"context_line":"    def test_list_servers_filter_by_limit(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2F4e8%3D","line":135,"updated":"2014-01-07 09:18:31.000000000","message":"this can\u0027t pass,I think, will be KeyError. Just verify the len(nonexisted_servers)\u003d\u003d0, will be ok.","commit_id":"9035324dde0a4690d4f33bc6819ce536dfce0ffa"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"8bf00b1e069b6d73ec4c7f1df3ea81816e81cfa6","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        nonexisted_servers \u003d nonexisted_body[\u0027servers\u0027]"},{"line_number":133,"context_line":"        self.assertIn(self.s1[\u0027id\u0027], map(lambda x: x[\u0027id\u0027], servers))"},{"line_number":134,"context_line":"        self.assertNotIn(self.s1[\u0027id\u0027],"},{"line_number":135,"context_line":"                         map(lambda x: x[\u0027id\u0027], nonexisted_servers))"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":138,"context_line":"    def test_list_servers_filter_by_limit(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2F4Zs%3D","line":135,"in_reply_to":"AAAAUH%2F%2F4e8%3D","updated":"2014-01-07 09:32:57.000000000","message":"Done","commit_id":"9035324dde0a4690d4f33bc6819ce536dfce0ffa"}],"tempest/api/compute/v3/admin/test_servers.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"022329c7ebf85e167b6f7ba2c456455fe6eb4a0f","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        cls.client \u003d cls.servers_admin_client"},{"line_number":35,"context_line":"        cls.non_admin_client \u003d cls.servers_client"},{"line_number":36,"context_line":"        cls.flavors_client \u003d cls.flavors_admin_client"},{"line_number":37,"context_line":"        cls.hosts_client \u003d cls.hosts_admin_client"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        cls.s1_name \u003d data_utils.rand_name(\u0027server\u0027)"},{"line_number":40,"context_line":"        resp, server \u003d cls.create_test_server(name\u003dcls.s1_name,"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAUH%2F93PA%3D","line":37,"updated":"2014-02-03 06:25:01.000000000","message":"better to remove this change because this hosts_client is not used.","commit_id":"62bb04a2cc4f8271477c7fbbfc776078be702dd9"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"f0712579ab8afe6c2264cf67989849c63de2b162","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        cls.client \u003d cls.servers_admin_client"},{"line_number":35,"context_line":"        cls.non_admin_client \u003d cls.servers_client"},{"line_number":36,"context_line":"        cls.flavors_client \u003d cls.flavors_admin_client"},{"line_number":37,"context_line":"        cls.hosts_client \u003d cls.hosts_admin_client"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        cls.s1_name \u003d data_utils.rand_name(\u0027server\u0027)"},{"line_number":40,"context_line":"        resp, server \u003d cls.create_test_server(name\u003dcls.s1_name,"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAUX%2F%2F554%3D","line":37,"in_reply_to":"AAAAUH%2F93PA%3D","updated":"2014-02-10 03:06:23.000000000","message":"Done","commit_id":"62bb04a2cc4f8271477c7fbbfc776078be702dd9"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"022329c7ebf85e167b6f7ba2c456455fe6eb4a0f","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        self.assertIn(self.s2_name, servers_name)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":80,"context_line":"    def test_list_servers_filter_by_exist_host(self):"},{"line_number":81,"context_line":"        # Filter the list of servers by existing host"},{"line_number":82,"context_line":"        name \u003d data_utils.rand_name(\u0027server\u0027)"},{"line_number":83,"context_line":"        flavor \u003d self.flavor_ref"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAUH%2F93PU%3D","line":80,"updated":"2014-02-03 06:25:01.000000000","message":"s/exist_host/existent_host/","commit_id":"62bb04a2cc4f8271477c7fbbfc776078be702dd9"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"f0712579ab8afe6c2264cf67989849c63de2b162","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        self.assertIn(self.s2_name, servers_name)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":80,"context_line":"    def test_list_servers_filter_by_exist_host(self):"},{"line_number":81,"context_line":"        # Filter the list of servers by existing host"},{"line_number":82,"context_line":"        name \u003d data_utils.rand_name(\u0027server\u0027)"},{"line_number":83,"context_line":"        flavor \u003d self.flavor_ref"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAUX%2F%2F548%3D","line":80,"in_reply_to":"AAAAUH%2F93PU%3D","updated":"2014-02-10 03:06:23.000000000","message":"Done","commit_id":"62bb04a2cc4f8271477c7fbbfc776078be702dd9"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"022329c7ebf85e167b6f7ba2c456455fe6eb4a0f","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        image_id \u003d self.image_ref"},{"line_number":85,"context_line":"        resp, test_server \u003d self.client.create_server("},{"line_number":86,"context_line":"            name, image_id, flavor)"},{"line_number":87,"context_line":"        self.client.wait_for_server_status(test_server[\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":88,"context_line":"        resp, server \u003d self.client.get_server(test_server[\u0027id\u0027])"},{"line_number":89,"context_line":"        hostname \u003d server[self._host_key]"},{"line_number":90,"context_line":"        params \u003d {\u0027host\u0027: hostname}"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAUH%2F93Pg%3D","line":87,"updated":"2014-02-03 06:25:01.000000000","message":"line82-87 can be merged to the following one line.\n\nresp, test_server \u003d self.create_test_server(wait_until\u003d\u0027ACTIVE\u0027)","commit_id":"62bb04a2cc4f8271477c7fbbfc776078be702dd9"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"f0712579ab8afe6c2264cf67989849c63de2b162","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        image_id \u003d self.image_ref"},{"line_number":85,"context_line":"        resp, test_server \u003d self.client.create_server("},{"line_number":86,"context_line":"            name, image_id, flavor)"},{"line_number":87,"context_line":"        self.client.wait_for_server_status(test_server[\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":88,"context_line":"        resp, server \u003d self.client.get_server(test_server[\u0027id\u0027])"},{"line_number":89,"context_line":"        hostname \u003d server[self._host_key]"},{"line_number":90,"context_line":"        params \u003d {\u0027host\u0027: hostname}"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAUX%2F%2F54M%3D","line":87,"in_reply_to":"AAAAUH%2F93Pg%3D","updated":"2014-02-10 03:06:23.000000000","message":"Done","commit_id":"62bb04a2cc4f8271477c7fbbfc776078be702dd9"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"022329c7ebf85e167b6f7ba2c456455fe6eb4a0f","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        params \u003d {\u0027host\u0027: hostname}"},{"line_number":91,"context_line":"        resp, body \u003d self.client.list_servers(params)"},{"line_number":92,"context_line":"        servers \u003d body[\u0027servers\u0027]"},{"line_number":93,"context_line":"        nonexisting_params \u003d {\u0027host\u0027: \u0027nonexisting_host\u0027}"},{"line_number":94,"context_line":"        resp, nonexisting_body \u003d self.client.list_servers("},{"line_number":95,"context_line":"            nonexisting_params)"},{"line_number":96,"context_line":"        nonexisting_servers \u003d nonexisting_body[\u0027servers\u0027]"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAUH%2F93PI%3D","line":93,"updated":"2014-02-03 06:25:01.000000000","message":"s/nonexisting/nonexistent/g","commit_id":"62bb04a2cc4f8271477c7fbbfc776078be702dd9"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"f0712579ab8afe6c2264cf67989849c63de2b162","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        params \u003d {\u0027host\u0027: hostname}"},{"line_number":91,"context_line":"        resp, body \u003d self.client.list_servers(params)"},{"line_number":92,"context_line":"        servers \u003d body[\u0027servers\u0027]"},{"line_number":93,"context_line":"        nonexisting_params \u003d {\u0027host\u0027: \u0027nonexisting_host\u0027}"},{"line_number":94,"context_line":"        resp, nonexisting_body \u003d self.client.list_servers("},{"line_number":95,"context_line":"            nonexisting_params)"},{"line_number":96,"context_line":"        nonexisting_servers \u003d nonexisting_body[\u0027servers\u0027]"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAUX%2F%2F54U%3D","line":93,"in_reply_to":"AAAAUH%2F93PI%3D","updated":"2014-02-10 03:06:23.000000000","message":"Done","commit_id":"62bb04a2cc4f8271477c7fbbfc776078be702dd9"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"256f2c6a5f49878f2077753c690f43f941511025","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from tempest import exceptions"},{"line_number":18,"context_line":"from tempest import test"},{"line_number":19,"context_line":"from tempest.test import attr"},{"line_number":20,"context_line":"from tempest.test import skip_because"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class ServersAdminV3Test(base.BaseV3ComputeAdminTest):"}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAAUX%2F%2F5vQ%3D","line":20,"updated":"2014-02-10 03:19:50.000000000","message":"nit:\n\n from tempest.test import attr\n from tempest.test import skip_because\n\ncan be removed because the test module is imported already and it is not good to import methods directly. For example,\n\n @attr(type\u003d\u0027gate\u0027)\n\ncould be replaced to\n\n @test.attr(type\u003d\u0027gate\u0027)\n\nhttp://docs.openstack.org/developer/hacking/#imports","commit_id":"5144883fbf69143488c00ceb2313c8e36e4fb367"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"87f7addfee2bfe046bdb13c7e0d85933d1207ed1","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from tempest import exceptions"},{"line_number":18,"context_line":"from tempest import test"},{"line_number":19,"context_line":"from tempest.test import attr"},{"line_number":20,"context_line":"from tempest.test import skip_because"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class ServersAdminV3Test(base.BaseV3ComputeAdminTest):"}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAAUX%2F%2F5mQ%3D","line":20,"in_reply_to":"AAAAUX%2F%2F5vQ%3D","updated":"2014-02-10 03:44:05.000000000","message":"ok, I will change it although it does not have relationship with my change. Thanks for the comments.","commit_id":"5144883fbf69143488c00ceb2313c8e36e4fb367"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"256f2c6a5f49878f2077753c690f43f941511025","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    def test_list_servers_filter_by_existent_host(self):"},{"line_number":82,"context_line":"        # Filter the list of servers by existent host"},{"line_number":83,"context_line":"        resp, test_server \u003d self.create_test_server(wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":84,"context_line":"        self.client.wait_for_server_status(test_server[\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":85,"context_line":"        resp, server \u003d self.client.get_server(test_server[\u0027id\u0027])"},{"line_number":86,"context_line":"        hostname \u003d server[self._host_key]"},{"line_number":87,"context_line":"        params \u003d {\u0027host\u0027: hostname}"}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAAUX%2F%2F5w0%3D","line":84,"updated":"2014-02-10 03:19:50.000000000","message":"This wait_for_server_status call can be removed because of waiting already at line83.","commit_id":"5144883fbf69143488c00ceb2313c8e36e4fb367"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"87f7addfee2bfe046bdb13c7e0d85933d1207ed1","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    def test_list_servers_filter_by_existent_host(self):"},{"line_number":82,"context_line":"        # Filter the list of servers by existent host"},{"line_number":83,"context_line":"        resp, test_server \u003d self.create_test_server(wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":84,"context_line":"        self.client.wait_for_server_status(test_server[\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":85,"context_line":"        resp, server \u003d self.client.get_server(test_server[\u0027id\u0027])"},{"line_number":86,"context_line":"        hostname \u003d server[self._host_key]"},{"line_number":87,"context_line":"        params \u003d {\u0027host\u0027: hostname}"}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAAUX%2F%2F5mM%3D","line":84,"in_reply_to":"AAAAUX%2F%2F5w0%3D","updated":"2014-02-10 03:44:05.000000000","message":"Done","commit_id":"5144883fbf69143488c00ceb2313c8e36e4fb367"}]}
