)]}'
{"nova/tests/functional/libvirt/test_pci_sriov_servers.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e56bdc2b0bec26c3b2f3cdd29f8896a67145c177","unresolved":false,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.LibvirtDriver._create_image\u0027)"},{"line_number":290,"context_line":"    def test_create_server_with_pci_dev_and_numa_fails(self, img_mock):"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        host_info \u003d NumaHostInfo(cpu_nodes\u003d2, cpu_sockets\u003d1, cpu_cores\u003d2,"},{"line_number":293,"context_line":"                                 cpu_threads\u003d2, kB_mem\u003d15740000)"},{"line_number":294,"context_line":"        pci_info \u003d fakelibvirt.HostPciSRIOVDevicesInfo()"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_fb3da8c4","line":291,"updated":"2016-08-30 10:35:04.000000000","message":"I guess what you\u0027re trying to do here is to fill up the node with the PCI device attached, so that you can prove the second \"Caution\" admonition in the docs:\n\n    http://docs.openstack.org/admin-guide/compute-cpu-topologies.html#customizing-instance-numa-placement-policies\n\nIf so, a doctring would be mighty helpful. I know we don\u0027t use docstrings in tests that much, but they help IMO.","commit_id":"8cd1ff417d89d3c71aa8aec95d7c7e17adc1b0ff"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"d1c9c9ff54712c24f532b4939d71b4d57023dc1b","unresolved":false,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.LibvirtDriver._create_image\u0027)"},{"line_number":290,"context_line":"    def test_create_server_with_pci_dev_and_numa_fails(self, img_mock):"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        host_info \u003d NumaHostInfo(cpu_nodes\u003d2, cpu_sockets\u003d1, cpu_cores\u003d2,"},{"line_number":293,"context_line":"                                 cpu_threads\u003d2, kB_mem\u003d15740000)"},{"line_number":294,"context_line":"        pci_info \u003d fakelibvirt.HostPciSRIOVDevicesInfo()"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_c3cc5237","line":291,"in_reply_to":"fa7ab95a_fb3da8c4","updated":"2016-08-30 19:20:30.000000000","message":"Good point.","commit_id":"8cd1ff417d89d3c71aa8aec95d7c7e17adc1b0ff"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e56bdc2b0bec26c3b2f3cdd29f8896a67145c177","unresolved":false,"context_lines":[{"line_number":292,"context_line":"        host_info \u003d NumaHostInfo(cpu_nodes\u003d2, cpu_sockets\u003d1, cpu_cores\u003d2,"},{"line_number":293,"context_line":"                                 cpu_threads\u003d2, kB_mem\u003d15740000)"},{"line_number":294,"context_line":"        pci_info \u003d fakelibvirt.HostPciSRIOVDevicesInfo()"},{"line_number":295,"context_line":"        pci_info.create_pci_devices(num_pfs\u003d1, numa_node\u003d1)"},{"line_number":296,"context_line":"        fake_connection \u003d fakelibvirt.Connection(\u0027qemu:///system\u0027,"},{"line_number":297,"context_line":"                                                 version\u003d1002007,"},{"line_number":298,"context_line":"                                                 hv_version\u003d2001000,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_3bb9d02e","line":295,"range":{"start_line":295,"start_character":57,"end_line":295,"end_character":58},"updated":"2016-08-30 10:35:04.000000000","message":"Given my below comments, by setting this to 0 and booting the non-SRIOV VM first, you should \"fill up\" node 0, causing the SRIOV VM to schedule to node 1 and fail. That\u0027s my reading of it anyway...","commit_id":"8cd1ff417d89d3c71aa8aec95d7c7e17adc1b0ff"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"d1c9c9ff54712c24f532b4939d71b4d57023dc1b","unresolved":false,"context_lines":[{"line_number":292,"context_line":"        host_info \u003d NumaHostInfo(cpu_nodes\u003d2, cpu_sockets\u003d1, cpu_cores\u003d2,"},{"line_number":293,"context_line":"                                 cpu_threads\u003d2, kB_mem\u003d15740000)"},{"line_number":294,"context_line":"        pci_info \u003d fakelibvirt.HostPciSRIOVDevicesInfo()"},{"line_number":295,"context_line":"        pci_info.create_pci_devices(num_pfs\u003d1, numa_node\u003d1)"},{"line_number":296,"context_line":"        fake_connection \u003d fakelibvirt.Connection(\u0027qemu:///system\u0027,"},{"line_number":297,"context_line":"                                                 version\u003d1002007,"},{"line_number":298,"context_line":"                                                 hv_version\u003d2001000,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_c309b296","line":295,"range":{"start_line":295,"start_character":57,"end_line":295,"end_character":58},"in_reply_to":"fa7ab95a_3bb9d02e","updated":"2016-08-30 19:20:30.000000000","message":"Done","commit_id":"8cd1ff417d89d3c71aa8aec95d7c7e17adc1b0ff"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e56bdc2b0bec26c3b2f3cdd29f8896a67145c177","unresolved":false,"context_lines":[{"line_number":293,"context_line":"                                 cpu_threads\u003d2, kB_mem\u003d15740000)"},{"line_number":294,"context_line":"        pci_info \u003d fakelibvirt.HostPciSRIOVDevicesInfo()"},{"line_number":295,"context_line":"        pci_info.create_pci_devices(num_pfs\u003d1, numa_node\u003d1)"},{"line_number":296,"context_line":"        fake_connection \u003d fakelibvirt.Connection(\u0027qemu:///system\u0027,"},{"line_number":297,"context_line":"                                                 version\u003d1002007,"},{"line_number":298,"context_line":"                                                 hv_version\u003d2001000,"},{"line_number":299,"context_line":"                                                 host_info\u003dhost_info,"},{"line_number":300,"context_line":"                                                 pci_info\u003dpci_info)"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"        # Create a flavor"},{"line_number":303,"context_line":"        extra_spec_vm \u003d {\"hw:numa_cpus.1\": \"4,5,6,7\","}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_db7e2469","line":300,"range":{"start_line":296,"start_character":0,"end_line":300,"end_character":67},"updated":"2016-08-30 10:35:04.000000000","message":"This looks like something that should be broken out into a function, seeing as the exact same four lines are in all tests in this file.","commit_id":"8cd1ff417d89d3c71aa8aec95d7c7e17adc1b0ff"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"d1c9c9ff54712c24f532b4939d71b4d57023dc1b","unresolved":false,"context_lines":[{"line_number":293,"context_line":"                                 cpu_threads\u003d2, kB_mem\u003d15740000)"},{"line_number":294,"context_line":"        pci_info \u003d fakelibvirt.HostPciSRIOVDevicesInfo()"},{"line_number":295,"context_line":"        pci_info.create_pci_devices(num_pfs\u003d1, numa_node\u003d1)"},{"line_number":296,"context_line":"        fake_connection \u003d fakelibvirt.Connection(\u0027qemu:///system\u0027,"},{"line_number":297,"context_line":"                                                 version\u003d1002007,"},{"line_number":298,"context_line":"                                                 hv_version\u003d2001000,"},{"line_number":299,"context_line":"                                                 host_info\u003dhost_info,"},{"line_number":300,"context_line":"                                                 pci_info\u003dpci_info)"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"        # Create a flavor"},{"line_number":303,"context_line":"        extra_spec_vm \u003d {\"hw:numa_cpus.1\": \"4,5,6,7\","}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_2357be58","line":300,"range":{"start_line":296,"start_character":0,"end_line":300,"end_character":67},"in_reply_to":"fa7ab95a_db7e2469","updated":"2016-08-30 19:20:30.000000000","message":"Doubt it\u0027s useful to break it up as this is practically defines the environment for the test.","commit_id":"8cd1ff417d89d3c71aa8aec95d7c7e17adc1b0ff"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e56bdc2b0bec26c3b2f3cdd29f8896a67145c177","unresolved":false,"context_lines":[{"line_number":300,"context_line":"                                                 pci_info\u003dpci_info)"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"        # Create a flavor"},{"line_number":303,"context_line":"        extra_spec_vm \u003d {\"hw:numa_cpus.1\": \"4,5,6,7\","},{"line_number":304,"context_line":"                         \"hw:numa_nodes\": \"1\"}"},{"line_number":305,"context_line":"        extra_spec \u003d {\"pci_passthrough:alias\": \"pfs:1\","},{"line_number":306,"context_line":"                      \u0027hw:numa_nodes\u0027: \u00270\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_a0692bfb","line":303,"range":{"start_line":303,"start_character":25,"end_line":303,"end_character":53},"updated":"2016-08-30 10:35:04.000000000","message":"This isn\u0027t being used because node 1 doesn\u0027t exist. You\u0027ve said that the guest only has one NUMA nodes (line below), and nodes are 0-indexed. If you have to include this then it should read:\n\n    \"hw:numa_cpus.0\": \"0,1,2,3\",\n\nOr you could drop it, since this is the default topology. Refer to the docs for more info:\n\n     http://docs.openstack.org/admin-guide/compute-cpu-topologies.html","commit_id":"8cd1ff417d89d3c71aa8aec95d7c7e17adc1b0ff"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"d1c9c9ff54712c24f532b4939d71b4d57023dc1b","unresolved":false,"context_lines":[{"line_number":300,"context_line":"                                                 pci_info\u003dpci_info)"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"        # Create a flavor"},{"line_number":303,"context_line":"        extra_spec_vm \u003d {\"hw:numa_cpus.1\": \"4,5,6,7\","},{"line_number":304,"context_line":"                         \"hw:numa_nodes\": \"1\"}"},{"line_number":305,"context_line":"        extra_spec \u003d {\"pci_passthrough:alias\": \"pfs:1\","},{"line_number":306,"context_line":"                      \u0027hw:numa_nodes\u0027: \u00270\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_63daa618","line":303,"range":{"start_line":303,"start_character":25,"end_line":303,"end_character":53},"in_reply_to":"fa7ab95a_a0692bfb","updated":"2016-08-30 19:20:30.000000000","message":"Yes, you\u0027re right, thanks.","commit_id":"8cd1ff417d89d3c71aa8aec95d7c7e17adc1b0ff"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e56bdc2b0bec26c3b2f3cdd29f8896a67145c177","unresolved":false,"context_lines":[{"line_number":300,"context_line":"                                                 pci_info\u003dpci_info)"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"        # Create a flavor"},{"line_number":303,"context_line":"        extra_spec_vm \u003d {\"hw:numa_cpus.1\": \"4,5,6,7\","},{"line_number":304,"context_line":"                         \"hw:numa_nodes\": \"1\"}"},{"line_number":305,"context_line":"        extra_spec \u003d {\"pci_passthrough:alias\": \"pfs:1\","},{"line_number":306,"context_line":"                      \u0027hw:numa_nodes\u0027: \u00270\u0027,"},{"line_number":307,"context_line":"                      \u0027hw:cpu_policy\u0027: \u0027dedicated\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_9b649cb9","line":304,"range":{"start_line":303,"start_character":25,"end_line":304,"end_character":45},"updated":"2016-08-30 10:35:04.000000000","message":"Don\u0027t you need to specify \u0027hw:cpu_policy\u0027 to \u0027dedicated\u0027 for any of the \u0027hw:numa_*\u0027 options to have effect?","commit_id":"8cd1ff417d89d3c71aa8aec95d7c7e17adc1b0ff"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e56bdc2b0bec26c3b2f3cdd29f8896a67145c177","unresolved":false,"context_lines":[{"line_number":303,"context_line":"        extra_spec_vm \u003d {\"hw:numa_cpus.1\": \"4,5,6,7\","},{"line_number":304,"context_line":"                         \"hw:numa_nodes\": \"1\"}"},{"line_number":305,"context_line":"        extra_spec \u003d {\"pci_passthrough:alias\": \"pfs:1\","},{"line_number":306,"context_line":"                      \u0027hw:numa_nodes\u0027: \u00270\u0027,"},{"line_number":307,"context_line":"                      \u0027hw:cpu_policy\u0027: \u0027dedicated\u0027,"},{"line_number":308,"context_line":"                      \u0027hw:cpu_thread_policy\u0027: \u0027prefer\u0027, }"},{"line_number":309,"context_line":"        vm_flavor_id \u003d self._create_flavor(extra_spec\u003dextra_spec_vm)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_40c4df3e","line":306,"range":{"start_line":306,"start_character":22,"end_line":306,"end_character":43},"updated":"2016-08-30 10:35:04.000000000","message":"\u0027hw:numa_nodes\u0027 is used to specify how many guest NUMA nodes there should be - not what host node to run things on. Again, refer to the docs for more info:\n\n    http://docs.openstack.org/admin-guide/compute-cpu-topologies.html\n\nAs such, setting this to 0 is not a valid option. I would guess that this is the real reason for your failure below.","commit_id":"8cd1ff417d89d3c71aa8aec95d7c7e17adc1b0ff"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e56bdc2b0bec26c3b2f3cdd29f8896a67145c177","unresolved":false,"context_lines":[{"line_number":305,"context_line":"        extra_spec \u003d {\"pci_passthrough:alias\": \"pfs:1\","},{"line_number":306,"context_line":"                      \u0027hw:numa_nodes\u0027: \u00270\u0027,"},{"line_number":307,"context_line":"                      \u0027hw:cpu_policy\u0027: \u0027dedicated\u0027,"},{"line_number":308,"context_line":"                      \u0027hw:cpu_thread_policy\u0027: \u0027prefer\u0027, }"},{"line_number":309,"context_line":"        vm_flavor_id \u003d self._create_flavor(extra_spec\u003dextra_spec_vm)"},{"line_number":310,"context_line":"        flavor_id \u003d self._create_flavor(extra_spec\u003dextra_spec)"},{"line_number":311,"context_line":"        host_pass_mock \u003d self._get_pci_passthrough_filter_spy()"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_205d1b47","line":308,"range":{"start_line":308,"start_character":54,"end_line":308,"end_character":56},"updated":"2016-08-30 10:35:04.000000000","message":"nit: drop this","commit_id":"8cd1ff417d89d3c71aa8aec95d7c7e17adc1b0ff"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"d1c9c9ff54712c24f532b4939d71b4d57023dc1b","unresolved":false,"context_lines":[{"line_number":305,"context_line":"        extra_spec \u003d {\"pci_passthrough:alias\": \"pfs:1\","},{"line_number":306,"context_line":"                      \u0027hw:numa_nodes\u0027: \u00270\u0027,"},{"line_number":307,"context_line":"                      \u0027hw:cpu_policy\u0027: \u0027dedicated\u0027,"},{"line_number":308,"context_line":"                      \u0027hw:cpu_thread_policy\u0027: \u0027prefer\u0027, }"},{"line_number":309,"context_line":"        vm_flavor_id \u003d self._create_flavor(extra_spec\u003dextra_spec_vm)"},{"line_number":310,"context_line":"        flavor_id \u003d self._create_flavor(extra_spec\u003dextra_spec)"},{"line_number":311,"context_line":"        host_pass_mock \u003d self._get_pci_passthrough_filter_spy()"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_639e2664","line":308,"range":{"start_line":308,"start_character":54,"end_line":308,"end_character":56},"in_reply_to":"fa7ab95a_205d1b47","updated":"2016-08-30 19:20:30.000000000","message":"Done","commit_id":"8cd1ff417d89d3c71aa8aec95d7c7e17adc1b0ff"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e56bdc2b0bec26c3b2f3cdd29f8896a67145c177","unresolved":false,"context_lines":[{"line_number":307,"context_line":"                      \u0027hw:cpu_policy\u0027: \u0027dedicated\u0027,"},{"line_number":308,"context_line":"                      \u0027hw:cpu_thread_policy\u0027: \u0027prefer\u0027, }"},{"line_number":309,"context_line":"        vm_flavor_id \u003d self._create_flavor(extra_spec\u003dextra_spec_vm)"},{"line_number":310,"context_line":"        flavor_id \u003d self._create_flavor(extra_spec\u003dextra_spec)"},{"line_number":311,"context_line":"        host_pass_mock \u003d self._get_pci_passthrough_filter_spy()"},{"line_number":312,"context_line":"        with test.nested("},{"line_number":313,"context_line":"            mock.patch(\u0027nova.virt.libvirt.host.Host.get_connection\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_c0a46f09","line":310,"range":{"start_line":310,"start_character":8,"end_line":310,"end_character":17},"updated":"2016-08-30 10:35:04.000000000","message":"If you\u0027re going with the pf/vm prefixes, can you call this \u0027pf_flavor_id\u0027 instead?","commit_id":"8cd1ff417d89d3c71aa8aec95d7c7e17adc1b0ff"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"d1c9c9ff54712c24f532b4939d71b4d57023dc1b","unresolved":false,"context_lines":[{"line_number":307,"context_line":"                      \u0027hw:cpu_policy\u0027: \u0027dedicated\u0027,"},{"line_number":308,"context_line":"                      \u0027hw:cpu_thread_policy\u0027: \u0027prefer\u0027, }"},{"line_number":309,"context_line":"        vm_flavor_id \u003d self._create_flavor(extra_spec\u003dextra_spec_vm)"},{"line_number":310,"context_line":"        flavor_id \u003d self._create_flavor(extra_spec\u003dextra_spec)"},{"line_number":311,"context_line":"        host_pass_mock \u003d self._get_pci_passthrough_filter_spy()"},{"line_number":312,"context_line":"        with test.nested("},{"line_number":313,"context_line":"            mock.patch(\u0027nova.virt.libvirt.host.Host.get_connection\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_23989e77","line":310,"range":{"start_line":310,"start_character":8,"end_line":310,"end_character":17},"in_reply_to":"fa7ab95a_c0a46f09","updated":"2016-08-30 19:20:30.000000000","message":"Done","commit_id":"8cd1ff417d89d3c71aa8aec95d7c7e17adc1b0ff"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e56bdc2b0bec26c3b2f3cdd29f8896a67145c177","unresolved":false,"context_lines":[{"line_number":316,"context_line":"                       \u0027.pci_passthrough_filter.PciPassthroughFilter\u0027"},{"line_number":317,"context_line":"                       \u0027.host_passes\u0027,"},{"line_number":318,"context_line":"                       side_effect\u003dhost_pass_mock)) as (conn_mock,"},{"line_number":319,"context_line":"                                                       filter_mock):"},{"line_number":320,"context_line":"            server \u003d self._run_build_test(vm_flavor_id, filter_mock)"},{"line_number":321,"context_line":"            pf_server \u003d self._run_build_test(flavor_id, filter_mock,"},{"line_number":322,"context_line":"                                             end_status\u003d\u0027ERROR\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_bbaa4083","line":319,"updated":"2016-08-30 10:35:04.000000000","message":"supernit: missing a leading space here","commit_id":"8cd1ff417d89d3c71aa8aec95d7c7e17adc1b0ff"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"d1c9c9ff54712c24f532b4939d71b4d57023dc1b","unresolved":false,"context_lines":[{"line_number":316,"context_line":"                       \u0027.pci_passthrough_filter.PciPassthroughFilter\u0027"},{"line_number":317,"context_line":"                       \u0027.host_passes\u0027,"},{"line_number":318,"context_line":"                       side_effect\u003dhost_pass_mock)) as (conn_mock,"},{"line_number":319,"context_line":"                                                       filter_mock):"},{"line_number":320,"context_line":"            server \u003d self._run_build_test(vm_flavor_id, filter_mock)"},{"line_number":321,"context_line":"            pf_server \u003d self._run_build_test(flavor_id, filter_mock,"},{"line_number":322,"context_line":"                                             end_status\u003d\u0027ERROR\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_a3a3ceb0","line":319,"in_reply_to":"fa7ab95a_bbaa4083","updated":"2016-08-30 19:20:30.000000000","message":"Done","commit_id":"8cd1ff417d89d3c71aa8aec95d7c7e17adc1b0ff"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e56bdc2b0bec26c3b2f3cdd29f8896a67145c177","unresolved":false,"context_lines":[{"line_number":317,"context_line":"                       \u0027.host_passes\u0027,"},{"line_number":318,"context_line":"                       side_effect\u003dhost_pass_mock)) as (conn_mock,"},{"line_number":319,"context_line":"                                                       filter_mock):"},{"line_number":320,"context_line":"            server \u003d self._run_build_test(vm_flavor_id, filter_mock)"},{"line_number":321,"context_line":"            pf_server \u003d self._run_build_test(flavor_id, filter_mock,"},{"line_number":322,"context_line":"                                             end_status\u003d\u0027ERROR\u0027)"},{"line_number":323,"context_line":"        self._delete_server(server[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_dbdf0438","line":320,"range":{"start_line":320,"start_character":12,"end_line":320,"end_character":18},"updated":"2016-08-30 10:35:04.000000000","message":"nit: can you call this \u0027vm_server\u0027?","commit_id":"8cd1ff417d89d3c71aa8aec95d7c7e17adc1b0ff"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"d1c9c9ff54712c24f532b4939d71b4d57023dc1b","unresolved":false,"context_lines":[{"line_number":317,"context_line":"                       \u0027.host_passes\u0027,"},{"line_number":318,"context_line":"                       side_effect\u003dhost_pass_mock)) as (conn_mock,"},{"line_number":319,"context_line":"                                                       filter_mock):"},{"line_number":320,"context_line":"            server \u003d self._run_build_test(vm_flavor_id, filter_mock)"},{"line_number":321,"context_line":"            pf_server \u003d self._run_build_test(flavor_id, filter_mock,"},{"line_number":322,"context_line":"                                             end_status\u003d\u0027ERROR\u0027)"},{"line_number":323,"context_line":"        self._delete_server(server[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_c3a612c0","line":320,"range":{"start_line":320,"start_character":12,"end_line":320,"end_character":18},"in_reply_to":"fa7ab95a_dbdf0438","updated":"2016-08-30 19:20:30.000000000","message":"Done","commit_id":"8cd1ff417d89d3c71aa8aec95d7c7e17adc1b0ff"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5a99c86896044067b8d9b0dc3e2e1c35c7b8d018","unresolved":false,"context_lines":[{"line_number":268,"context_line":"        extra_spec \u003d {\"pci_passthrough:alias\": \"%s:1\" % self.pfs_alias_name,"},{"line_number":269,"context_line":"                      \u0027hw:numa_nodes\u0027: \u00271\u0027,"},{"line_number":270,"context_line":"                      \u0027hw:cpu_policy\u0027: \u0027dedicated\u0027,"},{"line_number":271,"context_line":"                      \u0027hw:cpu_thread_policy\u0027: \u0027prefer\u0027}"},{"line_number":272,"context_line":"        flavor_id \u003d self._create_flavor(extra_spec\u003dextra_spec)"},{"line_number":273,"context_line":"        host_pass_mock \u003d self._get_pci_passthrough_filter_spy()"},{"line_number":274,"context_line":"        with test.nested("}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_df8de92b","line":271,"range":{"start_line":271,"start_character":22,"end_line":271,"end_character":54},"updated":"2016-08-31 09:20:33.000000000","message":"nit: You probably don\u0027t need to specify this, seeing as it\u0027s the default","commit_id":"ceb5fe086dbeccbaa37a7040f53e9d1c38b1a941"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5a99c86896044067b8d9b0dc3e2e1c35c7b8d018","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        # Create a flavor"},{"line_number":298,"context_line":"        extra_spec_vm \u003d {\u0027hw:cpu_policy\u0027: \u0027dedicated\u0027,"},{"line_number":299,"context_line":"                         \u0027hw:numa_node\u0027: \u00271\u0027}"},{"line_number":300,"context_line":"        extra_spec \u003d {\u0027pci_passthrough:alias\u0027: \u0027%s:1\u0027 % self.pfs_alias_name,"},{"line_number":301,"context_line":"                      \u0027hw:numa_nodes\u0027: \u00271\u0027,"},{"line_number":302,"context_line":"                      \u0027hw:cpu_policy\u0027: \u0027dedicated\u0027,"},{"line_number":303,"context_line":"                      \u0027hw:cpu_thread_policy\u0027: \u0027prefer\u0027}"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_ff070d7f","line":300,"range":{"start_line":300,"start_character":8,"end_line":300,"end_character":18},"updated":"2016-08-31 09:20:33.000000000","message":"nit: this could probably be renamed \u0027extra_spec_pf\u0027, or even \u0027pf_extra_spec\u0027 like the \u0027flavor_id\u0027 variable below","commit_id":"ceb5fe086dbeccbaa37a7040f53e9d1c38b1a941"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4da89720eae0e48b1b275b137403baf9962c7c13","unresolved":false,"context_lines":[{"line_number":284,"context_line":"                       \u0027.host_passes\u0027,"},{"line_number":285,"context_line":"                       side_effect\u003dhost_pass_mock)) as (conn_mock,"},{"line_number":286,"context_line":"                                                       filter_mock):"},{"line_number":287,"context_line":"            pf_server \u003d self._run_build_test(flavor_id, filter_mock)"},{"line_number":288,"context_line":"        self._delete_server(pf_server[\u0027id\u0027])"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.LibvirtDriver._create_image\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_7963c4dc","line":287,"updated":"2016-11-24 16:09:50.000000000","message":"Nit: I would be tempted to create the server below, to show it succeeds when the other is the other way around.","commit_id":"61bcb831afa93585782f91538cadb54f60bdf816"}],"nova/tests/unit/virt/libvirt/fakelibvirt.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e56bdc2b0bec26c3b2f3cdd29f8896a67145c177","unresolved":false,"context_lines":[{"line_number":244,"context_line":"        :param pf_product_id\u003d1528: (int) Product ID of the Physical Functions"},{"line_number":245,"context_line":"        :param num_pfs: (int) The number of the Physical Functions"},{"line_number":246,"context_line":"        :param num_vfs: (int) The number of the Virtual Functions"},{"line_number":247,"context_line":"        :param group: (int) Initial group id"},{"line_number":248,"context_line":"        \"\"\""},{"line_number":249,"context_line":"        def _calc_numa_node(dev):"},{"line_number":250,"context_line":"            return dev % total_numa_nodes if numa_node is None else numa_node"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_9b8e5c2c","line":247,"updated":"2016-08-30 10:35:04.000000000","message":"Document the two new parameters","commit_id":"8cd1ff417d89d3c71aa8aec95d7c7e17adc1b0ff"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"d1c9c9ff54712c24f532b4939d71b4d57023dc1b","unresolved":false,"context_lines":[{"line_number":244,"context_line":"        :param pf_product_id\u003d1528: (int) Product ID of the Physical Functions"},{"line_number":245,"context_line":"        :param num_pfs: (int) The number of the Physical Functions"},{"line_number":246,"context_line":"        :param num_vfs: (int) The number of the Virtual Functions"},{"line_number":247,"context_line":"        :param group: (int) Initial group id"},{"line_number":248,"context_line":"        \"\"\""},{"line_number":249,"context_line":"        def _calc_numa_node(dev):"},{"line_number":250,"context_line":"            return dev % total_numa_nodes if numa_node is None else numa_node"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_c3c1b2e5","line":247,"in_reply_to":"fa7ab95a_9b8e5c2c","updated":"2016-08-30 19:20:30.000000000","message":"Done","commit_id":"8cd1ff417d89d3c71aa8aec95d7c7e17adc1b0ff"}]}
