)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d7160d471a9f24895292f4e5b9393d69548be4b3","unresolved":true,"context_lines":[{"line_number":10,"context_line":"VFs/PFs, it is only supported on very new cards."},{"line_number":11,"context_line":"Also, all 3 need not to be always required for vf_profile."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I00b126635612ace51b5e3138afcb064f001f1901"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"a9711ad1_a97fa662","line":13,"updated":"2024-01-11 17:27:49.000000000","message":"you could add a Related-Bug: line here\nbut overall i think this is fine.","commit_id":"c3faeffeaad038fb4bcc9aab7587df7ff6d6e346"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"627d9722e801efca134fd1c1a9821aac6f5e5940","unresolved":false,"context_lines":[{"line_number":10,"context_line":"VFs/PFs, it is only supported on very new cards."},{"line_number":11,"context_line":"Also, all 3 need not to be always required for vf_profile."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I00b126635612ace51b5e3138afcb064f001f1901"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"a19eefd9_e84cee1c","line":13,"in_reply_to":"a9711ad1_a97fa662","updated":"2024-01-12 04:47:25.000000000","message":"Acknowledged, done","commit_id":"c3faeffeaad038fb4bcc9aab7587df7ff6d6e346"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9e56aa645c5de3c7d27d3b22bd351345381ecab4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"a0ce18c5_c8d09624","updated":"2024-01-09 17:57:32.000000000","message":"+1 but we shoudl add some more unit tests.","commit_id":"541f953e8c684ced4f34d8fc99a7d1aebf672864"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"4664855ce6bc66ac8c9c2b142f8d92be5ac8389f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"6e183e32_806ac0c6","updated":"2024-01-11 04:42:59.000000000","message":"recheck devstack deployment issue","commit_id":"c3faeffeaad038fb4bcc9aab7587df7ff6d6e346"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7309f4253ec9d30a35e797032eb744f73acb1f94","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"f9523429_abdc67b4","updated":"2024-02-29 20:24:23.000000000","message":"Soft -1. If you want to do a follow-up that\u0027s okay but I\u0027d like to see that proposed first","commit_id":"60cabf51f3f7592894850aa227fcbe3b1ca4997c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6ed644079a40e2c9d4c488e1c09b55e35a08b63b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"a501d0be_30debe79","updated":"2024-03-01 16:12:57.000000000","message":"Thanks 🙏","commit_id":"a1a07e0d2d01e95b7d3c8db62d149a4278617c93"}],"nova/network/neutron.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d83c13a97d1d0d452c0617fa2abb9841d2e9233c","unresolved":true,"context_lines":[{"line_number":1603,"context_line":"            \u0027pf_mac_address\u0027: pf_mac,"},{"line_number":1604,"context_line":"            \u0027vf_num\u0027: vf_num,"},{"line_number":1605,"context_line":"        })"},{"line_number":1606,"context_line":""},{"line_number":1607,"context_line":"        # Update port binding capabilities using PCI device\u0027s network"},{"line_number":1608,"context_line":"        # capabilities if they exist."},{"line_number":1609,"context_line":"        pci_net_caps \u003d pci_dev.network_caps"}],"source_content_type":"text/x-python","patch_set":1,"id":"8d4b08b3_83e85fc1","line":1606,"updated":"2024-01-09 17:13:55.000000000","message":"i would prefer if we did this as 3 separate updates.\n\nthe pf_mac_address may not be present in all cases \nhttps://review.opendev.org/c/openstack/nova/+/777679\n\nso can you just do 3 if statements?\n\n```\nif card_serial_number:\n    vf_profile[\u0027card_serial_number\u0027] \u003d card_serial_number\nif pf_mac:\n    vf_profile[\u0027pf_mac_address\u0027] \u003d pf_mac\nif vf_num:\n    vf_profile[\u0027vf_num\u0027] \u003d vf_num,\n```","commit_id":"a978e2d9f81dfd9f6bdb26c0853cfecf2aafaa88"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"5d04cbfd179949d6af2344b0c415db8868327d38","unresolved":true,"context_lines":[{"line_number":1603,"context_line":"            \u0027pf_mac_address\u0027: pf_mac,"},{"line_number":1604,"context_line":"            \u0027vf_num\u0027: vf_num,"},{"line_number":1605,"context_line":"        })"},{"line_number":1606,"context_line":""},{"line_number":1607,"context_line":"        # Update port binding capabilities using PCI device\u0027s network"},{"line_number":1608,"context_line":"        # capabilities if they exist."},{"line_number":1609,"context_line":"        pci_net_caps \u003d pci_dev.network_caps"}],"source_content_type":"text/x-python","patch_set":1,"id":"d2207c73_11f93d45","line":1606,"in_reply_to":"8914feea_f8dd608a","updated":"2024-01-09 17:45:22.000000000","message":"ack, updated.","commit_id":"a978e2d9f81dfd9f6bdb26c0853cfecf2aafaa88"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"c7259a26cb151f3e790ac612510b93f916718b47","unresolved":true,"context_lines":[{"line_number":1603,"context_line":"            \u0027pf_mac_address\u0027: pf_mac,"},{"line_number":1604,"context_line":"            \u0027vf_num\u0027: vf_num,"},{"line_number":1605,"context_line":"        })"},{"line_number":1606,"context_line":""},{"line_number":1607,"context_line":"        # Update port binding capabilities using PCI device\u0027s network"},{"line_number":1608,"context_line":"        # capabilities if they exist."},{"line_number":1609,"context_line":"        pci_net_caps \u003d pci_dev.network_caps"}],"source_content_type":"text/x-python","patch_set":1,"id":"4785b963_9eb3f515","line":1606,"in_reply_to":"8d4b08b3_83e85fc1","updated":"2024-01-09 17:27:33.000000000","message":"Acknowledged","commit_id":"a978e2d9f81dfd9f6bdb26c0853cfecf2aafaa88"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"375b02b3294edf001ff4ce148e299dec7cea882d","unresolved":true,"context_lines":[{"line_number":1603,"context_line":"            \u0027pf_mac_address\u0027: pf_mac,"},{"line_number":1604,"context_line":"            \u0027vf_num\u0027: vf_num,"},{"line_number":1605,"context_line":"        })"},{"line_number":1606,"context_line":""},{"line_number":1607,"context_line":"        # Update port binding capabilities using PCI device\u0027s network"},{"line_number":1608,"context_line":"        # capabilities if they exist."},{"line_number":1609,"context_line":"        pci_net_caps \u003d pci_dev.network_caps"}],"source_content_type":"text/x-python","patch_set":1,"id":"8914feea_f8dd608a","line":1606,"in_reply_to":"8d4b08b3_83e85fc1","updated":"2024-01-09 17:29:11.000000000","message":"oh i had a sligth bug\n\n```\nif vf_num:\n            vf_profile[\u0027vf_num\u0027] \u003d vf_num\n```\nshould be \n```\nif vf_num is not None:\n            vf_profile[\u0027vf_num\u0027] \u003d vf_num\n```\ni think vf_num can be 0 so we cant just to if vf_num\n\nthe other two are stings so that is fine although we coudl do is not None for those too if we wanted too.","commit_id":"a978e2d9f81dfd9f6bdb26c0853cfecf2aafaa88"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"ce907e9903ff86e4f90023f5805c4d0722f2b188","unresolved":false,"context_lines":[{"line_number":1603,"context_line":"            \u0027pf_mac_address\u0027: pf_mac,"},{"line_number":1604,"context_line":"            \u0027vf_num\u0027: vf_num,"},{"line_number":1605,"context_line":"        })"},{"line_number":1606,"context_line":""},{"line_number":1607,"context_line":"        # Update port binding capabilities using PCI device\u0027s network"},{"line_number":1608,"context_line":"        # capabilities if they exist."},{"line_number":1609,"context_line":"        pci_net_caps \u003d pci_dev.network_caps"}],"source_content_type":"text/x-python","patch_set":1,"id":"2154fc8c_164db76c","line":1606,"in_reply_to":"d2207c73_11f93d45","updated":"2024-01-10 16:49:45.000000000","message":"Done","commit_id":"a978e2d9f81dfd9f6bdb26c0853cfecf2aafaa88"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9e56aa645c5de3c7d27d3b22bd351345381ecab4","unresolved":true,"context_lines":[{"line_number":1583,"context_line":"                raise exception.PortBindingDeletionFailed("},{"line_number":1584,"context_line":"                    port_id\u003dport_id, host\u003dhost)"},{"line_number":1585,"context_line":""},{"line_number":1586,"context_line":"    def _get_vf_pci_device_profile(self, pci_dev):"},{"line_number":1587,"context_line":"        \"\"\"Get VF-specific fields to add to the PCI device profile."},{"line_number":1588,"context_line":""},{"line_number":1589,"context_line":"        This data can be useful, e.g. for off-path networking backends that"}],"source_content_type":"text/x-python","patch_set":3,"id":"a073bbdb_9961002b","line":1586,"updated":"2024-01-09 17:57:32.000000000","message":"can you add a unit test for this to assert the diffent beviours \n\ni.e. with/without card_serial_number, pf_mac, vf_num","commit_id":"541f953e8c684ced4f34d8fc99a7d1aebf672864"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"ce907e9903ff86e4f90023f5805c4d0722f2b188","unresolved":true,"context_lines":[{"line_number":1583,"context_line":"                raise exception.PortBindingDeletionFailed("},{"line_number":1584,"context_line":"                    port_id\u003dport_id, host\u003dhost)"},{"line_number":1585,"context_line":""},{"line_number":1586,"context_line":"    def _get_vf_pci_device_profile(self, pci_dev):"},{"line_number":1587,"context_line":"        \"\"\"Get VF-specific fields to add to the PCI device profile."},{"line_number":1588,"context_line":""},{"line_number":1589,"context_line":"        This data can be useful, e.g. for off-path networking backends that"}],"source_content_type":"text/x-python","patch_set":3,"id":"e602411f_efc33720","line":1586,"in_reply_to":"a073bbdb_9961002b","updated":"2024-01-10 16:49:45.000000000","message":"added individual without card_serial_number, pf_mac and vf_num\nTestAPIPortbinding.test__get_vf_pci_device_profile serves as with all 3.","commit_id":"541f953e8c684ced4f34d8fc99a7d1aebf672864"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d7160d471a9f24895292f4e5b9393d69548be4b3","unresolved":false,"context_lines":[{"line_number":1583,"context_line":"                raise exception.PortBindingDeletionFailed("},{"line_number":1584,"context_line":"                    port_id\u003dport_id, host\u003dhost)"},{"line_number":1585,"context_line":""},{"line_number":1586,"context_line":"    def _get_vf_pci_device_profile(self, pci_dev):"},{"line_number":1587,"context_line":"        \"\"\"Get VF-specific fields to add to the PCI device profile."},{"line_number":1588,"context_line":""},{"line_number":1589,"context_line":"        This data can be useful, e.g. for off-path networking backends that"}],"source_content_type":"text/x-python","patch_set":3,"id":"84ba4a78_83d304dc","line":1586,"in_reply_to":"e602411f_efc33720","updated":"2024-01-11 17:27:49.000000000","message":"Done","commit_id":"541f953e8c684ced4f34d8fc99a7d1aebf672864"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7309f4253ec9d30a35e797032eb744f73acb1f94","unresolved":true,"context_lines":[{"line_number":1594,"context_line":""},{"line_number":1595,"context_line":"        pf_mac \u003d pci_dev.sriov_cap.get(\u0027pf_mac_address\u0027)"},{"line_number":1596,"context_line":"        vf_num \u003d pci_dev.sriov_cap.get(\u0027vf_num\u0027)"},{"line_number":1597,"context_line":"        card_serial_number \u003d getattr(pci_dev, \u0027card_serial_number\u0027, None)"},{"line_number":1598,"context_line":"        if card_serial_number is not None:"},{"line_number":1599,"context_line":"            vf_profile[\u0027card_serial_number\u0027] \u003d card_serial_number"},{"line_number":1600,"context_line":"        if pf_mac is not None:"}],"source_content_type":"text/x-python","patch_set":5,"id":"39a49c26_8152fa2a","line":1597,"updated":"2024-02-29 20:24:23.000000000","message":"Can you add a comment explaining why this is pulled with `getattr`?","commit_id":"60cabf51f3f7592894850aa227fcbe3b1ca4997c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6a39c6e91805d2cc0bd7dedfb97d38070e53b76b","unresolved":true,"context_lines":[{"line_number":1594,"context_line":""},{"line_number":1595,"context_line":"        pf_mac \u003d pci_dev.sriov_cap.get(\u0027pf_mac_address\u0027)"},{"line_number":1596,"context_line":"        vf_num \u003d pci_dev.sriov_cap.get(\u0027vf_num\u0027)"},{"line_number":1597,"context_line":"        card_serial_number \u003d getattr(pci_dev, \u0027card_serial_number\u0027, None)"},{"line_number":1598,"context_line":"        if card_serial_number is not None:"},{"line_number":1599,"context_line":"            vf_profile[\u0027card_serial_number\u0027] \u003d card_serial_number"},{"line_number":1600,"context_line":"        if pf_mac is not None:"}],"source_content_type":"text/x-python","patch_set":5,"id":"3da75b78_0e4f39a1","line":1597,"in_reply_to":"06d4cc5b_ea68b8ee","updated":"2024-03-01 13:01:57.000000000","message":"Isn\u0027t `pci_dev` a `PCIDevice` o.v.o? If so, `card_serial_number` is a property rather than an attribute so it should always be present (but may return `None`).","commit_id":"60cabf51f3f7592894850aa227fcbe3b1ca4997c"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"36e29a10db863447a8090d794d0b558094b7df4c","unresolved":true,"context_lines":[{"line_number":1594,"context_line":""},{"line_number":1595,"context_line":"        pf_mac \u003d pci_dev.sriov_cap.get(\u0027pf_mac_address\u0027)"},{"line_number":1596,"context_line":"        vf_num \u003d pci_dev.sriov_cap.get(\u0027vf_num\u0027)"},{"line_number":1597,"context_line":"        card_serial_number \u003d getattr(pci_dev, \u0027card_serial_number\u0027, None)"},{"line_number":1598,"context_line":"        if card_serial_number is not None:"},{"line_number":1599,"context_line":"            vf_profile[\u0027card_serial_number\u0027] \u003d card_serial_number"},{"line_number":1600,"context_line":"        if pf_mac is not None:"}],"source_content_type":"text/x-python","patch_set":5,"id":"06d4cc5b_ea68b8ee","line":1597,"in_reply_to":"39a49c26_8152fa2a","updated":"2024-03-01 11:57:05.000000000","message":"Done","commit_id":"60cabf51f3f7592894850aa227fcbe3b1ca4997c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"56f89372903e72160f97dd7caf9ee8c976bf3f0c","unresolved":true,"context_lines":[{"line_number":1594,"context_line":""},{"line_number":1595,"context_line":"        pf_mac \u003d pci_dev.sriov_cap.get(\u0027pf_mac_address\u0027)"},{"line_number":1596,"context_line":"        vf_num \u003d pci_dev.sriov_cap.get(\u0027vf_num\u0027)"},{"line_number":1597,"context_line":"        card_serial_number \u003d getattr(pci_dev, \u0027card_serial_number\u0027, None)"},{"line_number":1598,"context_line":"        if card_serial_number is not None:"},{"line_number":1599,"context_line":"            vf_profile[\u0027card_serial_number\u0027] \u003d card_serial_number"},{"line_number":1600,"context_line":"        if pf_mac is not None:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a7db635_79de21aa","line":1597,"in_reply_to":"3da75b78_0e4f39a1","updated":"2024-03-01 14:21:42.000000000","message":"Okay, see my reply in the tests. It *is* an ovo in real-life, but our tests are passing something else. We can change that and then keep using `pci_dev.card_serial_number` here.","commit_id":"60cabf51f3f7592894850aa227fcbe3b1ca4997c"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"a49eb3436c2fdfb802a9416aaa5f8510f1f9a9cd","unresolved":true,"context_lines":[{"line_number":1594,"context_line":""},{"line_number":1595,"context_line":"        pf_mac \u003d pci_dev.sriov_cap.get(\u0027pf_mac_address\u0027)"},{"line_number":1596,"context_line":"        vf_num \u003d pci_dev.sriov_cap.get(\u0027vf_num\u0027)"},{"line_number":1597,"context_line":"        card_serial_number \u003d getattr(pci_dev, \u0027card_serial_number\u0027, None)"},{"line_number":1598,"context_line":"        if card_serial_number is not None:"},{"line_number":1599,"context_line":"            vf_profile[\u0027card_serial_number\u0027] \u003d card_serial_number"},{"line_number":1600,"context_line":"        if pf_mac is not None:"}],"source_content_type":"text/x-python","patch_set":5,"id":"ce3a9342_1467d2e1","line":1597,"in_reply_to":"3da75b78_0e4f39a1","updated":"2024-03-01 15:56:20.000000000","message":"yes `pci_dev` is an instance of `nova.objects.pci_device.PCIDevice`, and `card_serial_number` is defined as a property within this class.\n\nremoved getattr and coment as well\nupdated tests. thanks.","commit_id":"60cabf51f3f7592894850aa227fcbe3b1ca4997c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b23290a3e1d721d2fbc523034afe38bb69a464c7","unresolved":true,"context_lines":[{"line_number":1594,"context_line":""},{"line_number":1595,"context_line":"        pf_mac \u003d pci_dev.sriov_cap.get(\u0027pf_mac_address\u0027)"},{"line_number":1596,"context_line":"        vf_num \u003d pci_dev.sriov_cap.get(\u0027vf_num\u0027)"},{"line_number":1597,"context_line":"        card_serial_number \u003d getattr(pci_dev, \u0027card_serial_number\u0027, None)"},{"line_number":1598,"context_line":"        if card_serial_number is not None:"},{"line_number":1599,"context_line":"            vf_profile[\u0027card_serial_number\u0027] \u003d card_serial_number"},{"line_number":1600,"context_line":"        if pf_mac is not None:"}],"source_content_type":"text/x-python","patch_set":5,"id":"4fc67da6_8566aca0","line":1597,"in_reply_to":"7a7db635_79de21aa","updated":"2024-03-01 15:05:14.000000000","message":"yes i think we can just use pci_dev.card_serial_number and get None if its not set\nor do \n\n```\ncard_serial_number \u003d pci_dev.card_serial_number if \"pci_dev.card_serial_number\" in pci_dev else None\n```\n\nbut i dont think that is required.\n```\ncard_serial_number \u003d pci_dev.card_serial_number\n```\nshould be enough here.\n\nso ya lets fix the tests.","commit_id":"60cabf51f3f7592894850aa227fcbe3b1ca4997c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6ed644079a40e2c9d4c488e1c09b55e35a08b63b","unresolved":false,"context_lines":[{"line_number":1594,"context_line":""},{"line_number":1595,"context_line":"        pf_mac \u003d pci_dev.sriov_cap.get(\u0027pf_mac_address\u0027)"},{"line_number":1596,"context_line":"        vf_num \u003d pci_dev.sriov_cap.get(\u0027vf_num\u0027)"},{"line_number":1597,"context_line":"        card_serial_number \u003d getattr(pci_dev, \u0027card_serial_number\u0027, None)"},{"line_number":1598,"context_line":"        if card_serial_number is not None:"},{"line_number":1599,"context_line":"            vf_profile[\u0027card_serial_number\u0027] \u003d card_serial_number"},{"line_number":1600,"context_line":"        if pf_mac is not None:"}],"source_content_type":"text/x-python","patch_set":5,"id":"5e539f8c_bc2f0346","line":1597,"in_reply_to":"ce3a9342_1467d2e1","updated":"2024-03-01 16:12:57.000000000","message":"Acknowledged","commit_id":"60cabf51f3f7592894850aa227fcbe3b1ca4997c"}],"nova/tests/unit/network/test_neutron.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9d2693bbaaad26efa484fa71fcf3e7053374d8c9","unresolved":true,"context_lines":[{"line_number":8628,"context_line":"            {\u0027key\u0027: \u0027val\u0027})"},{"line_number":8629,"context_line":""},{"line_number":8630,"context_line":"    def test__get_vf_pci_device_profile_without_serial_num(self):"},{"line_number":8631,"context_line":"        pci_dev \u003d {"},{"line_number":8632,"context_line":"                    \u0027sriov_cap\u0027: {"},{"line_number":8633,"context_line":"                        \u0027pf_mac_address\u0027: \u002752:54:00:1e:59:c6\u0027,"},{"line_number":8634,"context_line":"                        \u0027vf_num\u0027: 1,"},{"line_number":8635,"context_line":"                    },"},{"line_number":8636,"context_line":"                    \u0027network_caps\u0027: [\u0027gso\u0027, \u0027sg\u0027, \u0027tso\u0027, \u0027tx\u0027],"},{"line_number":8637,"context_line":"                }"},{"line_number":8638,"context_line":"        PciDevice \u003d collections.namedtuple(\u0027PciDevice\u0027,"},{"line_number":8639,"context_line":"                               [\u0027sriov_cap\u0027,"},{"line_number":8640,"context_line":"                                \u0027network_caps\u0027])"},{"line_number":8641,"context_line":"        mydev \u003d PciDevice(**pci_dev)"},{"line_number":8642,"context_line":"        self.assertEqual(self.api._get_vf_pci_device_profile(mydev),"},{"line_number":8643,"context_line":"                         {\u0027pf_mac_address\u0027: \u002752:54:00:1e:59:c6\u0027,"},{"line_number":8644,"context_line":"                          \u0027vf_num\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":6,"id":"0ada369e_29327032","line":8641,"range":{"start_line":8631,"start_character":0,"end_line":8641,"end_character":36},"updated":"2024-03-01 14:20:08.000000000","message":"Okay, so this is why we\u0027re using `getattr` in the previous file. Rather than passing a namedtuple to the file (which will never happen in production), could we pass a `PciDevice` o.v.o? I think this should do the trick:\n\n```\nmydev \u003d objects.PciDevice(\n    extra_info\u003d{\n        \u0027capabilities\u0027: jsonutils.dumps({\n            \u0027sriov\u0027: {\n                \u0027pf_mac_address\u0027: \u002752:54:00:1e:59:c6\u0027,\n                \u0027vf_num\u0027: 1,\n            },\n            \u0027network\u0027: [\u0027gso\u0027, \u0027sg\u0027, \u0027tso\u0027, \u0027tx\u0027],\n        }),\n    },\n)\n```","commit_id":"914c3f9e1fc00ad3daad1bd2ed622c803c2d7b12"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b23290a3e1d721d2fbc523034afe38bb69a464c7","unresolved":true,"context_lines":[{"line_number":8628,"context_line":"            {\u0027key\u0027: \u0027val\u0027})"},{"line_number":8629,"context_line":""},{"line_number":8630,"context_line":"    def test__get_vf_pci_device_profile_without_serial_num(self):"},{"line_number":8631,"context_line":"        pci_dev \u003d {"},{"line_number":8632,"context_line":"                    \u0027sriov_cap\u0027: {"},{"line_number":8633,"context_line":"                        \u0027pf_mac_address\u0027: \u002752:54:00:1e:59:c6\u0027,"},{"line_number":8634,"context_line":"                        \u0027vf_num\u0027: 1,"},{"line_number":8635,"context_line":"                    },"},{"line_number":8636,"context_line":"                    \u0027network_caps\u0027: [\u0027gso\u0027, \u0027sg\u0027, \u0027tso\u0027, \u0027tx\u0027],"},{"line_number":8637,"context_line":"                }"},{"line_number":8638,"context_line":"        PciDevice \u003d collections.namedtuple(\u0027PciDevice\u0027,"},{"line_number":8639,"context_line":"                               [\u0027sriov_cap\u0027,"},{"line_number":8640,"context_line":"                                \u0027network_caps\u0027])"},{"line_number":8641,"context_line":"        mydev \u003d PciDevice(**pci_dev)"},{"line_number":8642,"context_line":"        self.assertEqual(self.api._get_vf_pci_device_profile(mydev),"},{"line_number":8643,"context_line":"                         {\u0027pf_mac_address\u0027: \u002752:54:00:1e:59:c6\u0027,"},{"line_number":8644,"context_line":"                          \u0027vf_num\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":6,"id":"b7b11faf_f3ad6b1e","line":8641,"range":{"start_line":8631,"start_character":0,"end_line":8641,"end_character":36},"in_reply_to":"0ada369e_29327032","updated":"2024-03-01 15:05:14.000000000","message":"so here i bleive it will be an ovo.\n\nthere are part of the virt driver that do return dicts which are converted into ovo later.\n\nthis looks like the tests are based on that code rather then the real code where the neutron module shoudl be reciving pci device objects","commit_id":"914c3f9e1fc00ad3daad1bd2ed622c803c2d7b12"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6ed644079a40e2c9d4c488e1c09b55e35a08b63b","unresolved":false,"context_lines":[{"line_number":8628,"context_line":"            {\u0027key\u0027: \u0027val\u0027})"},{"line_number":8629,"context_line":""},{"line_number":8630,"context_line":"    def test__get_vf_pci_device_profile_without_serial_num(self):"},{"line_number":8631,"context_line":"        pci_dev \u003d {"},{"line_number":8632,"context_line":"                    \u0027sriov_cap\u0027: {"},{"line_number":8633,"context_line":"                        \u0027pf_mac_address\u0027: \u002752:54:00:1e:59:c6\u0027,"},{"line_number":8634,"context_line":"                        \u0027vf_num\u0027: 1,"},{"line_number":8635,"context_line":"                    },"},{"line_number":8636,"context_line":"                    \u0027network_caps\u0027: [\u0027gso\u0027, \u0027sg\u0027, \u0027tso\u0027, \u0027tx\u0027],"},{"line_number":8637,"context_line":"                }"},{"line_number":8638,"context_line":"        PciDevice \u003d collections.namedtuple(\u0027PciDevice\u0027,"},{"line_number":8639,"context_line":"                               [\u0027sriov_cap\u0027,"},{"line_number":8640,"context_line":"                                \u0027network_caps\u0027])"},{"line_number":8641,"context_line":"        mydev \u003d PciDevice(**pci_dev)"},{"line_number":8642,"context_line":"        self.assertEqual(self.api._get_vf_pci_device_profile(mydev),"},{"line_number":8643,"context_line":"                         {\u0027pf_mac_address\u0027: \u002752:54:00:1e:59:c6\u0027,"},{"line_number":8644,"context_line":"                          \u0027vf_num\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":6,"id":"24308e08_ec4b59ea","line":8641,"range":{"start_line":8631,"start_character":0,"end_line":8641,"end_character":36},"in_reply_to":"994be77f_bf1dbe6a","updated":"2024-03-01 16:12:57.000000000","message":"Acknowledged","commit_id":"914c3f9e1fc00ad3daad1bd2ed622c803c2d7b12"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"a49eb3436c2fdfb802a9416aaa5f8510f1f9a9cd","unresolved":true,"context_lines":[{"line_number":8628,"context_line":"            {\u0027key\u0027: \u0027val\u0027})"},{"line_number":8629,"context_line":""},{"line_number":8630,"context_line":"    def test__get_vf_pci_device_profile_without_serial_num(self):"},{"line_number":8631,"context_line":"        pci_dev \u003d {"},{"line_number":8632,"context_line":"                    \u0027sriov_cap\u0027: {"},{"line_number":8633,"context_line":"                        \u0027pf_mac_address\u0027: \u002752:54:00:1e:59:c6\u0027,"},{"line_number":8634,"context_line":"                        \u0027vf_num\u0027: 1,"},{"line_number":8635,"context_line":"                    },"},{"line_number":8636,"context_line":"                    \u0027network_caps\u0027: [\u0027gso\u0027, \u0027sg\u0027, \u0027tso\u0027, \u0027tx\u0027],"},{"line_number":8637,"context_line":"                }"},{"line_number":8638,"context_line":"        PciDevice \u003d collections.namedtuple(\u0027PciDevice\u0027,"},{"line_number":8639,"context_line":"                               [\u0027sriov_cap\u0027,"},{"line_number":8640,"context_line":"                                \u0027network_caps\u0027])"},{"line_number":8641,"context_line":"        mydev \u003d PciDevice(**pci_dev)"},{"line_number":8642,"context_line":"        self.assertEqual(self.api._get_vf_pci_device_profile(mydev),"},{"line_number":8643,"context_line":"                         {\u0027pf_mac_address\u0027: \u002752:54:00:1e:59:c6\u0027,"},{"line_number":8644,"context_line":"                          \u0027vf_num\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":6,"id":"994be77f_bf1dbe6a","line":8641,"range":{"start_line":8631,"start_character":0,"end_line":8641,"end_character":36},"in_reply_to":"b7b11faf_f3ad6b1e","updated":"2024-03-01 15:56:20.000000000","message":"Acknowledged","commit_id":"914c3f9e1fc00ad3daad1bd2ed622c803c2d7b12"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9d2693bbaaad26efa484fa71fcf3e7053374d8c9","unresolved":true,"context_lines":[{"line_number":8654,"context_line":"                               [\u0027card_serial_number\u0027,"},{"line_number":8655,"context_line":"                                \u0027sriov_cap\u0027,"},{"line_number":8656,"context_line":"                                \u0027network_caps\u0027])"},{"line_number":8657,"context_line":"        mydev \u003d PciDevice(**pci_dev)"},{"line_number":8658,"context_line":"        self.assertEqual(self.api._get_vf_pci_device_profile(mydev),"},{"line_number":8659,"context_line":"                         {\u0027card_serial_number\u0027: \u0027MT2113X00000\u0027,"},{"line_number":8660,"context_line":"                          \u0027vf_num\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":6,"id":"eca20791_db386176","line":8657,"updated":"2024-03-01 14:20:08.000000000","message":"ditto","commit_id":"914c3f9e1fc00ad3daad1bd2ed622c803c2d7b12"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"a49eb3436c2fdfb802a9416aaa5f8510f1f9a9cd","unresolved":false,"context_lines":[{"line_number":8654,"context_line":"                               [\u0027card_serial_number\u0027,"},{"line_number":8655,"context_line":"                                \u0027sriov_cap\u0027,"},{"line_number":8656,"context_line":"                                \u0027network_caps\u0027])"},{"line_number":8657,"context_line":"        mydev \u003d PciDevice(**pci_dev)"},{"line_number":8658,"context_line":"        self.assertEqual(self.api._get_vf_pci_device_profile(mydev),"},{"line_number":8659,"context_line":"                         {\u0027card_serial_number\u0027: \u0027MT2113X00000\u0027,"},{"line_number":8660,"context_line":"                          \u0027vf_num\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":6,"id":"a36f8faf_101669f7","line":8657,"in_reply_to":"eca20791_db386176","updated":"2024-03-01 15:56:20.000000000","message":"Done","commit_id":"914c3f9e1fc00ad3daad1bd2ed622c803c2d7b12"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9d2693bbaaad26efa484fa71fcf3e7053374d8c9","unresolved":true,"context_lines":[{"line_number":8670,"context_line":"                               [\u0027card_serial_number\u0027,"},{"line_number":8671,"context_line":"                                \u0027sriov_cap\u0027,"},{"line_number":8672,"context_line":"                                \u0027network_caps\u0027])"},{"line_number":8673,"context_line":"        mydev \u003d PciDevice(**pci_dev)"},{"line_number":8674,"context_line":"        self.assertEqual(self.api._get_vf_pci_device_profile(mydev),"},{"line_number":8675,"context_line":"                         {\u0027card_serial_number\u0027: \u0027MT2113X00000\u0027,"},{"line_number":8676,"context_line":"                          \u0027pf_mac_address\u0027: \u002752:54:00:1e:59:c6\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"80be1887_7cd791c0","line":8673,"updated":"2024-03-01 14:20:08.000000000","message":"ditto","commit_id":"914c3f9e1fc00ad3daad1bd2ed622c803c2d7b12"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"a49eb3436c2fdfb802a9416aaa5f8510f1f9a9cd","unresolved":false,"context_lines":[{"line_number":8670,"context_line":"                               [\u0027card_serial_number\u0027,"},{"line_number":8671,"context_line":"                                \u0027sriov_cap\u0027,"},{"line_number":8672,"context_line":"                                \u0027network_caps\u0027])"},{"line_number":8673,"context_line":"        mydev \u003d PciDevice(**pci_dev)"},{"line_number":8674,"context_line":"        self.assertEqual(self.api._get_vf_pci_device_profile(mydev),"},{"line_number":8675,"context_line":"                         {\u0027card_serial_number\u0027: \u0027MT2113X00000\u0027,"},{"line_number":8676,"context_line":"                          \u0027pf_mac_address\u0027: \u002752:54:00:1e:59:c6\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5972c7cb_0727160e","line":8673,"in_reply_to":"80be1887_7cd791c0","updated":"2024-03-01 15:56:20.000000000","message":"Done","commit_id":"914c3f9e1fc00ad3daad1bd2ed622c803c2d7b12"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9d2693bbaaad26efa484fa71fcf3e7053374d8c9","unresolved":true,"context_lines":[{"line_number":8684,"context_line":"        PciDevice \u003d collections.namedtuple(\u0027PciDevice\u0027,"},{"line_number":8685,"context_line":"                               [\u0027sriov_cap\u0027,"},{"line_number":8686,"context_line":"                                \u0027network_caps\u0027])"},{"line_number":8687,"context_line":"        mydev \u003d PciDevice(**pci_dev)"},{"line_number":8688,"context_line":"        self.assertEqual(self.api._get_vf_pci_device_profile(mydev),"},{"line_number":8689,"context_line":"                         {\u0027capabilities\u0027: [\u0027gso\u0027, \u0027sg\u0027, \u0027tso\u0027, \u0027tx\u0027]})"},{"line_number":8690,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"16343c43_ab17a325","line":8687,"updated":"2024-03-01 14:20:08.000000000","message":"ditto","commit_id":"914c3f9e1fc00ad3daad1bd2ed622c803c2d7b12"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"a49eb3436c2fdfb802a9416aaa5f8510f1f9a9cd","unresolved":false,"context_lines":[{"line_number":8684,"context_line":"        PciDevice \u003d collections.namedtuple(\u0027PciDevice\u0027,"},{"line_number":8685,"context_line":"                               [\u0027sriov_cap\u0027,"},{"line_number":8686,"context_line":"                                \u0027network_caps\u0027])"},{"line_number":8687,"context_line":"        mydev \u003d PciDevice(**pci_dev)"},{"line_number":8688,"context_line":"        self.assertEqual(self.api._get_vf_pci_device_profile(mydev),"},{"line_number":8689,"context_line":"                         {\u0027capabilities\u0027: [\u0027gso\u0027, \u0027sg\u0027, \u0027tso\u0027, \u0027tx\u0027]})"},{"line_number":8690,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"25e15cc6_7989e744","line":8687,"in_reply_to":"16343c43_ab17a325","updated":"2024-03-01 15:56:20.000000000","message":"Done","commit_id":"914c3f9e1fc00ad3daad1bd2ed622c803c2d7b12"}]}
