)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"6b4ed083959463ee54419c7ef4e8a08094c52e1c","unresolved":false,"context_lines":[{"line_number":12,"context_line":"  * When sync deleted SmartNic ports on Neutron OVS agent restart,"},{"line_number":13,"context_line":"    it will remove the port from integration bridge not mapped to"},{"line_number":14,"context_line":"    neutron SmartNic ports."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I7077577cca54329fbcb77fbde730389835ab6497"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_8d78822c","line":15,"updated":"2020-01-19 07:50:00.000000000","message":"is there a bug that needs referencing ?","commit_id":"579625d55626c538ac3f4295d415d55ae6a089a3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"71b37b897cd6a37b33c333412904c6301a3b4543","unresolved":false,"context_lines":[{"line_number":12,"context_line":"  * When sync deleted SmartNic ports on Neutron OVS agent restart,"},{"line_number":13,"context_line":"    it will remove the port from integration bridge not mapped to"},{"line_number":14,"context_line":"    neutron SmartNic ports."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I7077577cca54329fbcb77fbde730389835ab6497"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_eca231ac","line":15,"in_reply_to":"3fa7e38b_8d78822c","updated":"2020-01-21 23:13:48.000000000","message":"i think we should probably take a step back.\nlooking back on the spec my concerns around the design in stein were not really addressed and this has not been re proposed since then i am beginning to think we should have a new spec or at least a mailing list discussion around the design and its direction.","commit_id":"579625d55626c538ac3f4295d415d55ae6a089a3"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"e787534bf6c2590f6aadef9dbb07a18c7a7c6550","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     waleed mousa \u003cwaleedm@mellanox.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-02-24 13:45:14 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix: Removing SmartNIC OVS representor port on instance tear down and resync"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change enhances removing smartnic ports:"},{"line_number":10,"context_line":"  * When deleting the instance and so deleting SmartNic port,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"1fa4df85_c4fc6a40","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":4},"updated":"2020-03-03 08:17:13.000000000","message":"change to  \"neutron ovs agent: Removing SmartNIC OVS representor port on instance tear down and resync\"","commit_id":"4d4342e60ac662b95f0ca994dba4bf521538e7fe"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"368270a3792118d86936b534fdd55650577f070c","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2020-02-24 13:45:14 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix: Removing SmartNIC OVS representor port on instance tear down and resync"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change enhances removing smartnic ports:"},{"line_number":10,"context_line":"  * When deleting the instance and so deleting SmartNic port,"},{"line_number":11,"context_line":"    it will remove the unbound ports from integration bridge"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"1fa4df85_7bd2fa36","line":8,"updated":"2020-02-24 14:09:42.000000000","message":"Can you add a short description on what happens today ?\n(basically the flow where a port is unbound from an agent running on smartnic was not implemented causing representor ports to remain connected to the integration bridge)","commit_id":"4d4342e60ac662b95f0ca994dba4bf521538e7fe"}],"neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py":[{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"944a13a7f48b55e40dbd8b158e01b7a639e079d2","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        self.activated_bindings \u003d set()"},{"line_number":207,"context_line":"        # Stores smartnic ports update"},{"line_number":208,"context_line":"        self.updated_smartnic_ports \u003d list()"},{"line_number":209,"context_line":"        # Stores smartnic ports remove"},{"line_number":210,"context_line":"        self.deleted_smartnic_ports \u003d set()"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        self.network_ports \u003d collections.defaultdict(set)"},{"line_number":213,"context_line":"        # keeps association between ports and ofports to detect ofport change"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_91c5f05f","line":210,"range":{"start_line":209,"start_character":8,"end_line":210,"end_character":43},"updated":"2020-01-20 14:45:15.000000000","message":"i wonder if we could make due only with self.updated_smartnic_ports\n\nin a sense that it will contain entries for unbound ports as well.\nThen treat_smartnic_ports() would deal with both added and removed ports.","commit_id":"579625d55626c538ac3f4295d415d55ae6a089a3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"71b37b897cd6a37b33c333412904c6301a3b4543","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        self.activated_bindings \u003d set()"},{"line_number":207,"context_line":"        # Stores smartnic ports update"},{"line_number":208,"context_line":"        self.updated_smartnic_ports \u003d list()"},{"line_number":209,"context_line":"        # Stores smartnic ports remove"},{"line_number":210,"context_line":"        self.deleted_smartnic_ports \u003d set()"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        self.network_ports \u003d collections.defaultdict(set)"},{"line_number":213,"context_line":"        # keeps association between ports and ofports to detect ofport change"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_ac6519e4","line":210,"range":{"start_line":209,"start_character":8,"end_line":210,"end_character":43},"in_reply_to":"3fa7e38b_91c5f05f","updated":"2020-01-21 23:13:48.000000000","message":"no it does not make sense because you should not have the treat_smartnic_ports function adding or removing ports or calling os-vif.\n\nnova via its virtdirer and os-vif manages the l1 state of network backend. netuon should be managing only the l2+ configuration only.\n\nin the case of an ironic deployment then the ironic virt driver in nova or the ironic code should be using os-vif to manage the l1 config.\n\nin the virt driver case that would involve extending\nhttps://github.com/openstack/nova/blob/master/nova/virt/ironic/driver.py#L1535-L1642\nto invoke os-vif to plug and unplug the interface.\n\nalternately you could have done the integration in the ironic side. doing this in neutron however breaks the mental model of by making the neutron agent responsible for l1 configuration.","commit_id":"579625d55626c538ac3f4295d415d55ae6a089a3"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"875f116b582461ca51927ed3cc60665ce77d0bb3","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        self.activated_bindings \u003d set()"},{"line_number":207,"context_line":"        # Stores smartnic ports update"},{"line_number":208,"context_line":"        self.updated_smartnic_ports \u003d list()"},{"line_number":209,"context_line":"        # Stores smartnic ports remove"},{"line_number":210,"context_line":"        self.deleted_smartnic_ports \u003d set()"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        self.network_ports \u003d collections.defaultdict(set)"},{"line_number":213,"context_line":"        # keeps association between ports and ofports to detect ofport change"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_9b5bad53","line":210,"range":{"start_line":209,"start_character":8,"end_line":210,"end_character":43},"in_reply_to":"3fa7e38b_ac6519e4","updated":"2020-01-22 09:30:04.000000000","message":"I don\u0027t think this is related directly to what this patch is trying to solve.\n\nthe approved direction today is that ovs agent shall delegate the L1 operations to os-vif like nova does since there is no nova entity running on smartNIC.\n\nThe smartNIC use case (currently baremetal only) which is implemented is the local one, where ovs agent runs *on* smartNIC. (it is the only openstack entity currently present on SmartNIC)\n\nalso i think you could use ironic with and without nova according to [1].\n\nIn addition opening another communication channel (directly to ovsdb on SmartNIC) also may compromise security, not an expert here in any way, just an opinion.\n\n[1] https://docs.openstack.org/ironic/latest/install/standalone.html","commit_id":"579625d55626c538ac3f4295d415d55ae6a089a3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"71b37b897cd6a37b33c333412904c6301a3b4543","unresolved":false,"context_lines":[{"line_number":552,"context_line":"        return (not port_binding[\u0027host\u0027] and"},{"line_number":553,"context_line":"                port_binding[\u0027vif_type\u0027] \u003d\u003d portbindings.VIF_TYPE_UNBOUND)"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"    def treat_smartnic_port(self, smartnic_port_data):"},{"line_number":556,"context_line":"        mac \u003d smartnic_port_data[\u0027mac\u0027]"},{"line_number":557,"context_line":"        vm_uuid \u003d smartnic_port_data[\u0027vm_uuid\u0027]"},{"line_number":558,"context_line":"        rep_port \u003d smartnic_port_data[\u0027iface_name\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_0c546dfc","line":555,"range":{"start_line":555,"start_character":8,"end_line":555,"end_character":27},"updated":"2020-01-21 23:13:48.000000000","message":"you should not have needed to add this fucntion at all.","commit_id":"579625d55626c538ac3f4295d415d55ae6a089a3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"71b37b897cd6a37b33c333412904c6301a3b4543","unresolved":false,"context_lines":[{"line_number":562,"context_line":"        instance_info \u003d vif_instance_object.InstanceInfo(uuid\u003dvm_uuid)"},{"line_number":563,"context_line":"        vif \u003d self._get_vif_object(iface_id, rep_port, mac)"},{"line_number":564,"context_line":"        try:"},{"line_number":565,"context_line":"            if vif_type \u003d\u003d portbindings.VIF_TYPE_OVS:"},{"line_number":566,"context_line":"                os_vif.plug(vif, instance_info)"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"            elif vif_type \u003d\u003d portbindings.VIF_TYPE_UNBOUND:"},{"line_number":569,"context_line":"                os_vif.unplug(vif, instance_info)"},{"line_number":570,"context_line":""},{"line_number":571,"context_line":"            else:"},{"line_number":572,"context_line":"                LOG.error(\"Unexpected vif_type:%(vif_type)s for \""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_8c2a9d75","line":569,"range":{"start_line":565,"start_character":9,"end_line":569,"end_character":49},"updated":"2020-01-21 23:13:48.000000000","message":"this is incorrect.\n\nthe agent should not be calling os-vif to do the pluging and unpluging. in the libvirt case the virt driver will call os-vif in the ironic case nova currently calls the ironic api but it would have been correct to call os-vif in that case or for ironic to do so to manage pluggin the interfaces.","commit_id":"579625d55626c538ac3f4295d415d55ae6a089a3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"71b37b897cd6a37b33c333412904c6301a3b4543","unresolved":false,"context_lines":[{"line_number":602,"context_line":"                \u0027iface_id\u0027: port_data[\u0027id\u0027],"},{"line_number":603,"context_line":"                \u0027vif_type\u0027: port_binding[\u0027vif_type\u0027]})"},{"line_number":604,"context_line":""},{"line_number":605,"context_line":"    def treat_smartnic_port_deleted(self, port_ids):"},{"line_number":606,"context_line":"        for port_id in port_ids:"},{"line_number":607,"context_line":"            ovs_port \u003d self.int_br.get_vif_port_by_id(port_id)"},{"line_number":608,"context_line":"            if ovs_port:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_8c3ffdb0","line":605,"range":{"start_line":605,"start_character":8,"end_line":605,"end_character":35},"updated":"2020-01-21 23:13:48.000000000","message":"similarly you should not need to have this function.\n\nthe nova compute manager will call unplug_vifs on the virt dirver, in the libvirt case it will call os-vif to unplug th port form ovs and in the iroinc driver it calls the ironic api. that should have been either modifited to call os-vif or ironic should have been modified to call os-vif.","commit_id":"579625d55626c538ac3f4295d415d55ae6a089a3"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"3ef64bb7f9353b8770800fddac8802f80c33c140","unresolved":false,"context_lines":[{"line_number":525,"context_line":"            # notification."},{"line_number":526,"context_line":"            self.updated_ports.add(port[\u0027id\u0027])"},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        if not self.conf.AGENT.baremetal_smartnic:"},{"line_number":529,"context_line":"            return"},{"line_number":530,"context_line":"        # In case of smart-nic port, add smart-nic representor port to"},{"line_number":531,"context_line":"        # the integration bridge."},{"line_number":532,"context_line":"        port_data \u003d (self.plugin_rpc.remote_resource_cache"},{"line_number":533,"context_line":"                     .get_resource_by_id(resources.PORT, port[\u0027id\u0027]))"},{"line_number":534,"context_line":"        if not port_data:"},{"line_number":535,"context_line":"            LOG.warning(\u0027Failed to get port details, port id: %s\u0027, port[\u0027id\u0027])"},{"line_number":536,"context_line":"            return"},{"line_number":537,"context_line":"        for port_binding in port_data.get(\u0027bindings\u0027, []):"},{"line_number":538,"context_line":"            if port_binding[\u0027vnic_type\u0027] \u003d\u003d portbindings.VNIC_SMARTNIC:"},{"line_number":539,"context_line":"                if port_binding[\u0027host\u0027] \u003d\u003d self.conf.host:"},{"line_number":540,"context_line":"                    self._add_port_to_updated_smartnic_ports(port_data,"},{"line_number":541,"context_line":"                                                             port_binding)"},{"line_number":542,"context_line":"                elif (not port_binding[\u0027host\u0027] and port_binding[\u0027vif_type\u0027] \u003d\u003d"},{"line_number":543,"context_line":"                      portbindings.VIF_TYPE_UNBOUND):"},{"line_number":544,"context_line":"                    self._add_deleted_port_to_updated_smartnic_ports("},{"line_number":545,"context_line":"                            port[\u0027id\u0027])"},{"line_number":546,"context_line":"                else:"},{"line_number":547,"context_line":"                    # The port doesn\u0027t belong to this Smart NIC,"},{"line_number":548,"context_line":"                    # the reason for this could be multi Smart NIC"},{"line_number":549,"context_line":"                    # setup."},{"line_number":550,"context_line":"                    LOG.info(\"Smart NIC port %(port_id)s does not belong \""},{"line_number":551,"context_line":"                             \"to host %(host)s\","},{"line_number":552,"context_line":"                             {\u0027port_id\u0027: port[\u0027id\u0027],"},{"line_number":553,"context_line":"                              \u0027host\u0027: self.conf.host})"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"    def treat_smartnic_port(self, smartnic_port_data):"},{"line_number":556,"context_line":"        mac \u003d smartnic_port_data[\u0027mac\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_253f65b3","line":553,"range":{"start_line":528,"start_character":0,"end_line":553,"end_character":54},"updated":"2020-02-19 09:22:38.000000000","message":"nit: \nNot directly related to this commit, but it would be nice to have the smartnic port update logic as a separate method\n(FUP ? :) )\ne.g\n\ndef port_update(...):\n    ...\n    common logic\n    ...\n    if conf.AGENT.baremental_smartnic:\n         self._port_update_smartnic(...)","commit_id":"5f4d10aa2287e2e4e0e146fdcc557c213420f560"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"aaaba9836ed0e3696572d045c22777f2ed3e687a","unresolved":false,"context_lines":[{"line_number":525,"context_line":"            # notification."},{"line_number":526,"context_line":"            self.updated_ports.add(port[\u0027id\u0027])"},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        if not self.conf.AGENT.baremetal_smartnic:"},{"line_number":529,"context_line":"            return"},{"line_number":530,"context_line":"        # In case of smart-nic port, add smart-nic representor port to"},{"line_number":531,"context_line":"        # the integration bridge."},{"line_number":532,"context_line":"        port_data \u003d (self.plugin_rpc.remote_resource_cache"},{"line_number":533,"context_line":"                     .get_resource_by_id(resources.PORT, port[\u0027id\u0027]))"},{"line_number":534,"context_line":"        if not port_data:"},{"line_number":535,"context_line":"            LOG.warning(\u0027Failed to get port details, port id: %s\u0027, port[\u0027id\u0027])"},{"line_number":536,"context_line":"            return"},{"line_number":537,"context_line":"        for port_binding in port_data.get(\u0027bindings\u0027, []):"},{"line_number":538,"context_line":"            if port_binding[\u0027vnic_type\u0027] \u003d\u003d portbindings.VNIC_SMARTNIC:"},{"line_number":539,"context_line":"                if port_binding[\u0027host\u0027] \u003d\u003d self.conf.host:"},{"line_number":540,"context_line":"                    self._add_port_to_updated_smartnic_ports(port_data,"},{"line_number":541,"context_line":"                                                             port_binding)"},{"line_number":542,"context_line":"                elif (not port_binding[\u0027host\u0027] and port_binding[\u0027vif_type\u0027] \u003d\u003d"},{"line_number":543,"context_line":"                      portbindings.VIF_TYPE_UNBOUND):"},{"line_number":544,"context_line":"                    self._add_deleted_port_to_updated_smartnic_ports("},{"line_number":545,"context_line":"                            port[\u0027id\u0027])"},{"line_number":546,"context_line":"                else:"},{"line_number":547,"context_line":"                    # The port doesn\u0027t belong to this Smart NIC,"},{"line_number":548,"context_line":"                    # the reason for this could be multi Smart NIC"},{"line_number":549,"context_line":"                    # setup."},{"line_number":550,"context_line":"                    LOG.info(\"Smart NIC port %(port_id)s does not belong \""},{"line_number":551,"context_line":"                             \"to host %(host)s\","},{"line_number":552,"context_line":"                             {\u0027port_id\u0027: port[\u0027id\u0027],"},{"line_number":553,"context_line":"                              \u0027host\u0027: self.conf.host})"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"    def treat_smartnic_port(self, smartnic_port_data):"},{"line_number":556,"context_line":"        mac \u003d smartnic_port_data[\u0027mac\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"1fa4df85_29a9a9de","line":553,"range":{"start_line":528,"start_character":0,"end_line":553,"end_character":54},"in_reply_to":"3fa7e38b_253f65b3","updated":"2020-02-24 08:56:22.000000000","message":"Will do in a follow-up patch","commit_id":"5f4d10aa2287e2e4e0e146fdcc557c213420f560"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"3ef64bb7f9353b8770800fddac8802f80c33c140","unresolved":false,"context_lines":[{"line_number":707,"context_line":"        smartnic_ports_map \u003d {smartnic_port[\u0027id\u0027]: smartnic_port"},{"line_number":708,"context_line":"                              for smartnic_port in smartnic_ports}"},{"line_number":709,"context_line":"        smartnic_port_ids \u003d set(smartnic_ports_map.keys())"},{"line_number":710,"context_line":"        port_ids \u003d self.int_br.get_vif_port_set()"},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"        def _process_added_ports(smartnic_ports_map, added_port_ids):"},{"line_number":713,"context_line":"            for port_id in added_port_ids:"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_05a4a9a3","line":710,"range":{"start_line":710,"start_character":8,"end_line":710,"end_character":16},"updated":"2020-02-19 09:22:38.000000000","message":"nit: current_port_ids ?","commit_id":"5f4d10aa2287e2e4e0e146fdcc557c213420f560"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"aaaba9836ed0e3696572d045c22777f2ed3e687a","unresolved":false,"context_lines":[{"line_number":707,"context_line":"        smartnic_ports_map \u003d {smartnic_port[\u0027id\u0027]: smartnic_port"},{"line_number":708,"context_line":"                              for smartnic_port in smartnic_ports}"},{"line_number":709,"context_line":"        smartnic_port_ids \u003d set(smartnic_ports_map.keys())"},{"line_number":710,"context_line":"        port_ids \u003d self.int_br.get_vif_port_set()"},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"        def _process_added_ports(smartnic_ports_map, added_port_ids):"},{"line_number":713,"context_line":"            for port_id in added_port_ids:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1fa4df85_c9ad75eb","line":710,"range":{"start_line":710,"start_character":8,"end_line":710,"end_character":16},"in_reply_to":"3fa7e38b_05a4a9a3","updated":"2020-02-24 08:56:22.000000000","message":"Done","commit_id":"5f4d10aa2287e2e4e0e146fdcc557c213420f560"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"3ef64bb7f9353b8770800fddac8802f80c33c140","unresolved":false,"context_lines":[{"line_number":719,"context_line":""},{"line_number":720,"context_line":"        def _process_removed_ports(removed_port_ids):"},{"line_number":721,"context_line":"            for port_id in removed_port_ids:"},{"line_number":722,"context_line":"                self._add_deleted_port_to_updated_smartnic_ports(port_id)"},{"line_number":723,"context_line":""},{"line_number":724,"context_line":"        _process_added_ports(smartnic_ports_map, smartnic_port_ids - port_ids)"},{"line_number":725,"context_line":"        _process_removed_ports(port_ids - smartnic_port_ids)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_253d2529","line":722,"range":{"start_line":722,"start_character":21,"end_line":722,"end_character":64},"updated":"2020-02-19 09:22:38.000000000","message":"This will trigger an additional ovs db query right ? \nyou already know the port is plugged to ovs from line #710\n\nsince _add_deleted_port_to_updated_smartnic_ports() is called from port_update, maybe move the ovs-db query to port_update as its the only place which actually needs it.","commit_id":"5f4d10aa2287e2e4e0e146fdcc557c213420f560"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"aaaba9836ed0e3696572d045c22777f2ed3e687a","unresolved":false,"context_lines":[{"line_number":719,"context_line":""},{"line_number":720,"context_line":"        def _process_removed_ports(removed_port_ids):"},{"line_number":721,"context_line":"            for port_id in removed_port_ids:"},{"line_number":722,"context_line":"                self._add_deleted_port_to_updated_smartnic_ports(port_id)"},{"line_number":723,"context_line":""},{"line_number":724,"context_line":"        _process_added_ports(smartnic_ports_map, smartnic_port_ids - port_ids)"},{"line_number":725,"context_line":"        _process_removed_ports(port_ids - smartnic_port_ids)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1fa4df85_89b77d3b","line":722,"range":{"start_line":722,"start_character":21,"end_line":722,"end_character":64},"in_reply_to":"3fa7e38b_253d2529","updated":"2020-02-24 08:56:22.000000000","message":"Done","commit_id":"5f4d10aa2287e2e4e0e146fdcc557c213420f560"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"e787534bf6c2590f6aadef9dbb07a18c7a7c6550","unresolved":false,"context_lines":[{"line_number":541,"context_line":"                                                             port_binding)"},{"line_number":542,"context_line":"                elif (not port_binding[\u0027host\u0027] and port_binding[\u0027vif_type\u0027] \u003d\u003d"},{"line_number":543,"context_line":"                      portbindings.VIF_TYPE_UNBOUND):"},{"line_number":544,"context_line":"                    ovs_port \u003d self.int_br.get_vif_port_by_id(port[\u0027id\u0027])"},{"line_number":545,"context_line":"                    if ovs_port:"},{"line_number":546,"context_line":"                        self._add_deleted_port_to_updated_smartnic_ports("},{"line_number":547,"context_line":"                            ovs_port)"}],"source_content_type":"text/x-python","patch_set":8,"id":"1fa4df85_8430b209","line":544,"range":{"start_line":544,"start_character":20,"end_line":544,"end_character":73},"updated":"2020-03-03 08:17:13.000000000","message":"so this will be called on each port which is unbonded even if it not related to the agent.","commit_id":"4d4342e60ac662b95f0ca994dba4bf521538e7fe"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"ea12f675d6af4854975edeead8334da13af34195","unresolved":false,"context_lines":[{"line_number":541,"context_line":"                                                             port_binding)"},{"line_number":542,"context_line":"                elif (not port_binding[\u0027host\u0027] and port_binding[\u0027vif_type\u0027] \u003d\u003d"},{"line_number":543,"context_line":"                      portbindings.VIF_TYPE_UNBOUND):"},{"line_number":544,"context_line":"                    ovs_port \u003d self.int_br.get_vif_port_by_id(port[\u0027id\u0027])"},{"line_number":545,"context_line":"                    if ovs_port:"},{"line_number":546,"context_line":"                        self._add_deleted_port_to_updated_smartnic_ports("},{"line_number":547,"context_line":"                            ovs_port)"}],"source_content_type":"text/x-python","patch_set":8,"id":"1fa4df85_1f3816ed","line":544,"range":{"start_line":544,"start_character":20,"end_line":544,"end_character":73},"in_reply_to":"1fa4df85_8430b209","updated":"2020-03-03 14:13:11.000000000","message":"it\u0027s already fixed","commit_id":"4d4342e60ac662b95f0ca994dba4bf521538e7fe"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"de59fc2c13c830e1794113e9e58ced7c5c1341a7","unresolved":false,"context_lines":[{"line_number":544,"context_line":"                elif (not port_binding[\u0027host\u0027] and port_binding[\u0027vif_type\u0027] \u003d\u003d"},{"line_number":545,"context_line":"                      portbindings.VIF_TYPE_UNBOUND and port[\u0027id\u0027] in"},{"line_number":546,"context_line":"                      self.current_int_br_smartnic_ports_map.keys()):"},{"line_number":547,"context_line":"                    ovs_port \u003d \\"},{"line_number":548,"context_line":"                        self.current_int_br_smartnic_ports_map[port[\u0027id\u0027]]"},{"line_number":549,"context_line":"                    self._add_deleted_port_to_updated_smartnic_ports(ovs_port)"},{"line_number":550,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1fa4df85_078a5b1a","line":547,"range":{"start_line":547,"start_character":31,"end_line":547,"end_character":32},"updated":"2020-02-26 20:56:21.000000000","message":"please use brackets instead of slashes :)","commit_id":"69f3c8c235e0aee28beea1248e2fb722f68d7dab"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"7d084fea377e2d239ef704200cfcb2405278925a","unresolved":false,"context_lines":[{"line_number":544,"context_line":"                elif (not port_binding[\u0027host\u0027] and port_binding[\u0027vif_type\u0027] \u003d\u003d"},{"line_number":545,"context_line":"                      portbindings.VIF_TYPE_UNBOUND and port[\u0027id\u0027] in"},{"line_number":546,"context_line":"                      self.current_int_br_smartnic_ports_map.keys()):"},{"line_number":547,"context_line":"                    ovs_port \u003d \\"},{"line_number":548,"context_line":"                        self.current_int_br_smartnic_ports_map[port[\u0027id\u0027]]"},{"line_number":549,"context_line":"                    self._add_deleted_port_to_updated_smartnic_ports(ovs_port)"},{"line_number":550,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1fa4df85_6ef687fc","line":547,"range":{"start_line":547,"start_character":31,"end_line":547,"end_character":32},"in_reply_to":"1fa4df85_078a5b1a","updated":"2020-02-26 23:00:28.000000000","message":"Done","commit_id":"69f3c8c235e0aee28beea1248e2fb722f68d7dab"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"de59fc2c13c830e1794113e9e58ced7c5c1341a7","unresolved":false,"context_lines":[{"line_number":545,"context_line":"                      portbindings.VIF_TYPE_UNBOUND and port[\u0027id\u0027] in"},{"line_number":546,"context_line":"                      self.current_int_br_smartnic_ports_map.keys()):"},{"line_number":547,"context_line":"                    ovs_port \u003d \\"},{"line_number":548,"context_line":"                        self.current_int_br_smartnic_ports_map[port[\u0027id\u0027]]"},{"line_number":549,"context_line":"                    self._add_deleted_port_to_updated_smartnic_ports(ovs_port)"},{"line_number":550,"context_line":""},{"line_number":551,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":11,"id":"1fa4df85_a7910755","line":548,"updated":"2020-02-26 20:56:21.000000000","message":"nit: do You need this additional variable? Can\u0027t You simply pass as an argument in line below?","commit_id":"69f3c8c235e0aee28beea1248e2fb722f68d7dab"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"7d084fea377e2d239ef704200cfcb2405278925a","unresolved":false,"context_lines":[{"line_number":545,"context_line":"                      portbindings.VIF_TYPE_UNBOUND and port[\u0027id\u0027] in"},{"line_number":546,"context_line":"                      self.current_int_br_smartnic_ports_map.keys()):"},{"line_number":547,"context_line":"                    ovs_port \u003d \\"},{"line_number":548,"context_line":"                        self.current_int_br_smartnic_ports_map[port[\u0027id\u0027]]"},{"line_number":549,"context_line":"                    self._add_deleted_port_to_updated_smartnic_ports(ovs_port)"},{"line_number":550,"context_line":""},{"line_number":551,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":11,"id":"1fa4df85_4ef38b0b","line":548,"in_reply_to":"1fa4df85_a7910755","updated":"2020-02-26 23:00:28.000000000","message":"Done","commit_id":"69f3c8c235e0aee28beea1248e2fb722f68d7dab"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"de59fc2c13c830e1794113e9e58ced7c5c1341a7","unresolved":false,"context_lines":[{"line_number":569,"context_line":"        try:"},{"line_number":570,"context_line":"            if vif_type \u003d\u003d portbindings.VIF_TYPE_OVS:"},{"line_number":571,"context_line":"                os_vif.plug(vif, instance_info)"},{"line_number":572,"context_line":"                self.current_int_br_smartnic_ports_map[iface_id] \u003d \\"},{"line_number":573,"context_line":"                    self.create_int_br_smartnic_port_map(iface_id,"},{"line_number":574,"context_line":"                                                         mac, rep_port)"},{"line_number":575,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1fa4df85_278f572b","line":572,"range":{"start_line":572,"start_character":67,"end_line":572,"end_character":68},"updated":"2020-02-26 20:56:21.000000000","message":"same here","commit_id":"69f3c8c235e0aee28beea1248e2fb722f68d7dab"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"7d084fea377e2d239ef704200cfcb2405278925a","unresolved":false,"context_lines":[{"line_number":569,"context_line":"        try:"},{"line_number":570,"context_line":"            if vif_type \u003d\u003d portbindings.VIF_TYPE_OVS:"},{"line_number":571,"context_line":"                os_vif.plug(vif, instance_info)"},{"line_number":572,"context_line":"                self.current_int_br_smartnic_ports_map[iface_id] \u003d \\"},{"line_number":573,"context_line":"                    self.create_int_br_smartnic_port_map(iface_id,"},{"line_number":574,"context_line":"                                                         mac, rep_port)"},{"line_number":575,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1fa4df85_2ed88f7d","line":572,"range":{"start_line":572,"start_character":67,"end_line":572,"end_character":68},"in_reply_to":"1fa4df85_278f572b","updated":"2020-02-26 23:00:28.000000000","message":"Done","commit_id":"69f3c8c235e0aee28beea1248e2fb722f68d7dab"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"9fed6485ef7ef6840df597d43eb89225366c3389","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        self.activated_bindings \u003d set()"},{"line_number":209,"context_line":"        # Stores smartnic ports update/remove"},{"line_number":210,"context_line":"        self.updated_smartnic_ports \u003d list()"},{"line_number":211,"context_line":"        # Stores integration bridge smartnic ports data"},{"line_number":212,"context_line":"        self.current_int_br_smartnic_ports_map \u003d {}"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"        self.network_ports \u003d collections.defaultdict(set)"},{"line_number":215,"context_line":"        # keeps association between ports and ofports to detect ofport change"}],"source_content_type":"text/x-python","patch_set":14,"id":"1fa4df85_e74d7a9a","line":212,"range":{"start_line":211,"start_character":8,"end_line":212,"end_character":51},"updated":"2020-03-03 09:37:18.000000000","message":"nit: current_smartnic_port_map ?","commit_id":"efd185a20848d5469eeb4497e841b69c0ce66819"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"a83bd9113e21bc01d5c025c9f83b7f6533de3aa0","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        self.activated_bindings \u003d set()"},{"line_number":209,"context_line":"        # Stores smartnic ports update/remove"},{"line_number":210,"context_line":"        self.updated_smartnic_ports \u003d list()"},{"line_number":211,"context_line":"        # Stores integration bridge smartnic ports data"},{"line_number":212,"context_line":"        self.current_int_br_smartnic_ports_map \u003d {}"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"        self.network_ports \u003d collections.defaultdict(set)"},{"line_number":215,"context_line":"        # keeps association between ports and ofports to detect ofport change"}],"source_content_type":"text/x-python","patch_set":14,"id":"1fa4df85_524f6533","line":212,"range":{"start_line":211,"start_character":8,"end_line":212,"end_character":51},"in_reply_to":"1fa4df85_e74d7a9a","updated":"2020-03-03 18:58:40.000000000","message":"Done","commit_id":"efd185a20848d5469eeb4497e841b69c0ce66819"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"e787534bf6c2590f6aadef9dbb07a18c7a7c6550","unresolved":false,"context_lines":[{"line_number":709,"context_line":"        self.sg_agent.remove_devices_filter(deleted_ports)"},{"line_number":710,"context_line":""},{"line_number":711,"context_line":"    def create_int_br_smartnic_port_map(self, vif_id, vif_mac, vif_name):"},{"line_number":712,"context_line":"        return {\"vif_id\": vif_id, \"vif_mac\": vif_mac, \"vif_name\": vif_name}"},{"line_number":713,"context_line":""},{"line_number":714,"context_line":"    def process_smartnic_ports(self):"},{"line_number":715,"context_line":"        smartnic_ports \u003d self.plugin_rpc.get_ports_by_vnic_type_and_host("}],"source_content_type":"text/x-python","patch_set":14,"id":"1fa4df85_276b9285","line":712,"range":{"start_line":712,"start_character":0,"end_line":712,"end_character":75},"updated":"2020-03-03 08:17:13.000000000","message":"you have the vif_id as the key why save it again as a value","commit_id":"efd185a20848d5469eeb4497e841b69c0ce66819"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"a83bd9113e21bc01d5c025c9f83b7f6533de3aa0","unresolved":false,"context_lines":[{"line_number":709,"context_line":"        self.sg_agent.remove_devices_filter(deleted_ports)"},{"line_number":710,"context_line":""},{"line_number":711,"context_line":"    def create_int_br_smartnic_port_map(self, vif_id, vif_mac, vif_name):"},{"line_number":712,"context_line":"        return {\"vif_id\": vif_id, \"vif_mac\": vif_mac, \"vif_name\": vif_name}"},{"line_number":713,"context_line":""},{"line_number":714,"context_line":"    def process_smartnic_ports(self):"},{"line_number":715,"context_line":"        smartnic_ports \u003d self.plugin_rpc.get_ports_by_vnic_type_and_host("}],"source_content_type":"text/x-python","patch_set":14,"id":"1fa4df85_f24d319a","line":712,"range":{"start_line":712,"start_character":0,"end_line":712,"end_character":75},"in_reply_to":"1fa4df85_0291a44e","updated":"2020-03-03 18:58:40.000000000","message":"The entry is created also in case of creating new smart_nic port in treat_smartnic_ports, see #L572\nso just changing the name here","commit_id":"efd185a20848d5469eeb4497e841b69c0ce66819"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"9fed6485ef7ef6840df597d43eb89225366c3389","unresolved":false,"context_lines":[{"line_number":709,"context_line":"        self.sg_agent.remove_devices_filter(deleted_ports)"},{"line_number":710,"context_line":""},{"line_number":711,"context_line":"    def create_int_br_smartnic_port_map(self, vif_id, vif_mac, vif_name):"},{"line_number":712,"context_line":"        return {\"vif_id\": vif_id, \"vif_mac\": vif_mac, \"vif_name\": vif_name}"},{"line_number":713,"context_line":""},{"line_number":714,"context_line":"    def process_smartnic_ports(self):"},{"line_number":715,"context_line":"        smartnic_ports \u003d self.plugin_rpc.get_ports_by_vnic_type_and_host("}],"source_content_type":"text/x-python","patch_set":14,"id":"1fa4df85_0291a44e","line":712,"range":{"start_line":712,"start_character":0,"end_line":712,"end_character":75},"in_reply_to":"1fa4df85_276b9285","updated":"2020-03-03 09:37:18.000000000","message":"you are creating a single map entry while the name of the method states you create the map, its a bit confusing.\n\nwhy not create the entire map creation here ? i.e move L#721-L#724.","commit_id":"efd185a20848d5469eeb4497e841b69c0ce66819"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"9fed6485ef7ef6840df597d43eb89225366c3389","unresolved":false,"context_lines":[{"line_number":742,"context_line":""},{"line_number":743,"context_line":"        _process_removed_ports(removed_ports)"},{"line_number":744,"context_line":"        _process_added_ports(added_ports)"},{"line_number":745,"context_line":"        self.current_int_br_smartnic_ports_map \u003d cur_ports_map"},{"line_number":746,"context_line":""},{"line_number":747,"context_line":"    def process_deactivated_bindings(self, port_info):"},{"line_number":748,"context_line":"        # don\u0027t try to deactivate bindings for removed ports since they are"}],"source_content_type":"text/x-python","patch_set":14,"id":"1fa4df85_82a11497","line":745,"range":{"start_line":745,"start_character":8,"end_line":745,"end_character":62},"updated":"2020-03-03 09:37:18.000000000","message":"cur_port_map doesnt change since its creation in L#723  right? maybe just use self.current_int_br_smartnic_ports_map ?","commit_id":"efd185a20848d5469eeb4497e841b69c0ce66819"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"a83bd9113e21bc01d5c025c9f83b7f6533de3aa0","unresolved":false,"context_lines":[{"line_number":742,"context_line":""},{"line_number":743,"context_line":"        _process_removed_ports(removed_ports)"},{"line_number":744,"context_line":"        _process_added_ports(added_ports)"},{"line_number":745,"context_line":"        self.current_int_br_smartnic_ports_map \u003d cur_ports_map"},{"line_number":746,"context_line":""},{"line_number":747,"context_line":"    def process_deactivated_bindings(self, port_info):"},{"line_number":748,"context_line":"        # don\u0027t try to deactivate bindings for removed ports since they are"}],"source_content_type":"text/x-python","patch_set":14,"id":"1fa4df85_1267adbf","line":745,"range":{"start_line":745,"start_character":8,"end_line":745,"end_character":62},"in_reply_to":"1fa4df85_82a11497","updated":"2020-03-03 18:58:40.000000000","message":"Done","commit_id":"efd185a20848d5469eeb4497e841b69c0ce66819"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"dbfdca572a73a4a1f0916f774cd3e5567d59ddd0","unresolved":false,"context_lines":[{"line_number":600,"context_line":"            vif_name\u003drep_port, plugin\u003d\u0027ovs\u0027, port_profile\u003dport_profile,"},{"line_number":601,"context_line":"            network\u003dnetwork, address\u003dstr(mac))"},{"line_number":602,"context_line":""},{"line_number":603,"context_line":"    def _add_deleted_port_to_updated_smartnic_ports(self, **ovs_port):"},{"line_number":604,"context_line":"        self.updated_smartnic_ports.append({"},{"line_number":605,"context_line":"            \u0027mac\u0027: ovs_port[\u0027vif_mac\u0027],"},{"line_number":606,"context_line":"            \u0027vm_uuid\u0027: ovs_port[\u0027vif_id\u0027],"}],"source_content_type":"text/x-python","patch_set":16,"id":"1fa4df85_d157c557","line":603,"range":{"start_line":603,"start_character":58,"end_line":603,"end_character":68},"updated":"2020-03-04 09:00:02.000000000","message":"Usually kwarg parameter is reserved for \"optional\" arguments, which is not the case here so im not sure this is the correct way.\n\nif a valid ovs port entry needs to contain vif_id, vif_mac and vif_name then maybe explicitly specify them.\n\nyou can always call this method with these parameters as kwargs \n\ne.g:\ndef _add_deleted_port_to_updated_smartnic_ports(self, vif_id, vif_name vif_mac)\n  ...\n  ...\n\nthen call it:\nself._add_delete_port_to_updated_smartnic_ports(**ovs_port)\nor\nself._add_delete_port_to_updated_smartnic_ports(vif_id, **ovs_port)\n\nor any other form you choose :)","commit_id":"f9b847738caae33ac675968b83c3d2acbd35548e"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"17ab0b4127a0064eb186644a8e05be8e7d0aa8bd","unresolved":false,"context_lines":[{"line_number":600,"context_line":"            vif_name\u003drep_port, plugin\u003d\u0027ovs\u0027, port_profile\u003dport_profile,"},{"line_number":601,"context_line":"            network\u003dnetwork, address\u003dstr(mac))"},{"line_number":602,"context_line":""},{"line_number":603,"context_line":"    def _add_deleted_port_to_updated_smartnic_ports(self, **ovs_port):"},{"line_number":604,"context_line":"        self.updated_smartnic_ports.append({"},{"line_number":605,"context_line":"            \u0027mac\u0027: ovs_port[\u0027vif_mac\u0027],"},{"line_number":606,"context_line":"            \u0027vm_uuid\u0027: ovs_port[\u0027vif_id\u0027],"}],"source_content_type":"text/x-python","patch_set":16,"id":"1fa4df85_f81f3e58","line":603,"range":{"start_line":603,"start_character":58,"end_line":603,"end_character":68},"in_reply_to":"1fa4df85_d157c557","updated":"2020-03-04 14:29:26.000000000","message":"Done","commit_id":"f9b847738caae33ac675968b83c3d2acbd35548e"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"dbfdca572a73a4a1f0916f774cd3e5567d59ddd0","unresolved":false,"context_lines":[{"line_number":725,"context_line":"                port.vif_mac, port.port_name) for port in cur_smartnic_ports}"},{"line_number":726,"context_line":"        cur_smartnic_port_ids \u003d set(self.current_smartnic_ports_map.keys())"},{"line_number":727,"context_line":""},{"line_number":728,"context_line":"        removed_ports_map \u003d {id: self.current_smartnic_ports_map[id] for id"},{"line_number":729,"context_line":"                             in cur_smartnic_port_ids - smartnic_port_ids}"},{"line_number":730,"context_line":"        added_ports \u003d [smartnic_ports_map[port_id] for port_id in"},{"line_number":731,"context_line":"                       smartnic_port_ids - cur_smartnic_port_ids]"},{"line_number":732,"context_line":""},{"line_number":733,"context_line":"        def _process_added_ports(smartnic_added_ports):"},{"line_number":734,"context_line":"            for smartnic_port in smartnic_added_ports:"}],"source_content_type":"text/x-python","patch_set":16,"id":"1fa4df85_d18a65bd","line":731,"range":{"start_line":728,"start_character":0,"end_line":731,"end_character":65},"updated":"2020-03-04 09:00:02.000000000","message":"can we have added_ports and removed_ports to look the same (both list or both map) for consistency","commit_id":"f9b847738caae33ac675968b83c3d2acbd35548e"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"17ab0b4127a0064eb186644a8e05be8e7d0aa8bd","unresolved":false,"context_lines":[{"line_number":725,"context_line":"                port.vif_mac, port.port_name) for port in cur_smartnic_ports}"},{"line_number":726,"context_line":"        cur_smartnic_port_ids \u003d set(self.current_smartnic_ports_map.keys())"},{"line_number":727,"context_line":""},{"line_number":728,"context_line":"        removed_ports_map \u003d {id: self.current_smartnic_ports_map[id] for id"},{"line_number":729,"context_line":"                             in cur_smartnic_port_ids - smartnic_port_ids}"},{"line_number":730,"context_line":"        added_ports \u003d [smartnic_ports_map[port_id] for port_id in"},{"line_number":731,"context_line":"                       smartnic_port_ids - cur_smartnic_port_ids]"},{"line_number":732,"context_line":""},{"line_number":733,"context_line":"        def _process_added_ports(smartnic_added_ports):"},{"line_number":734,"context_line":"            for smartnic_port in smartnic_added_ports:"}],"source_content_type":"text/x-python","patch_set":16,"id":"1fa4df85_b8e8e6e1","line":731,"range":{"start_line":728,"start_character":0,"end_line":731,"end_character":65},"in_reply_to":"1fa4df85_d18a65bd","updated":"2020-03-04 14:29:26.000000000","message":"Done","commit_id":"f9b847738caae33ac675968b83c3d2acbd35548e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f40576f9e398e9f92338bfd9ec5a57f9690aedb7","unresolved":false,"context_lines":[{"line_number":544,"context_line":"                elif (not port_binding[\u0027host\u0027] and port_binding[\u0027vif_type\u0027] \u003d\u003d"},{"line_number":545,"context_line":"                      portbindings.VIF_TYPE_UNBOUND and port[\u0027id\u0027] in"},{"line_number":546,"context_line":"                      self.current_smartnic_ports_map.keys()):"},{"line_number":547,"context_line":"                    self._add_deleted_port_to_updated_smartnic_ports("},{"line_number":548,"context_line":"                        vif_id\u003dport[\u0027id\u0027],"},{"line_number":549,"context_line":"                        **self.current_smartnic_ports_map[port[\u0027id\u0027]])"},{"line_number":550,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"1fa4df85_9ffe9dac","line":547,"range":{"start_line":547,"start_character":25,"end_line":547,"end_character":68},"updated":"2020-03-13 16:20:05.000000000","message":"small nit: this method is used only here and it\u0027s only one line command. I wouldn\u0027t create a separate method for it.","commit_id":"ba17ac258c9a30969b7529d02de982024fb7d276"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"a57516b72359766e3b9e2e08bbd13cebb23e903d","unresolved":false,"context_lines":[{"line_number":544,"context_line":"                elif (not port_binding[\u0027host\u0027] and port_binding[\u0027vif_type\u0027] \u003d\u003d"},{"line_number":545,"context_line":"                      portbindings.VIF_TYPE_UNBOUND and port[\u0027id\u0027] in"},{"line_number":546,"context_line":"                      self.current_smartnic_ports_map.keys()):"},{"line_number":547,"context_line":"                    self._add_deleted_port_to_updated_smartnic_ports("},{"line_number":548,"context_line":"                        vif_id\u003dport[\u0027id\u0027],"},{"line_number":549,"context_line":"                        **self.current_smartnic_ports_map[port[\u0027id\u0027]])"},{"line_number":550,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"1fa4df85_47fcd33d","line":547,"range":{"start_line":547,"start_character":25,"end_line":547,"end_character":68},"in_reply_to":"1fa4df85_9ffe9dac","updated":"2020-03-15 17:35:56.000000000","message":"merging all cases to one function","commit_id":"ba17ac258c9a30969b7529d02de982024fb7d276"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f40576f9e398e9f92338bfd9ec5a57f9690aedb7","unresolved":false,"context_lines":[{"line_number":574,"context_line":""},{"line_number":575,"context_line":"            elif vif_type \u003d\u003d portbindings.VIF_TYPE_UNBOUND:"},{"line_number":576,"context_line":"                os_vif.unplug(vif, instance_info)"},{"line_number":577,"context_line":"                if self.current_smartnic_ports_map.get(iface_id):"},{"line_number":578,"context_line":"                    del self.current_smartnic_ports_map[iface_id]"},{"line_number":579,"context_line":""},{"line_number":580,"context_line":"            else:"},{"line_number":581,"context_line":"                LOG.error(\"Unexpected vif_type:%(vif_type)s for \""}],"source_content_type":"text/x-python","patch_set":19,"id":"1fa4df85_bf72797b","line":578,"range":{"start_line":577,"start_character":16,"end_line":578,"end_character":65},"updated":"2020-03-13 16:20:05.000000000","message":"self.current_smartnic_ports_map.pop(iface_id, None)","commit_id":"ba17ac258c9a30969b7529d02de982024fb7d276"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"a57516b72359766e3b9e2e08bbd13cebb23e903d","unresolved":false,"context_lines":[{"line_number":574,"context_line":""},{"line_number":575,"context_line":"            elif vif_type \u003d\u003d portbindings.VIF_TYPE_UNBOUND:"},{"line_number":576,"context_line":"                os_vif.unplug(vif, instance_info)"},{"line_number":577,"context_line":"                if self.current_smartnic_ports_map.get(iface_id):"},{"line_number":578,"context_line":"                    del self.current_smartnic_ports_map[iface_id]"},{"line_number":579,"context_line":""},{"line_number":580,"context_line":"            else:"},{"line_number":581,"context_line":"                LOG.error(\"Unexpected vif_type:%(vif_type)s for \""}],"source_content_type":"text/x-python","patch_set":19,"id":"1fa4df85_2799971e","line":578,"range":{"start_line":577,"start_character":16,"end_line":578,"end_character":65},"in_reply_to":"1fa4df85_bf72797b","updated":"2020-03-15 17:35:56.000000000","message":"Done","commit_id":"ba17ac258c9a30969b7529d02de982024fb7d276"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"99921635aa886d0ba3ec4360237b61009ef2c90f","unresolved":false,"context_lines":[{"line_number":574,"context_line":""},{"line_number":575,"context_line":"            elif vif_type \u003d\u003d portbindings.VIF_TYPE_UNBOUND:"},{"line_number":576,"context_line":"                os_vif.unplug(vif, instance_info)"},{"line_number":577,"context_line":"                if self.current_smartnic_ports_map.get(iface_id):"},{"line_number":578,"context_line":"                    del self.current_smartnic_ports_map[iface_id]"},{"line_number":579,"context_line":""},{"line_number":580,"context_line":"            else:"},{"line_number":581,"context_line":"                LOG.error(\"Unexpected vif_type:%(vif_type)s for \""}],"source_content_type":"text/x-python","patch_set":19,"id":"1fa4df85_0c192087","line":578,"range":{"start_line":577,"start_character":16,"end_line":578,"end_character":65},"in_reply_to":"1fa4df85_bf72797b","updated":"2020-03-15 17:30:55.000000000","message":"merging all cases to one function","commit_id":"ba17ac258c9a30969b7529d02de982024fb7d276"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f40576f9e398e9f92338bfd9ec5a57f9690aedb7","unresolved":false,"context_lines":[{"line_number":606,"context_line":"            \u0027mac\u0027: vif_mac,"},{"line_number":607,"context_line":"            \u0027vm_uuid\u0027: vif_id,"},{"line_number":608,"context_line":"            \u0027iface_name\u0027: vif_name,"},{"line_number":609,"context_line":"            \u0027iface_id\u0027: vif_id,"},{"line_number":610,"context_line":"            \u0027vif_type\u0027: portbindings.VIF_TYPE_UNBOUND})"},{"line_number":611,"context_line":""},{"line_number":612,"context_line":"    def _add_port_to_updated_smartnic_ports(self, port_data, port_binding):"}],"source_content_type":"text/x-python","patch_set":19,"id":"1fa4df85_3fa0c9a5","line":609,"range":{"start_line":609,"start_character":11,"end_line":609,"end_character":31},"updated":"2020-03-13 16:20:05.000000000","message":"Is that correct? Same as vm_uuid?","commit_id":"ba17ac258c9a30969b7529d02de982024fb7d276"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"99921635aa886d0ba3ec4360237b61009ef2c90f","unresolved":false,"context_lines":[{"line_number":606,"context_line":"            \u0027mac\u0027: vif_mac,"},{"line_number":607,"context_line":"            \u0027vm_uuid\u0027: vif_id,"},{"line_number":608,"context_line":"            \u0027iface_name\u0027: vif_name,"},{"line_number":609,"context_line":"            \u0027iface_id\u0027: vif_id,"},{"line_number":610,"context_line":"            \u0027vif_type\u0027: portbindings.VIF_TYPE_UNBOUND})"},{"line_number":611,"context_line":""},{"line_number":612,"context_line":"    def _add_port_to_updated_smartnic_ports(self, port_data, port_binding):"}],"source_content_type":"text/x-python","patch_set":19,"id":"1fa4df85_2c1e5c70","line":609,"range":{"start_line":609,"start_character":11,"end_line":609,"end_character":31},"in_reply_to":"1fa4df85_3fa0c9a5","updated":"2020-03-15 17:30:55.000000000","message":"I delete case the vm_uuid is dummy id, so it\u0027s doesn\u0027t matter, but moving it to an empty string, it\u0027s better","commit_id":"ba17ac258c9a30969b7529d02de982024fb7d276"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f40576f9e398e9f92338bfd9ec5a57f9690aedb7","unresolved":false,"context_lines":[{"line_number":600,"context_line":"            vif_name\u003drep_port, plugin\u003d\u0027ovs\u0027, port_profile\u003dport_profile,"},{"line_number":601,"context_line":"            network\u003dnetwork, address\u003dstr(mac))"},{"line_number":602,"context_line":""},{"line_number":603,"context_line":"    def _add_deleted_port_to_updated_smartnic_ports(self, vif_id, vif_name,"},{"line_number":604,"context_line":"                                                    vif_mac):"},{"line_number":605,"context_line":"        self.updated_smartnic_ports.append({"},{"line_number":606,"context_line":"            \u0027mac\u0027: vif_mac,"},{"line_number":607,"context_line":"            \u0027vm_uuid\u0027: vif_id,"},{"line_number":608,"context_line":"            \u0027iface_name\u0027: vif_name,"},{"line_number":609,"context_line":"            \u0027iface_id\u0027: vif_id,"},{"line_number":610,"context_line":"            \u0027vif_type\u0027: portbindings.VIF_TYPE_UNBOUND})"},{"line_number":611,"context_line":""},{"line_number":612,"context_line":"    def _add_port_to_updated_smartnic_ports(self, port_data, port_binding):"},{"line_number":613,"context_line":"        local_link \u003d port_binding[\u0027profile\u0027][\u0027local_link_information\u0027]"},{"line_number":614,"context_line":"        if local_link:"},{"line_number":615,"context_line":"            iface_name \u003d local_link[0][\u0027port_id\u0027]"},{"line_number":616,"context_line":"            self.updated_smartnic_ports.append({"},{"line_number":617,"context_line":"                \u0027mac\u0027: port_data[\u0027mac_address\u0027],"},{"line_number":618,"context_line":"                \u0027vm_uuid\u0027: port_data[\u0027device_id\u0027],"},{"line_number":619,"context_line":"                \u0027iface_name\u0027: iface_name,"},{"line_number":620,"context_line":"                \u0027iface_id\u0027: port_data[\u0027id\u0027],"},{"line_number":621,"context_line":"                \u0027vif_type\u0027: port_binding[\u0027vif_type\u0027]})"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"    @profiler.trace(\"rpc\")"},{"line_number":624,"context_line":"    def port_delete(self, context, **kwargs):"}],"source_content_type":"text/x-python","patch_set":19,"id":"1fa4df85_bfcef980","line":621,"range":{"start_line":603,"start_character":4,"end_line":621,"end_character":54},"updated":"2020-03-13 16:20:05.000000000","message":"Those two methods are similar. Why don\u0027t you create a single one with common interface?","commit_id":"ba17ac258c9a30969b7529d02de982024fb7d276"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"99921635aa886d0ba3ec4360237b61009ef2c90f","unresolved":false,"context_lines":[{"line_number":600,"context_line":"            vif_name\u003drep_port, plugin\u003d\u0027ovs\u0027, port_profile\u003dport_profile,"},{"line_number":601,"context_line":"            network\u003dnetwork, address\u003dstr(mac))"},{"line_number":602,"context_line":""},{"line_number":603,"context_line":"    def _add_deleted_port_to_updated_smartnic_ports(self, vif_id, vif_name,"},{"line_number":604,"context_line":"                                                    vif_mac):"},{"line_number":605,"context_line":"        self.updated_smartnic_ports.append({"},{"line_number":606,"context_line":"            \u0027mac\u0027: vif_mac,"},{"line_number":607,"context_line":"            \u0027vm_uuid\u0027: vif_id,"},{"line_number":608,"context_line":"            \u0027iface_name\u0027: vif_name,"},{"line_number":609,"context_line":"            \u0027iface_id\u0027: vif_id,"},{"line_number":610,"context_line":"            \u0027vif_type\u0027: portbindings.VIF_TYPE_UNBOUND})"},{"line_number":611,"context_line":""},{"line_number":612,"context_line":"    def _add_port_to_updated_smartnic_ports(self, port_data, port_binding):"},{"line_number":613,"context_line":"        local_link \u003d port_binding[\u0027profile\u0027][\u0027local_link_information\u0027]"},{"line_number":614,"context_line":"        if local_link:"},{"line_number":615,"context_line":"            iface_name \u003d local_link[0][\u0027port_id\u0027]"},{"line_number":616,"context_line":"            self.updated_smartnic_ports.append({"},{"line_number":617,"context_line":"                \u0027mac\u0027: port_data[\u0027mac_address\u0027],"},{"line_number":618,"context_line":"                \u0027vm_uuid\u0027: port_data[\u0027device_id\u0027],"},{"line_number":619,"context_line":"                \u0027iface_name\u0027: iface_name,"},{"line_number":620,"context_line":"                \u0027iface_id\u0027: port_data[\u0027id\u0027],"},{"line_number":621,"context_line":"                \u0027vif_type\u0027: port_binding[\u0027vif_type\u0027]})"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"    @profiler.trace(\"rpc\")"},{"line_number":624,"context_line":"    def port_delete(self, context, **kwargs):"}],"source_content_type":"text/x-python","patch_set":19,"id":"1fa4df85_cc122863","line":621,"range":{"start_line":603,"start_character":4,"end_line":621,"end_character":54},"in_reply_to":"1fa4df85_bfcef980","updated":"2020-03-15 17:30:55.000000000","message":"Done","commit_id":"ba17ac258c9a30969b7529d02de982024fb7d276"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"7af60a314f0e74b07a4fd2c3257563a702cbd672","unresolved":false,"context_lines":[{"line_number":539,"context_line":"        for port_binding in port_data.get(\u0027bindings\u0027, []):"},{"line_number":540,"context_line":"            if port_binding[\u0027vnic_type\u0027] \u003d\u003d portbindings.VNIC_SMARTNIC:"},{"line_number":541,"context_line":"                if port_binding[\u0027host\u0027] \u003d\u003d self.conf.host:"},{"line_number":542,"context_line":"                    local_link \u003d (port_binding[\u0027profile\u0027]"},{"line_number":543,"context_line":"                    [\u0027local_link_information\u0027])"},{"line_number":544,"context_line":"                    if local_link:"},{"line_number":545,"context_line":"                        self._add_port_to_updated_smartnic_ports("},{"line_number":546,"context_line":"                            port_data[\u0027mac_address\u0027],"},{"line_number":547,"context_line":"                            local_link[0][\u0027port_id\u0027],"},{"line_number":548,"context_line":"                            port_data[\u0027id\u0027],"},{"line_number":549,"context_line":"                            port_binding[\u0027vif_type\u0027],"},{"line_number":550,"context_line":"                            port_data[\u0027device_id\u0027])"},{"line_number":551,"context_line":"                elif (not port_binding[\u0027host\u0027] and port_binding[\u0027vif_type\u0027] \u003d\u003d"},{"line_number":552,"context_line":"                      portbindings.VIF_TYPE_UNBOUND and port[\u0027id\u0027] in"},{"line_number":553,"context_line":"                      self.current_smartnic_ports_map.keys()):"}],"source_content_type":"text/x-python","patch_set":20,"id":"1fa4df85_c9aafe17","line":550,"range":{"start_line":542,"start_character":1,"end_line":550,"end_character":51},"updated":"2020-03-17 12:20:27.000000000","message":"just a note: doing it like this adds clutter to the top level function.\n\nsince there will be a FUP separating the smartNIC logic to its own class then we will deal with that there.","commit_id":"f39a7fc772957271cfdcd5734d00b2b6b7892dbd"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"518620d4b8f57e857564f964d91cfe8ce99d888c","unresolved":false,"context_lines":[{"line_number":556,"context_line":"                        self.current_smartnic_ports_map[port[\u0027id\u0027]]"},{"line_number":557,"context_line":"                        [\u0027vif_name\u0027],"},{"line_number":558,"context_line":"                        port[\u0027id\u0027],"},{"line_number":559,"context_line":"                        portbindings.VIF_TYPE_UNBOUND)"},{"line_number":560,"context_line":""},{"line_number":561,"context_line":"                else:"},{"line_number":562,"context_line":"                    # The port doesn\u0027t belong to this Smart NIC,"}],"source_content_type":"text/x-python","patch_set":20,"id":"1fa4df85_06948543","line":559,"updated":"2020-03-17 10:51:29.000000000","message":"nitty nit: indentation in those couple lines above seems a bit strange for me. Maybe it would be easier to read if You would do something like:\n\n    smartnic \u003d self.current_smartnic_ports_map[port[\u0027id\u0027]\n    self._add_port_to_updated_smartnic_ports(\n        smartnic[\u0027vif_mac\u0027], smartnic[\u0027vif_name\u0027], port[\u0027id\u0027],\n        portbindings.VIF_TYPE_UNBOUND)","commit_id":"f39a7fc772957271cfdcd5734d00b2b6b7892dbd"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e175c8f4f12134b1c8b2dcf3da06a13c8ecf28a1","unresolved":false,"context_lines":[{"line_number":540,"context_line":"            if port_binding[\u0027vnic_type\u0027] \u003d\u003d portbindings.VNIC_SMARTNIC:"},{"line_number":541,"context_line":"                if port_binding[\u0027host\u0027] \u003d\u003d self.conf.host:"},{"line_number":542,"context_line":"                    local_link \u003d (port_binding[\u0027profile\u0027]"},{"line_number":543,"context_line":"                    [\u0027local_link_information\u0027])"},{"line_number":544,"context_line":"                    if local_link:"},{"line_number":545,"context_line":"                        self._add_port_to_updated_smartnic_ports("},{"line_number":546,"context_line":"                            port_data[\u0027mac_address\u0027],"}],"source_content_type":"text/x-python","patch_set":21,"id":"1fa4df85_c134004d","line":543,"updated":"2020-03-18 14:30:58.000000000","message":"This indentation will fail in pep8 checks.","commit_id":"c939593419dae883f6106b2460729bfc1e9b5976"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"6ae6489530d92809fea068ff9ae5a997276339bc","unresolved":false,"context_lines":[{"line_number":540,"context_line":"            if port_binding[\u0027vnic_type\u0027] \u003d\u003d portbindings.VNIC_SMARTNIC:"},{"line_number":541,"context_line":"                if port_binding[\u0027host\u0027] \u003d\u003d self.conf.host:"},{"line_number":542,"context_line":"                    local_link \u003d (port_binding[\u0027profile\u0027]"},{"line_number":543,"context_line":"                    [\u0027local_link_information\u0027])"},{"line_number":544,"context_line":"                    if local_link:"},{"line_number":545,"context_line":"                        self._add_port_to_updated_smartnic_ports("},{"line_number":546,"context_line":"                            port_data[\u0027mac_address\u0027],"}],"source_content_type":"text/x-python","patch_set":21,"id":"1fa4df85_f99764ea","line":543,"in_reply_to":"1fa4df85_c134004d","updated":"2020-03-19 09:29:27.000000000","message":"Done, but it\u0027s weird how it passed openstack-tox-pep8","commit_id":"c939593419dae883f6106b2460729bfc1e9b5976"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"e19d8e54d11f4c15a5079f782ef66b71ef94d362","unresolved":false,"context_lines":[{"line_number":551,"context_line":"                elif (not port_binding[\u0027host\u0027] and port_binding[\u0027vif_type\u0027] \u003d\u003d"},{"line_number":552,"context_line":"                      portbindings.VIF_TYPE_UNBOUND and port[\u0027id\u0027] in"},{"line_number":553,"context_line":"                      self.current_smartnic_ports_map.keys()):"},{"line_number":554,"context_line":"                    smartnic \u003d self.current_smartnic_ports_map[port[\u0027id\u0027]]"},{"line_number":555,"context_line":"                    self._add_port_to_updated_smartnic_ports("},{"line_number":556,"context_line":"                        smartnic[\u0027vif_mac\u0027], smartnic[\u0027vif_name\u0027], port[\u0027id\u0027],"},{"line_number":557,"context_line":"                        portbindings.VIF_TYPE_UNBOUND)"}],"source_content_type":"text/x-python","patch_set":21,"id":"1fa4df85_cb70ae0b","line":554,"range":{"start_line":554,"start_character":20,"end_line":554,"end_character":28},"updated":"2020-03-17 16:09:39.000000000","message":"nit: smartnic_port ? or port ?","commit_id":"c939593419dae883f6106b2460729bfc1e9b5976"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"6ae6489530d92809fea068ff9ae5a997276339bc","unresolved":false,"context_lines":[{"line_number":551,"context_line":"                elif (not port_binding[\u0027host\u0027] and port_binding[\u0027vif_type\u0027] \u003d\u003d"},{"line_number":552,"context_line":"                      portbindings.VIF_TYPE_UNBOUND and port[\u0027id\u0027] in"},{"line_number":553,"context_line":"                      self.current_smartnic_ports_map.keys()):"},{"line_number":554,"context_line":"                    smartnic \u003d self.current_smartnic_ports_map[port[\u0027id\u0027]]"},{"line_number":555,"context_line":"                    self._add_port_to_updated_smartnic_ports("},{"line_number":556,"context_line":"                        smartnic[\u0027vif_mac\u0027], smartnic[\u0027vif_name\u0027], port[\u0027id\u0027],"},{"line_number":557,"context_line":"                        portbindings.VIF_TYPE_UNBOUND)"}],"source_content_type":"text/x-python","patch_set":21,"id":"1fa4df85_19ab601d","line":554,"range":{"start_line":554,"start_character":20,"end_line":554,"end_character":28},"in_reply_to":"1fa4df85_cb70ae0b","updated":"2020-03-19 09:29:27.000000000","message":"Done","commit_id":"c939593419dae883f6106b2460729bfc1e9b5976"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e175c8f4f12134b1c8b2dcf3da06a13c8ecf28a1","unresolved":false,"context_lines":[{"line_number":553,"context_line":"                      self.current_smartnic_ports_map.keys()):"},{"line_number":554,"context_line":"                    smartnic \u003d self.current_smartnic_ports_map[port[\u0027id\u0027]]"},{"line_number":555,"context_line":"                    self._add_port_to_updated_smartnic_ports("},{"line_number":556,"context_line":"                        smartnic[\u0027vif_mac\u0027], smartnic[\u0027vif_name\u0027], port[\u0027id\u0027],"},{"line_number":557,"context_line":"                        portbindings.VIF_TYPE_UNBOUND)"},{"line_number":558,"context_line":""},{"line_number":559,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":21,"id":"1fa4df85_01be9864","line":556,"range":{"start_line":556,"start_character":45,"end_line":556,"end_character":65},"updated":"2020-03-18 14:30:58.000000000","message":"Sometimes I feel lost reviewing this patch. The interface name is:\n- \"vif_name\" in the \"smartnic\" variable (from self.current_smartnic_ports_map)\n- \"iface_name\" in self.updated_smartnic_ports\n- \"port_id\" in the the local link information\n\nAt least for the local variables (current_smartnic_ports_map, updated_smartnic_ports), the name should be the same.","commit_id":"c939593419dae883f6106b2460729bfc1e9b5976"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"6ae6489530d92809fea068ff9ae5a997276339bc","unresolved":false,"context_lines":[{"line_number":553,"context_line":"                      self.current_smartnic_ports_map.keys()):"},{"line_number":554,"context_line":"                    smartnic \u003d self.current_smartnic_ports_map[port[\u0027id\u0027]]"},{"line_number":555,"context_line":"                    self._add_port_to_updated_smartnic_ports("},{"line_number":556,"context_line":"                        smartnic[\u0027vif_mac\u0027], smartnic[\u0027vif_name\u0027], port[\u0027id\u0027],"},{"line_number":557,"context_line":"                        portbindings.VIF_TYPE_UNBOUND)"},{"line_number":558,"context_line":""},{"line_number":559,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":21,"id":"1fa4df85_ef9d56bb","line":556,"range":{"start_line":556,"start_character":45,"end_line":556,"end_character":65},"in_reply_to":"1fa4df85_01be9864","updated":"2020-03-19 09:29:27.000000000","message":"moving iface_name to vif_name","commit_id":"c939593419dae883f6106b2460729bfc1e9b5976"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e175c8f4f12134b1c8b2dcf3da06a13c8ecf28a1","unresolved":false,"context_lines":[{"line_number":723,"context_line":"        cur_smartnic_port_ids \u003d set(self.current_smartnic_ports_map.keys())"},{"line_number":724,"context_line":""},{"line_number":725,"context_line":"        removed_ports \u003d [{\u0027vif_id\u0027: id, **self.current_smartnic_ports_map[id]}"},{"line_number":726,"context_line":"                         for id in cur_smartnic_port_ids - smartnic_port_ids]"},{"line_number":727,"context_line":"        added_ports \u003d [smartnic_ports_map[port_id] for port_id in"},{"line_number":728,"context_line":"                       smartnic_port_ids - cur_smartnic_port_ids]"},{"line_number":729,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1fa4df85_a436b2e6","line":726,"range":{"start_line":726,"start_character":29,"end_line":726,"end_character":31},"updated":"2020-03-18 14:30:58.000000000","message":"Be careful: we should not shadow a built-in name. Please, use, for example, \"_id\".","commit_id":"c939593419dae883f6106b2460729bfc1e9b5976"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"6ae6489530d92809fea068ff9ae5a997276339bc","unresolved":false,"context_lines":[{"line_number":723,"context_line":"        cur_smartnic_port_ids \u003d set(self.current_smartnic_ports_map.keys())"},{"line_number":724,"context_line":""},{"line_number":725,"context_line":"        removed_ports \u003d [{\u0027vif_id\u0027: id, **self.current_smartnic_ports_map[id]}"},{"line_number":726,"context_line":"                         for id in cur_smartnic_port_ids - smartnic_port_ids]"},{"line_number":727,"context_line":"        added_ports \u003d [smartnic_ports_map[port_id] for port_id in"},{"line_number":728,"context_line":"                       smartnic_port_ids - cur_smartnic_port_ids]"},{"line_number":729,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1fa4df85_d9bdc868","line":726,"range":{"start_line":726,"start_character":29,"end_line":726,"end_character":31},"in_reply_to":"1fa4df85_a436b2e6","updated":"2020-03-19 09:29:27.000000000","message":"Done","commit_id":"c939593419dae883f6106b2460729bfc1e9b5976"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e175c8f4f12134b1c8b2dcf3da06a13c8ecf28a1","unresolved":false,"context_lines":[{"line_number":730,"context_line":"        def _process_added_ports(smartnic_added_ports):"},{"line_number":731,"context_line":"            for smartnic_port in smartnic_added_ports:"},{"line_number":732,"context_line":"                local_link \u003d (smartnic_port[\u0027binding:profile\u0027]"},{"line_number":733,"context_line":"                [\u0027local_link_information\u0027])"},{"line_number":734,"context_line":"                if local_link:"},{"line_number":735,"context_line":"                    self._add_port_to_updated_smartnic_ports("},{"line_number":736,"context_line":"                        smartnic_port[\u0027mac_address\u0027],"}],"source_content_type":"text/x-python","patch_set":21,"id":"1fa4df85_61a74ca9","line":733,"updated":"2020-03-18 14:30:58.000000000","message":"This indentation will fail in pep8 checks.","commit_id":"c939593419dae883f6106b2460729bfc1e9b5976"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"6ae6489530d92809fea068ff9ae5a997276339bc","unresolved":false,"context_lines":[{"line_number":730,"context_line":"        def _process_added_ports(smartnic_added_ports):"},{"line_number":731,"context_line":"            for smartnic_port in smartnic_added_ports:"},{"line_number":732,"context_line":"                local_link \u003d (smartnic_port[\u0027binding:profile\u0027]"},{"line_number":733,"context_line":"                [\u0027local_link_information\u0027])"},{"line_number":734,"context_line":"                if local_link:"},{"line_number":735,"context_line":"                    self._add_port_to_updated_smartnic_ports("},{"line_number":736,"context_line":"                        smartnic_port[\u0027mac_address\u0027],"}],"source_content_type":"text/x-python","patch_set":21,"id":"1fa4df85_999e7005","line":733,"in_reply_to":"1fa4df85_61a74ca9","updated":"2020-03-19 09:29:27.000000000","message":"Done","commit_id":"c939593419dae883f6106b2460729bfc1e9b5976"}],"neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/test_ovs_neutron_agent.py":[{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"3ef64bb7f9353b8770800fddac8802f80c33c140","unresolved":false,"context_lines":[{"line_number":1296,"context_line":"            self.assertEqual([expected_smartnic_data],"},{"line_number":1297,"context_line":"                             self.agent.updated_smartnic_ports)"},{"line_number":1298,"context_line":""},{"line_number":1299,"context_line":"    def test_port_delete_smartnic(self):"},{"line_number":1300,"context_line":"        cfg.CONF.set_default(\u0027baremetal_smartnic\u0027, True, group\u003d\u0027AGENT\u0027)"},{"line_number":1301,"context_line":"        port_arg \u003d {\"id\": \u0027d850ed99-5f46-47bc-8c06-86d9d519c46a\u0027}"},{"line_number":1302,"context_line":"        ovs_port \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_a59b5514","line":1299,"range":{"start_line":1299,"start_character":8,"end_line":1299,"end_character":34},"updated":"2020-02-19 09:22:38.000000000","message":"this port_update for an unbound port not port_delete.\n\nmaybe: test_port_update_unbound_smartnic_port()","commit_id":"5f4d10aa2287e2e4e0e146fdcc557c213420f560"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"aaaba9836ed0e3696572d045c22777f2ed3e687a","unresolved":false,"context_lines":[{"line_number":1296,"context_line":"            self.assertEqual([expected_smartnic_data],"},{"line_number":1297,"context_line":"                             self.agent.updated_smartnic_ports)"},{"line_number":1298,"context_line":""},{"line_number":1299,"context_line":"    def test_port_delete_smartnic(self):"},{"line_number":1300,"context_line":"        cfg.CONF.set_default(\u0027baremetal_smartnic\u0027, True, group\u003d\u0027AGENT\u0027)"},{"line_number":1301,"context_line":"        port_arg \u003d {\"id\": \u0027d850ed99-5f46-47bc-8c06-86d9d519c46a\u0027}"},{"line_number":1302,"context_line":"        ovs_port \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":5,"id":"1fa4df85_a67ce8b5","line":1299,"range":{"start_line":1299,"start_character":8,"end_line":1299,"end_character":34},"in_reply_to":"3fa7e38b_a59b5514","updated":"2020-02-24 08:56:22.000000000","message":"Done","commit_id":"5f4d10aa2287e2e4e0e146fdcc557c213420f560"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"3ef64bb7f9353b8770800fddac8802f80c33c140","unresolved":false,"context_lines":[{"line_number":1300,"context_line":"        cfg.CONF.set_default(\u0027baremetal_smartnic\u0027, True, group\u003d\u0027AGENT\u0027)"},{"line_number":1301,"context_line":"        port_arg \u003d {\"id\": \u0027d850ed99-5f46-47bc-8c06-86d9d519c46a\u0027}"},{"line_number":1302,"context_line":"        ovs_port \u003d mock.Mock()"},{"line_number":1303,"context_line":"        ovs_port.port_name \u003d \"rep_port\""},{"line_number":1304,"context_line":"        mac \u003d FAKE_MAC"},{"line_number":1305,"context_line":"        ovs_port.vif_mac \u003d mac"},{"line_number":1306,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_25a0c536","line":1303,"range":{"start_line":1303,"start_character":30,"end_line":1303,"end_character":38},"updated":"2020-02-19 09:22:38.000000000","message":"lets be consistent with other smartnic related test cases and use rep0-0 or something in that format.\nideally this should be a real life example.","commit_id":"5f4d10aa2287e2e4e0e146fdcc557c213420f560"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"aaaba9836ed0e3696572d045c22777f2ed3e687a","unresolved":false,"context_lines":[{"line_number":1300,"context_line":"        cfg.CONF.set_default(\u0027baremetal_smartnic\u0027, True, group\u003d\u0027AGENT\u0027)"},{"line_number":1301,"context_line":"        port_arg \u003d {\"id\": \u0027d850ed99-5f46-47bc-8c06-86d9d519c46a\u0027}"},{"line_number":1302,"context_line":"        ovs_port \u003d mock.Mock()"},{"line_number":1303,"context_line":"        ovs_port.port_name \u003d \"rep_port\""},{"line_number":1304,"context_line":"        mac \u003d FAKE_MAC"},{"line_number":1305,"context_line":"        ovs_port.vif_mac \u003d mac"},{"line_number":1306,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1fa4df85_464bb486","line":1303,"range":{"start_line":1303,"start_character":30,"end_line":1303,"end_character":38},"in_reply_to":"3fa7e38b_25a0c536","updated":"2020-02-24 08:56:22.000000000","message":"Done","commit_id":"5f4d10aa2287e2e4e0e146fdcc557c213420f560"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"3ef64bb7f9353b8770800fddac8802f80c33c140","unresolved":false,"context_lines":[{"line_number":1312,"context_line":"            port[\u0027id\u0027] \u003d \u0027d850ed99-5f46-47bc-8c06-86d9d519c46a\u0027"},{"line_number":1313,"context_line":"            port[\u0027mac_address\u0027] \u003d netaddr.EUI(FAKE_MAC)"},{"line_number":1314,"context_line":"            port[\u0027device_id\u0027] \u003d \u00270\u0027"},{"line_number":1315,"context_line":"            port_bind \u003d PortBinding()"},{"line_number":1316,"context_line":"            port_bind[\u0027host\u0027] \u003d \u0027\u0027"},{"line_number":1317,"context_line":"            port_bind[\u0027vnic_type\u0027] \u003d portbindings.VNIC_SMARTNIC"},{"line_number":1318,"context_line":"            port_bind[\u0027vif_type\u0027] \u003d portbindings.VIF_TYPE_UNBOUND"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_e5eced92","line":1315,"range":{"start_line":1315,"start_character":12,"end_line":1315,"end_character":21},"updated":"2020-02-19 09:22:38.000000000","message":"nit: rename to port_binding / bindings_data ?","commit_id":"5f4d10aa2287e2e4e0e146fdcc557c213420f560"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"aaaba9836ed0e3696572d045c22777f2ed3e687a","unresolved":false,"context_lines":[{"line_number":1312,"context_line":"            port[\u0027id\u0027] \u003d \u0027d850ed99-5f46-47bc-8c06-86d9d519c46a\u0027"},{"line_number":1313,"context_line":"            port[\u0027mac_address\u0027] \u003d netaddr.EUI(FAKE_MAC)"},{"line_number":1314,"context_line":"            port[\u0027device_id\u0027] \u003d \u00270\u0027"},{"line_number":1315,"context_line":"            port_bind \u003d PortBinding()"},{"line_number":1316,"context_line":"            port_bind[\u0027host\u0027] \u003d \u0027\u0027"},{"line_number":1317,"context_line":"            port_bind[\u0027vnic_type\u0027] \u003d portbindings.VNIC_SMARTNIC"},{"line_number":1318,"context_line":"            port_bind[\u0027vif_type\u0027] \u003d portbindings.VIF_TYPE_UNBOUND"}],"source_content_type":"text/x-python","patch_set":5,"id":"1fa4df85_66503034","line":1315,"range":{"start_line":1315,"start_character":12,"end_line":1315,"end_character":21},"in_reply_to":"3fa7e38b_e5eced92","updated":"2020-02-24 08:56:22.000000000","message":"Done","commit_id":"5f4d10aa2287e2e4e0e146fdcc557c213420f560"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"3ef64bb7f9353b8770800fddac8802f80c33c140","unresolved":false,"context_lines":[{"line_number":1321,"context_line":"            mocked_resource.return_value \u003d port"},{"line_number":1322,"context_line":"            self.agent.port_update(\"unused_context\","},{"line_number":1323,"context_line":"                                   port\u003dport_arg)"},{"line_number":1324,"context_line":"            expected_smartnic_data \u003d {"},{"line_number":1325,"context_line":"                \u0027mac\u0027: port[\u0027mac_address\u0027],"},{"line_number":1326,"context_line":"                \u0027vm_uuid\u0027: port[\u0027id\u0027],"},{"line_number":1327,"context_line":"                \u0027iface_name\u0027: \u0027rep_port\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_c5b53182","line":1324,"range":{"start_line":1324,"start_character":12,"end_line":1324,"end_character":34},"updated":"2020-02-19 09:22:38.000000000","message":"nit: expected_smartnic_port_data","commit_id":"5f4d10aa2287e2e4e0e146fdcc557c213420f560"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"aaaba9836ed0e3696572d045c22777f2ed3e687a","unresolved":false,"context_lines":[{"line_number":1321,"context_line":"            mocked_resource.return_value \u003d port"},{"line_number":1322,"context_line":"            self.agent.port_update(\"unused_context\","},{"line_number":1323,"context_line":"                                   port\u003dport_arg)"},{"line_number":1324,"context_line":"            expected_smartnic_data \u003d {"},{"line_number":1325,"context_line":"                \u0027mac\u0027: port[\u0027mac_address\u0027],"},{"line_number":1326,"context_line":"                \u0027vm_uuid\u0027: port[\u0027id\u0027],"},{"line_number":1327,"context_line":"                \u0027iface_name\u0027: \u0027rep_port\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1fa4df85_0645bc70","line":1324,"range":{"start_line":1324,"start_character":12,"end_line":1324,"end_character":34},"in_reply_to":"3fa7e38b_c5b53182","updated":"2020-02-24 08:56:22.000000000","message":"Done","commit_id":"5f4d10aa2287e2e4e0e146fdcc557c213420f560"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"3ef64bb7f9353b8770800fddac8802f80c33c140","unresolved":false,"context_lines":[{"line_number":2627,"context_line":"    def test_treat_smartnic_port_remove(self):"},{"line_number":2628,"context_line":"        self._test_treat_smartnic_port(\u0027unbound\u0027)"},{"line_number":2629,"context_line":""},{"line_number":2630,"context_line":"    def test_process_smartnic_ports_remove(self):"},{"line_number":2631,"context_line":"        port_ids_int_br \u003d {\"407a79e0-e0be-4b7d-92a6-513b2161011a\","},{"line_number":2632,"context_line":"                           \"407a79e0-e0be-4b7d-92a6-513b2161011b\"}"},{"line_number":2633,"context_line":"        deleted_port_id \u003d \"407a79e0-e0be-4b7d-92a6-513b2161011a\""}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_68077417","line":2630,"updated":"2020-02-19 09:22:38.000000000","message":"can we have the port IDs as variables so its clear what supposed to be removed and what not ?\n\ne.g\n\nPORT_ID_1\nPORT_ID_2\nDELETED_PORT_ID\n\nand use them across the test case, it will help track which port is expected to be removed.","commit_id":"5f4d10aa2287e2e4e0e146fdcc557c213420f560"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"9fed6485ef7ef6840df597d43eb89225366c3389","unresolved":false,"context_lines":[{"line_number":2671,"context_line":"        ovs_port.vif_id \u003d port_id"},{"line_number":2672,"context_line":"        ports_int_br \u003d [ovs_port]"},{"line_number":2673,"context_line":"        expected_smartnic_ports_processed_list \u003d ["},{"line_number":2674,"context_line":"            {\u0027iface_id\u0027: \u0027407a79e0-e0be-4b7d-92a6-513b2161011a\u0027,"},{"line_number":2675,"context_line":"             \u0027iface_name\u0027: \u0027rep0-0\u0027,"},{"line_number":2676,"context_line":"             \u0027mac\u0027: mac,"},{"line_number":2677,"context_line":"             \u0027vif_type\u0027: \u0027unbound\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"1fa4df85_020d24a0","line":2674,"range":{"start_line":2674,"start_character":25,"end_line":2674,"end_character":63},"updated":"2020-03-03 09:37:18.000000000","message":"for clarity, maybe use port_id which was defined in L#2665?","commit_id":"efd185a20848d5469eeb4497e841b69c0ce66819"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"ea12f675d6af4854975edeead8334da13af34195","unresolved":false,"context_lines":[{"line_number":2671,"context_line":"        ovs_port.vif_id \u003d port_id"},{"line_number":2672,"context_line":"        ports_int_br \u003d [ovs_port]"},{"line_number":2673,"context_line":"        expected_smartnic_ports_processed_list \u003d ["},{"line_number":2674,"context_line":"            {\u0027iface_id\u0027: \u0027407a79e0-e0be-4b7d-92a6-513b2161011a\u0027,"},{"line_number":2675,"context_line":"             \u0027iface_name\u0027: \u0027rep0-0\u0027,"},{"line_number":2676,"context_line":"             \u0027mac\u0027: mac,"},{"line_number":2677,"context_line":"             \u0027vif_type\u0027: \u0027unbound\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"1fa4df85_bf6a22ea","line":2674,"range":{"start_line":2674,"start_character":25,"end_line":2674,"end_character":63},"in_reply_to":"1fa4df85_020d24a0","updated":"2020-03-03 14:13:11.000000000","message":"Done","commit_id":"efd185a20848d5469eeb4497e841b69c0ce66819"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"9fed6485ef7ef6840df597d43eb89225366c3389","unresolved":false,"context_lines":[{"line_number":2677,"context_line":"             \u0027vif_type\u0027: \u0027unbound\u0027,"},{"line_number":2678,"context_line":"             \u0027vm_uuid\u0027: \u0027407a79e0-e0be-4b7d-92a6-513b2161011a\u0027}]"},{"line_number":2679,"context_line":"        expected_current_int_br_smartnic_ports_map \u003d {"},{"line_number":2680,"context_line":"            \u0027407a79e0-e0be-4b7d-92a6-513b2161011a\u0027: {"},{"line_number":2681,"context_line":"                \u0027vif_id\u0027: \u0027407a79e0-e0be-4b7d-92a6-513b2161011a\u0027,"},{"line_number":2682,"context_line":"                \u0027vif_mac\u0027: \u002700:11:22:33:44:55\u0027,"},{"line_number":2683,"context_line":"                \u0027vif_name\u0027: \u0027rep0-0\u0027}}"}],"source_content_type":"text/x-python","patch_set":14,"id":"1fa4df85_62fbb878","line":2680,"range":{"start_line":2680,"start_character":13,"end_line":2680,"end_character":48},"updated":"2020-03-03 09:37:18.000000000","message":"for clarity, maybe use port_id which was defined in L#2665?","commit_id":"efd185a20848d5469eeb4497e841b69c0ce66819"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"ea12f675d6af4854975edeead8334da13af34195","unresolved":false,"context_lines":[{"line_number":2677,"context_line":"             \u0027vif_type\u0027: \u0027unbound\u0027,"},{"line_number":2678,"context_line":"             \u0027vm_uuid\u0027: \u0027407a79e0-e0be-4b7d-92a6-513b2161011a\u0027}]"},{"line_number":2679,"context_line":"        expected_current_int_br_smartnic_ports_map \u003d {"},{"line_number":2680,"context_line":"            \u0027407a79e0-e0be-4b7d-92a6-513b2161011a\u0027: {"},{"line_number":2681,"context_line":"                \u0027vif_id\u0027: \u0027407a79e0-e0be-4b7d-92a6-513b2161011a\u0027,"},{"line_number":2682,"context_line":"                \u0027vif_mac\u0027: \u002700:11:22:33:44:55\u0027,"},{"line_number":2683,"context_line":"                \u0027vif_name\u0027: \u0027rep0-0\u0027}}"}],"source_content_type":"text/x-python","patch_set":14,"id":"1fa4df85_7f782ac3","line":2680,"range":{"start_line":2680,"start_character":13,"end_line":2680,"end_character":48},"in_reply_to":"1fa4df85_62fbb878","updated":"2020-03-03 14:13:11.000000000","message":"Done","commit_id":"efd185a20848d5469eeb4497e841b69c0ce66819"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"9fed6485ef7ef6840df597d43eb89225366c3389","unresolved":false,"context_lines":[{"line_number":2678,"context_line":"             \u0027vm_uuid\u0027: \u0027407a79e0-e0be-4b7d-92a6-513b2161011a\u0027}]"},{"line_number":2679,"context_line":"        expected_current_int_br_smartnic_ports_map \u003d {"},{"line_number":2680,"context_line":"            \u0027407a79e0-e0be-4b7d-92a6-513b2161011a\u0027: {"},{"line_number":2681,"context_line":"                \u0027vif_id\u0027: \u0027407a79e0-e0be-4b7d-92a6-513b2161011a\u0027,"},{"line_number":2682,"context_line":"                \u0027vif_mac\u0027: \u002700:11:22:33:44:55\u0027,"},{"line_number":2683,"context_line":"                \u0027vif_name\u0027: \u0027rep0-0\u0027}}"},{"line_number":2684,"context_line":"        with mock.patch.object(self.agent.plugin_rpc,"}],"source_content_type":"text/x-python","patch_set":14,"id":"1fa4df85_82f8347b","line":2681,"range":{"start_line":2681,"start_character":26,"end_line":2681,"end_character":64},"updated":"2020-03-03 09:37:18.000000000","message":"for clarity, maybe use port_id which was defined in L#2665?","commit_id":"efd185a20848d5469eeb4497e841b69c0ce66819"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"ea12f675d6af4854975edeead8334da13af34195","unresolved":false,"context_lines":[{"line_number":2678,"context_line":"             \u0027vm_uuid\u0027: \u0027407a79e0-e0be-4b7d-92a6-513b2161011a\u0027}]"},{"line_number":2679,"context_line":"        expected_current_int_br_smartnic_ports_map \u003d {"},{"line_number":2680,"context_line":"            \u0027407a79e0-e0be-4b7d-92a6-513b2161011a\u0027: {"},{"line_number":2681,"context_line":"                \u0027vif_id\u0027: \u0027407a79e0-e0be-4b7d-92a6-513b2161011a\u0027,"},{"line_number":2682,"context_line":"                \u0027vif_mac\u0027: \u002700:11:22:33:44:55\u0027,"},{"line_number":2683,"context_line":"                \u0027vif_name\u0027: \u0027rep0-0\u0027}}"},{"line_number":2684,"context_line":"        with mock.patch.object(self.agent.plugin_rpc,"}],"source_content_type":"text/x-python","patch_set":14,"id":"1fa4df85_3f7e32af","line":2681,"range":{"start_line":2681,"start_character":26,"end_line":2681,"end_character":64},"in_reply_to":"1fa4df85_82f8347b","updated":"2020-03-03 14:13:11.000000000","message":"Done","commit_id":"efd185a20848d5469eeb4497e841b69c0ce66819"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"9fed6485ef7ef6840df597d43eb89225366c3389","unresolved":false,"context_lines":[{"line_number":2694,"context_line":"                             self.agent.current_int_br_smartnic_ports_map)"},{"line_number":2695,"context_line":""},{"line_number":2696,"context_line":"    def test_process_smartnic_ports(self):"},{"line_number":2697,"context_line":"        port_id \u003d \"407a79e0-e0be-4b7d-92a6-513b2161011a\""},{"line_number":2698,"context_line":"        rep_port \u003d \u0027rep0-0\u0027"},{"line_number":2699,"context_line":"        mac \u003d FAKE_MAC"},{"line_number":2700,"context_line":"        ovs_port \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":14,"id":"1fa4df85_624098a6","line":2697,"updated":"2020-03-03 09:37:18.000000000","message":"same as my comments above about `port_id`\ni see its value is being re-used below","commit_id":"efd185a20848d5469eeb4497e841b69c0ce66819"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"ea12f675d6af4854975edeead8334da13af34195","unresolved":false,"context_lines":[{"line_number":2694,"context_line":"                             self.agent.current_int_br_smartnic_ports_map)"},{"line_number":2695,"context_line":""},{"line_number":2696,"context_line":"    def test_process_smartnic_ports(self):"},{"line_number":2697,"context_line":"        port_id \u003d \"407a79e0-e0be-4b7d-92a6-513b2161011a\""},{"line_number":2698,"context_line":"        rep_port \u003d \u0027rep0-0\u0027"},{"line_number":2699,"context_line":"        mac \u003d FAKE_MAC"},{"line_number":2700,"context_line":"        ovs_port \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":14,"id":"1fa4df85_bf43026c","line":2697,"in_reply_to":"1fa4df85_624098a6","updated":"2020-03-03 14:13:11.000000000","message":"Done","commit_id":"efd185a20848d5469eeb4497e841b69c0ce66819"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"a62860614e1d01f69dc64cdb1c991182e8acd464","unresolved":false,"context_lines":[{"line_number":1363,"context_line":"            expected_smartnic_port_data \u003d []"},{"line_number":1364,"context_line":"            mocked_resource.assert_called_with(resources.PORT, port[\u0027id\u0027])"},{"line_number":1365,"context_line":"            self.assertEqual({port[\u0027id\u0027]}, self.agent.updated_ports)"},{"line_number":1366,"context_line":"            self.assertEqual(expected_smartnic_port_data,"},{"line_number":1367,"context_line":"                             self.agent.updated_smartnic_ports)"},{"line_number":1368,"context_line":""},{"line_number":1369,"context_line":"    def test_port_delete_after_update(self):"}],"source_content_type":"text/x-python","patch_set":17,"id":"1fa4df85_f798acc0","line":1366,"range":{"start_line":1366,"start_character":29,"end_line":1366,"end_character":56},"updated":"2020-03-04 14:54:16.000000000","message":"nit: just put [] here","commit_id":"a7164b977468181f3ca8ba4802e05892f0524516"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"7f76355b12ae5b5a7560b4b890fda823af63d677","unresolved":false,"context_lines":[{"line_number":1363,"context_line":"            expected_smartnic_port_data \u003d []"},{"line_number":1364,"context_line":"            mocked_resource.assert_called_with(resources.PORT, port[\u0027id\u0027])"},{"line_number":1365,"context_line":"            self.assertEqual({port[\u0027id\u0027]}, self.agent.updated_ports)"},{"line_number":1366,"context_line":"            self.assertEqual(expected_smartnic_port_data,"},{"line_number":1367,"context_line":"                             self.agent.updated_smartnic_ports)"},{"line_number":1368,"context_line":""},{"line_number":1369,"context_line":"    def test_port_delete_after_update(self):"}],"source_content_type":"text/x-python","patch_set":17,"id":"1fa4df85_acce59b1","line":1366,"range":{"start_line":1366,"start_character":29,"end_line":1366,"end_character":56},"in_reply_to":"1fa4df85_f798acc0","updated":"2020-03-05 12:05:01.000000000","message":"Done","commit_id":"a7164b977468181f3ca8ba4802e05892f0524516"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"a62860614e1d01f69dc64cdb1c991182e8acd464","unresolved":false,"context_lines":[{"line_number":2672,"context_line":"            {\u0027iface_id\u0027: port_id,"},{"line_number":2673,"context_line":"             \u0027iface_name\u0027: rep_port,"},{"line_number":2674,"context_line":"             \u0027mac\u0027: mac,"},{"line_number":2675,"context_line":"             \u0027vif_type\u0027: \u0027unbound\u0027,"},{"line_number":2676,"context_line":"             \u0027vm_uuid\u0027: port_id}]"},{"line_number":2677,"context_line":"        expected_current_smartnic_ports_map \u003d {"},{"line_number":2678,"context_line":"            port_id: {"}],"source_content_type":"text/x-python","patch_set":17,"id":"1fa4df85_b751d4db","line":2675,"range":{"start_line":2675,"start_character":26,"end_line":2675,"end_character":34},"updated":"2020-03-04 14:54:16.000000000","message":"nit: portbindings.VIF_TYPE_UNBOUND","commit_id":"a7164b977468181f3ca8ba4802e05892f0524516"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"7f76355b12ae5b5a7560b4b890fda823af63d677","unresolved":false,"context_lines":[{"line_number":2672,"context_line":"            {\u0027iface_id\u0027: port_id,"},{"line_number":2673,"context_line":"             \u0027iface_name\u0027: rep_port,"},{"line_number":2674,"context_line":"             \u0027mac\u0027: mac,"},{"line_number":2675,"context_line":"             \u0027vif_type\u0027: \u0027unbound\u0027,"},{"line_number":2676,"context_line":"             \u0027vm_uuid\u0027: port_id}]"},{"line_number":2677,"context_line":"        expected_current_smartnic_ports_map \u003d {"},{"line_number":2678,"context_line":"            port_id: {"}],"source_content_type":"text/x-python","patch_set":17,"id":"1fa4df85_8cc91dad","line":2675,"range":{"start_line":2675,"start_character":26,"end_line":2675,"end_character":34},"in_reply_to":"1fa4df85_b751d4db","updated":"2020-03-05 12:05:01.000000000","message":"Done","commit_id":"a7164b977468181f3ca8ba4802e05892f0524516"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"a62860614e1d01f69dc64cdb1c991182e8acd464","unresolved":false,"context_lines":[{"line_number":2712,"context_line":"            {\u0027iface_id\u0027: port_id,"},{"line_number":2713,"context_line":"             \u0027iface_name\u0027: rep_port,"},{"line_number":2714,"context_line":"             \u0027mac\u0027: mac,"},{"line_number":2715,"context_line":"             \u0027vif_type\u0027: \u0027unbound\u0027,"},{"line_number":2716,"context_line":"             \u0027vm_uuid\u0027: port_id},"},{"line_number":2717,"context_line":"            {\u0027iface_id\u0027: \"407a79e0-e0be-4b7d-92a6-513b2161011c\","},{"line_number":2718,"context_line":"             \u0027iface_name\u0027: rep_port,"}],"source_content_type":"text/x-python","patch_set":17,"id":"1fa4df85_d767b0b6","line":2715,"updated":"2020-03-04 14:54:16.000000000","message":"nit: portbindings.VIF_TYPE_UNBOUND","commit_id":"a7164b977468181f3ca8ba4802e05892f0524516"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"7f76355b12ae5b5a7560b4b890fda823af63d677","unresolved":false,"context_lines":[{"line_number":2712,"context_line":"            {\u0027iface_id\u0027: port_id,"},{"line_number":2713,"context_line":"             \u0027iface_name\u0027: rep_port,"},{"line_number":2714,"context_line":"             \u0027mac\u0027: mac,"},{"line_number":2715,"context_line":"             \u0027vif_type\u0027: \u0027unbound\u0027,"},{"line_number":2716,"context_line":"             \u0027vm_uuid\u0027: port_id},"},{"line_number":2717,"context_line":"            {\u0027iface_id\u0027: \"407a79e0-e0be-4b7d-92a6-513b2161011c\","},{"line_number":2718,"context_line":"             \u0027iface_name\u0027: rep_port,"}],"source_content_type":"text/x-python","patch_set":17,"id":"1fa4df85_ecd8d17b","line":2715,"in_reply_to":"1fa4df85_d767b0b6","updated":"2020-03-05 12:05:01.000000000","message":"Done","commit_id":"a7164b977468181f3ca8ba4802e05892f0524516"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"a62860614e1d01f69dc64cdb1c991182e8acd464","unresolved":false,"context_lines":[{"line_number":2717,"context_line":"            {\u0027iface_id\u0027: \"407a79e0-e0be-4b7d-92a6-513b2161011c\","},{"line_number":2718,"context_line":"             \u0027iface_name\u0027: rep_port,"},{"line_number":2719,"context_line":"             \u0027mac\u0027: mac,"},{"line_number":2720,"context_line":"             \u0027vif_type\u0027: \"ovs\","},{"line_number":2721,"context_line":"             \u0027vm_uuid\u0027: \"407a79e0-e0be-4b7d-92a6-513b2161011e\"}]"},{"line_number":2722,"context_line":"        expected_current_smartnic_ports_map \u003d {"},{"line_number":2723,"context_line":"            port_id: {"}],"source_content_type":"text/x-python","patch_set":17,"id":"1fa4df85_7706fcd0","line":2720,"updated":"2020-03-04 14:54:16.000000000","message":"nit: use the corresponding const","commit_id":"a7164b977468181f3ca8ba4802e05892f0524516"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"7f76355b12ae5b5a7560b4b890fda823af63d677","unresolved":false,"context_lines":[{"line_number":2717,"context_line":"            {\u0027iface_id\u0027: \"407a79e0-e0be-4b7d-92a6-513b2161011c\","},{"line_number":2718,"context_line":"             \u0027iface_name\u0027: rep_port,"},{"line_number":2719,"context_line":"             \u0027mac\u0027: mac,"},{"line_number":2720,"context_line":"             \u0027vif_type\u0027: \"ovs\","},{"line_number":2721,"context_line":"             \u0027vm_uuid\u0027: \"407a79e0-e0be-4b7d-92a6-513b2161011e\"}]"},{"line_number":2722,"context_line":"        expected_current_smartnic_ports_map \u003d {"},{"line_number":2723,"context_line":"            port_id: {"}],"source_content_type":"text/x-python","patch_set":17,"id":"1fa4df85_ccd3955f","line":2720,"in_reply_to":"1fa4df85_7706fcd0","updated":"2020-03-05 12:05:01.000000000","message":"Done","commit_id":"a7164b977468181f3ca8ba4802e05892f0524516"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"a62860614e1d01f69dc64cdb1c991182e8acd464","unresolved":false,"context_lines":[{"line_number":2769,"context_line":"        vif_mac \u003d FAKE_MAC"},{"line_number":2770,"context_line":"        ovs_port \u003d {\"vif_mac\": vif_mac, \"vif_id\": vif_id, \"vif_name\": vif_name}"},{"line_number":2771,"context_line":""},{"line_number":2772,"context_line":"        self.agent._add_deleted_port_to_updated_smartnic_ports(**ovs_port)"},{"line_number":2773,"context_line":"        smartnic_data \u003d {"},{"line_number":2774,"context_line":"            \u0027mac\u0027: vif_mac,"},{"line_number":2775,"context_line":"            \u0027vm_uuid\u0027: vif_id,"}],"source_content_type":"text/x-python","patch_set":17,"id":"1fa4df85_9734d894","line":2772,"range":{"start_line":2772,"start_character":63,"end_line":2772,"end_character":73},"updated":"2020-03-04 14:54:16.000000000","message":"just pass in the parameters directly , no need to put them in dict and then unpack them with **","commit_id":"a7164b977468181f3ca8ba4802e05892f0524516"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"7f76355b12ae5b5a7560b4b890fda823af63d677","unresolved":false,"context_lines":[{"line_number":2769,"context_line":"        vif_mac \u003d FAKE_MAC"},{"line_number":2770,"context_line":"        ovs_port \u003d {\"vif_mac\": vif_mac, \"vif_id\": vif_id, \"vif_name\": vif_name}"},{"line_number":2771,"context_line":""},{"line_number":2772,"context_line":"        self.agent._add_deleted_port_to_updated_smartnic_ports(**ovs_port)"},{"line_number":2773,"context_line":"        smartnic_data \u003d {"},{"line_number":2774,"context_line":"            \u0027mac\u0027: vif_mac,"},{"line_number":2775,"context_line":"            \u0027vm_uuid\u0027: vif_id,"}],"source_content_type":"text/x-python","patch_set":17,"id":"1fa4df85_8c259d5e","line":2772,"range":{"start_line":2772,"start_character":63,"end_line":2772,"end_character":73},"in_reply_to":"1fa4df85_9734d894","updated":"2020-03-05 12:05:01.000000000","message":"Done","commit_id":"a7164b977468181f3ca8ba4802e05892f0524516"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"a62860614e1d01f69dc64cdb1c991182e8acd464","unresolved":false,"context_lines":[{"line_number":2775,"context_line":"            \u0027vm_uuid\u0027: vif_id,"},{"line_number":2776,"context_line":"            \u0027iface_name\u0027: vif_name,"},{"line_number":2777,"context_line":"            \u0027iface_id\u0027: vif_id,"},{"line_number":2778,"context_line":"            \u0027vif_type\u0027: \"unbound\"}"},{"line_number":2779,"context_line":"        self.assertEqual([smartnic_data],"},{"line_number":2780,"context_line":"                         self.agent.updated_smartnic_ports)"},{"line_number":2781,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"1fa4df85_572ae02b","line":2778,"range":{"start_line":2778,"start_character":11,"end_line":2778,"end_character":33},"updated":"2020-03-04 14:54:16.000000000","message":"nit: please use the const as commented above","commit_id":"a7164b977468181f3ca8ba4802e05892f0524516"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"7f76355b12ae5b5a7560b4b890fda823af63d677","unresolved":false,"context_lines":[{"line_number":2775,"context_line":"            \u0027vm_uuid\u0027: vif_id,"},{"line_number":2776,"context_line":"            \u0027iface_name\u0027: vif_name,"},{"line_number":2777,"context_line":"            \u0027iface_id\u0027: vif_id,"},{"line_number":2778,"context_line":"            \u0027vif_type\u0027: \"unbound\"}"},{"line_number":2779,"context_line":"        self.assertEqual([smartnic_data],"},{"line_number":2780,"context_line":"                         self.agent.updated_smartnic_ports)"},{"line_number":2781,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"1fa4df85_2ce1092b","line":2778,"range":{"start_line":2778,"start_character":11,"end_line":2778,"end_character":33},"in_reply_to":"1fa4df85_572ae02b","updated":"2020-03-05 12:05:01.000000000","message":"Done","commit_id":"a7164b977468181f3ca8ba4802e05892f0524516"}]}
