)]}'
{"nova/tests/functional/test_servers.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f2b0d166774afe7022a2dc27aecb0fb40385c664","unresolved":false,"context_lines":[{"line_number":6063,"context_line":"            rc_fields.ResourceClass.NET_BW_EGR_KILOBIT_PER_SEC:"},{"line_number":6064,"context_line":"                {\"total\": 100000},"},{"line_number":6065,"context_line":"        }"},{"line_number":6066,"context_line":"        traits \u003d [self.CUSTOM_VNIC_TYPE_DIRECT, self.CUSTOM_VNIC_TYPE_MACVTAP,"},{"line_number":6067,"context_line":"                  self.CUSTOM_PHYSNET2]"},{"line_number":6068,"context_line":"        self._create_pf_device_rp("},{"line_number":6069,"context_line":"            self.sriov_pf2_rp_uuid, sriov_agent_rp_uuid, inventories, traits,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_cfe56b3a","line":6066,"range":{"start_line":6066,"start_character":18,"end_line":6066,"end_character":78},"updated":"2019-03-06 11:33:13.000000000","message":"Is this ever going to happen in real-life? Any reason you couldn\u0027t create another RP?","commit_id":"6f58cd784a5c4f09703d1e13b6b6733f2ebbfa69"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"14bb4ac7f29b0ee561c1588b7f9b82ee3ebe1f4d","unresolved":false,"context_lines":[{"line_number":6063,"context_line":"            rc_fields.ResourceClass.NET_BW_EGR_KILOBIT_PER_SEC:"},{"line_number":6064,"context_line":"                {\"total\": 100000},"},{"line_number":6065,"context_line":"        }"},{"line_number":6066,"context_line":"        traits \u003d [self.CUSTOM_VNIC_TYPE_DIRECT, self.CUSTOM_VNIC_TYPE_MACVTAP,"},{"line_number":6067,"context_line":"                  self.CUSTOM_PHYSNET2]"},{"line_number":6068,"context_line":"        self._create_pf_device_rp("},{"line_number":6069,"context_line":"            self.sriov_pf2_rp_uuid, sriov_agent_rp_uuid, inventories, traits,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_0f27f314","line":6066,"range":{"start_line":6066,"start_character":18,"end_line":6066,"end_character":78},"in_reply_to":"5fc1f717_cfe56b3a","updated":"2019-03-06 12:04:15.000000000","message":"yes. the teant gets to decide how the interface is attached.\nthe admin has no say over if a vf can be used n direct or macvtap mode except deisabling vnic types globally.\n\nso they can blacklist macvtap or direct but they cannot do that per vf.","commit_id":"6f58cd784a5c4f09703d1e13b6b6733f2ebbfa69"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f2b0d166774afe7022a2dc27aecb0fb40385c664","unresolved":false,"context_lines":[{"line_number":6618,"context_line":"        \"\"\"Verify that vnic type macvtap is also supported\"\"\""},{"line_number":6619,"context_line":""},{"line_number":6620,"context_line":"        # change the vnic_type to macvtap"},{"line_number":6621,"context_line":"        port \u003d \\"},{"line_number":6622,"context_line":"            self.neutron._ports["},{"line_number":6623,"context_line":"                self.neutron.port_with_sriov_resource_request[\u0027id\u0027]]"},{"line_number":6624,"context_line":"        port[\u0027binding:vnic_type\u0027] \u003d \u0027macvtap\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_4473a2e8","line":6621,"range":{"start_line":6621,"start_character":15,"end_line":6621,"end_character":16},"updated":"2019-03-06 11:33:13.000000000","message":"why?","commit_id":"6f58cd784a5c4f09703d1e13b6b6733f2ebbfa69"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"20f4a893ba77ee6c00bfc50cd3c01f246caf523d","unresolved":false,"context_lines":[{"line_number":6618,"context_line":"        \"\"\"Verify that vnic type macvtap is also supported\"\"\""},{"line_number":6619,"context_line":""},{"line_number":6620,"context_line":"        # change the vnic_type to macvtap"},{"line_number":6621,"context_line":"        port \u003d \\"},{"line_number":6622,"context_line":"            self.neutron._ports["},{"line_number":6623,"context_line":"                self.neutron.port_with_sriov_resource_request[\u0027id\u0027]]"},{"line_number":6624,"context_line":"        port[\u0027binding:vnic_type\u0027] \u003d \u0027macvtap\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_e2cce28a","line":6621,"range":{"start_line":6621,"start_character":15,"end_line":6621,"end_character":16},"in_reply_to":"5fc1f717_0fda93e8","updated":"2019-03-07 13:00:42.000000000","message":"Sorry. Done.","commit_id":"6f58cd784a5c4f09703d1e13b6b6733f2ebbfa69"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"14bb4ac7f29b0ee561c1588b7f9b82ee3ebe1f4d","unresolved":false,"context_lines":[{"line_number":6618,"context_line":"        \"\"\"Verify that vnic type macvtap is also supported\"\"\""},{"line_number":6619,"context_line":""},{"line_number":6620,"context_line":"        # change the vnic_type to macvtap"},{"line_number":6621,"context_line":"        port \u003d \\"},{"line_number":6622,"context_line":"            self.neutron._ports["},{"line_number":6623,"context_line":"                self.neutron.port_with_sriov_resource_request[\u0027id\u0027]]"},{"line_number":6624,"context_line":"        port[\u0027binding:vnic_type\u0027] \u003d \u0027macvtap\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_0fda93e8","line":6621,"range":{"start_line":6621,"start_character":15,"end_line":6621,"end_character":16},"in_reply_to":"5fc1f717_4473a2e8","updated":"2019-03-06 12:04:15.000000000","message":"to elaborate on stephens elegant phrasing, becase of the \"[\" in self.neutron._port[...\nyou can remove the \"\\\" which is considerd well ungly form\na pure pythonic point of view and use the fact that inside \nthe [] allow you to split the key onto another line\n\ne.g.\nport \u003d self.neutron._port[\n   self.neutron.port_with_sriov_resource_requests[\u0027id\u0027]]","commit_id":"6f58cd784a5c4f09703d1e13b6b6733f2ebbfa69"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f2b0d166774afe7022a2dc27aecb0fb40385c664","unresolved":false,"context_lines":[{"line_number":6618,"context_line":"        \"\"\"Verify that vnic type macvtap is also supported\"\"\""},{"line_number":6619,"context_line":""},{"line_number":6620,"context_line":"        # change the vnic_type to macvtap"},{"line_number":6621,"context_line":"        port \u003d \\"},{"line_number":6622,"context_line":"            self.neutron._ports["},{"line_number":6623,"context_line":"                self.neutron.port_with_sriov_resource_request[\u0027id\u0027]]"},{"line_number":6624,"context_line":"        port[\u0027binding:vnic_type\u0027] \u003d \u0027macvtap\u0027"},{"line_number":6625,"context_line":"        port[\u0027resource_request\u0027][\u0027required\u0027] \u003d ["},{"line_number":6626,"context_line":"            self.CUSTOM_PHYSNET2, self.CUSTOM_VNIC_TYPE_MACVTAP]"},{"line_number":6627,"context_line":""},{"line_number":6628,"context_line":"        server \u003d self._create_server("},{"line_number":6629,"context_line":"            flavor\u003dself.flavor,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_ef462750","line":6626,"range":{"start_line":6621,"start_character":0,"end_line":6626,"end_character":64},"updated":"2019-03-06 11:33:13.000000000","message":"Took me a minute to grok what was happening here. We\u0027re taking the existing port definition and overriding it so it now represents a macvtap port. You kind of say this above, but it might be helpful expand slightly. Alternatively (better?), couldn\u0027t you do this in \u0027nova/tests/fixtures.py\u0027 altogether?","commit_id":"6f58cd784a5c4f09703d1e13b6b6733f2ebbfa69"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"20f4a893ba77ee6c00bfc50cd3c01f246caf523d","unresolved":false,"context_lines":[{"line_number":6618,"context_line":"        \"\"\"Verify that vnic type macvtap is also supported\"\"\""},{"line_number":6619,"context_line":""},{"line_number":6620,"context_line":"        # change the vnic_type to macvtap"},{"line_number":6621,"context_line":"        port \u003d \\"},{"line_number":6622,"context_line":"            self.neutron._ports["},{"line_number":6623,"context_line":"                self.neutron.port_with_sriov_resource_request[\u0027id\u0027]]"},{"line_number":6624,"context_line":"        port[\u0027binding:vnic_type\u0027] \u003d \u0027macvtap\u0027"},{"line_number":6625,"context_line":"        port[\u0027resource_request\u0027][\u0027required\u0027] \u003d ["},{"line_number":6626,"context_line":"            self.CUSTOM_PHYSNET2, self.CUSTOM_VNIC_TYPE_MACVTAP]"},{"line_number":6627,"context_line":""},{"line_number":6628,"context_line":"        server \u003d self._create_server("},{"line_number":6629,"context_line":"            flavor\u003dself.flavor,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_42a136a9","line":6626,"range":{"start_line":6621,"start_character":0,"end_line":6626,"end_character":64},"in_reply_to":"5fc1f717_ef462750","updated":"2019-03-07 13:00:42.000000000","message":"I could add a new port definition to the fixture for macvtap. That is cleaner. Done.","commit_id":"6f58cd784a5c4f09703d1e13b6b6733f2ebbfa69"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f2b0d166774afe7022a2dc27aecb0fb40385c664","unresolved":false,"context_lines":[{"line_number":6640,"context_line":"        # compute rp and one set for the networking resources on the sriov PF2"},{"line_number":6641,"context_line":"        # rp."},{"line_number":6642,"context_line":"        self.assertEqual(2, len(allocations))"},{"line_number":6643,"context_line":"        compute_allocations \u003d allocations[self.compute1_rp_uuid][\u0027resources\u0027]"},{"line_number":6644,"context_line":"        self.assertEqual("},{"line_number":6645,"context_line":"            self._resources_from_flavor(self.flavor),"},{"line_number":6646,"context_line":"            compute_allocations)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_0f97f392","line":6643,"updated":"2019-03-06 11:33:13.000000000","message":"nit: line break above this","commit_id":"6f58cd784a5c4f09703d1e13b6b6733f2ebbfa69"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"20f4a893ba77ee6c00bfc50cd3c01f246caf523d","unresolved":false,"context_lines":[{"line_number":6640,"context_line":"        # compute rp and one set for the networking resources on the sriov PF2"},{"line_number":6641,"context_line":"        # rp."},{"line_number":6642,"context_line":"        self.assertEqual(2, len(allocations))"},{"line_number":6643,"context_line":"        compute_allocations \u003d allocations[self.compute1_rp_uuid][\u0027resources\u0027]"},{"line_number":6644,"context_line":"        self.assertEqual("},{"line_number":6645,"context_line":"            self._resources_from_flavor(self.flavor),"},{"line_number":6646,"context_line":"            compute_allocations)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_4214d6a0","line":6643,"in_reply_to":"5fc1f717_0f97f392","updated":"2019-03-07 13:00:42.000000000","message":"Done","commit_id":"6f58cd784a5c4f09703d1e13b6b6733f2ebbfa69"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f2b0d166774afe7022a2dc27aecb0fb40385c664","unresolved":false,"context_lines":[{"line_number":6641,"context_line":"        # rp."},{"line_number":6642,"context_line":"        self.assertEqual(2, len(allocations))"},{"line_number":6643,"context_line":"        compute_allocations \u003d allocations[self.compute1_rp_uuid][\u0027resources\u0027]"},{"line_number":6644,"context_line":"        self.assertEqual("},{"line_number":6645,"context_line":"            self._resources_from_flavor(self.flavor),"},{"line_number":6646,"context_line":"            compute_allocations)"},{"line_number":6647,"context_line":""},{"line_number":6648,"context_line":"        sriov_allocations \u003d allocations[self.sriov_pf2_rp_uuid][\u0027resources\u0027]"},{"line_number":6649,"context_line":"        self.assertPortMatchesAllocation("}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_8fe8c316","line":6646,"range":{"start_line":6644,"start_character":0,"end_line":6646,"end_character":32},"updated":"2019-03-06 11:33:13.000000000","message":"nit: This is done often enough in this file now that a \u0027assertComputeMatchesAllocation\u0027 helper could be a good call","commit_id":"6f58cd784a5c4f09703d1e13b6b6733f2ebbfa69"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"20f4a893ba77ee6c00bfc50cd3c01f246caf523d","unresolved":false,"context_lines":[{"line_number":6641,"context_line":"        # rp."},{"line_number":6642,"context_line":"        self.assertEqual(2, len(allocations))"},{"line_number":6643,"context_line":"        compute_allocations \u003d allocations[self.compute1_rp_uuid][\u0027resources\u0027]"},{"line_number":6644,"context_line":"        self.assertEqual("},{"line_number":6645,"context_line":"            self._resources_from_flavor(self.flavor),"},{"line_number":6646,"context_line":"            compute_allocations)"},{"line_number":6647,"context_line":""},{"line_number":6648,"context_line":"        sriov_allocations \u003d allocations[self.sriov_pf2_rp_uuid][\u0027resources\u0027]"},{"line_number":6649,"context_line":"        self.assertPortMatchesAllocation("}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_c2552652","line":6646,"range":{"start_line":6644,"start_character":0,"end_line":6646,"end_character":32},"in_reply_to":"5fc1f717_8fe8c316","updated":"2019-03-07 13:00:42.000000000","message":"will do in separate refactor patch.","commit_id":"6f58cd784a5c4f09703d1e13b6b6733f2ebbfa69"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f2b0d166774afe7022a2dc27aecb0fb40385c664","unresolved":false,"context_lines":[{"line_number":6659,"context_line":"        # We expect that the selected PCI device matches with the RP from"},{"line_number":6660,"context_line":"        # where the bandwidth is allocated from. The bandwidth is allocated"},{"line_number":6661,"context_line":"        # from 0000:02:00 (PF2) so the PCI device should be a VF of that PF"},{"line_number":6662,"context_line":"        self.assertEqual(\u00270000:02:00.1\u0027, port_binding[\u0027pci_slot\u0027])"},{"line_number":6663,"context_line":""},{"line_number":6664,"context_line":""},{"line_number":6665,"context_line":"class PortResourceRequestReSchedulingTestIgnoreMicroversionCheck("}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_efb4e737","line":6662,"range":{"start_line":6662,"start_character":25,"end_line":6662,"end_character":39},"updated":"2019-03-06 11:33:13.000000000","message":"I missed this in previous tests, but where is this coming from?\n\nLater: I see it\u0027s coming from nova.virt.fake.FakeDriverWithPciResources. It could be a good follow-up to define those as attributes of the driver so we can reference them here","commit_id":"6f58cd784a5c4f09703d1e13b6b6733f2ebbfa69"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"20f4a893ba77ee6c00bfc50cd3c01f246caf523d","unresolved":false,"context_lines":[{"line_number":6659,"context_line":"        # We expect that the selected PCI device matches with the RP from"},{"line_number":6660,"context_line":"        # where the bandwidth is allocated from. The bandwidth is allocated"},{"line_number":6661,"context_line":"        # from 0000:02:00 (PF2) so the PCI device should be a VF of that PF"},{"line_number":6662,"context_line":"        self.assertEqual(\u00270000:02:00.1\u0027, port_binding[\u0027pci_slot\u0027])"},{"line_number":6663,"context_line":""},{"line_number":6664,"context_line":""},{"line_number":6665,"context_line":"class PortResourceRequestReSchedulingTestIgnoreMicroversionCheck("}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_a24c9ac7","line":6662,"range":{"start_line":6662,"start_character":25,"end_line":6662,"end_character":39},"in_reply_to":"5fc1f717_efb4e737","updated":"2019-03-07 13:00:42.000000000","message":"will do in separate refactor patch.","commit_id":"6f58cd784a5c4f09703d1e13b6b6733f2ebbfa69"}]}
