)]}'
{"doc/source/microversion_testing.rst":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"3f2c77421ae68bbcd9d82e43bddf471a6747dd12","unresolved":false,"context_lines":[{"line_number":250,"context_line":""},{"line_number":251,"context_line":" * `2.43`_"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":" .. _2.43: http://docs.openstack.org/developer/nova/api_microversion_history.html#id38"}],"source_content_type":"text/x-rst","patch_set":23,"id":"da36d5c6_1e0fdd88","line":253,"range":{"start_line":253,"start_character":11,"end_line":253,"end_character":86},"updated":"2017-02-23 15:14:24.000000000","message":"This link does not exists (it would be https://docs.openstack.org/developer/nova/api_microversion_history.html#maximum-in-newton) but I think it should actually be id43 here, which does not exists yet (I guess because the nova patch is not merged?)","commit_id":"312b1b35f9e15ff16719ecfc952ccb85a108a6f8"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"bc211ce014cee61d6a435de7ca46704111de003d","unresolved":false,"context_lines":[{"line_number":250,"context_line":""},{"line_number":251,"context_line":" * `2.43`_"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":" .. _2.43: http://docs.openstack.org/developer/nova/api_microversion_history.html#id38"}],"source_content_type":"text/x-rst","patch_set":23,"id":"da36d5c6_04dcd071","line":253,"range":{"start_line":253,"start_character":11,"end_line":253,"end_character":86},"in_reply_to":"da36d5c6_1e0fdd88","updated":"2017-02-24 06:27:49.000000000","message":"Hi! Yes this is because patch is not merged yet. But the link is rigth. Here is the doc from last nova patch:\n\nhttp://docs-draft.openstack.org/40/355540/37/check/gate-nova-docs-ubuntu-xenial/a81fb96//doc/build/html/api_microversion_history.html#id38\n\nid \u003d 38\n\nhttps://review.openstack.org/#/c/355540/","commit_id":"312b1b35f9e15ff16719ecfc952ccb85a108a6f8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"25e9289e079b06fd879b82b0e7f9c798aa15ea08","unresolved":false,"context_lines":[{"line_number":250,"context_line":""},{"line_number":251,"context_line":" * `2.43`_"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":" .. _2.43: http://docs.openstack.org/developer/nova/api_microversion_history.html#id38"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"* Volume"},{"line_number":256,"context_line":""}],"source_content_type":"text/x-rst","patch_set":25,"id":"1a1ced50_d8a08fa8","line":253,"range":{"start_line":253,"start_character":11,"end_line":253,"end_character":86},"updated":"2017-03-17 06:33:36.000000000","message":"yes, once nova patch merge, this link should be in working condition","commit_id":"d032235e428009e18492752a4615e7ce46d273ff"}],"tempest/api/compute/admin/test_server_diagnostics.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"521a72b6cb7771fbe35e4c71b4064390d63070cf","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        diagnostic \u003d self.client.show_server_diagnostics(self.server_id)"},{"line_number":43,"context_line":"        basic_attrs \u003d [\u0027cpu0_time\u0027, \u0027memory\u0027]"},{"line_number":44,"context_line":"        for key in basic_attrs:"},{"line_number":45,"context_line":"            self.assertIn(key, str(diagnostic.keys()))"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @test.idempotent_id(\u002731ff3486-b8a0-4f56-a6c0-aab460531db4\u0027)"},{"line_number":48,"context_line":"    def test_get_server_diagnostics_general(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"da4df55a_12a34601","line":45,"range":{"start_line":45,"start_character":31,"end_line":45,"end_character":53},"updated":"2016-12-27 20:14:25.000000000","message":"We don\u0027t need to do this for each iteration. Couldn\u0027t we put these into a set, and then check issubset with basic_attrs, i.e.:\n\nself.assertTrue(basic_attrs.issubset(set(diagnostics.keys())))","commit_id":"904bad3ea1efb199120c89c55c2b619056f92f2c"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"da8e9304960bf02285a3a1f0806e0e671544f5ed","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        diagnostic \u003d self.client.show_server_diagnostics(self.server_id)"},{"line_number":43,"context_line":"        basic_attrs \u003d [\u0027cpu0_time\u0027, \u0027memory\u0027]"},{"line_number":44,"context_line":"        for key in basic_attrs:"},{"line_number":45,"context_line":"            self.assertIn(key, str(diagnostic.keys()))"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @test.idempotent_id(\u002731ff3486-b8a0-4f56-a6c0-aab460531db4\u0027)"},{"line_number":48,"context_line":"    def test_get_server_diagnostics_general(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5201f7_d1ba2c71","line":45,"range":{"start_line":45,"start_character":31,"end_line":45,"end_character":53},"in_reply_to":"da4df55a_12a34601","updated":"2017-01-10 10:14:52.000000000","message":"Done","commit_id":"904bad3ea1efb199120c89c55c2b619056f92f2c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"521a72b6cb7771fbe35e4c71b4064390d63070cf","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    @test.idempotent_id(\u002731ff3486-b8a0-4f56-a6c0-aab460531db4\u0027)"},{"line_number":48,"context_line":"    def test_get_server_diagnostics_general(self):"},{"line_number":49,"context_line":"        # Retrieve server diagnostics by admin user"},{"line_number":50,"context_line":"        diagnostic \u003d self.client.show_server_diagnostics(self.server_id)"},{"line_number":51,"context_line":"        self.assertEqual(1, diagnostic)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"da4df55a_d2837e54","line":50,"updated":"2016-12-27 20:14:25.000000000","message":"How is this any different from the test above?","commit_id":"904bad3ea1efb199120c89c55c2b619056f92f2c"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"da8e9304960bf02285a3a1f0806e0e671544f5ed","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    @test.idempotent_id(\u002731ff3486-b8a0-4f56-a6c0-aab460531db4\u0027)"},{"line_number":48,"context_line":"    def test_get_server_diagnostics_general(self):"},{"line_number":49,"context_line":"        # Retrieve server diagnostics by admin user"},{"line_number":50,"context_line":"        diagnostic \u003d self.client.show_server_diagnostics(self.server_id)"},{"line_number":51,"context_line":"        self.assertEqual(1, diagnostic)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5201f7_5188fcc6","line":50,"in_reply_to":"da4df55a_d2837e54","updated":"2017-01-10 10:14:52.000000000","message":"It was just a fake test which must be failed. I used these dirty hack to check what will be returned in libvirt/Xen/Vmware CI jobs by my eyes to make sure that everything is ok. That is why I marked patch as \"workflow -1\"","commit_id":"904bad3ea1efb199120c89c55c2b619056f92f2c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"521a72b6cb7771fbe35e4c71b4064390d63070cf","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"class ServerDiagnosticsV241TestJSON(ServerDiagnosticsBaseTestJSON):"},{"line_number":55,"context_line":"    min_microversion \u003d \u00272.41\u0027"},{"line_number":56,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    BASIC_FIELDS \u003d [\u0027state\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"da4df55a_12c8a6a7","line":55,"updated":"2016-12-27 20:14:25.000000000","message":"You\u0027re going to need to update the docs here:\n\nhttps://github.com/openstack/tempest/blob/master/doc/source/microversion_testing.rst#microversion-tests-implemented-in-tempest","commit_id":"904bad3ea1efb199120c89c55c2b619056f92f2c"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"da8e9304960bf02285a3a1f0806e0e671544f5ed","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"class ServerDiagnosticsV241TestJSON(ServerDiagnosticsBaseTestJSON):"},{"line_number":55,"context_line":"    min_microversion \u003d \u00272.41\u0027"},{"line_number":56,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    BASIC_FIELDS \u003d [\u0027state\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5201f7_f1bf305e","line":55,"in_reply_to":"da4df55a_12c8a6a7","updated":"2017-01-10 10:14:52.000000000","message":"Done","commit_id":"904bad3ea1efb199120c89c55c2b619056f92f2c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"521a72b6cb7771fbe35e4c71b4064390d63070cf","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    min_microversion \u003d \u00272.41\u0027"},{"line_number":56,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    BASIC_FIELDS \u003d [\u0027state\u0027,"},{"line_number":59,"context_line":"                    \u0027driver\u0027,"},{"line_number":60,"context_line":"                    \u0027hypervisor\u0027,"},{"line_number":61,"context_line":"                    \u0027hypervisor_os\u0027,"},{"line_number":62,"context_line":"                    \u0027uptime\u0027,"},{"line_number":63,"context_line":"                    \u0027config_drive\u0027,"},{"line_number":64,"context_line":"                    \u0027num_cpus\u0027,"},{"line_number":65,"context_line":"                    \u0027num_nics\u0027,"},{"line_number":66,"context_line":"                    \u0027num_disks\u0027]"},{"line_number":67,"context_line":"    DICT_FIELDS \u003d {\u0027memory_details\u0027: [\u0027maximum\u0027,"},{"line_number":68,"context_line":"                                      \u0027used\u0027],"},{"line_number":69,"context_line":"                   \u0027cpu_details\u0027: [\u0027id\u0027,"},{"line_number":70,"context_line":"                                   \u0027time\u0027,"},{"line_number":71,"context_line":"                                   \u0027utilisation\u0027],"},{"line_number":72,"context_line":"                   \u0027nic_details\u0027: [\u0027mac_address\u0027,"},{"line_number":73,"context_line":"                                   \u0027rx_octets\u0027,"},{"line_number":74,"context_line":"                                   \u0027rx_errors\u0027,"},{"line_number":75,"context_line":"                                   \u0027rx_drop\u0027,"},{"line_number":76,"context_line":"                                   \u0027rx_packets\u0027,"},{"line_number":77,"context_line":"                                   \u0027rx_rate\u0027,"},{"line_number":78,"context_line":"                                   \u0027tx_octets\u0027,"},{"line_number":79,"context_line":"                                   \u0027tx_errors\u0027,"},{"line_number":80,"context_line":"                                   \u0027tx_drop\u0027,"},{"line_number":81,"context_line":"                                   \u0027tx_packets\u0027,"},{"line_number":82,"context_line":"                                   \u0027tx_rate\u0027],"},{"line_number":83,"context_line":"                   \u0027disk_details\u0027: [\u0027read_bytes\u0027,"},{"line_number":84,"context_line":"                                    \u0027read_requests\u0027,"},{"line_number":85,"context_line":"                                    \u0027write_bytes\u0027,"},{"line_number":86,"context_line":"                                    \u0027write_requests\u0027,"},{"line_number":87,"context_line":"                                    \u0027errors_count\u0027]}"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    @test.idempotent_id(\u002731ff3486-b8a0-4f56-a6c0-aab460531db5\u0027)"},{"line_number":90,"context_line":"    def test_get_server_instance_diagnostics2(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"da4df55a_327f6a67","line":87,"range":{"start_line":58,"start_character":4,"end_line":87,"end_character":52},"updated":"2016-12-27 20:14:25.000000000","message":"Tempest is going to want an API response schema check for this, see how those are used here:\n\nhttps://github.com/openstack/tempest/tree/master/tempest/lib/api_schema/response/compute","commit_id":"904bad3ea1efb199120c89c55c2b619056f92f2c"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"da8e9304960bf02285a3a1f0806e0e671544f5ed","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    min_microversion \u003d \u00272.41\u0027"},{"line_number":56,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    BASIC_FIELDS \u003d [\u0027state\u0027,"},{"line_number":59,"context_line":"                    \u0027driver\u0027,"},{"line_number":60,"context_line":"                    \u0027hypervisor\u0027,"},{"line_number":61,"context_line":"                    \u0027hypervisor_os\u0027,"},{"line_number":62,"context_line":"                    \u0027uptime\u0027,"},{"line_number":63,"context_line":"                    \u0027config_drive\u0027,"},{"line_number":64,"context_line":"                    \u0027num_cpus\u0027,"},{"line_number":65,"context_line":"                    \u0027num_nics\u0027,"},{"line_number":66,"context_line":"                    \u0027num_disks\u0027]"},{"line_number":67,"context_line":"    DICT_FIELDS \u003d {\u0027memory_details\u0027: [\u0027maximum\u0027,"},{"line_number":68,"context_line":"                                      \u0027used\u0027],"},{"line_number":69,"context_line":"                   \u0027cpu_details\u0027: [\u0027id\u0027,"},{"line_number":70,"context_line":"                                   \u0027time\u0027,"},{"line_number":71,"context_line":"                                   \u0027utilisation\u0027],"},{"line_number":72,"context_line":"                   \u0027nic_details\u0027: [\u0027mac_address\u0027,"},{"line_number":73,"context_line":"                                   \u0027rx_octets\u0027,"},{"line_number":74,"context_line":"                                   \u0027rx_errors\u0027,"},{"line_number":75,"context_line":"                                   \u0027rx_drop\u0027,"},{"line_number":76,"context_line":"                                   \u0027rx_packets\u0027,"},{"line_number":77,"context_line":"                                   \u0027rx_rate\u0027,"},{"line_number":78,"context_line":"                                   \u0027tx_octets\u0027,"},{"line_number":79,"context_line":"                                   \u0027tx_errors\u0027,"},{"line_number":80,"context_line":"                                   \u0027tx_drop\u0027,"},{"line_number":81,"context_line":"                                   \u0027tx_packets\u0027,"},{"line_number":82,"context_line":"                                   \u0027tx_rate\u0027],"},{"line_number":83,"context_line":"                   \u0027disk_details\u0027: [\u0027read_bytes\u0027,"},{"line_number":84,"context_line":"                                    \u0027read_requests\u0027,"},{"line_number":85,"context_line":"                                    \u0027write_bytes\u0027,"},{"line_number":86,"context_line":"                                    \u0027write_requests\u0027,"},{"line_number":87,"context_line":"                                    \u0027errors_count\u0027]}"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    @test.idempotent_id(\u002731ff3486-b8a0-4f56-a6c0-aab460531db5\u0027)"},{"line_number":90,"context_line":"    def test_get_server_instance_diagnostics2(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5201f7_84a048a7","line":87,"range":{"start_line":58,"start_character":4,"end_line":87,"end_character":52},"in_reply_to":"da4df55a_327f6a67","updated":"2017-01-10 10:14:52.000000000","message":"good point","commit_id":"904bad3ea1efb199120c89c55c2b619056f92f2c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"521a72b6cb7771fbe35e4c71b4064390d63070cf","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    @test.idempotent_id(\u002731ff3486-b8a0-4f56-a6c0-aab460531db6\u0027)"},{"line_number":110,"context_line":"    def test_get_server_instance_diagnostics_fake(self):"},{"line_number":111,"context_line":"        diagnostics \u003d self.client.show_server_diagnostics(self.server_id)"},{"line_number":112,"context_line":"        self.assertEqual(1, diagnostics)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da4df55a_52986ec0","line":111,"updated":"2016-12-27 20:14:25.000000000","message":"How is this different from the test above?","commit_id":"904bad3ea1efb199120c89c55c2b619056f92f2c"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"f2be28ae536e5d283e6c394600277f6a1da3f83a","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        super(ServerDiagnosticsV21TestJSON, cls).resource_setup()"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        name \u003d data_utils.rand_name(cls.__name__ + \u0027-server\u0027)"},{"line_number":34,"context_line":"        cls.server_id \u003d cls.create_test_server(name\u003dname,"},{"line_number":35,"context_line":"                                               wait_until\u003d\u0027ACTIVE\u0027)[\u0027id\u0027]"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    @test.idempotent_id(\u002731ff3486-b8a0-4f56-a6c0-aab460531db3\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_e25f3273","line":34,"updated":"2017-01-10 14:51:23.000000000","message":"Please move the server creation within the test case itself. Sharing servers between tests is not really recommended anymore and since you only have one test, not sure it helps either.","commit_id":"597cfea260fceaceb2418a30df8a19a99b5a5bb2"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"4828e7cda43344fa942066c24bf94deaf41078ac","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        super(ServerDiagnosticsV21TestJSON, cls).resource_setup()"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        name \u003d data_utils.rand_name(cls.__name__ + \u0027-server\u0027)"},{"line_number":34,"context_line":"        cls.server_id \u003d cls.create_test_server(name\u003dname,"},{"line_number":35,"context_line":"                                               wait_until\u003d\u0027ACTIVE\u0027)[\u0027id\u0027]"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    @test.idempotent_id(\u002731ff3486-b8a0-4f56-a6c0-aab460531db3\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_a320c9b1","line":34,"in_reply_to":"ba5201f7_e25f3273","updated":"2017-01-10 16:27:56.000000000","message":"ok. good point","commit_id":"597cfea260fceaceb2418a30df8a19a99b5a5bb2"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"f2be28ae536e5d283e6c394600277f6a1da3f83a","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"class ServerDiagnosticsV242TestJSON(ServerDiagnosticsV21TestJSON):"},{"line_number":44,"context_line":"    min_microversion \u003d \u00272.42\u0027"},{"line_number":45,"context_line":"    max_microversion \u003d \u0027latest\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_a2aa8a17","line":45,"updated":"2017-01-10 14:51:23.000000000","message":"I know schema validation is supposed to do the work, but could you actually check that you got new attributes in response to the show_server_diagnostics you\u0027ve made. Just to be sure :)","commit_id":"597cfea260fceaceb2418a30df8a19a99b5a5bb2"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"dfe0303080e2345c659b6adf230829a9a9827351","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    @test.idempotent_id(\u002731ff3486-b8a0-4f56-a6c0-aab460531db3\u0027)"},{"line_number":31,"context_line":"    def test_get_server_diagnostics_by_admin(self):"},{"line_number":32,"context_line":"        self.resource_setup()"},{"line_number":33,"context_line":"        server_id \u003d self.create_test_server(wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":34,"context_line":"                                            **self.create_server_kwargs)[\u0027id\u0027]"},{"line_number":35,"context_line":"        diagnostics \u003d self.client.show_server_diagnostics(server_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5201f7_34b40df1","line":32,"updated":"2017-01-10 17:09:53.000000000","message":"You don\u0027t need that line. resource_setup() is already call for you here: https://github.com/openstack/tempest/blob/6eb4671d348760b1804c1ec9ff5361739a8d972f/tempest/test.py#L262","commit_id":"da4a6ce09c96e3dbfba0b19beda9a0e83929c9a8"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"88859f7a42a6f5da29ff9ede09dd2b40368cff11","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    @test.idempotent_id(\u002731ff3486-b8a0-4f56-a6c0-aab460531db3\u0027)"},{"line_number":31,"context_line":"    def test_get_server_diagnostics_by_admin(self):"},{"line_number":32,"context_line":"        self.resource_setup()"},{"line_number":33,"context_line":"        server_id \u003d self.create_test_server(wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":34,"context_line":"                                            **self.create_server_kwargs)[\u0027id\u0027]"},{"line_number":35,"context_line":"        diagnostics \u003d self.client.show_server_diagnostics(server_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5201f7_c3bce6dd","line":32,"in_reply_to":"ba5201f7_34b40df1","updated":"2017-01-10 18:30:44.000000000","message":"good catch","commit_id":"da4a6ce09c96e3dbfba0b19beda9a0e83929c9a8"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"e502d4eea0ea57600592e251a8a016800dc69c1d","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    min_microversion \u003d \u00272.1\u0027"},{"line_number":21,"context_line":"    max_microversion \u003d \u00272.41\u0027"},{"line_number":22,"context_line":"    create_server_kwargs \u003d {}"},{"line_number":23,"context_line":"    diagnostics_fields \u003d {\u0027memory\u0027}"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @classmethod"},{"line_number":26,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_5f5ef0e9","line":23,"range":{"start_line":23,"start_character":25,"end_line":23,"end_character":35},"updated":"2017-01-11 08:44:38.000000000","message":"Why only \u0027memory\u0027? it seems not the same as the previous test test_get_server_diagnostics_by_admin in test_servers.py","commit_id":"55eb6439c1d3f073cd89e7cb89bbb480e342d3c2"},{"author":{"_account_id":16437,"name":"Anna Babich","email":"anna.v.babich@gmail.com","username":"ababich"},"change_message_id":"628725a2b8cc59c57a1c38d750545531276bb7c8","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    min_microversion \u003d \u00272.1\u0027"},{"line_number":21,"context_line":"    max_microversion \u003d \u00272.41\u0027"},{"line_number":22,"context_line":"    create_server_kwargs \u003d {}"},{"line_number":23,"context_line":"    diagnostics_fields \u003d {\u0027memory\u0027}"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @classmethod"},{"line_number":26,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_dc466720","line":23,"range":{"start_line":23,"start_character":25,"end_line":23,"end_character":35},"in_reply_to":"ba5201f7_10ab751e","updated":"2017-01-11 10:40:45.000000000","message":"In accordance to https://wiki.openstack.org/wiki/Nova_VM_Diagnostics we also can include \u0027cpu\u0027 field as it\u0027s reported by kvm, xen and vmware hypervisors. Concerning Hyper V driver, it looks like not ready to use get_server_diagnostics at the moment: https://blueprints.launchpad.net/nova/+spec/hyperv-vm-diagnostics","commit_id":"55eb6439c1d3f073cd89e7cb89bbb480e342d3c2"},{"author":{"_account_id":16437,"name":"Anna Babich","email":"anna.v.babich@gmail.com","username":"ababich"},"change_message_id":"0326973699823ea27e50e7111c2195c14f10f56e","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    min_microversion \u003d \u00272.1\u0027"},{"line_number":21,"context_line":"    max_microversion \u003d \u00272.41\u0027"},{"line_number":22,"context_line":"    create_server_kwargs \u003d {}"},{"line_number":23,"context_line":"    diagnostics_fields \u003d {\u0027memory\u0027}"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @classmethod"},{"line_number":26,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a57fde8_a03c7130","line":23,"range":{"start_line":23,"start_character":25,"end_line":23,"end_character":35},"in_reply_to":"ba5201f7_162603ba","updated":"2017-01-12 16:31:59.000000000","message":"Sergey, yep, looks tricky. Maybe, this test should be skipped, when min_microversion \u003c 2.42","commit_id":"55eb6439c1d3f073cd89e7cb89bbb480e342d3c2"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"f41c946f1d12b517df096d78aef763a26f2462dd","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    min_microversion \u003d \u00272.1\u0027"},{"line_number":21,"context_line":"    max_microversion \u003d \u00272.41\u0027"},{"line_number":22,"context_line":"    create_server_kwargs \u003d {}"},{"line_number":23,"context_line":"    diagnostics_fields \u003d {\u0027memory\u0027}"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @classmethod"},{"line_number":26,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_10ab751e","line":23,"range":{"start_line":23,"start_character":25,"end_line":23,"end_character":35},"in_reply_to":"ba5201f7_5f5ef0e9","updated":"2017-01-11 09:53:44.000000000","message":"The previous test was skipped (see the decorator) because of bug #1240043, which says that we can\u0027t assume that every hypervisor (kvm, xen, hyper v) will report every field. \n\nSo maybe it\u0027s good to restrict the fields to a list that we know are going to be here for all hypervisors.","commit_id":"55eb6439c1d3f073cd89e7cb89bbb480e342d3c2"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"faf86e815612133e660ccfa82ca9729997c4f003","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    min_microversion \u003d \u00272.1\u0027"},{"line_number":21,"context_line":"    max_microversion \u003d \u00272.41\u0027"},{"line_number":22,"context_line":"    create_server_kwargs \u003d {}"},{"line_number":23,"context_line":"    diagnostics_fields \u003d {\u0027memory\u0027}"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @classmethod"},{"line_number":26,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_162603ba","line":23,"range":{"start_line":23,"start_character":25,"end_line":23,"end_character":35},"in_reply_to":"ba5201f7_dc466720","updated":"2017-01-11 13:04:43.000000000","message":"Anna, Thank you for useful link! As for CPU filed I see from table that libvirt returns \u0027cpu0_time\u0027, xen returns \u0027cpu0\u0027 and vmware returns \u0027vmware:maxCpuUsage\u0027. So I guess we can\u0027t include CPU to the expected fileds list. Moreover now I see that all vmware fields are started with \u0027vmware:\u0027 so this test wouldn\u0027t work at all. Now I\u0027m confused and I don\u0027t know how to check different blob of date from each hypervisor in one test...","commit_id":"55eb6439c1d3f073cd89e7cb89bbb480e342d3c2"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"58b22e8a29b3ce8fc8576821ec523532f2efd0e9","unresolved":false,"context_lines":[{"line_number":19,"context_line":"class ServerDiagnosticsV21TestJSON(base.BaseV2ComputeAdminTest):"},{"line_number":20,"context_line":"    min_microversion \u003d \u00272.1\u0027"},{"line_number":21,"context_line":"    max_microversion \u003d \u00272.41\u0027"},{"line_number":22,"context_line":"    create_server_kwargs \u003d {}"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    @classmethod"},{"line_number":25,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a3c09a3_0707081d","line":22,"updated":"2017-01-13 15:18:40.000000000","message":"Is this used ?","commit_id":"1cc0e8b3d11e590818086d9d9ad92b760ccd4eb0"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"58b22e8a29b3ce8fc8576821ec523532f2efd0e9","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        cls.client \u003d cls.os_adm.servers_client"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def _get_server_diagnostics(self):"},{"line_number":30,"context_line":"        self.resource_setup()"},{"line_number":31,"context_line":"        server_id \u003d self.create_test_server(wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":32,"context_line":"                                            **self.create_server_kwargs)[\u0027id\u0027]"},{"line_number":33,"context_line":"        return self.client.show_server_diagnostics(server_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a3c09a3_a740f457","line":30,"updated":"2017-01-13 15:18:40.000000000","message":"Why is this method call back ?","commit_id":"1cc0e8b3d11e590818086d9d9ad92b760ccd4eb0"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"eb62fd0f8370489457c608720910938a7a16cb87","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        cls.client \u003d cls.os_adm.servers_client"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def _get_server_diagnostics(self):"},{"line_number":30,"context_line":"        self.resource_setup()"},{"line_number":31,"context_line":"        server_id \u003d self.create_test_server(wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":32,"context_line":"                                            **self.create_server_kwargs)[\u0027id\u0027]"},{"line_number":33,"context_line":"        return self.client.show_server_diagnostics(server_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a3c09a3_dc4b1658","line":30,"in_reply_to":"7a3c09a3_a740f457","updated":"2017-01-13 15:36:28.000000000","message":"yes it can be removed","commit_id":"1cc0e8b3d11e590818086d9d9ad92b760ccd4eb0"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"eb62fd0f8370489457c608720910938a7a16cb87","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    def _get_server_diagnostics(self):"},{"line_number":30,"context_line":"        self.resource_setup()"},{"line_number":31,"context_line":"        server_id \u003d self.create_test_server(wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":32,"context_line":"                                            **self.create_server_kwargs)[\u0027id\u0027]"},{"line_number":33,"context_line":"        return self.client.show_server_diagnostics(server_id)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @test.idempotent_id(\u002731ff3486-b8a0-4f56-a6c0-aab460531db3\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a3c09a3_5912d863","line":32,"updated":"2017-01-13 15:36:28.000000000","message":"\u0027create_server_kwargs\u0027 is used here. Method \u0027_get_server_diagnostics\u0027 used in class ServerDiagnosticsV242TestJSON. This class test microversion 2.42 and for this microversion we have to add \u0027{\u0027networks\u0027: \u0027auto\u0027}\u0027 to the create server request. \n\nTo do not duplicate method \u0027_get_server_diagnostics()\u0027 I decided to add variable \u0027create_server_kwargs\u0027 and redefine it in child class","commit_id":"1cc0e8b3d11e590818086d9d9ad92b760ccd4eb0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"367e875ca1b470a8c5e2c6b2df7d33180da39280","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    @test.idempotent_id(\u0027f887f23e-d98c-11e6-bf26-cec0c932ce01\u0027)"},{"line_number":52,"context_line":"    def test_get_server_diagnostics_by_admin(self):"},{"line_number":53,"context_line":"        diagnostics \u003d self._get_server_diagnostics()"},{"line_number":54,"context_line":"        diagnostics_fields \u003d {"},{"line_number":55,"context_line":"            \u0027state\u0027, \u0027driver\u0027, \u0027hypervisor\u0027, \u0027hypervisor_os\u0027, \u0027uptime\u0027,"},{"line_number":56,"context_line":"            \u0027config_drive\u0027, \u0027num_cpus\u0027, \u0027num_nics\u0027, \u0027num_disks\u0027,"},{"line_number":57,"context_line":"            \u0027memory_details\u0027, \u0027cpu_details\u0027, \u0027nic_details\u0027, \u0027disk_details\u0027}"},{"line_number":58,"context_line":"        # Just to show that in new microversion response is standardized."},{"line_number":59,"context_line":"        # Field types will be checked by jsonschema"},{"line_number":60,"context_line":"        self.assertEqual(diagnostics_fields, set(diagnostics))"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_29ecf68e","line":59,"range":{"start_line":54,"start_character":8,"end_line":59,"end_character":51},"updated":"2017-01-18 21:26:42.000000000","message":"I was going to say, isn\u0027t this redundant with the jsonschema validation in:\n\nhttps://review.openstack.org/#/c/413606/9/tempest/lib/api_schema/response/compute/v2_42/servers.py","commit_id":"d79589f6f03d7b7a58ffbe8c9bb7b041ad7a260b"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"5c5ce280e3398c08ad18ab2f3c9982d1282822b7","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        super(ServerDiagnosticsV21TestJSON, cls).setup_clients()"},{"line_number":27,"context_line":"        cls.client \u003d cls.os_adm.servers_client"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def _get_server_diagnostics(self):"},{"line_number":30,"context_line":"        server_id \u003d self.create_test_server(wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":31,"context_line":"                                            **self.create_server_kwargs)[\u0027id\u0027]"},{"line_number":32,"context_line":"        return self.client.show_server_diagnostics(server_id)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a3905b3_efd4a748","line":29,"updated":"2017-01-19 10:48:28.000000000","message":"Where is this used ?","commit_id":"c00dde4b1156f2288b44cda8311f4474b65c0b87"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"b65d45e9a0e95d4deb9de4e92ce05ac676c8f361","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        super(ServerDiagnosticsV21TestJSON, cls).setup_clients()"},{"line_number":27,"context_line":"        cls.client \u003d cls.os_adm.servers_client"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def _get_server_diagnostics(self):"},{"line_number":30,"context_line":"        server_id \u003d self.create_test_server(wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":31,"context_line":"                                            **self.create_server_kwargs)[\u0027id\u0027]"},{"line_number":32,"context_line":"        return self.client.show_server_diagnostics(server_id)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a3905b3_ea3bb59a","line":29,"in_reply_to":"5a3905b3_efd4a748","updated":"2017-01-19 11:14:31.000000000","message":"ops. forgot to remove :)","commit_id":"c00dde4b1156f2288b44cda8311f4474b65c0b87"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"3928942a48616311f331cf1caed80005f3024e18","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from tempest.api.compute import base"},{"line_number":16,"context_line":"from tempest import test"},{"line_number":17,"context_line":"import time"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class ServerDiagnosticsV21TestJSON(base.BaseV2ComputeAdminTest):"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a3905b3_63bcbd06","line":17,"updated":"2017-01-23 10:30:04.000000000","message":"This is not properly grouped as per http://docs.openstack.org/developer/hacking/#imports\n\nSorry this sounds silly but if we don\"t do it know, someone is bound to submit a trivial patch to fix this, which will induce more reviewing and more gating.","commit_id":"8025db140f8ad265ece47295437fad7b959332ce"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"834c4fc18503cad7fa95253d498fec48bc9f1b38","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from tempest.api.compute import base"},{"line_number":16,"context_line":"from tempest import test"},{"line_number":17,"context_line":"import time"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class ServerDiagnosticsV21TestJSON(base.BaseV2ComputeAdminTest):"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a3905b3_43cd0184","line":17,"in_reply_to":"5a3905b3_63bcbd06","updated":"2017-01-23 10:34:25.000000000","message":"sure. I\u0027ll fix","commit_id":"8025db140f8ad265ece47295437fad7b959332ce"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"3928942a48616311f331cf1caed80005f3024e18","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        # Response must contain all diagnostics fields (may be with `None`"},{"line_number":60,"context_line":"        # values) and response status must be 200. Line above checks it by"},{"line_number":61,"context_line":"        # json schema."},{"line_number":62,"context_line":"        time.sleep(10)"},{"line_number":63,"context_line":"        diagnostics \u003d self.client.show_server_diagnostics(server_id)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        # NOTE(snikitin): After 10 seconds diagnostics fields must contain"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a3905b3_6353dde2","line":62,"updated":"2017-01-23 10:30:04.000000000","message":"I think that\u0027s fine.","commit_id":"8025db140f8ad265ece47295437fad7b959332ce"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"834c4fc18503cad7fa95253d498fec48bc9f1b38","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        # Response must contain all diagnostics fields (may be with `None`"},{"line_number":60,"context_line":"        # values) and response status must be 200. Line above checks it by"},{"line_number":61,"context_line":"        # json schema."},{"line_number":62,"context_line":"        time.sleep(10)"},{"line_number":63,"context_line":"        diagnostics \u003d self.client.show_server_diagnostics(server_id)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        # NOTE(snikitin): After 10 seconds diagnostics fields must contain"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a3905b3_03ae9997","line":62,"in_reply_to":"5a3905b3_6353dde2","updated":"2017-01-23 10:34:25.000000000","message":"glad to hear it :)","commit_id":"8025db140f8ad265ece47295437fad7b959332ce"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"5de82469be8a112f30034f369ff2cb7e406f90c7","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        # Response must contain all diagnostics fields (may be with `None`"},{"line_number":61,"context_line":"        # values) and response status must be 200. Line above checks it by"},{"line_number":62,"context_line":"        # json schema."},{"line_number":63,"context_line":"        time.sleep(10)"},{"line_number":64,"context_line":"        diagnostics \u003d self.client.show_server_diagnostics(server_id)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        # NOTE(snikitin): After 10 seconds diagnostics fields must contain"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a3905b3_63c2fd35","line":63,"updated":"2017-01-23 10:37:28.000000000","message":"Now that is think about it, have you considered leveraging the option called \u0027hypervisor_type\u0027 ? The associated help string sounds relevant.","commit_id":"e286c060a138d338bf60a95b40aaf66f69afb92b"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"c20a9cdc7e79bbdb783cabdeb48e84880ac84b31","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        # Response must contain all diagnostics fields (may be with `None`"},{"line_number":61,"context_line":"        # values) and response status must be 200. Line above checks it by"},{"line_number":62,"context_line":"        # json schema."},{"line_number":63,"context_line":"        time.sleep(10)"},{"line_number":64,"context_line":"        diagnostics \u003d self.client.show_server_diagnostics(server_id)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        # NOTE(snikitin): After 10 seconds diagnostics fields must contain"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a3905b3_d53282f1","line":63,"in_reply_to":"5a3905b3_63c2fd35","updated":"2017-01-23 12:50:17.000000000","message":"Do you mean tempest config option \"compute.hypervisor_type\"? It may be a good solution but I don\u0027t see such option in libvirt or xen CI jobs:\n\nhttp://logs.openstack.org/06/413606/16/check/gate-tempest-dsvm-neutron-full-ubuntu-xenial/1c080fc/logs/tempest_conf.txt.gz\n\nhttp://dd6b71949550285df7dc-dda4e480e005aaa13ec303551d2d8155.r49.cf1.rackcdn.com/06/413606/15/check/dsvm-tempest-neutron-network/fe989e2/logs/tempest_conf.txt.gz","commit_id":"e286c060a138d338bf60a95b40aaf66f69afb92b"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"c290868b139b162843deacd0e6bc3355de4773de","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        # Response must contain all diagnostics fields (may be with `None`"},{"line_number":61,"context_line":"        # values) and response status must be 200. Line above checks it by"},{"line_number":62,"context_line":"        # json schema."},{"line_number":63,"context_line":"        time.sleep(10)"},{"line_number":64,"context_line":"        diagnostics \u003d self.client.show_server_diagnostics(server_id)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        # NOTE(snikitin): After 10 seconds diagnostics fields must contain"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a3905b3_bd1b10c9","line":63,"in_reply_to":"5a3905b3_d53282f1","updated":"2017-01-23 16:40:26.000000000","message":"Yes, compute.hypervisor_type. If the Xen team has not set/overriden this option it\u0027s because the default value works (worked) for them. Maybe now is a good time to make folks aware that they should tweak this option according to their setup.","commit_id":"e286c060a138d338bf60a95b40aaf66f69afb92b"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"c2e17354022f45dc338075e8ea1d90c708527e84","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        self.assertNotEmpty(diagnostics)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"class ServerDiagnosticsV243TestJSON(ServerDiagnosticsV21TestJSON):"},{"line_number":44,"context_line":"    min_microversion \u003d \u00272.43\u0027"},{"line_number":45,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"1a430d35_b36fc0fa","line":43,"updated":"2017-02-08 11:22:16.000000000","message":"When you will rebase, please don\u0027t inherit from ServerDiagnosticsV21TestJSON. It\u0027s ok to duplicate the setup_clients class methods in the 2 classes. It\u0027s actually better than having a deep class hierarchy at some point.","commit_id":"2ba57eeb42880e0dfd0f31e8b264d22f91d75c7b"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"b6aca7f723356a927b53a262848cd08f4acfb7d3","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from tempest import test"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class ServerDiagnosticsV21TestJSON(base.BaseV2ComputeAdminTest):"},{"line_number":22,"context_line":"    min_microversion \u003d \u00272.1\u0027"},{"line_number":23,"context_line":"    max_microversion \u003d \u00272.42\u0027"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"fa31d9ce_47e5fad9","line":21,"range":{"start_line":21,"start_character":6,"end_line":21,"end_character":34},"updated":"2017-02-14 17:53:05.000000000","message":"nit: Could you remove \"JSON\" from this test class name?\nNow Tempest supports JSON only without XML support, so JSON has become meaningless.","commit_id":"46a093a9fb7fd10490bf193f98e60642a85304c8"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"16595a50b2ff3ce58480d055413e8fdf38453cb0","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from tempest import test"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class ServerDiagnosticsV21TestJSON(base.BaseV2ComputeAdminTest):"},{"line_number":22,"context_line":"    min_microversion \u003d \u00272.1\u0027"},{"line_number":23,"context_line":"    max_microversion \u003d \u00272.42\u0027"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"fa31d9ce_94542922","line":21,"range":{"start_line":21,"start_character":6,"end_line":21,"end_character":34},"in_reply_to":"fa31d9ce_47e5fad9","updated":"2017-02-16 11:57:35.000000000","message":"Done","commit_id":"46a093a9fb7fd10490bf193f98e60642a85304c8"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"b6aca7f723356a927b53a262848cd08f4acfb7d3","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        self.assertNotEmpty(diagnostics)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"class ServerDiagnosticsV243TestJSON(base.BaseV2ComputeAdminTest):"},{"line_number":44,"context_line":"    min_microversion \u003d \u00272.43\u0027"},{"line_number":45,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"fa31d9ce_a7d076f7","line":43,"updated":"2017-02-14 17:53:05.000000000","message":"nit: ditto","commit_id":"46a093a9fb7fd10490bf193f98e60642a85304c8"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"16595a50b2ff3ce58480d055413e8fdf38453cb0","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        self.assertNotEmpty(diagnostics)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"class ServerDiagnosticsV243TestJSON(base.BaseV2ComputeAdminTest):"},{"line_number":44,"context_line":"    min_microversion \u003d \u00272.43\u0027"},{"line_number":45,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"fa31d9ce_b42f6da6","line":43,"in_reply_to":"fa31d9ce_a7d076f7","updated":"2017-02-16 11:57:35.000000000","message":"Done","commit_id":"46a093a9fb7fd10490bf193f98e60642a85304c8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"25e9289e079b06fd879b82b0e7f9c798aa15ea08","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from tempest.lib import decorators"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class ServerDiagnosticsV21Test(base.BaseV2ComputeAdminTest):"},{"line_number":22,"context_line":"    min_microversion \u003d \u00272.1\u0027"},{"line_number":23,"context_line":"    max_microversion \u003d \u00272.42\u0027"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"1a1ced50_4454ba53","line":21,"range":{"start_line":21,"start_character":23,"end_line":21,"end_character":26},"updated":"2017-03-17 06:33:36.000000000","message":"can we remove V21 from name as this is generic tests actually.","commit_id":"d032235e428009e18492752a4615e7ce46d273ff"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"00eb284cd0de8ccbb77cc9f8430f728e50c57587","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from tempest.lib import decorators"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class ServerDiagnosticsV21Test(base.BaseV2ComputeAdminTest):"},{"line_number":22,"context_line":"    min_microversion \u003d \u00272.1\u0027"},{"line_number":23,"context_line":"    max_microversion \u003d \u00272.42\u0027"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"1a1ced50_373deebb","line":21,"range":{"start_line":21,"start_character":23,"end_line":21,"end_character":26},"in_reply_to":"1a1ced50_4454ba53","updated":"2017-03-21 07:13:03.000000000","message":"sure","commit_id":"d032235e428009e18492752a4615e7ce46d273ff"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"25e9289e079b06fd879b82b0e7f9c798aa15ea08","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class ServerDiagnosticsV21Test(base.BaseV2ComputeAdminTest):"},{"line_number":22,"context_line":"    min_microversion \u003d \u00272.1\u0027"},{"line_number":23,"context_line":"    max_microversion \u003d \u00272.42\u0027"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":25,"id":"1a1ced50_c45fca73","line":22,"range":{"start_line":22,"start_character":23,"end_line":22,"end_character":28},"updated":"2017-03-17 06:33:36.000000000","message":"this should be None, actually this should not matter but i am afraid this cause this tests fail on v2 job as devstack set None, None on config min max microversion.\n\nFrom 2.1 tests it does not matter","commit_id":"d032235e428009e18492752a4615e7ce46d273ff"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"00eb284cd0de8ccbb77cc9f8430f728e50c57587","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class ServerDiagnosticsV21Test(base.BaseV2ComputeAdminTest):"},{"line_number":22,"context_line":"    min_microversion \u003d \u00272.1\u0027"},{"line_number":23,"context_line":"    max_microversion \u003d \u00272.42\u0027"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":25,"id":"1a1ced50_b7d39e5e","line":22,"range":{"start_line":22,"start_character":23,"end_line":22,"end_character":28},"in_reply_to":"1a1ced50_c45fca73","updated":"2017-03-21 07:13:03.000000000","message":"Done","commit_id":"d032235e428009e18492752a4615e7ce46d273ff"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"25e9289e079b06fd879b82b0e7f9c798aa15ea08","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    @decorators.idempotent_id(\u002764d0d48c-dff1-11e6-bf01-fe55135034f3\u0027)"},{"line_number":53,"context_line":"    def test_get_server_diagnostics(self):"},{"line_number":54,"context_line":"        server_id \u003d self.create_test_server(wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":55,"context_line":"                                            networks\u003d\u0027auto\u0027)[\u0027id\u0027]"},{"line_number":56,"context_line":"        # Response status and filed types will be checked by json schema"},{"line_number":57,"context_line":"        self.client.show_server_diagnostics(server_id)"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"1a1ced50_64d8d6f0","line":55,"range":{"start_line":55,"start_character":44,"end_line":55,"end_character":59},"updated":"2017-03-17 06:33:36.000000000","message":"do we need this?\nactually if requesting with auto networks we need to make sure there is no network on tenant so that nova does not fall on allocated networks bits.\nlike done in - https://github.com/openstack/tempest/blob/fe1a8e289c2d79df29beaa6b3603afe5feb60fb3/tempest/api/compute/admin/test_auto_allocate_network.py#L75\n\nI will suggest if we can avoid this in this test.","commit_id":"d032235e428009e18492752a4615e7ce46d273ff"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"00eb284cd0de8ccbb77cc9f8430f728e50c57587","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    @decorators.idempotent_id(\u002764d0d48c-dff1-11e6-bf01-fe55135034f3\u0027)"},{"line_number":53,"context_line":"    def test_get_server_diagnostics(self):"},{"line_number":54,"context_line":"        server_id \u003d self.create_test_server(wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":55,"context_line":"                                            networks\u003d\u0027auto\u0027)[\u0027id\u0027]"},{"line_number":56,"context_line":"        # Response status and filed types will be checked by json schema"},{"line_number":57,"context_line":"        self.client.show_server_diagnostics(server_id)"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"1a1ced50_972b02eb","line":55,"range":{"start_line":55,"start_character":44,"end_line":55,"end_character":59},"in_reply_to":"1a1ced50_64d8d6f0","updated":"2017-03-21 07:13:03.000000000","message":"Since microversion 2.37 \u0027network\u0027 field is required. https://developer.openstack.org/api-ref/compute/?expanded\u003dcreate-server-detail\n\nThere two values values: \u0027auto\u0027 and \u0027none\u0027. Honestly I didn\u0027t know which one I should use and chose \u0027auto\u0027. Maybe \u0027none\u0027 looks more appropriate.","commit_id":"d032235e428009e18492752a4615e7ce46d273ff"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"25e9289e079b06fd879b82b0e7f9c798aa15ea08","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    def test_get_server_diagnostics(self):"},{"line_number":54,"context_line":"        server_id \u003d self.create_test_server(wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":55,"context_line":"                                            networks\u003d\u0027auto\u0027)[\u0027id\u0027]"},{"line_number":56,"context_line":"        # Response status and filed types will be checked by json schema"},{"line_number":57,"context_line":"        self.client.show_server_diagnostics(server_id)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        # NOTE(snikitin): This is a special case for Xen hypervisor. In Xen"},{"line_number":60,"context_line":"        # case we\u0027re getting diagnostics stats from the RRDs which are updated"}],"source_content_type":"text/x-python","patch_set":25,"id":"1a1ced50_24a41e56","line":57,"range":{"start_line":56,"start_character":0,"end_line":57,"end_character":54},"updated":"2017-03-17 06:33:36.000000000","message":"in case of Xen as you mentioned in notes, anyways we need to wait so we can remove this call and get server diagnostics all together after sleep and JSON schema validate response there too.","commit_id":"d032235e428009e18492752a4615e7ce46d273ff"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"00eb284cd0de8ccbb77cc9f8430f728e50c57587","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    def test_get_server_diagnostics(self):"},{"line_number":54,"context_line":"        server_id \u003d self.create_test_server(wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":55,"context_line":"                                            networks\u003d\u0027auto\u0027)[\u0027id\u0027]"},{"line_number":56,"context_line":"        # Response status and filed types will be checked by json schema"},{"line_number":57,"context_line":"        self.client.show_server_diagnostics(server_id)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        # NOTE(snikitin): This is a special case for Xen hypervisor. In Xen"},{"line_number":60,"context_line":"        # case we\u0027re getting diagnostics stats from the RRDs which are updated"}],"source_content_type":"text/x-python","patch_set":25,"id":"1a1ced50_9226b0b8","line":57,"range":{"start_line":56,"start_character":0,"end_line":57,"end_character":54},"in_reply_to":"1a1ced50_24a41e56","updated":"2017-03-21 07:13:03.000000000","message":"yes. but in xen case we need this line check if nova will handle such request correctly during first 5 seconds of VM life.\n\nMaybe I should mention it in comment here","commit_id":"d032235e428009e18492752a4615e7ce46d273ff"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"00eb284cd0de8ccbb77cc9f8430f728e50c57587","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        # which are get diagnostics stats form Xen may raise exceptions or"},{"line_number":64,"context_line":"        # return `NaN` values. Such behavior must be handled correctly."},{"line_number":65,"context_line":"        # Response must contain all diagnostics fields (may be with `None`"},{"line_number":66,"context_line":"        # values) and response status must be 200. Line above checks it by"},{"line_number":67,"context_line":"        # json schema."},{"line_number":68,"context_line":"        time.sleep(10)"},{"line_number":69,"context_line":"        diagnostics \u003d self.client.show_server_diagnostics(server_id)"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"1a1ced50_f22364a5","line":67,"range":{"start_line":66,"start_character":51,"end_line":67,"end_character":22},"updated":"2017-03-21 07:13:03.000000000","message":"I described it here","commit_id":"d032235e428009e18492752a4615e7ce46d273ff"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"9b98a03120d45e6da17b549a02535d73852946fd","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        # Response status and filed types will be checked by json schema"},{"line_number":57,"context_line":"        self.client.show_server_diagnostics(server_id)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        # NOTE(snikitin): This is a special case for Xen hypervisor. In Xen"},{"line_number":60,"context_line":"        # case we\u0027re getting diagnostics stats from the RRDs which are updated"},{"line_number":61,"context_line":"        # every 5 seconds. It means that diagnostics information may be"},{"line_number":62,"context_line":"        # incomplete during first 5 seconds of VM life. In such cases methods"}],"source_content_type":"text/x-python","patch_set":27,"id":"dfeb2761_0a6d7131","line":59,"updated":"2017-04-03 09:46:21.000000000","message":"Does this comment not also apply to attempting to read the diagnostics in the previous test? (i.e. is the reason we\u0027re failing the previous test because we aren\u0027t sleeping for 10 seconds before verifying the diganostics are not null)\nXenServer does not typically expect statistics to be read the instance the VM is created, so this would be racy.\nIs the expectation that Nova will populate the diagnostics with dummy values until the hypervisor can provide the details?","commit_id":"75935098298f9772e92945c3cd0ae7a749c1d692"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"fae191e7b5fec15fb502ddf87a217ed21adabb9f","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        # Response status and filed types will be checked by json schema"},{"line_number":57,"context_line":"        self.client.show_server_diagnostics(server_id)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        # NOTE(snikitin): This is a special case for Xen hypervisor. In Xen"},{"line_number":60,"context_line":"        # case we\u0027re getting diagnostics stats from the RRDs which are updated"},{"line_number":61,"context_line":"        # every 5 seconds. It means that diagnostics information may be"},{"line_number":62,"context_line":"        # incomplete during first 5 seconds of VM life. In such cases methods"}],"source_content_type":"text/x-python","patch_set":27,"id":"bff0334d_48dc3ee3","line":59,"in_reply_to":"dfeb2761_0a6d7131","updated":"2017-04-11 09:22:10.000000000","message":"Bob, could you look into it ? You have a good possible explanation here, care to take this patch, update it locally and see if that fixes it for Xen ?\n\nI\u0027d like to proceed with this patch.","commit_id":"75935098298f9772e92945c3cd0ae7a749c1d692"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"83c8b389f314b17059ebbf35dbc1dc93f4811bd5","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    @classmethod"},{"line_number":26,"context_line":"    def setup_clients(cls):"},{"line_number":27,"context_line":"        super(ServerDiagnosticsTest, cls).setup_clients()"},{"line_number":28,"context_line":"        cls.client \u003d cls.os_adm.servers_client"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    @decorators.idempotent_id(\u002731ff3486-b8a0-4f56-a6c0-aab460531db3\u0027)"},{"line_number":31,"context_line":"    def test_get_server_diagnostics(self):"}],"source_content_type":"text/x-python","patch_set":33,"id":"df140735_3a025d0b","line":28,"range":{"start_line":28,"start_character":25,"end_line":28,"end_character":31},"updated":"2017-06-05 01:10:20.000000000","message":"os_admin","commit_id":"2472aa11516ddd6ec465910568894b9a14bcea8b"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"83c8b389f314b17059ebbf35dbc1dc93f4811bd5","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        diagnostics \u003d self.client.show_server_diagnostics(server_id)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        # NOTE(snikitin): Before microversion 2.48 response data from each"},{"line_number":36,"context_line":"        # hypervisor (libvirt, xen, vmware) was different. There were no one"},{"line_number":37,"context_line":"        # equal field. As this test is common for libvirt, xen and vmware CI"},{"line_number":38,"context_line":"        # jobs we can\u0027t check any field in the response because all fields are"},{"line_number":39,"context_line":"        # different."},{"line_number":40,"context_line":"        self.assertNotEmpty(diagnostics)"}],"source_content_type":"text/x-python","patch_set":33,"id":"df140735_da0a411e","line":37,"range":{"start_line":36,"start_character":59,"end_line":37,"end_character":21},"updated":"2017-06-05 01:10:20.000000000","message":"\"None of the fields were equal.\" I think is what this is trying to say.","commit_id":"2472aa11516ddd6ec465910568894b9a14bcea8b"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"83c8b389f314b17059ebbf35dbc1dc93f4811bd5","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    @classmethod"},{"line_number":48,"context_line":"    def setup_clients(cls):"},{"line_number":49,"context_line":"        super(ServerDiagnosticsV248Test, cls).setup_clients()"},{"line_number":50,"context_line":"        cls.client \u003d cls.os_adm.servers_client"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    @decorators.idempotent_id(\u002764d0d48c-dff1-11e6-bf01-fe55135034f3\u0027)"},{"line_number":53,"context_line":"    def test_get_server_diagnostics(self):"}],"source_content_type":"text/x-python","patch_set":33,"id":"df140735_9a104950","line":50,"range":{"start_line":50,"start_character":25,"end_line":50,"end_character":31},"updated":"2017-06-05 01:10:20.000000000","message":"os_admin","commit_id":"2472aa11516ddd6ec465910568894b9a14bcea8b"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"83c8b389f314b17059ebbf35dbc1dc93f4811bd5","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        # case we\u0027re getting diagnostics stats from the RRDs which are updated"},{"line_number":60,"context_line":"        # every 5 seconds. It means that diagnostics information may be"},{"line_number":61,"context_line":"        # incomplete during first 5 seconds of VM life. In such cases methods"},{"line_number":62,"context_line":"        # which are get diagnostics stats form Xen may raise exceptions or"},{"line_number":63,"context_line":"        # return `NaN` values. Such behavior must be handled correctly."},{"line_number":64,"context_line":"        # Response must contain all diagnostics fields (may be with `None`"},{"line_number":65,"context_line":"        # values) and response status must be 200. Line above checks it by"}],"source_content_type":"text/x-python","patch_set":33,"id":"df140735_1a2e7991","line":62,"range":{"start_line":62,"start_character":16,"end_line":62,"end_character":46},"updated":"2017-06-05 01:10:20.000000000","message":"get diagnostics stats from","commit_id":"2472aa11516ddd6ec465910568894b9a14bcea8b"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"83c8b389f314b17059ebbf35dbc1dc93f4811bd5","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        # NOTE(snikitin): After 10 seconds diagnostics fields must contain"},{"line_number":71,"context_line":"        # not None values. But we will check only \"memory_details.maximum\""},{"line_number":72,"context_line":"        # field because only this field meet all the following conditions:"},{"line_number":73,"context_line":"        # 1) This field may be unset because of Xen 5 seconds timeout."},{"line_number":74,"context_line":"        # 2) This field is presented in responses from all three supported"},{"line_number":75,"context_line":"        #    hypervisors (libvirt, xen, vmware)."}],"source_content_type":"text/x-python","patch_set":33,"id":"df140735_9a3969d8","line":72,"range":{"start_line":72,"start_character":40,"end_line":72,"end_character":44},"updated":"2017-06-05 01:10:20.000000000","message":"meets","commit_id":"2472aa11516ddd6ec465910568894b9a14bcea8b"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"83c8b389f314b17059ebbf35dbc1dc93f4811bd5","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        # not None values. But we will check only \"memory_details.maximum\""},{"line_number":72,"context_line":"        # field because only this field meet all the following conditions:"},{"line_number":73,"context_line":"        # 1) This field may be unset because of Xen 5 seconds timeout."},{"line_number":74,"context_line":"        # 2) This field is presented in responses from all three supported"},{"line_number":75,"context_line":"        #    hypervisors (libvirt, xen, vmware)."},{"line_number":76,"context_line":"        self.assertIsNotNone(diagnostics[\u0027memory_details\u0027][\u0027maximum\u0027])"}],"source_content_type":"text/x-python","patch_set":33,"id":"df140735_7a3455de","line":74,"range":{"start_line":74,"start_character":27,"end_line":74,"end_character":36},"updated":"2017-06-05 01:10:20.000000000","message":"present","commit_id":"2472aa11516ddd6ec465910568894b9a14bcea8b"}],"tempest/api/compute/admin/test_server_diagnostics_negative.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"521a72b6cb7771fbe35e4c71b4064390d63070cf","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from tempest import test"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class ServerDiagnosticsNegativeV21TestJSON(base.BaseV2ComputeAdminTest):"},{"line_number":22,"context_line":"    min_microversion \u003d \u00272.1\u0027"},{"line_number":23,"context_line":"    max_microversion \u003d \u00272.40\u0027"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"da4df55a_b28b5a67","line":21,"range":{"start_line":21,"start_character":48,"end_line":21,"end_character":70},"updated":"2016-12-27 20:14:25.000000000","message":"This doesn\u0027t need to be an admin test if it\u0027s not actually using an admin client. I guess this is what was done in the test you copied this from, but I don\u0027t think this is necessary here.","commit_id":"904bad3ea1efb199120c89c55c2b619056f92f2c"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"da8e9304960bf02285a3a1f0806e0e671544f5ed","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from tempest import test"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class ServerDiagnosticsNegativeV21TestJSON(base.BaseV2ComputeAdminTest):"},{"line_number":22,"context_line":"    min_microversion \u003d \u00272.1\u0027"},{"line_number":23,"context_line":"    max_microversion \u003d \u00272.40\u0027"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5201f7_07dd3a70","line":21,"range":{"start_line":21,"start_character":48,"end_line":21,"end_character":70},"in_reply_to":"da4df55a_b28b5a67","updated":"2017-01-10 10:14:52.000000000","message":"instance diagnostics is admin only API. So as I understand we need an admin client","commit_id":"904bad3ea1efb199120c89c55c2b619056f92f2c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"521a72b6cb7771fbe35e4c71b4064390d63070cf","unresolved":false,"context_lines":[{"line_number":43,"context_line":"                          self.client.show_server_diagnostics, self.server_id)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"class ServerDiagnosticsNegativeV241TestJSON(base.BaseV2ComputeAdminTest):"},{"line_number":47,"context_line":"    min_microversion \u003d \u00272.41\u0027"},{"line_number":48,"context_line":"    max_microversion \u003d \u0027latest\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"da4df55a_d2ea9e0e","line":46,"updated":"2016-12-27 20:14:25.000000000","message":"Did you mean to extend ServerDiagnosticsNegativeV21TestJSON because otherwise this test class doesn\u0027t do anything.","commit_id":"904bad3ea1efb199120c89c55c2b619056f92f2c"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"da8e9304960bf02285a3a1f0806e0e671544f5ed","unresolved":false,"context_lines":[{"line_number":43,"context_line":"                          self.client.show_server_diagnostics, self.server_id)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"class ServerDiagnosticsNegativeV241TestJSON(base.BaseV2ComputeAdminTest):"},{"line_number":47,"context_line":"    min_microversion \u003d \u00272.41\u0027"},{"line_number":48,"context_line":"    max_microversion \u003d \u0027latest\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5201f7_67e4463b","line":46,"in_reply_to":"da4df55a_d2ea9e0e","updated":"2017-01-10 10:14:52.000000000","message":"yep(","commit_id":"904bad3ea1efb199120c89c55c2b619056f92f2c"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"f2be28ae536e5d283e6c394600277f6a1da3f83a","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        super(ServerDiagnosticsNegativeV21TestJSON, cls).resource_setup()"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"        name \u003d data_utils.rand_name(cls.__name__ + \u0027-server\u0027)"},{"line_number":35,"context_line":"        cls.server_id \u003d cls.create_test_server(name\u003dname,"},{"line_number":36,"context_line":"                                               wait_until\u003d\u0027ACTIVE\u0027)[\u0027id\u0027]"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_824f46bd","line":35,"updated":"2017-01-10 14:51:23.000000000","message":"same","commit_id":"597cfea260fceaceb2418a30df8a19a99b5a5bb2"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"4828e7cda43344fa942066c24bf94deaf41078ac","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        super(ServerDiagnosticsNegativeV21TestJSON, cls).resource_setup()"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"        name \u003d data_utils.rand_name(cls.__name__ + \u0027-server\u0027)"},{"line_number":35,"context_line":"        cls.server_id \u003d cls.create_test_server(name\u003dname,"},{"line_number":36,"context_line":"                                               wait_until\u003d\u0027ACTIVE\u0027)[\u0027id\u0027]"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_231bf981","line":35,"in_reply_to":"ba5201f7_824f46bd","updated":"2017-01-10 16:27:56.000000000","message":"Done","commit_id":"597cfea260fceaceb2418a30df8a19a99b5a5bb2"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"dfe0303080e2345c659b6adf230829a9a9827351","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    @test.idempotent_id(\u0027e84e2234-60d2-42fa-8b30-e2d3049724ac\u0027)"},{"line_number":32,"context_line":"    def test_get_server_diagnostics_by_non_admin(self):"},{"line_number":33,"context_line":"        # Non-admin user can not view server diagnostics according to policy"},{"line_number":34,"context_line":"        self.resource_setup()"},{"line_number":35,"context_line":"        server_id \u003d self.create_test_server(wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":36,"context_line":"                                            **self.create_server_kwargs)[\u0027id\u0027]"},{"line_number":37,"context_line":"        self.assertRaises(lib_exc.Forbidden,"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5201f7_d4c3c155","line":34,"updated":"2017-01-10 17:09:53.000000000","message":"same","commit_id":"da4a6ce09c96e3dbfba0b19beda9a0e83929c9a8"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"58b22e8a29b3ce8fc8576821ec523532f2efd0e9","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    @test.idempotent_id(\u0027e84e2234-60d2-42fa-8b30-e2d3049724ac\u0027)"},{"line_number":32,"context_line":"    def test_get_server_diagnostics_by_non_admin(self):"},{"line_number":33,"context_line":"        # Non-admin user can not view server diagnostics according to policy"},{"line_number":34,"context_line":"        self.resource_setup()"},{"line_number":35,"context_line":"        server_id \u003d self.create_test_server(wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":36,"context_line":"                                            **self.create_server_kwargs)[\u0027id\u0027]"},{"line_number":37,"context_line":"        self.assertRaises(lib_exc.Forbidden,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a3c09a3_19ff7002","line":34,"updated":"2017-01-13 15:18:40.000000000","message":"Why ?\n\nYou don\"t need this. Nowhere else in Tempest code base are we doing this this way.","commit_id":"1cc0e8b3d11e590818086d9d9ad92b760ccd4eb0"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"5c5ce280e3398c08ad18ab2f3c9982d1282822b7","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from tempest import test"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class ServerDiagnosticsNegativeV21TestJSON(base.BaseV2ComputeAdminTest):"},{"line_number":21,"context_line":"    min_microversion \u003d \u00272.1\u0027"},{"line_number":22,"context_line":"    max_microversion \u003d \u00272.41\u0027"},{"line_number":23,"context_line":"    create_server_kwargs \u003d {}"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a3905b3_2f2b0f32","line":20,"updated":"2017-01-19 10:48:28.000000000","message":"If this is a \u0027non admin\u0027 this this should not inherit from BaseV2ComputeAdminTest. \n\nAnd this whole file should not be in the compute/admin/ dir","commit_id":"c00dde4b1156f2288b44cda8311f4474b65c0b87"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"b65d45e9a0e95d4deb9de4e92ce05ac676c8f361","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from tempest import test"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class ServerDiagnosticsNegativeV21TestJSON(base.BaseV2ComputeAdminTest):"},{"line_number":21,"context_line":"    min_microversion \u003d \u00272.1\u0027"},{"line_number":22,"context_line":"    max_microversion \u003d \u00272.41\u0027"},{"line_number":23,"context_line":"    create_server_kwargs \u003d {}"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a3905b3_8a4951d3","line":20,"in_reply_to":"5a3905b3_2f2b0f32","updated":"2017-01-19 11:14:31.000000000","message":"Diagnostics API is *admin only* API. I understand that the only here tries to get diagnostics as non admin user. But this is the meaning of this test. If now or in future we will add *any* other test, it will require admin rights. So I think that this test case should be admin. Otherwise we will have to move all this stuff from non-admin directory if we will add any new test in future.","commit_id":"c00dde4b1156f2288b44cda8311f4474b65c0b87"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"25e9289e079b06fd879b82b0e7f9c798aa15ea08","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from tempest import test"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class ServerDiagnosticsNegativeV21Test(base.BaseV2ComputeAdminTest):"},{"line_number":22,"context_line":"    min_microversion \u003d \u00272.1\u0027"},{"line_number":23,"context_line":"    max_microversion \u003d \u00272.42\u0027"},{"line_number":24,"context_line":"    create_server_kwargs \u003d {}"}],"source_content_type":"text/x-python","patch_set":25,"id":"1a1ced50_44775ad4","line":21,"range":{"start_line":21,"start_character":31,"end_line":21,"end_character":34},"updated":"2017-03-17 06:33:36.000000000","message":"ditto","commit_id":"d032235e428009e18492752a4615e7ce46d273ff"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"25e9289e079b06fd879b82b0e7f9c798aa15ea08","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class ServerDiagnosticsNegativeV21Test(base.BaseV2ComputeAdminTest):"},{"line_number":22,"context_line":"    min_microversion \u003d \u00272.1\u0027"},{"line_number":23,"context_line":"    max_microversion \u003d \u00272.42\u0027"},{"line_number":24,"context_line":"    create_server_kwargs \u003d {}"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"1a1ced50_647456cf","line":22,"range":{"start_line":22,"start_character":23,"end_line":22,"end_character":28},"updated":"2017-03-17 06:33:36.000000000","message":"ditto","commit_id":"d032235e428009e18492752a4615e7ce46d273ff"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"25e9289e079b06fd879b82b0e7f9c798aa15ea08","unresolved":false,"context_lines":[{"line_number":38,"context_line":"                          self.client.show_server_diagnostics, server_id)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class ServerDiagnosticsNegativeV243Test(ServerDiagnosticsNegativeV21Test):"},{"line_number":42,"context_line":"    min_microversion \u003d \u00272.43\u0027"},{"line_number":43,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":44,"context_line":"    create_server_kwargs \u003d {\u0027networks\u0027: \u0027none\u0027}"}],"source_content_type":"text/x-python","patch_set":25,"id":"1a1ced50_046d6204","line":44,"range":{"start_line":41,"start_character":0,"end_line":44,"end_character":47},"updated":"2017-03-17 06:33:36.000000000","message":"as there is no change in non admin access, can we have this negative tests without microversion i mean run for all.\n\nor {\u0027networks\u0027: \u0027none\u0027} makes any difference here?\n\nand we keep old tests so we do not need this new class - https://review.openstack.org/#/c/413606/25/tempest/api/compute/admin/test_servers_negative.py","commit_id":"d032235e428009e18492752a4615e7ce46d273ff"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"00eb284cd0de8ccbb77cc9f8430f728e50c57587","unresolved":false,"context_lines":[{"line_number":38,"context_line":"                          self.client.show_server_diagnostics, server_id)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class ServerDiagnosticsNegativeV243Test(ServerDiagnosticsNegativeV21Test):"},{"line_number":42,"context_line":"    min_microversion \u003d \u00272.43\u0027"},{"line_number":43,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":44,"context_line":"    create_server_kwargs \u003d {\u0027networks\u0027: \u0027none\u0027}"}],"source_content_type":"text/x-python","patch_set":25,"id":"1a1ced50_725e9413","line":44,"range":{"start_line":41,"start_character":0,"end_line":44,"end_character":47},"in_reply_to":"1a1ced50_046d6204","updated":"2017-03-21 07:13:03.000000000","message":"ditto. since microversion 2.37 \u0027networks\u0027 is required","commit_id":"d032235e428009e18492752a4615e7ce46d273ff"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"83c8b389f314b17059ebbf35dbc1dc93f4811bd5","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    @decorators.attr(type\u003d[\u0027negative\u0027])"},{"line_number":30,"context_line":"    @decorators.idempotent_id(\u0027e84e2234-60d2-42fa-8b30-e2d3049724ac\u0027)"},{"line_number":31,"context_line":"    def test_get_server_diagnostics_by_non_admin(self):"},{"line_number":32,"context_line":"        # Non-admin user can not view server diagnostics according to policy"},{"line_number":33,"context_line":"        server_id \u003d self.create_test_server(wait_until\u003d\u0027ACTIVE\u0027)[\u0027id\u0027]"},{"line_number":34,"context_line":"        self.assertRaises(lib_exc.Forbidden,"},{"line_number":35,"context_line":"                          self.client.show_server_diagnostics, server_id)"}],"source_content_type":"text/x-python","patch_set":33,"id":"df140735_3a501d0b","line":32,"range":{"start_line":32,"start_character":25,"end_line":32,"end_character":32},"updated":"2017-06-05 01:10:20.000000000","message":"cannot","commit_id":"2472aa11516ddd6ec465910568894b9a14bcea8b"}],"tempest/api/compute/admin/test_servers.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"521a72b6cb7771fbe35e4c71b4064390d63070cf","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        server \u003d self.client.show_server(self.s1_id)[\u0027server\u0027]"},{"line_number":164,"context_line":"        self.assertEqual(server[\u0027status\u0027], \u0027ACTIVE\u0027)"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    @decorators.skip_because(bug\u003d\"1240043\")"},{"line_number":167,"context_line":"    @test.idempotent_id(\u002731ff3486-b8a0-4f56-a6c0-aab460531db3\u0027)"},{"line_number":168,"context_line":"    def test_get_server_diagnostics_by_admin(self):"},{"line_number":169,"context_line":"        # Retrieve server diagnostics by admin user"}],"source_content_type":"text/x-python","patch_set":2,"id":"da4df55a_12f18601","side":"PARENT","line":166,"updated":"2016-12-27 20:14:25.000000000","message":"You may want to make a note about why this is removed in the commit message.","commit_id":"1fba65eb1be4c30ce619e983f832c6f7af1c7f98"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"da8e9304960bf02285a3a1f0806e0e671544f5ed","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        server \u003d self.client.show_server(self.s1_id)[\u0027server\u0027]"},{"line_number":164,"context_line":"        self.assertEqual(server[\u0027status\u0027], \u0027ACTIVE\u0027)"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    @decorators.skip_because(bug\u003d\"1240043\")"},{"line_number":167,"context_line":"    @test.idempotent_id(\u002731ff3486-b8a0-4f56-a6c0-aab460531db3\u0027)"},{"line_number":168,"context_line":"    def test_get_server_diagnostics_by_admin(self):"},{"line_number":169,"context_line":"        # Retrieve server diagnostics by admin user"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5201f7_e5c90b5c","side":"PARENT","line":166,"in_reply_to":"da4df55a_12f18601","updated":"2017-01-10 10:14:52.000000000","message":"Done","commit_id":"1fba65eb1be4c30ce619e983f832c6f7af1c7f98"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"b6aca7f723356a927b53a262848cd08f4acfb7d3","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        self.assertEqual(server[\u0027status\u0027], \u0027ACTIVE\u0027)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    @decorators.skip_because(bug\u003d\"1240043\")"},{"line_number":168,"context_line":"    @decorators.idempotent_id(\u002731ff3486-b8a0-4f56-a6c0-aab460531db3\u0027)"},{"line_number":169,"context_line":"    def test_get_server_diagnostics_by_admin(self):"},{"line_number":170,"context_line":"        # Retrieve server diagnostics by admin user"},{"line_number":171,"context_line":"        diagnostic \u003d self.client.show_server_diagnostics(self.s1_id)"}],"source_content_type":"text/x-python","patch_set":22,"id":"fa31d9ce_a7e6b612","side":"PARENT","line":168,"updated":"2017-02-14 17:53:05.000000000","message":"note: it is ok to move this test into a new test module because defcore doesn\u0027t refer this.","commit_id":"488ea0900874daa26b5cbf3b65897ff2227784b1"}],"tempest/api/compute/admin/test_servers_negative.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"521a72b6cb7771fbe35e4c71b4064390d63070cf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2013 Huawei Technologies Co.,LTD."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":2,"id":"da4df55a_92e57639","line":1,"updated":"2016-12-27 20:14:25.000000000","message":"I\u0027m not sure but you might need to carry this copyright into the next test module if it came with adding the test you\u0027re duplicating over there.","commit_id":"904bad3ea1efb199120c89c55c2b619056f92f2c"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"da8e9304960bf02285a3a1f0806e0e671544f5ed","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2013 Huawei Technologies Co.,LTD."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5201f7_45c1f72d","line":1,"in_reply_to":"da4df55a_92e57639","updated":"2017-01-10 10:14:52.000000000","message":"not quite understand what do you mean","commit_id":"904bad3ea1efb199120c89c55c2b619056f92f2c"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"b6aca7f723356a927b53a262848cd08f4acfb7d3","unresolved":false,"context_lines":[{"line_number":134,"context_line":"                          self.client.reset_state, \u0027999\u0027, state\u003d\u0027error\u0027)"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"},{"line_number":137,"context_line":"    @decorators.idempotent_id(\u0027e84e2234-60d2-42fa-8b30-e2d3049724ac\u0027)"},{"line_number":138,"context_line":"    def test_get_server_diagnostics_by_non_admin(self):"},{"line_number":139,"context_line":"        # Non-admin user can not view server diagnostics according to policy"},{"line_number":140,"context_line":"        self.assertRaises(lib_exc.Forbidden,"}],"source_content_type":"text/x-python","patch_set":22,"id":"fa31d9ce_a7cdd686","side":"PARENT","line":137,"updated":"2017-02-14 17:53:05.000000000","message":"note: ditto","commit_id":"488ea0900874daa26b5cbf3b65897ff2227784b1"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"25e9289e079b06fd879b82b0e7f9c798aa15ea08","unresolved":false,"context_lines":[{"line_number":109,"context_line":"                          self.client.reset_state, \u0027999\u0027, state\u003d\u0027error\u0027)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"},{"line_number":112,"context_line":"    @decorators.idempotent_id(\u0027e84e2234-60d2-42fa-8b30-e2d3049724ac\u0027)"},{"line_number":113,"context_line":"    def test_get_server_diagnostics_by_non_admin(self):"},{"line_number":114,"context_line":"        # Non-admin user can not view server diagnostics according to policy"},{"line_number":115,"context_line":"        self.assertRaises(lib_exc.Forbidden,"},{"line_number":116,"context_line":"                          self.non_adm_client.show_server_diagnostics,"},{"line_number":117,"context_line":"                          self.s1_id)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"},{"line_number":120,"context_line":"    @decorators.idempotent_id(\u002746a4e1ca-87ae-4d28-987a-1b6b136a0221\u0027)"}],"source_content_type":"text/x-python","patch_set":25,"id":"1a1ced50_84587258","side":"PARENT","line":117,"range":{"start_line":112,"start_character":0,"end_line":117,"end_character":37},"updated":"2017-03-17 06:33:36.000000000","message":"we should keep this tests as there should not be change in non admin access bits in new microversion","commit_id":"6b3d13555f96595ba0eb2cf86771ddeca277c4aa"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"00eb284cd0de8ccbb77cc9f8430f728e50c57587","unresolved":false,"context_lines":[{"line_number":109,"context_line":"                          self.client.reset_state, \u0027999\u0027, state\u003d\u0027error\u0027)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"},{"line_number":112,"context_line":"    @decorators.idempotent_id(\u0027e84e2234-60d2-42fa-8b30-e2d3049724ac\u0027)"},{"line_number":113,"context_line":"    def test_get_server_diagnostics_by_non_admin(self):"},{"line_number":114,"context_line":"        # Non-admin user can not view server diagnostics according to policy"},{"line_number":115,"context_line":"        self.assertRaises(lib_exc.Forbidden,"},{"line_number":116,"context_line":"                          self.non_adm_client.show_server_diagnostics,"},{"line_number":117,"context_line":"                          self.s1_id)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"},{"line_number":120,"context_line":"    @decorators.idempotent_id(\u002746a4e1ca-87ae-4d28-987a-1b6b136a0221\u0027)"}],"source_content_type":"text/x-python","patch_set":25,"id":"1a1ced50_92607037","side":"PARENT","line":117,"range":{"start_line":112,"start_character":0,"end_line":117,"end_character":37},"in_reply_to":"1a1ced50_84587258","updated":"2017-03-21 07:13:03.000000000","message":"yes. but new microversion can\u0027t create server without \u0027networks\u0027 field. Should we left this test here and duplicate it in test_diagnostics_negative with \u0027networks\u0027 param?","commit_id":"6b3d13555f96595ba0eb2cf86771ddeca277c4aa"}],"tempest/lib/api_schema/response/compute/v2_43/servers.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"b6aca7f723356a927b53a262848cd08f4acfb7d3","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import copy"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from tempest.lib.api_schema.response.compute.v2_1 import servers"},{"line_number":18,"context_line":"from tempest.lib.api_schema.response.compute.v2_26 import servers as servers226"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"show_server_diagnostics \u003d copy.deepcopy(servers.show_server_diagnostics)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"show_server_diagnostics[\u0027response_body\u0027][\u0027additionalProperties\u0027] \u003d False"},{"line_number":24,"context_line":"show_server_diagnostics[\u0027response_body\u0027][\u0027required\u0027] \u003d ["},{"line_number":25,"context_line":"    \u0027state\u0027, \u0027driver\u0027, \u0027hypervisor\u0027, \u0027hypervisor_os\u0027, \u0027uptime\u0027, \u0027config_drive\u0027,"},{"line_number":26,"context_line":"    \u0027num_cpus\u0027, \u0027num_nics\u0027, \u0027num_disks\u0027, \u0027memory_details\u0027, \u0027cpu_details\u0027,"},{"line_number":27,"context_line":"    \u0027nic_details\u0027, \u0027disk_details\u0027]"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"show_server_diagnostics[\u0027response_body\u0027][\u0027properties\u0027] \u003d {"},{"line_number":30,"context_line":"    \u0027state\u0027: {"},{"line_number":31,"context_line":"        \u0027type\u0027: \u0027string\u0027, \u0027enum\u0027: ["},{"line_number":32,"context_line":"            \u0027pending\u0027, \u0027running\u0027, \u0027paused\u0027, \u0027shutdown\u0027, \u0027crashed\u0027, \u0027suspended\u0027]"},{"line_number":33,"context_line":"    },"},{"line_number":34,"context_line":"    \u0027driver\u0027: {"},{"line_number":35,"context_line":"        \u0027type\u0027: \u0027string\u0027, \u0027enum\u0027: ["},{"line_number":36,"context_line":"            \u0027libvirt\u0027, \u0027xenapi\u0027, \u0027vmwareapi\u0027, \u0027ironic\u0027, \u0027hyperv\u0027]"},{"line_number":37,"context_line":"    },"},{"line_number":38,"context_line":"    \u0027hypervisor\u0027: {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]},"},{"line_number":39,"context_line":"    \u0027hypervisor_os\u0027: {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]},"},{"line_number":40,"context_line":"    \u0027uptime\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":41,"context_line":"    \u0027config_drive\u0027: {\u0027type\u0027: \u0027boolean\u0027},"},{"line_number":42,"context_line":"    \u0027num_cpus\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":43,"context_line":"    \u0027num_nics\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":44,"context_line":"    \u0027num_disks\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":45,"context_line":"    \u0027memory_details\u0027: {"},{"line_number":46,"context_line":"        \u0027type\u0027: \u0027object\u0027,"},{"line_number":47,"context_line":"        \u0027properties\u0027: {"},{"line_number":48,"context_line":"            \u0027maximum\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":49,"context_line":"            \u0027used\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]}"},{"line_number":50,"context_line":"        },"},{"line_number":51,"context_line":"        \u0027additionalProperties\u0027: False,"},{"line_number":52,"context_line":"        \u0027required\u0027: [\u0027maximum\u0027, \u0027used\u0027]"},{"line_number":53,"context_line":"    },"},{"line_number":54,"context_line":"    \u0027cpu_details\u0027: {"},{"line_number":55,"context_line":"        \u0027type\u0027: \u0027array\u0027,"},{"line_number":56,"context_line":"        \u0027items\u0027: {"},{"line_number":57,"context_line":"            \u0027type\u0027: \u0027object\u0027,"},{"line_number":58,"context_line":"            \u0027properties\u0027: {"},{"line_number":59,"context_line":"                \u0027id\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":60,"context_line":"                \u0027time\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":61,"context_line":"                \u0027utilisation\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]}"},{"line_number":62,"context_line":"            },"},{"line_number":63,"context_line":"            \u0027additionalProperties\u0027: False,"},{"line_number":64,"context_line":"            \u0027required\u0027: [\u0027id\u0027, \u0027time\u0027, \u0027utilisation\u0027]"},{"line_number":65,"context_line":"        }"},{"line_number":66,"context_line":"    },"},{"line_number":67,"context_line":"    \u0027nic_details\u0027: {"},{"line_number":68,"context_line":"        \u0027type\u0027: \u0027array\u0027,"},{"line_number":69,"context_line":"        \u0027items\u0027: {"},{"line_number":70,"context_line":"            \u0027type\u0027: \u0027object\u0027,"},{"line_number":71,"context_line":"            \u0027properties\u0027: {"},{"line_number":72,"context_line":"                \u0027mac_address\u0027: {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]},"},{"line_number":73,"context_line":"                \u0027rx_octets\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":74,"context_line":"                \u0027rx_errors\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":75,"context_line":"                \u0027rx_drop\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":76,"context_line":"                \u0027rx_packets\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":77,"context_line":"                \u0027rx_rate\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":78,"context_line":"                \u0027tx_octets\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":79,"context_line":"                \u0027tx_errors\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":80,"context_line":"                \u0027tx_drop\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":81,"context_line":"                \u0027tx_packets\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":82,"context_line":"                \u0027tx_rate\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]}"},{"line_number":83,"context_line":"            },"},{"line_number":84,"context_line":"            \u0027additionalProperties\u0027: False,"},{"line_number":85,"context_line":"            \u0027required\u0027: [\u0027mac_address\u0027, \u0027rx_octets\u0027, \u0027rx_errors\u0027, \u0027rx_drop\u0027,"},{"line_number":86,"context_line":"                         \u0027rx_packets\u0027, \u0027rx_rate\u0027, \u0027tx_octets\u0027, \u0027tx_errors\u0027,"},{"line_number":87,"context_line":"                         \u0027tx_drop\u0027, \u0027tx_packets\u0027, \u0027tx_rate\u0027]"},{"line_number":88,"context_line":"        }"},{"line_number":89,"context_line":"    },"},{"line_number":90,"context_line":"    \u0027disk_details\u0027: {"},{"line_number":91,"context_line":"        \u0027type\u0027: \u0027array\u0027,"},{"line_number":92,"context_line":"        \u0027items\u0027: {"},{"line_number":93,"context_line":"            \u0027type\u0027: \u0027object\u0027,"},{"line_number":94,"context_line":"            \u0027properties\u0027: {"},{"line_number":95,"context_line":"                \u0027read_bytes\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":96,"context_line":"                \u0027read_requests\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":97,"context_line":"                \u0027write_bytes\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":98,"context_line":"                \u0027write_requests\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":99,"context_line":"                \u0027errors_count\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]}"},{"line_number":100,"context_line":"            },"},{"line_number":101,"context_line":"            \u0027additionalProperties\u0027: False,"},{"line_number":102,"context_line":"            \u0027required\u0027: [\u0027read_bytes\u0027, \u0027read_requests\u0027, \u0027write_bytes\u0027,"},{"line_number":103,"context_line":"                         \u0027write_requests\u0027, \u0027errors_count\u0027]"},{"line_number":104,"context_line":"        }"},{"line_number":105,"context_line":"    }"},{"line_number":106,"context_line":"}"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"get_server \u003d copy.deepcopy(servers226.get_server)"}],"source_content_type":"text/x-python","patch_set":22,"id":"fa31d9ce_87a532a3","line":106,"range":{"start_line":17,"start_character":0,"end_line":106,"end_character":1},"updated":"2017-02-14 17:53:05.000000000","message":"The previous microversion json-schema is very small and I don\u0027t think it is worth to re-use/re-base the older jsonschema here. It is nice to define a new json-schema for this microversion for its readability.","commit_id":"46a093a9fb7fd10490bf193f98e60642a85304c8"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"16595a50b2ff3ce58480d055413e8fdf38453cb0","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import copy"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from tempest.lib.api_schema.response.compute.v2_1 import servers"},{"line_number":18,"context_line":"from tempest.lib.api_schema.response.compute.v2_26 import servers as servers226"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"show_server_diagnostics \u003d copy.deepcopy(servers.show_server_diagnostics)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"show_server_diagnostics[\u0027response_body\u0027][\u0027additionalProperties\u0027] \u003d False"},{"line_number":24,"context_line":"show_server_diagnostics[\u0027response_body\u0027][\u0027required\u0027] \u003d ["},{"line_number":25,"context_line":"    \u0027state\u0027, \u0027driver\u0027, \u0027hypervisor\u0027, \u0027hypervisor_os\u0027, \u0027uptime\u0027, \u0027config_drive\u0027,"},{"line_number":26,"context_line":"    \u0027num_cpus\u0027, \u0027num_nics\u0027, \u0027num_disks\u0027, \u0027memory_details\u0027, \u0027cpu_details\u0027,"},{"line_number":27,"context_line":"    \u0027nic_details\u0027, \u0027disk_details\u0027]"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"show_server_diagnostics[\u0027response_body\u0027][\u0027properties\u0027] \u003d {"},{"line_number":30,"context_line":"    \u0027state\u0027: {"},{"line_number":31,"context_line":"        \u0027type\u0027: \u0027string\u0027, \u0027enum\u0027: ["},{"line_number":32,"context_line":"            \u0027pending\u0027, \u0027running\u0027, \u0027paused\u0027, \u0027shutdown\u0027, \u0027crashed\u0027, \u0027suspended\u0027]"},{"line_number":33,"context_line":"    },"},{"line_number":34,"context_line":"    \u0027driver\u0027: {"},{"line_number":35,"context_line":"        \u0027type\u0027: \u0027string\u0027, \u0027enum\u0027: ["},{"line_number":36,"context_line":"            \u0027libvirt\u0027, \u0027xenapi\u0027, \u0027vmwareapi\u0027, \u0027ironic\u0027, \u0027hyperv\u0027]"},{"line_number":37,"context_line":"    },"},{"line_number":38,"context_line":"    \u0027hypervisor\u0027: {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]},"},{"line_number":39,"context_line":"    \u0027hypervisor_os\u0027: {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]},"},{"line_number":40,"context_line":"    \u0027uptime\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":41,"context_line":"    \u0027config_drive\u0027: {\u0027type\u0027: \u0027boolean\u0027},"},{"line_number":42,"context_line":"    \u0027num_cpus\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":43,"context_line":"    \u0027num_nics\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":44,"context_line":"    \u0027num_disks\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":45,"context_line":"    \u0027memory_details\u0027: {"},{"line_number":46,"context_line":"        \u0027type\u0027: \u0027object\u0027,"},{"line_number":47,"context_line":"        \u0027properties\u0027: {"},{"line_number":48,"context_line":"            \u0027maximum\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":49,"context_line":"            \u0027used\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]}"},{"line_number":50,"context_line":"        },"},{"line_number":51,"context_line":"        \u0027additionalProperties\u0027: False,"},{"line_number":52,"context_line":"        \u0027required\u0027: [\u0027maximum\u0027, \u0027used\u0027]"},{"line_number":53,"context_line":"    },"},{"line_number":54,"context_line":"    \u0027cpu_details\u0027: {"},{"line_number":55,"context_line":"        \u0027type\u0027: \u0027array\u0027,"},{"line_number":56,"context_line":"        \u0027items\u0027: {"},{"line_number":57,"context_line":"            \u0027type\u0027: \u0027object\u0027,"},{"line_number":58,"context_line":"            \u0027properties\u0027: {"},{"line_number":59,"context_line":"                \u0027id\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":60,"context_line":"                \u0027time\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":61,"context_line":"                \u0027utilisation\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]}"},{"line_number":62,"context_line":"            },"},{"line_number":63,"context_line":"            \u0027additionalProperties\u0027: False,"},{"line_number":64,"context_line":"            \u0027required\u0027: [\u0027id\u0027, \u0027time\u0027, \u0027utilisation\u0027]"},{"line_number":65,"context_line":"        }"},{"line_number":66,"context_line":"    },"},{"line_number":67,"context_line":"    \u0027nic_details\u0027: {"},{"line_number":68,"context_line":"        \u0027type\u0027: \u0027array\u0027,"},{"line_number":69,"context_line":"        \u0027items\u0027: {"},{"line_number":70,"context_line":"            \u0027type\u0027: \u0027object\u0027,"},{"line_number":71,"context_line":"            \u0027properties\u0027: {"},{"line_number":72,"context_line":"                \u0027mac_address\u0027: {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]},"},{"line_number":73,"context_line":"                \u0027rx_octets\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":74,"context_line":"                \u0027rx_errors\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":75,"context_line":"                \u0027rx_drop\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":76,"context_line":"                \u0027rx_packets\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":77,"context_line":"                \u0027rx_rate\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":78,"context_line":"                \u0027tx_octets\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":79,"context_line":"                \u0027tx_errors\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":80,"context_line":"                \u0027tx_drop\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":81,"context_line":"                \u0027tx_packets\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":82,"context_line":"                \u0027tx_rate\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]}"},{"line_number":83,"context_line":"            },"},{"line_number":84,"context_line":"            \u0027additionalProperties\u0027: False,"},{"line_number":85,"context_line":"            \u0027required\u0027: [\u0027mac_address\u0027, \u0027rx_octets\u0027, \u0027rx_errors\u0027, \u0027rx_drop\u0027,"},{"line_number":86,"context_line":"                         \u0027rx_packets\u0027, \u0027rx_rate\u0027, \u0027tx_octets\u0027, \u0027tx_errors\u0027,"},{"line_number":87,"context_line":"                         \u0027tx_drop\u0027, \u0027tx_packets\u0027, \u0027tx_rate\u0027]"},{"line_number":88,"context_line":"        }"},{"line_number":89,"context_line":"    },"},{"line_number":90,"context_line":"    \u0027disk_details\u0027: {"},{"line_number":91,"context_line":"        \u0027type\u0027: \u0027array\u0027,"},{"line_number":92,"context_line":"        \u0027items\u0027: {"},{"line_number":93,"context_line":"            \u0027type\u0027: \u0027object\u0027,"},{"line_number":94,"context_line":"            \u0027properties\u0027: {"},{"line_number":95,"context_line":"                \u0027read_bytes\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":96,"context_line":"                \u0027read_requests\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":97,"context_line":"                \u0027write_bytes\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":98,"context_line":"                \u0027write_requests\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":99,"context_line":"                \u0027errors_count\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]}"},{"line_number":100,"context_line":"            },"},{"line_number":101,"context_line":"            \u0027additionalProperties\u0027: False,"},{"line_number":102,"context_line":"            \u0027required\u0027: [\u0027read_bytes\u0027, \u0027read_requests\u0027, \u0027write_bytes\u0027,"},{"line_number":103,"context_line":"                         \u0027write_requests\u0027, \u0027errors_count\u0027]"},{"line_number":104,"context_line":"        }"},{"line_number":105,"context_line":"    }"},{"line_number":106,"context_line":"}"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"get_server \u003d copy.deepcopy(servers226.get_server)"}],"source_content_type":"text/x-python","patch_set":22,"id":"fa31d9ce_d434e1fc","line":106,"range":{"start_line":17,"start_character":0,"end_line":106,"end_character":1},"in_reply_to":"fa31d9ce_87a532a3","updated":"2017-02-16 11:57:35.000000000","message":"Done","commit_id":"46a093a9fb7fd10490bf193f98e60642a85304c8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"25e9289e079b06fd879b82b0e7f9c798aa15ea08","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            \u0027hypervisor\u0027: {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]},"},{"line_number":35,"context_line":"            \u0027hypervisor_os\u0027: {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]},"},{"line_number":36,"context_line":"            \u0027uptime\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":37,"context_line":"            \u0027config_drive\u0027: {\u0027type\u0027: \u0027boolean\u0027},"},{"line_number":38,"context_line":"            \u0027num_cpus\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":39,"context_line":"            \u0027num_nics\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":40,"context_line":"            \u0027num_disks\u0027: {\u0027type\u0027: \u0027integer\u0027},"}],"source_content_type":"text/x-python","patch_set":25,"id":"1a1ced50_4f6853bb","line":37,"range":{"start_line":37,"start_character":0,"end_line":37,"end_character":48},"updated":"2017-03-17 06:33:36.000000000","message":"this should be same as defining on nova side- https://review.openstack.org/#/c/434745/3/nova/objects/diagnostics.py\n\nBut i think it should not be nullable, i left comment on nova patch","commit_id":"d032235e428009e18492752a4615e7ce46d273ff"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"25e9289e079b06fd879b82b0e7f9c798aa15ea08","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                \u0027items\u0027: {"},{"line_number":53,"context_line":"                    \u0027type\u0027: \u0027object\u0027,"},{"line_number":54,"context_line":"                    \u0027properties\u0027: {"},{"line_number":55,"context_line":"                        \u0027id\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":56,"context_line":"                        \u0027time\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":57,"context_line":"                        \u0027utilisation\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]}"},{"line_number":58,"context_line":"                    },"}],"source_content_type":"text/x-python","patch_set":25,"id":"1a1ced50_4fa3f39e","line":55,"range":{"start_line":55,"start_character":24,"end_line":55,"end_character":50},"updated":"2017-03-17 06:33:36.000000000","message":"this should be nullable as per https://review.openstack.org/#/c/434745/3/nova/objects/diagnostics.py\n\ni think libvirt driver does not set this at least.","commit_id":"d032235e428009e18492752a4615e7ce46d273ff"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"00eb284cd0de8ccbb77cc9f8430f728e50c57587","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                \u0027items\u0027: {"},{"line_number":53,"context_line":"                    \u0027type\u0027: \u0027object\u0027,"},{"line_number":54,"context_line":"                    \u0027properties\u0027: {"},{"line_number":55,"context_line":"                        \u0027id\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":56,"context_line":"                        \u0027time\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":57,"context_line":"                        \u0027utilisation\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]}"},{"line_number":58,"context_line":"                    },"}],"source_content_type":"text/x-python","patch_set":25,"id":"1a1ced50_3892319f","line":55,"range":{"start_line":55,"start_character":24,"end_line":55,"end_character":50},"in_reply_to":"1a1ced50_4fa3f39e","updated":"2017-03-21 07:13:03.000000000","message":"Done","commit_id":"d032235e428009e18492752a4615e7ce46d273ff"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"25e9289e079b06fd879b82b0e7f9c798aa15ea08","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                \u0027items\u0027: {"},{"line_number":66,"context_line":"                    \u0027type\u0027: \u0027object\u0027,"},{"line_number":67,"context_line":"                    \u0027properties\u0027: {"},{"line_number":68,"context_line":"                        \u0027mac_address\u0027: {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]},"},{"line_number":69,"context_line":"                        \u0027rx_octets\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":70,"context_line":"                        \u0027rx_errors\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":71,"context_line":"                        \u0027rx_drop\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"}],"source_content_type":"text/x-python","patch_set":25,"id":"1a1ced50_efe1ffd1","line":68,"range":{"start_line":68,"start_character":39,"end_line":68,"end_character":68},"updated":"2017-03-17 06:33:36.000000000","message":"you can check this more strictly by parameter_types.mac_address,","commit_id":"d032235e428009e18492752a4615e7ce46d273ff"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"00eb284cd0de8ccbb77cc9f8430f728e50c57587","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                \u0027items\u0027: {"},{"line_number":66,"context_line":"                    \u0027type\u0027: \u0027object\u0027,"},{"line_number":67,"context_line":"                    \u0027properties\u0027: {"},{"line_number":68,"context_line":"                        \u0027mac_address\u0027: {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]},"},{"line_number":69,"context_line":"                        \u0027rx_octets\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":70,"context_line":"                        \u0027rx_errors\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"},{"line_number":71,"context_line":"                        \u0027rx_drop\u0027: {\u0027type\u0027: [\u0027integer\u0027, \u0027null\u0027]},"}],"source_content_type":"text/x-python","patch_set":25,"id":"1a1ced50_18dad578","line":68,"range":{"start_line":68,"start_character":39,"end_line":68,"end_character":68},"in_reply_to":"1a1ced50_efe1ffd1","updated":"2017-03-21 07:13:03.000000000","message":"Done","commit_id":"d032235e428009e18492752a4615e7ce46d273ff"}]}
