)]}'
{"nova/tests/functional/libvirt/test_numa_servers.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f32d975e53c3d46641a07eee197a3d50aebaa18c","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        found_server \u003d self._wait_for_state_change(found_server, \u0027BUILD\u0027)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        self.assertEqual(end_status, found_server[\u0027status\u0027])"},{"line_number":116,"context_line":"        self.addCleanup(self._delete_server, created_server_id)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    def _get_topology_filter_spy(self):"},{"line_number":119,"context_line":"        host_manager \u003d self.scheduler.manager.driver.host_manager"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_69d1bd22","line":116,"range":{"start_line":116,"start_character":0,"end_line":116,"end_character":63},"updated":"2016-08-30 14:42:50.000000000","message":"Why was this changed? Can you add it to the commit message?","commit_id":"4f7f98e6b4b4469dc8594a95a7cd89dea9960bb1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f32d975e53c3d46641a07eee197a3d50aebaa18c","unresolved":false,"context_lines":[{"line_number":145,"context_line":"            self._run_build_test(flavor_id, filter_mock)"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.LibvirtDriver._create_image\u0027)"},{"line_number":148,"context_line":"    def test_create_server_with_numa_topology_and_pinning(self, img_mock):"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        host_info \u003d NumaHostInfo(cpu_nodes\u003d1, cpu_sockets\u003d1, cpu_cores\u003d5,"},{"line_number":151,"context_line":"                                 cpu_threads\u003d2, kB_mem\u003d15740000)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_a9758532","line":148,"range":{"start_line":148,"start_character":8,"end_line":148,"end_character":57},"updated":"2016-08-30 14:42:50.000000000","message":"Also, could this just be renamed to\n\n    test_create_server_with_pinning\n\nUnless you really want to test the NUMA stuff, but that is of little value as per below","commit_id":"4f7f98e6b4b4469dc8594a95a7cd89dea9960bb1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"90e044971d81f95e6e9fa6efee8cc38842b55382","unresolved":false,"context_lines":[{"line_number":145,"context_line":"            self._run_build_test(flavor_id, filter_mock)"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.LibvirtDriver._create_image\u0027)"},{"line_number":148,"context_line":"    def test_create_server_with_numa_topology_and_pinning(self, img_mock):"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        host_info \u003d NumaHostInfo(cpu_nodes\u003d1, cpu_sockets\u003d1, cpu_cores\u003d5,"},{"line_number":151,"context_line":"                                 cpu_threads\u003d2, kB_mem\u003d15740000)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_0453b939","line":148,"range":{"start_line":148,"start_character":0,"end_line":148,"end_character":74},"updated":"2016-08-30 14:25:27.000000000","message":"Any plans to extend this to test negative cases?","commit_id":"4f7f98e6b4b4469dc8594a95a7cd89dea9960bb1"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"93e8e2ba942a5439823ed2c309b8e40fdcc8d3f8","unresolved":false,"context_lines":[{"line_number":145,"context_line":"            self._run_build_test(flavor_id, filter_mock)"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.LibvirtDriver._create_image\u0027)"},{"line_number":148,"context_line":"    def test_create_server_with_numa_topology_and_pinning(self, img_mock):"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        host_info \u003d NumaHostInfo(cpu_nodes\u003d1, cpu_sockets\u003d1, cpu_cores\u003d5,"},{"line_number":151,"context_line":"                                 cpu_threads\u003d2, kB_mem\u003d15740000)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_c1dbdc7a","line":148,"range":{"start_line":148,"start_character":0,"end_line":148,"end_character":74},"in_reply_to":"fa7ab95a_0453b939","updated":"2016-09-01 17:36:58.000000000","message":"Yea, but not sure what exactly yet. I\u0027ll add it later as a separate patch.","commit_id":"4f7f98e6b4b4469dc8594a95a7cd89dea9960bb1"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"93e8e2ba942a5439823ed2c309b8e40fdcc8d3f8","unresolved":false,"context_lines":[{"line_number":145,"context_line":"            self._run_build_test(flavor_id, filter_mock)"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.LibvirtDriver._create_image\u0027)"},{"line_number":148,"context_line":"    def test_create_server_with_numa_topology_and_pinning(self, img_mock):"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        host_info \u003d NumaHostInfo(cpu_nodes\u003d1, cpu_sockets\u003d1, cpu_cores\u003d5,"},{"line_number":151,"context_line":"                                 cpu_threads\u003d2, kB_mem\u003d15740000)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_01b4e432","line":148,"range":{"start_line":148,"start_character":8,"end_line":148,"end_character":57},"in_reply_to":"fa7ab95a_a9758532","updated":"2016-09-01 17:36:58.000000000","message":"Done","commit_id":"4f7f98e6b4b4469dc8594a95a7cd89dea9960bb1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"90e044971d81f95e6e9fa6efee8cc38842b55382","unresolved":false,"context_lines":[{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        host_info \u003d NumaHostInfo(cpu_nodes\u003d1, cpu_sockets\u003d1, cpu_cores\u003d5,"},{"line_number":151,"context_line":"                                 cpu_threads\u003d2, kB_mem\u003d15740000)"},{"line_number":152,"context_line":"        fake_connection \u003d fakelibvirt.Connection(\u0027qemu:///system\u0027,"},{"line_number":153,"context_line":"                                                 version\u003d1002007,"},{"line_number":154,"context_line":"                                                 hv_version\u003d2001000,"},{"line_number":155,"context_line":"                                                 host_info\u003dhost_info)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        # Create a flavor"},{"line_number":158,"context_line":"        extra_spec \u003d {"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_e975d031","line":155,"range":{"start_line":152,"start_character":0,"end_line":155,"end_character":69},"updated":"2016-08-30 14:25:27.000000000","message":"Can you drag this out into its own function? These four lines are duplicated above","commit_id":"4f7f98e6b4b4469dc8594a95a7cd89dea9960bb1"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"93e8e2ba942a5439823ed2c309b8e40fdcc8d3f8","unresolved":false,"context_lines":[{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        host_info \u003d NumaHostInfo(cpu_nodes\u003d1, cpu_sockets\u003d1, cpu_cores\u003d5,"},{"line_number":151,"context_line":"                                 cpu_threads\u003d2, kB_mem\u003d15740000)"},{"line_number":152,"context_line":"        fake_connection \u003d fakelibvirt.Connection(\u0027qemu:///system\u0027,"},{"line_number":153,"context_line":"                                                 version\u003d1002007,"},{"line_number":154,"context_line":"                                                 hv_version\u003d2001000,"},{"line_number":155,"context_line":"                                                 host_info\u003dhost_info)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        # Create a flavor"},{"line_number":158,"context_line":"        extra_spec \u003d {"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_e1e4603d","line":155,"range":{"start_line":152,"start_character":0,"end_line":155,"end_character":69},"in_reply_to":"fa7ab95a_e975d031","updated":"2016-09-01 17:36:58.000000000","message":"Done","commit_id":"4f7f98e6b4b4469dc8594a95a7cd89dea9960bb1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"90e044971d81f95e6e9fa6efee8cc38842b55382","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        # Create a flavor"},{"line_number":158,"context_line":"        extra_spec \u003d {"},{"line_number":159,"context_line":"            \u0027hw:numa_nodes\u0027: \u00271\u0027,"},{"line_number":160,"context_line":"            \u0027hw:cpu_policy\u0027: \u0027dedicated\u0027,"},{"line_number":161,"context_line":"            \u0027hw:cpu_thread_policy\u0027: \u0027prefer\u0027,"},{"line_number":162,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_e99eb061","line":159,"range":{"start_line":159,"start_character":0,"end_line":159,"end_character":33},"updated":"2016-08-30 14:25:27.000000000","message":"This isn\u0027t necessary as it\u0027s implicit. Can you drop it to keep the point clear?","commit_id":"4f7f98e6b4b4469dc8594a95a7cd89dea9960bb1"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"93e8e2ba942a5439823ed2c309b8e40fdcc8d3f8","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        # Create a flavor"},{"line_number":158,"context_line":"        extra_spec \u003d {"},{"line_number":159,"context_line":"            \u0027hw:numa_nodes\u0027: \u00271\u0027,"},{"line_number":160,"context_line":"            \u0027hw:cpu_policy\u0027: \u0027dedicated\u0027,"},{"line_number":161,"context_line":"            \u0027hw:cpu_thread_policy\u0027: \u0027prefer\u0027,"},{"line_number":162,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_01e2242f","line":159,"range":{"start_line":159,"start_character":0,"end_line":159,"end_character":33},"in_reply_to":"fa7ab95a_e99eb061","updated":"2016-09-01 17:36:58.000000000","message":"Done","commit_id":"4f7f98e6b4b4469dc8594a95a7cd89dea9960bb1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"90e044971d81f95e6e9fa6efee8cc38842b55382","unresolved":false,"context_lines":[{"line_number":171,"context_line":"                       side_effect\u003dhost_pass_mock)) as (conn_mock,"},{"line_number":172,"context_line":"                                                       filter_mock):"},{"line_number":173,"context_line":"            self._run_build_test(flavor_id, filter_mock)"},{"line_number":174,"context_line":"            self._run_build_test(flavor_id, filter_mock)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.LibvirtDriver._create_image\u0027)"},{"line_number":177,"context_line":"    def test_create_server_with_numa_fails(self, img_mock):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_24bfdd61","line":174,"updated":"2016-08-30 14:25:27.000000000","message":"You\u0027re validating that the filter is called, but not that the NUMA topology is actually created. Could you add some validation of the underlying libvirt XML, please?","commit_id":"4f7f98e6b4b4469dc8594a95a7cd89dea9960bb1"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"93e8e2ba942a5439823ed2c309b8e40fdcc8d3f8","unresolved":false,"context_lines":[{"line_number":171,"context_line":"                       side_effect\u003dhost_pass_mock)) as (conn_mock,"},{"line_number":172,"context_line":"                                                       filter_mock):"},{"line_number":173,"context_line":"            self._run_build_test(flavor_id, filter_mock)"},{"line_number":174,"context_line":"            self._run_build_test(flavor_id, filter_mock)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.LibvirtDriver._create_image\u0027)"},{"line_number":177,"context_line":"    def test_create_server_with_numa_fails(self, img_mock):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_61c77098","line":174,"in_reply_to":"fa7ab95a_24bfdd61","updated":"2016-09-01 17:36:58.000000000","message":"Done","commit_id":"4f7f98e6b4b4469dc8594a95a7cd89dea9960bb1"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ca3cc59b67c5a790b10322f6ce8ea873479b3a83","unresolved":false,"context_lines":[{"line_number":170,"context_line":"            mock.patch(\u0027nova.virt.libvirt.host.Host.get_connection\u0027,"},{"line_number":171,"context_line":"                       return_value\u003dfake_connection),"},{"line_number":172,"context_line":"            mock.patch(\u0027nova.scheduler.filters\u0027"},{"line_number":173,"context_line":"                       \u0027.numa_topology_filter.NUMATopologyFilter.host_passes\u0027,"},{"line_number":174,"context_line":"                       side_effect\u003dhost_pass_mock)) as (conn_mock,"},{"line_number":175,"context_line":"                                                       filter_mock):"},{"line_number":176,"context_line":"            server \u003d self._run_build_test(flavor_id, filter_mock)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_2cbe07ff","line":173,"updated":"2016-10-14 15:01:02.000000000","message":"Hmm, seems odd to mock out the filters, don\u0027t we want to be testing those here?\n\nI see the other tests already mock them out, I am missing context on why we do that I guess. Makes me feel like I don\u0027t fully understand this patch (which is probably true).","commit_id":"c2ceb61ee2e161bf9d17e30650886e8136ec8b4a"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"08e37fa802de0e3f6e99d50cd822c9b2a3e67adf","unresolved":false,"context_lines":[{"line_number":170,"context_line":"            mock.patch(\u0027nova.virt.libvirt.host.Host.get_connection\u0027,"},{"line_number":171,"context_line":"                       return_value\u003dfake_connection),"},{"line_number":172,"context_line":"            mock.patch(\u0027nova.scheduler.filters\u0027"},{"line_number":173,"context_line":"                       \u0027.numa_topology_filter.NUMATopologyFilter.host_passes\u0027,"},{"line_number":174,"context_line":"                       side_effect\u003dhost_pass_mock)) as (conn_mock,"},{"line_number":175,"context_line":"                                                       filter_mock):"},{"line_number":176,"context_line":"            server \u003d self._run_build_test(flavor_id, filter_mock)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5da102_15b23f94","line":173,"in_reply_to":"fa6399be_2cbe07ff","updated":"2016-11-02 13:26:35.000000000","message":"It doesn\u0027t mock the filter out here, but wraps the host_passes method on the filter (so it will execute and still give us a way to use a mock object methods [1], line 133 ) and makes sure that it has been actually called (line 115)\n\n[1] http://www.voidspace.org.uk/python/mock/mock.html","commit_id":"c2ceb61ee2e161bf9d17e30650886e8136ec8b4a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1dc6c534ce06be100e70b3b49cb990ce528ebf89","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        with test.nested("},{"line_number":171,"context_line":"            mock.patch(\u0027nova.virt.libvirt.host.Host.get_connection\u0027,"},{"line_number":172,"context_line":"                       return_value\u003dfake_connection),"},{"line_number":173,"context_line":"            mock.patch(\u0027nova.scheduler.filters\u0027"},{"line_number":174,"context_line":"                       \u0027.numa_topology_filter.NUMATopologyFilter.host_passes\u0027,"},{"line_number":175,"context_line":"                       side_effect\u003dhost_pass_mock)) as (conn_mock,"},{"line_number":176,"context_line":"                                                       filter_mock):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a74a57a_7e1baa1b","line":173,"updated":"2016-11-24 15:55:34.000000000","message":"Nit: I would love to see us do a version that is able to also test the filter working as we would want.","commit_id":"dde40c85715b099438a88a4f499755e08d6ae665"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1dc6c534ce06be100e70b3b49cb990ce528ebf89","unresolved":false,"context_lines":[{"line_number":178,"context_line":"            ctx \u003d nova_context.get_admin_context()"},{"line_number":179,"context_line":"            inst \u003d objects.Instance.get_by_uuid(ctx, server[\u0027id\u0027])"},{"line_number":180,"context_line":"            self.assertEqual(1, len(inst.numa_topology.cells))"},{"line_number":181,"context_line":"            self.assertEqual(5, inst.numa_topology.cells[0].cpu_topology.cores)"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    def test_create_server_with_numa_fails(self):"},{"line_number":184,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5a74a57a_deb91ecd","line":181,"updated":"2016-11-24 15:55:34.000000000","message":"While this shows things completed, feels like we can do more checking to see if the system is in the expected state we want. But this is a step forward.","commit_id":"dde40c85715b099438a88a4f499755e08d6ae665"}]}
