)]}'
{"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":"32c45e694bda5ed69f2b9fe93eb3130c281e4572","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        self.flags(pci_passthrough_whitelist\u003dwhite_list)"},{"line_number":63,"context_line":"        pci_alias \u003d [\u0027{\"vendor_id\":\"8086\", \"product_id\":\"1528\", \"name\":\"pfs\",\u0027"},{"line_number":64,"context_line":"                     \u0027 \"device_type\":\"type-PF\"}\u0027,"},{"line_number":65,"context_line":"                   \u0027{\"vendor_id\":\"8086\", \"product_id\":\"1515\", \"name\":\"vfs\"}\u0027]"},{"line_number":66,"context_line":"        self.flags(pci_alias\u003dpci_alias)"},{"line_number":67,"context_line":"        super(SRIOVServersTest, self).setUp()"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_8670ae73","line":65,"range":{"start_line":65,"start_character":70,"end_line":65,"end_character":73},"updated":"2016-08-30 14:35:25.000000000","message":"Though Nova\u0027s unit tests don\u0027t do this very well, could you store this as a class variable or something? You can then reference that in the tests below. I ask because it took me a moment to figure out where \u0027vfs\u0027 came from, and it\u0027s basically a magic string as things stand.","commit_id":"3ed0e7d307b6c33d7b5d8d605aae28837746cd57"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"054a62f92ac286521af4bbb2044824e227f8ce12","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        self.flags(pci_passthrough_whitelist\u003dwhite_list)"},{"line_number":63,"context_line":"        pci_alias \u003d [\u0027{\"vendor_id\":\"8086\", \"product_id\":\"1528\", \"name\":\"pfs\",\u0027"},{"line_number":64,"context_line":"                     \u0027 \"device_type\":\"type-PF\"}\u0027,"},{"line_number":65,"context_line":"                   \u0027{\"vendor_id\":\"8086\", \"product_id\":\"1515\", \"name\":\"vfs\"}\u0027]"},{"line_number":66,"context_line":"        self.flags(pci_alias\u003dpci_alias)"},{"line_number":67,"context_line":"        super(SRIOVServersTest, self).setUp()"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_4b73ede7","line":65,"range":{"start_line":65,"start_character":70,"end_line":65,"end_character":73},"in_reply_to":"fa7ab95a_8670ae73","updated":"2016-08-31 01:37:35.000000000","message":"Done","commit_id":"3ed0e7d307b6c33d7b5d8d605aae28837746cd57"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"32c45e694bda5ed69f2b9fe93eb3130c281e4572","unresolved":false,"context_lines":[{"line_number":138,"context_line":"                                 cpu_threads\u003d2, kB_mem\u003d15740000)"},{"line_number":139,"context_line":"        pci_info \u003d fakelibvirt.HostPciSRIOVDevicesInfo()"},{"line_number":140,"context_line":"        pci_info.create_pci_devices()"},{"line_number":141,"context_line":"        fake_connection \u003d fakelibvirt.Connection(\u0027qemu:///system\u0027,"},{"line_number":142,"context_line":"                                                 version\u003d1002007,"},{"line_number":143,"context_line":"                                                 hv_version\u003d2001000,"},{"line_number":144,"context_line":"                                                 host_info\u003dhost_info,"},{"line_number":145,"context_line":"                                                 pci_info\u003dpci_info)"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        # Create a flavor"},{"line_number":148,"context_line":"        extra_spec \u003d {\"pci_passthrough:alias\": \"vfs:1\"}"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_86ad0eeb","line":145,"range":{"start_line":141,"start_character":0,"end_line":145,"end_character":67},"updated":"2016-08-30 14:35:25.000000000","message":"Can you break this out into its own function? It\u0027s duplicated in a few places below and uses some magic strings that might need to be updated in the future","commit_id":"3ed0e7d307b6c33d7b5d8d605aae28837746cd57"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"2179224f09bc4f09d87d822ea5d0a6a8f3e78b89","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import mock"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import fixtures"},{"line_number":19,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa6399be_2466b4ed","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":11},"updated":"2016-10-11 17:49:58.000000000","message":"This is a third-party import and should go with the others on L18 - L20","commit_id":"7d73a7d889e0479826e420867394a570de05317e"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"c1b4991047610dacdd9aaeb29a0fea60b951612c","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import mock"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import fixtures"},{"line_number":19,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa6399be_b96df8cd","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":11},"in_reply_to":"fa6399be_2466b4ed","updated":"2016-10-14 16:09:19.000000000","message":"Done","commit_id":"7d73a7d889e0479826e420867394a570de05317e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"2179224f09bc4f09d87d822ea5d0a6a8f3e78b89","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                      \u0027{\"vendor_id\":\"8086\",\"product_id\":\"1515\"}\u0027]"},{"line_number":64,"context_line":"        self.flags(pci_passthrough_whitelist\u003dwhite_list)"},{"line_number":65,"context_line":"        pci_alias \u003d [\u0027{\"vendor_id\":\"8086\", \"product_id\":\"1528\", \"name\":\"%s\",\u0027"},{"line_number":66,"context_line":"                     \u0027 \"device_type\":\"type-PF\"}\u0027 % self.pfs_alias_name,"},{"line_number":67,"context_line":"                     \u0027{\"vendor_id\":\"8086\", \"product_id\":\"1515\", \"name\":\"%s\"}\u0027 %"},{"line_number":68,"context_line":"                     self.vfs_alias_name]"},{"line_number":69,"context_line":"        self.flags(pci_alias\u003dpci_alias)"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa6399be_04fa90bd","line":66,"range":{"start_line":66,"start_character":38,"end_line":66,"end_character":45},"updated":"2016-10-11 17:49:58.000000000","message":"I noticed these are defined as constants in nova.objects.fields.PciDeviceType. It might be nice to use it, but I see there are some places in tests where the constants aren\u0027t used.","commit_id":"7d73a7d889e0479826e420867394a570de05317e"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"c1b4991047610dacdd9aaeb29a0fea60b951612c","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                      \u0027{\"vendor_id\":\"8086\",\"product_id\":\"1515\"}\u0027]"},{"line_number":64,"context_line":"        self.flags(pci_passthrough_whitelist\u003dwhite_list)"},{"line_number":65,"context_line":"        pci_alias \u003d [\u0027{\"vendor_id\":\"8086\", \"product_id\":\"1528\", \"name\":\"%s\",\u0027"},{"line_number":66,"context_line":"                     \u0027 \"device_type\":\"type-PF\"}\u0027 % self.pfs_alias_name,"},{"line_number":67,"context_line":"                     \u0027{\"vendor_id\":\"8086\", \"product_id\":\"1515\", \"name\":\"%s\"}\u0027 %"},{"line_number":68,"context_line":"                     self.vfs_alias_name]"},{"line_number":69,"context_line":"        self.flags(pci_alias\u003dpci_alias)"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa6399be_b885f9cf","line":66,"range":{"start_line":66,"start_character":38,"end_line":66,"end_character":45},"in_reply_to":"fa6399be_04fa90bd","updated":"2016-10-14 16:09:19.000000000","message":"Done","commit_id":"7d73a7d889e0479826e420867394a570de05317e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"2179224f09bc4f09d87d822ea5d0a6a8f3e78b89","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        self.flags(pci_passthrough_whitelist\u003dwhite_list)"},{"line_number":65,"context_line":"        pci_alias \u003d [\u0027{\"vendor_id\":\"8086\", \"product_id\":\"1528\", \"name\":\"%s\",\u0027"},{"line_number":66,"context_line":"                     \u0027 \"device_type\":\"type-PF\"}\u0027 % self.pfs_alias_name,"},{"line_number":67,"context_line":"                     \u0027{\"vendor_id\":\"8086\", \"product_id\":\"1515\", \"name\":\"%s\"}\u0027 %"},{"line_number":68,"context_line":"                     self.vfs_alias_name]"},{"line_number":69,"context_line":"        self.flags(pci_alias\u003dpci_alias)"},{"line_number":70,"context_line":"        super(SRIOVServersTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa6399be_441ba81b","line":67,"updated":"2016-10-11 17:49:58.000000000","message":"Should this one have \u0027device_type\u0027: \u0027type-VF\u0027?","commit_id":"7d73a7d889e0479826e420867394a570de05317e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4a3ec8bcd23700f38814fe6887d10da3eaced67d","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        self.flags(pci_passthrough_whitelist\u003dwhite_list)"},{"line_number":65,"context_line":"        pci_alias \u003d [\u0027{\"vendor_id\":\"8086\", \"product_id\":\"1528\", \"name\":\"%s\",\u0027"},{"line_number":66,"context_line":"                     \u0027 \"device_type\":\"type-PF\"}\u0027 % self.pfs_alias_name,"},{"line_number":67,"context_line":"                     \u0027{\"vendor_id\":\"8086\", \"product_id\":\"1515\", \"name\":\"%s\"}\u0027 %"},{"line_number":68,"context_line":"                     self.vfs_alias_name]"},{"line_number":69,"context_line":"        self.flags(pci_alias\u003dpci_alias)"},{"line_number":70,"context_line":"        super(SRIOVServersTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa6399be_38084c91","line":67,"in_reply_to":"fa6399be_41144b43","updated":"2016-10-13 09:01:19.000000000","message":"A comment wouldn\u0027t go astray here, I imagine?","commit_id":"7d73a7d889e0479826e420867394a570de05317e"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"c1b4991047610dacdd9aaeb29a0fea60b951612c","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        self.flags(pci_passthrough_whitelist\u003dwhite_list)"},{"line_number":65,"context_line":"        pci_alias \u003d [\u0027{\"vendor_id\":\"8086\", \"product_id\":\"1528\", \"name\":\"%s\",\u0027"},{"line_number":66,"context_line":"                     \u0027 \"device_type\":\"type-PF\"}\u0027 % self.pfs_alias_name,"},{"line_number":67,"context_line":"                     \u0027{\"vendor_id\":\"8086\", \"product_id\":\"1515\", \"name\":\"%s\"}\u0027 %"},{"line_number":68,"context_line":"                     self.vfs_alias_name]"},{"line_number":69,"context_line":"        self.flags(pci_alias\u003dpci_alias)"},{"line_number":70,"context_line":"        super(SRIOVServersTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa6399be_399f2860","line":67,"in_reply_to":"fa6399be_41144b43","updated":"2016-10-14 16:09:19.000000000","message":"Yes, actually, PFs are special because we will not add these into the pools if it wasn\u0027t specifically requested.\nThis was done, because some devices will have the same vendor and product ids.\nI\u0027ll add a comment, although the code already has a comment about it.","commit_id":"7d73a7d889e0479826e420867394a570de05317e"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"364ed09ff930102300ae74244bde95e7f9108e1b","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        self.flags(pci_passthrough_whitelist\u003dwhite_list)"},{"line_number":65,"context_line":"        pci_alias \u003d [\u0027{\"vendor_id\":\"8086\", \"product_id\":\"1528\", \"name\":\"%s\",\u0027"},{"line_number":66,"context_line":"                     \u0027 \"device_type\":\"type-PF\"}\u0027 % self.pfs_alias_name,"},{"line_number":67,"context_line":"                     \u0027{\"vendor_id\":\"8086\", \"product_id\":\"1515\", \"name\":\"%s\"}\u0027 %"},{"line_number":68,"context_line":"                     self.vfs_alias_name]"},{"line_number":69,"context_line":"        self.flags(pci_alias\u003dpci_alias)"},{"line_number":70,"context_line":"        super(SRIOVServersTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa6399be_41144b43","line":67,"in_reply_to":"fa6399be_441ba81b","updated":"2016-10-12 15:28:05.000000000","message":"I think what we want here is to verify the behavior when the device type is not specified (which is a valid case) so we avoid any regressions or changes in that behavior during the time.","commit_id":"7d73a7d889e0479826e420867394a570de05317e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"bdd8743bac3f3b96c0dd7608ac15b43f0a2fe8f3","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    def _setup_scheduler_service(self):"},{"line_number":96,"context_line":"        self.flags(compute_driver\u003d\u0027libvirt.LibvirtDriver\u0027)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        self.flags(scheduler_driver\u003d\u0027filter_scheduler\u0027)"},{"line_number":99,"context_line":"        self.flags(scheduler_default_filters\u003dCONF.scheduler_default_filters"},{"line_number":100,"context_line":"                   + [\u0027NUMATopologyFilter\u0027, \u0027PciPassthroughFilter\u0027])"},{"line_number":101,"context_line":"        return self.start_service(\u0027scheduler\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa6399be_143d25bb","line":98,"range":{"start_line":98,"start_character":19,"end_line":98,"end_character":35},"updated":"2016-10-19 17:36:23.000000000","message":"Looks like this has changed to \u0027driver\u0027 in the [scheduler] group","commit_id":"8862f694bfa6ca2c9121b26edb67798364891541"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"bdd8743bac3f3b96c0dd7608ac15b43f0a2fe8f3","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        self.flags(compute_driver\u003d\u0027libvirt.LibvirtDriver\u0027)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        self.flags(scheduler_driver\u003d\u0027filter_scheduler\u0027)"},{"line_number":99,"context_line":"        self.flags(scheduler_default_filters\u003dCONF.scheduler_default_filters"},{"line_number":100,"context_line":"                   + [\u0027NUMATopologyFilter\u0027, \u0027PciPassthroughFilter\u0027])"},{"line_number":101,"context_line":"        return self.start_service(\u0027scheduler\u0027)"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"fa6399be_ac850d08","line":99,"range":{"start_line":99,"start_character":19,"end_line":99,"end_character":75},"updated":"2016-10-19 17:36:23.000000000","message":"And this has changed to \u0027enabled_filters\u0027 in the [filter_scheduler] group","commit_id":"8862f694bfa6ca2c9121b26edb67798364891541"}],"nova/tests/unit/virt/libvirt/fakelibvirt.py":[{"author":{"_account_id":17973,"name":"Ludovic Beliveau","email":"lbeliveau@gmail.com","username":"lbeliveau"},"change_message_id":"757c3186a3d7aac27ca0a15b3b5155694d23af19","unresolved":false,"context_lines":[{"line_number":192,"context_line":"  \u003c/capability\u003e"},{"line_number":193,"context_line":"\u003c/device\u003e\"\"\""},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    def __init__(self, dev_type, vf_ratio, group, dev, product_id):"},{"line_number":196,"context_line":"        addr_templ \u003d (\"  \u003caddress domain\u003d\u00270x0000\u0027 bus\u003d\u00270x81\u0027 slot\u003d\u00270x%(slot)s\u0027\""},{"line_number":197,"context_line":"                      \" function\u003d\u00270x%(dev)d\u0027/\u003e\")"},{"line_number":198,"context_line":"        self.pci_dev \u003d None"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_f69687ee","line":195,"updated":"2016-04-14 20:18:18.000000000","message":"That would be nice if you could put a short comment about that those args are.","commit_id":"8871317be565dd9a452eb10d9bbf9440a4c3e08a"},{"author":{"_account_id":17973,"name":"Ludovic Beliveau","email":"lbeliveau@gmail.com","username":"lbeliveau"},"change_message_id":"757c3186a3d7aac27ca0a15b3b5155694d23af19","unresolved":false,"context_lines":[{"line_number":243,"context_line":"            pci_dev_name \u003d \u0027pci_0000_81_%(slot)s_%(dev)d\u0027 % {\u0027slot\u0027: PF_SLOT,"},{"line_number":244,"context_line":"                                                             \u0027dev\u0027: dev}"},{"line_number":245,"context_line":"            self.sriov_devices[pci_dev_name] \u003d FakePciDevice(\u0027PF\u0027, vf_ratio,"},{"line_number":246,"context_line":"                                                             group, dev,"},{"line_number":247,"context_line":"                                                             pf_product_id)"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"        # Generate VFs"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_760ef73b","line":246,"updated":"2016-04-14 20:18:18.000000000","message":"You could eliminate \"group +\u003d 1\" and pass \"group + dev + 1\" here.","commit_id":"8871317be565dd9a452eb10d9bbf9440a4c3e08a"},{"author":{"_account_id":17973,"name":"Ludovic Beliveau","email":"lbeliveau@gmail.com","username":"lbeliveau"},"change_message_id":"757c3186a3d7aac27ca0a15b3b5155694d23af19","unresolved":false,"context_lines":[{"line_number":248,"context_line":""},{"line_number":249,"context_line":"        # Generate VFs"},{"line_number":250,"context_line":"        for dev in range(num_vfs):"},{"line_number":251,"context_line":"            group +\u003d 1"},{"line_number":252,"context_line":"            pci_dev_name \u003d \u0027pci_0000_81_%(slot)s_%(dev)d\u0027 % {\u0027slot\u0027: VF_SLOT,"},{"line_number":253,"context_line":"                                                             \u0027dev\u0027: dev}"},{"line_number":254,"context_line":"            self.sriov_devices[pci_dev_name] \u003d FakePciDevice(\u0027VF\u0027, vf_ratio,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_560bfb29","line":251,"updated":"2016-04-14 20:18:18.000000000","message":"Same thing.","commit_id":"8871317be565dd9a452eb10d9bbf9440a4c3e08a"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"2179224f09bc4f09d87d822ea5d0a6a8f3e78b89","unresolved":false,"context_lines":[{"line_number":155,"context_line":"# Libvirt version to match MIN_QEMU_VERSION in driver.py"},{"line_number":156,"context_line":"FAKE_QEMU_VERSION \u003d 1005003"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"PF_CAP_TYPE \u003d \u0027virt_functions\u0027"},{"line_number":159,"context_line":"VF_CAP_TYPE \u003d \u0027phys_function\u0027"},{"line_number":160,"context_line":"PF_PROD_NAME \u003d \u0027Ethernet Controller 10-Gigabit X540-AT2\u0027"},{"line_number":161,"context_line":"VF_PROD_NAME \u003d \u0027X540 Ethernet Controller Virtual Function\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa6399be_c2adeb32","line":158,"range":{"start_line":158,"start_character":15,"end_line":158,"end_character":29},"updated":"2016-10-11 17:49:58.000000000","message":"If PF means Physical Function, shouldn\u0027t this be \u0027phys_function\u0027?","commit_id":"7d73a7d889e0479826e420867394a570de05317e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"22d300cd8e05f6a9c411e51740c3b933c17ba152","unresolved":false,"context_lines":[{"line_number":155,"context_line":"# Libvirt version to match MIN_QEMU_VERSION in driver.py"},{"line_number":156,"context_line":"FAKE_QEMU_VERSION \u003d 1005003"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"PF_CAP_TYPE \u003d \u0027virt_functions\u0027"},{"line_number":159,"context_line":"VF_CAP_TYPE \u003d \u0027phys_function\u0027"},{"line_number":160,"context_line":"PF_PROD_NAME \u003d \u0027Ethernet Controller 10-Gigabit X540-AT2\u0027"},{"line_number":161,"context_line":"VF_PROD_NAME \u003d \u0027X540 Ethernet Controller Virtual Function\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa6399be_38acb08b","line":158,"in_reply_to":"fa6399be_6650855f","updated":"2016-10-13 17:22:29.000000000","message":"Oh, well that\u0027s embarrassing. Thanks for explaining.","commit_id":"7d73a7d889e0479826e420867394a570de05317e"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"f0a9ebd41d10818e475ae9170166509777f03a70","unresolved":false,"context_lines":[{"line_number":155,"context_line":"# Libvirt version to match MIN_QEMU_VERSION in driver.py"},{"line_number":156,"context_line":"FAKE_QEMU_VERSION \u003d 1005003"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"PF_CAP_TYPE \u003d \u0027virt_functions\u0027"},{"line_number":159,"context_line":"VF_CAP_TYPE \u003d \u0027phys_function\u0027"},{"line_number":160,"context_line":"PF_PROD_NAME \u003d \u0027Ethernet Controller 10-Gigabit X540-AT2\u0027"},{"line_number":161,"context_line":"VF_PROD_NAME \u003d \u0027X540 Ethernet Controller Virtual Function\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa6399be_6650855f","line":158,"in_reply_to":"fa6399be_c2adeb32","updated":"2016-10-12 15:22:37.000000000","message":"I think that is correct even if that looks strange. The capabilities of a PF are its VFs (virt_functions) and the capability of a VF is its related PF (phys_function).","commit_id":"7d73a7d889e0479826e420867394a570de05317e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"2179224f09bc4f09d87d822ea5d0a6a8f3e78b89","unresolved":false,"context_lines":[{"line_number":156,"context_line":"FAKE_QEMU_VERSION \u003d 1005003"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"PF_CAP_TYPE \u003d \u0027virt_functions\u0027"},{"line_number":159,"context_line":"VF_CAP_TYPE \u003d \u0027phys_function\u0027"},{"line_number":160,"context_line":"PF_PROD_NAME \u003d \u0027Ethernet Controller 10-Gigabit X540-AT2\u0027"},{"line_number":161,"context_line":"VF_PROD_NAME \u003d \u0027X540 Ethernet Controller Virtual Function\u0027"},{"line_number":162,"context_line":"PF_DRIVER_NAME \u003d \u0027ixgbe\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa6399be_4268fbf5","line":159,"range":{"start_line":159,"start_character":15,"end_line":159,"end_character":28},"updated":"2016-10-11 17:49:58.000000000","message":"Similarly, shouldn\u0027t this be \u0027virt_function\u0027?","commit_id":"7d73a7d889e0479826e420867394a570de05317e"}]}
