)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"ea44f4306f50f7989dbb6c7d205f4d47253ba9e7","unresolved":false,"context_lines":[{"line_number":15,"context_line":"to set both administrative and effective mac for macvtap ports."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"TODO: sort out unit tests"},{"line_number":18,"context_line":"TODO: reference some commits in libvirt / nova that express the"},{"line_number":19,"context_line":"      \"evolution\" of setting mac for VF"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: Id499bcc49d27f13f7f03481922a3383b4a255da1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3fa7e38b_dce3359f","line":19,"range":{"start_line":18,"start_character":0,"end_line":19,"end_character":39},"updated":"2020-01-07 15:01:57.000000000","message":"here i decided to skip the commits reference\nthe RFE describes the topic.","commit_id":"0dff25cd38aed982003a9d5fd1a0e0519d6371d7"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"5f8cfef6d3ba2861d57b8596b39bf2e1aab9a766","unresolved":false,"context_lines":[{"line_number":17,"context_line":"TODO: sort out unit tests"},{"line_number":18,"context_line":"TODO: reference some commits in libvirt / nova that express the"},{"line_number":19,"context_line":"      \"evolution\" of setting mac for VF"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: Id499bcc49d27f13f7f03481922a3383b4a255da1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3fa7e38b_8bfaff0e","line":20,"updated":"2019-11-27 12:23:46.000000000","message":"TODO: tag with RFE : 1841067","commit_id":"0dff25cd38aed982003a9d5fd1a0e0519d6371d7"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"fd4cb0ee92ca284ff94918a75b19ebe82cb97a2c","unresolved":false,"context_lines":[{"line_number":17,"context_line":"TODO: sort out unit tests"},{"line_number":18,"context_line":"TODO: reference some commits in libvirt / nova that express the"},{"line_number":19,"context_line":"      \"evolution\" of setting mac for VF"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: Id499bcc49d27f13f7f03481922a3383b4a255da1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3fa7e38b_e04c4941","line":20,"in_reply_to":"3fa7e38b_8bfaff0e","updated":"2020-01-07 11:17:01.000000000","message":"You still missed this TODO :) Please link this RFE here as a reference.","commit_id":"0dff25cd38aed982003a9d5fd1a0e0519d6371d7"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"ea44f4306f50f7989dbb6c7d205f4d47253ba9e7","unresolved":false,"context_lines":[{"line_number":17,"context_line":"TODO: sort out unit tests"},{"line_number":18,"context_line":"TODO: reference some commits in libvirt / nova that express the"},{"line_number":19,"context_line":"      \"evolution\" of setting mac for VF"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: Id499bcc49d27f13f7f03481922a3383b4a255da1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3fa7e38b_bcd3d9d2","line":20,"in_reply_to":"3fa7e38b_e04c4941","updated":"2020-01-07 15:01:57.000000000","message":"right ! will fix shortly","commit_id":"0dff25cd38aed982003a9d5fd1a0e0519d6371d7"}],"neutron/plugins/ml2/drivers/mech_sriov/agent/eswitch_manager.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"694a13d412110c4ae816fe76e78f2710f78c7ba7","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        @param ip_link_show_output: \u0027ip link show\u0027 output"},{"line_number":117,"context_line":"        @return: True if VF is assigned as PCI passthorugh, False otherwise"},{"line_number":118,"context_line":"        \"\"\""},{"line_number":119,"context_line":"        if not cls.pf_device_exists(dev_name):"},{"line_number":120,"context_line":"            # If the root PCI path does not exist, then the VF cannot"},{"line_number":121,"context_line":"            # actually have been allocated and there is no way we can"},{"line_number":122,"context_line":"            # manage it."},{"line_number":123,"context_line":"            return False"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        ifname_list \u003d cls.get_netdevs_for_vf(dev_name, vf_index)"},{"line_number":126,"context_line":"        # Note(moshele) kernel \u003c 3.13 doesn\u0027t create symbolic link"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_784d9b39","line":123,"range":{"start_line":119,"start_character":9,"end_line":123,"end_character":24},"updated":"2019-08-15 15:25:45.000000000","message":"that is not correct the PF could be bound to dpdk via the vfio-pci driver and it could have vfs.\n\nthe presence or absence of the netdev does not gurarentee that the vfs dont exist.\n\nthat said based on the current state of libvirt support for vf we might be able to assume this short term.\n\nif we implment https://review.opendev.org/#/c/658785/ we should not assume that this will always be the case.","commit_id":"cf01a33cf95196945bcebeee71bc58838fb404ba"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"0df77943c2a065be16f3edca90810b2f2b6c6391","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        @param ip_link_show_output: \u0027ip link show\u0027 output"},{"line_number":117,"context_line":"        @return: True if VF is assigned as PCI passthorugh, False otherwise"},{"line_number":118,"context_line":"        \"\"\""},{"line_number":119,"context_line":"        if not cls.pf_device_exists(dev_name):"},{"line_number":120,"context_line":"            # If the root PCI path does not exist, then the VF cannot"},{"line_number":121,"context_line":"            # actually have been allocated and there is no way we can"},{"line_number":122,"context_line":"            # manage it."},{"line_number":123,"context_line":"            return False"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        ifname_list \u003d cls.get_netdevs_for_vf(dev_name, vf_index)"},{"line_number":126,"context_line":"        # Note(moshele) kernel \u003c 3.13 doesn\u0027t create symbolic link"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_de3cb793","line":123,"range":{"start_line":119,"start_character":9,"end_line":123,"end_character":24},"in_reply_to":"7faddb67_784d9b39","updated":"2019-08-15 16:44:40.000000000","message":"it guarantees that the VF was not allocated by this agent.\nas we need the PF for macvtap as well.\n\nEmbSwitch are instantiated per PF netdevice provided by \"physical_device_mapping\" configuration.\n\nthis bit is a mere refactoring of is_assigned_vf()\nseparating to : is_assigned_vf_direct() and is_assigned_vf_macvtap()\n\npreserving the same logic.","commit_id":"cf01a33cf95196945bcebeee71bc58838fb404ba"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a026e230e4b95605131cfae12d8ad6b8c805227e","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        @param ip_link_show_output: \u0027ip link show\u0027 output"},{"line_number":117,"context_line":"        @return: True if VF is assigned as PCI passthorugh, False otherwise"},{"line_number":118,"context_line":"        \"\"\""},{"line_number":119,"context_line":"        if not cls.pf_device_exists(dev_name):"},{"line_number":120,"context_line":"            # If the root PCI path does not exist, then the VF cannot"},{"line_number":121,"context_line":"            # actually have been allocated and there is no way we can"},{"line_number":122,"context_line":"            # manage it."},{"line_number":123,"context_line":"            return False"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        ifname_list \u003d cls.get_netdevs_for_vf(dev_name, vf_index)"},{"line_number":126,"context_line":"        # Note(moshele) kernel \u003c 3.13 doesn\u0027t create symbolic link"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_4fe27ea2","line":123,"range":{"start_line":119,"start_character":9,"end_line":123,"end_character":24},"in_reply_to":"7faddb67_de3cb793","updated":"2019-08-28 19:41:39.000000000","message":"I think Adrian is correct. When using the VF, assigned to the macvtap interface, the PF can\u0027t be used or bound to dpdk.","commit_id":"cf01a33cf95196945bcebeee71bc58838fb404ba"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a026e230e4b95605131cfae12d8ad6b8c805227e","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    @classmethod"},{"line_number":72,"context_line":"    def is_assigned_vf_direct(cls, dev_name, vf_index):"},{"line_number":73,"context_line":"        \"\"\"Check if VF is assigned."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        Checks if a given vf index of a given device name is assigned"},{"line_number":76,"context_line":"        as PCI passthrough by checking the relevant path in the system:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_8fce3659","line":73,"updated":"2019-08-28 19:41:39.000000000","message":"maybe \"Check if VF is assigned as PCI passthrough\" to differentiate from \"is_assigned_vf_macvtap\"","commit_id":"7e76da0ec64e3e7e667789740643b8bd73e73054"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a026e230e4b95605131cfae12d8ad6b8c805227e","unresolved":false,"context_lines":[{"line_number":87,"context_line":"            return False"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        path \u003d cls.PCI_PATH % (dev_name, vf_index)"},{"line_number":90,"context_line":"        if not os.path.isdir(path):"},{"line_number":91,"context_line":"            return True"},{"line_number":92,"context_line":"        return False"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @classmethod"},{"line_number":95,"context_line":"    def get_vf_upper_devs(cls, dev_name, vf_index):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_af76923e","line":92,"range":{"start_line":90,"start_character":8,"end_line":92,"end_character":20},"updated":"2019-08-28 19:41:39.000000000","message":"trivial nit:\n  return not os.path.isdir(path)","commit_id":"7e76da0ec64e3e7e667789740643b8bd73e73054"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a026e230e4b95605131cfae12d8ad6b8c805227e","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        upper_macvtap_path \u003d os.path.join(path, \"*\", cls.MAC_VTAP_PREFIX)"},{"line_number":104,"context_line":"        devs \u003d [os.path.basename(dev) for dev in glob.glob(upper_macvtap_path)]"},{"line_number":105,"context_line":"        # file name is in the format of upper_\u003cnetdev_name\u003e extract netdev name"},{"line_number":106,"context_line":"        return [dev.split(\u0027_\u0027)[1] for dev in devs]"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    @classmethod"},{"line_number":109,"context_line":"    def is_assigned_vf_macvtap(cls, dev_name, vf_index):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_afaa1217","line":106,"range":{"start_line":106,"start_character":20,"end_line":106,"end_character":33},"updated":"2019-08-28 19:41:39.000000000","message":"All devs are going to be aaa_bbb ?","commit_id":"7e76da0ec64e3e7e667789740643b8bd73e73054"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a026e230e4b95605131cfae12d8ad6b8c805227e","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    @classmethod"},{"line_number":109,"context_line":"    def is_assigned_vf_macvtap(cls, dev_name, vf_index):"},{"line_number":110,"context_line":"        \"\"\"Check if VF is assigned."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        Checks if a given vf index of a given device name is assigned"},{"line_number":113,"context_line":"        as macvtap by checking the relevant path in the system:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_6fd3ba02","line":110,"range":{"start_line":110,"start_character":11,"end_line":110,"end_character":34},"updated":"2019-08-28 19:41:39.000000000","message":"ditto","commit_id":"7e76da0ec64e3e7e667789740643b8bd73e73054"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"115634fdfff40bce3477c7ebf9b9adb06ccdc90c","unresolved":false,"context_lines":[{"line_number":87,"context_line":"            return False"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        path \u003d cls.PCI_PATH % (dev_name, vf_index)"},{"line_number":90,"context_line":"        if not os.path.isdir(path):"},{"line_number":91,"context_line":"            return True"},{"line_number":92,"context_line":"        return False"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @classmethod"},{"line_number":95,"context_line":"    def get_vf_upper_devs(cls, dev_name, vf_index):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_a2ed0bb9","line":92,"range":{"start_line":90,"start_character":8,"end_line":92,"end_character":20},"updated":"2019-11-19 19:01:43.000000000","message":"trivial:\n   return not os.path.isdir(path)","commit_id":"0dff25cd38aed982003a9d5fd1a0e0519d6371d7"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"d420f3a0328f21145f71bf74f9f9d0554954f157","unresolved":false,"context_lines":[{"line_number":87,"context_line":"            return False"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        path \u003d cls.PCI_PATH % (dev_name, vf_index)"},{"line_number":90,"context_line":"        if not os.path.isdir(path):"},{"line_number":91,"context_line":"            return True"},{"line_number":92,"context_line":"        return False"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @classmethod"},{"line_number":95,"context_line":"    def get_vf_upper_devs(cls, dev_name, vf_index):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_58a58200","line":92,"range":{"start_line":90,"start_character":8,"end_line":92,"end_character":20},"in_reply_to":"3fa7e38b_a2ed0bb9","updated":"2019-12-19 13:38:20.000000000","message":"Done","commit_id":"0dff25cd38aed982003a9d5fd1a0e0519d6371d7"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"115634fdfff40bce3477c7ebf9b9adb06ccdc90c","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        return False"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @classmethod"},{"line_number":95,"context_line":"    def get_vf_upper_devs(cls, dev_name, vf_index):"},{"line_number":96,"context_line":"        \"\"\"Retrieve VF netdev upper (macvtap) devices."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        @param dev_name: pf network device name"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_2256fb5f","line":95,"range":{"start_line":95,"start_character":8,"end_line":95,"end_character":14},"updated":"2019-11-19 19:01:43.000000000","message":"get_vf_macvtap_upper_devs, because this is just for macvtap, right?","commit_id":"0dff25cd38aed982003a9d5fd1a0e0519d6371d7"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"d420f3a0328f21145f71bf74f9f9d0554954f157","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        return False"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @classmethod"},{"line_number":95,"context_line":"    def get_vf_upper_devs(cls, dev_name, vf_index):"},{"line_number":96,"context_line":"        \"\"\"Retrieve VF netdev upper (macvtap) devices."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        @param dev_name: pf network device name"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_3893e6a6","line":95,"range":{"start_line":95,"start_character":8,"end_line":95,"end_character":14},"in_reply_to":"3fa7e38b_2256fb5f","updated":"2019-12-19 13:38:20.000000000","message":"Done","commit_id":"0dff25cd38aed982003a9d5fd1a0e0519d6371d7"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"115634fdfff40bce3477c7ebf9b9adb06ccdc90c","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        upper_macvtap_path \u003d os.path.join(path, \"*\", cls.MAC_VTAP_PREFIX)"},{"line_number":104,"context_line":"        devs \u003d [os.path.basename(dev) for dev in glob.glob(upper_macvtap_path)]"},{"line_number":105,"context_line":"        # file name is in the format of upper_\u003cnetdev_name\u003e extract netdev name"},{"line_number":106,"context_line":"        return [dev.split(\u0027_\u0027)[1] for dev in devs]"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    @classmethod"},{"line_number":109,"context_line":"    def is_assigned_vf_macvtap(cls, dev_name, vf_index):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_62ee338c","line":106,"range":{"start_line":106,"start_character":15,"end_line":106,"end_character":16},"updated":"2019-11-19 19:01:43.000000000","message":"do we need to return a list? using dev_name and vf_index, we should find just one single dev.","commit_id":"0dff25cd38aed982003a9d5fd1a0e0519d6371d7"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"d420f3a0328f21145f71bf74f9f9d0554954f157","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        upper_macvtap_path \u003d os.path.join(path, \"*\", cls.MAC_VTAP_PREFIX)"},{"line_number":104,"context_line":"        devs \u003d [os.path.basename(dev) for dev in glob.glob(upper_macvtap_path)]"},{"line_number":105,"context_line":"        # file name is in the format of upper_\u003cnetdev_name\u003e extract netdev name"},{"line_number":106,"context_line":"        return [dev.split(\u0027_\u0027)[1] for dev in devs]"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    @classmethod"},{"line_number":109,"context_line":"    def is_assigned_vf_macvtap(cls, dev_name, vf_index):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_98ca1a9e","line":106,"range":{"start_line":106,"start_character":15,"end_line":106,"end_character":16},"in_reply_to":"3fa7e38b_62ee338c","updated":"2019-12-19 13:38:20.000000000","message":"There can potentially be more than one macvtap upper dev.\n\nensuring there is exactly one macvtap device should be at upper layers imo.","commit_id":"0dff25cd38aed982003a9d5fd1a0e0519d6371d7"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"115634fdfff40bce3477c7ebf9b9adb06ccdc90c","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        @param vf_index: vf index"},{"line_number":117,"context_line":"        @return: True if VF is assigned, False otherwise"},{"line_number":118,"context_line":"        \"\"\""},{"line_number":119,"context_line":"        if not cls.pf_device_exists(dev_name):"},{"line_number":120,"context_line":"            # If the root PCI path does not exist, then the VF cannot"},{"line_number":121,"context_line":"            # actually have been allocated and there is no way we can"},{"line_number":122,"context_line":"            # manage it."},{"line_number":123,"context_line":"            return False"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        return bool(cls.get_vf_upper_devs(dev_name, vf_index))"},{"line_number":126,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_6212b3b6","line":123,"range":{"start_line":119,"start_character":8,"end_line":123,"end_character":24},"updated":"2019-11-19 19:01:43.000000000","message":"nit: we are using this twice. Maybe (just maybe) we can create a function, adding this note to the description.","commit_id":"0dff25cd38aed982003a9d5fd1a0e0519d6371d7"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"d420f3a0328f21145f71bf74f9f9d0554954f157","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        @param vf_index: vf index"},{"line_number":117,"context_line":"        @return: True if VF is assigned, False otherwise"},{"line_number":118,"context_line":"        \"\"\""},{"line_number":119,"context_line":"        if not cls.pf_device_exists(dev_name):"},{"line_number":120,"context_line":"            # If the root PCI path does not exist, then the VF cannot"},{"line_number":121,"context_line":"            # actually have been allocated and there is no way we can"},{"line_number":122,"context_line":"            # manage it."},{"line_number":123,"context_line":"            return False"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        return bool(cls.get_vf_upper_devs(dev_name, vf_index))"},{"line_number":126,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_787f1e17","line":123,"range":{"start_line":119,"start_character":8,"end_line":123,"end_character":24},"in_reply_to":"3fa7e38b_6212b3b6","updated":"2019-12-19 13:38:20.000000000","message":"I get what you are saying but defining a new method just for the comment is a bit overkill no ?\n\ni can move the check with the comment ofc to get_pci_device() as its the one place that calls both methods where this check is performed","commit_id":"0dff25cd38aed982003a9d5fd1a0e0519d6371d7"}],"neutron/tests/unit/plugins/ml2/drivers/mech_sriov/agent/test_eswitch_manager.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"61e1f33dbd067e72fdd14625e9f51d58abad8039","unresolved":false,"context_lines":[{"line_number":443,"context_line":"                mock.patch(\"neutron.plugins.ml2.drivers.mech_sriov.agent.\""},{"line_number":444,"context_line":"                           \"eswitch_manager.PciOsWrapper.pf_device_exists\","},{"line_number":445,"context_line":"                           return_value\u003dTrue), \\"},{"line_number":446,"context_line":"                mock.patch(\"neutron.plugins.ml2.drivers.mech_sriov.agent.\""},{"line_number":447,"context_line":"                           \"eswitch_manager.PciOsWrapper.\""},{"line_number":448,"context_line":"                           \"is_assigned_vf_direct\", return_value\u003dTrue):"},{"line_number":449,"context_line":"            result \u003d emb_switch.get_assigned_devices_info()"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_bd8e1ed5","line":446,"updated":"2020-01-14 09:01:42.000000000","message":"nit: I know this something common in this file, but is desirable to patch the imported object instead of mocking the reference: mock.patch.object (preferred) vs mock.patch","commit_id":"6f7b88d0808bee36b9d089ce8d3c0f98ae0b2dea"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"c0db0433eb4ce9f810de324ba455d90224d67507","unresolved":false,"context_lines":[{"line_number":443,"context_line":"                mock.patch(\"neutron.plugins.ml2.drivers.mech_sriov.agent.\""},{"line_number":444,"context_line":"                           \"eswitch_manager.PciOsWrapper.pf_device_exists\","},{"line_number":445,"context_line":"                           return_value\u003dTrue), \\"},{"line_number":446,"context_line":"                mock.patch(\"neutron.plugins.ml2.drivers.mech_sriov.agent.\""},{"line_number":447,"context_line":"                           \"eswitch_manager.PciOsWrapper.\""},{"line_number":448,"context_line":"                           \"is_assigned_vf_direct\", return_value\u003dTrue):"},{"line_number":449,"context_line":"            result \u003d emb_switch.get_assigned_devices_info()"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_814b9f26","line":446,"in_reply_to":"3fa7e38b_bd8e1ed5","updated":"2020-01-15 14:46:17.000000000","message":"yes, that way it will not affect other components.\nwent with uniformity in this case.","commit_id":"6f7b88d0808bee36b9d089ce8d3c0f98ae0b2dea"}],"neutron/tests/unit/plugins/ml2/drivers/mech_sriov/agent/test_sriov_nic_agent.py":[{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"4452d2ed629ddca1c6c4e576a5f615c57b332c34","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        mock.patch(\u0027oslo_service.loopingcall.\u0027"},{"line_number":54,"context_line":"                   \u0027FixedIntervalLoopingCall\u0027,"},{"line_number":55,"context_line":"                   new\u003dMockFixedIntervalLoopingCall)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        self.agent \u003d sriov_nic_agent.SriovNicSwitchAgent({}, {}, 0, {}, {}, {})"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @mock.patch(\"neutron.plugins.ml2.drivers.mech_sriov.agent.eswitch_manager\""}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_9f928f57","line":56,"updated":"2020-01-07 15:39:45.000000000","message":"accidentally rebased hence the changes show up here when diffing against PS6","commit_id":"6f7b88d0808bee36b9d089ce8d3c0f98ae0b2dea"}]}
