)]}'
{"networking_ovn/ml2/mech_driver.py":[{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"54b4ab534fb0f2e630ca9cb6f05f83e6d4c38428","unresolved":false,"context_lines":[{"line_number":766,"context_line":"        # If this port is a subport, we need to update the host_id and set it"},{"line_number":767,"context_line":"        # to its parent\u0027s. Otherwise, Neutron won\u0027t even try to bind it and"},{"line_number":768,"context_line":"        # it will not transition from DOWN to ACTIVE."},{"line_number":769,"context_line":"        self._update_subport_host_if_needed(port_id)"},{"line_number":770,"context_line":""},{"line_number":771,"context_line":"        provisioning_blocks.provisioning_complete("},{"line_number":772,"context_line":"            n_context.get_admin_context(),"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_2d340349","side":"PARENT","line":769,"range":{"start_line":769,"start_character":0,"end_line":769,"end_character":8},"updated":"2019-12-03 08:05:34.000000000","message":"I\u0027ll try to check if this required to update the port here or not, like verifying if the device_owner and device_type are set.","commit_id":"64e3dd8eaeb302177685145c25d72e56634b1a38"},{"author":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"change_message_id":"42ade718b272b9e1fde6442d4512e288489b7d7d","unresolved":false,"context_lines":[{"line_number":766,"context_line":"        # If this port is a subport, we need to update the host_id and set it"},{"line_number":767,"context_line":"        # to its parent\u0027s. Otherwise, Neutron won\u0027t even try to bind it and"},{"line_number":768,"context_line":"        # it will not transition from DOWN to ACTIVE."},{"line_number":769,"context_line":"        self._update_subport_host_if_needed(port_id)"},{"line_number":770,"context_line":""},{"line_number":771,"context_line":"        provisioning_blocks.provisioning_complete("},{"line_number":772,"context_line":"            n_context.get_admin_context(),"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_16ab4888","side":"PARENT","line":769,"range":{"start_line":769,"start_character":0,"end_line":769,"end_character":8},"in_reply_to":"3fa7e38b_2d340349","updated":"2019-12-03 19:22:37.000000000","message":"Ack. I verified this by testing and looking at the traces. But a second option is extremely welcome!","commit_id":"64e3dd8eaeb302177685145c25d72e56634b1a38"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"addb6c52eebe1b28807d4bf4ec79e4467bb4e1a3","unresolved":false,"context_lines":[{"line_number":705,"context_line":"        # See doc/source/design/ovn_worker.rst for more details."},{"line_number":706,"context_line":"        return [ovsdb_monitor.OvnWorker(), maintenance.MaintenanceWorker()]"},{"line_number":707,"context_line":""},{"line_number":708,"context_line":"    def _update_subport_host_if_needed(self, port_id):"},{"line_number":709,"context_line":"        parent_port \u003d self._ovn_client.get_parent_port(port_id)"},{"line_number":710,"context_line":"        if parent_port:"},{"line_number":711,"context_line":"            admin_context \u003d n_context.get_admin_context()"},{"line_number":712,"context_line":"            try:"},{"line_number":713,"context_line":"                port \u003d self._plugin.get_port(admin_context, parent_port)"},{"line_number":714,"context_line":"                host_id \u003d port.get(portbindings.HOST_ID, \u0027\u0027)"},{"line_number":715,"context_line":"                subport \u003d {\u0027port\u0027: {\u0027binding:host_id\u0027: host_id}}"},{"line_number":716,"context_line":"                self._plugin.update_port(admin_context, port_id, subport)"},{"line_number":717,"context_line":"            except (os_db_exc.DBReferenceError, n_exc.PortNotFound):"},{"line_number":718,"context_line":"                LOG.debug(\"Error trying to set host_id %s for subport %s\","},{"line_number":719,"context_line":"                          host_id, port_id)"},{"line_number":720,"context_line":""},{"line_number":721,"context_line":"    def _update_dnat_entry_if_needed(self, port_id, up\u003dTrue):"},{"line_number":722,"context_line":"        \"\"\"Update DNAT entry if using distributed floating ips.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_732ad8e6","line":719,"range":{"start_line":708,"start_character":0,"end_line":719,"end_character":43},"updated":"2019-12-03 10:17:58.000000000","message":"This whole thing can be dropped, right?","commit_id":"706ee3dd5861c57e7e9dccdcfa10c00aae5581c7"},{"author":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"change_message_id":"42ade718b272b9e1fde6442d4512e288489b7d7d","unresolved":false,"context_lines":[{"line_number":705,"context_line":"        # See doc/source/design/ovn_worker.rst for more details."},{"line_number":706,"context_line":"        return [ovsdb_monitor.OvnWorker(), maintenance.MaintenanceWorker()]"},{"line_number":707,"context_line":""},{"line_number":708,"context_line":"    def _update_subport_host_if_needed(self, port_id):"},{"line_number":709,"context_line":"        parent_port \u003d self._ovn_client.get_parent_port(port_id)"},{"line_number":710,"context_line":"        if parent_port:"},{"line_number":711,"context_line":"            admin_context \u003d n_context.get_admin_context()"},{"line_number":712,"context_line":"            try:"},{"line_number":713,"context_line":"                port \u003d self._plugin.get_port(admin_context, parent_port)"},{"line_number":714,"context_line":"                host_id \u003d port.get(portbindings.HOST_ID, \u0027\u0027)"},{"line_number":715,"context_line":"                subport \u003d {\u0027port\u0027: {\u0027binding:host_id\u0027: host_id}}"},{"line_number":716,"context_line":"                self._plugin.update_port(admin_context, port_id, subport)"},{"line_number":717,"context_line":"            except (os_db_exc.DBReferenceError, n_exc.PortNotFound):"},{"line_number":718,"context_line":"                LOG.debug(\"Error trying to set host_id %s for subport %s\","},{"line_number":719,"context_line":"                          host_id, port_id)"},{"line_number":720,"context_line":""},{"line_number":721,"context_line":"    def _update_dnat_entry_if_needed(self, port_id, up\u003dTrue):"},{"line_number":722,"context_line":"        \"\"\"Update DNAT entry if using distributed floating ips.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_76f07c92","line":719,"range":{"start_line":708,"start_character":0,"end_line":719,"end_character":43},"in_reply_to":"3fa7e38b_732ad8e6","updated":"2019-12-03 19:22:37.000000000","message":"Done","commit_id":"706ee3dd5861c57e7e9dccdcfa10c00aae5581c7"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"addb6c52eebe1b28807d4bf4ec79e4467bb4e1a3","unresolved":false,"context_lines":[{"line_number":763,"context_line":"        self._update_dnat_entry_if_needed(port_id)"},{"line_number":764,"context_line":"        self._wait_for_metadata_provisioned_if_needed(port_id)"},{"line_number":765,"context_line":""},{"line_number":766,"context_line":"        # Note: If this port is a subport, we expect its host_id to be set"},{"line_number":767,"context_line":"        # via trunk_driver. Otherwise, Neutron won\u0027t even try to bind it and"},{"line_number":768,"context_line":"        # it will not transition from DOWN to ACTIVE."},{"line_number":769,"context_line":""},{"line_number":770,"context_line":"        provisioning_blocks.provisioning_complete("},{"line_number":771,"context_line":"            n_context.get_admin_context(),"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_53023c74","line":768,"range":{"start_line":766,"start_character":0,"end_line":768,"end_character":53},"updated":"2019-12-03 10:17:58.000000000","message":"We can move this code to the trunk_driver.py","commit_id":"706ee3dd5861c57e7e9dccdcfa10c00aae5581c7"},{"author":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"change_message_id":"42ade718b272b9e1fde6442d4512e288489b7d7d","unresolved":false,"context_lines":[{"line_number":763,"context_line":"        self._update_dnat_entry_if_needed(port_id)"},{"line_number":764,"context_line":"        self._wait_for_metadata_provisioned_if_needed(port_id)"},{"line_number":765,"context_line":""},{"line_number":766,"context_line":"        # Note: If this port is a subport, we expect its host_id to be set"},{"line_number":767,"context_line":"        # via trunk_driver. Otherwise, Neutron won\u0027t even try to bind it and"},{"line_number":768,"context_line":"        # it will not transition from DOWN to ACTIVE."},{"line_number":769,"context_line":""},{"line_number":770,"context_line":"        provisioning_blocks.provisioning_complete("},{"line_number":771,"context_line":"            n_context.get_admin_context(),"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_96ebb8a2","line":768,"range":{"start_line":766,"start_character":0,"end_line":768,"end_character":53},"in_reply_to":"3fa7e38b_53023c74","updated":"2019-12-03 19:22:37.000000000","message":"Done","commit_id":"706ee3dd5861c57e7e9dccdcfa10c00aae5581c7"}],"networking_ovn/ml2/trunk_driver.py":[{"author":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"change_message_id":"a4a35241bfd8b042c5409eb3d6c139937208fc4a","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                context,"},{"line_number":103,"context_line":"                {\u0027profile\u0027: db_port.binding.profile,"},{"line_number":104,"context_line":"                 \u0027vif_type\u0027: portbindings.VIF_TYPE_UNBOUND,"},{"line_number":105,"context_line":"                 \u0027vif_details\u0027: \u0027\u0027,"},{"line_number":106,"context_line":"                 \u0027host\u0027: \u0027\u0027},"},{"line_number":107,"context_line":"                port_id\u003dsubport.port_id,"},{"line_number":108,"context_line":"                host\u003ddb_port.binding.host)"},{"line_number":109,"context_line":"            port_obj.PortBindingLevel.delete_objects("}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_e4d608c5","side":"PARENT","line":106,"range":{"start_line":105,"start_character":17,"end_line":106,"end_character":27},"updated":"2019-12-03 00:30:38.000000000","message":"vif_type, vif_details are set long before the port is used as a subport. There is no point in clearing these; and if that is important, we must have a way of restoring them in cases when subport is re-added to another trunk.\n\nhost is part of the indexing of this object in the binding table. Messing with it means losing the ability to finding it later! I think we are not to ever mess with it.","commit_id":"64e3dd8eaeb302177685145c25d72e56634b1a38"},{"author":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"change_message_id":"42ade718b272b9e1fde6442d4512e288489b7d7d","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                context,"},{"line_number":103,"context_line":"                {\u0027profile\u0027: db_port.binding.profile,"},{"line_number":104,"context_line":"                 \u0027vif_type\u0027: portbindings.VIF_TYPE_UNBOUND,"},{"line_number":105,"context_line":"                 \u0027vif_details\u0027: \u0027\u0027,"},{"line_number":106,"context_line":"                 \u0027host\u0027: \u0027\u0027},"},{"line_number":107,"context_line":"                port_id\u003dsubport.port_id,"},{"line_number":108,"context_line":"                host\u003ddb_port.binding.host)"},{"line_number":109,"context_line":"            port_obj.PortBindingLevel.delete_objects("}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_568f8021","side":"PARENT","line":106,"range":{"start_line":105,"start_character":17,"end_line":106,"end_character":27},"in_reply_to":"3fa7e38b_ad3f9320","updated":"2019-12-03 19:22:37.000000000","message":"Good point. I think it is nice to have the vif type set to unbound here. I think the setting it to ovs is not being done on our behalf, so I can simply set it in _set_binding_profile (trunk driver).","commit_id":"64e3dd8eaeb302177685145c25d72e56634b1a38"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"54b4ab534fb0f2e630ca9cb6f05f83e6d4c38428","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                context,"},{"line_number":103,"context_line":"                {\u0027profile\u0027: db_port.binding.profile,"},{"line_number":104,"context_line":"                 \u0027vif_type\u0027: portbindings.VIF_TYPE_UNBOUND,"},{"line_number":105,"context_line":"                 \u0027vif_details\u0027: \u0027\u0027,"},{"line_number":106,"context_line":"                 \u0027host\u0027: \u0027\u0027},"},{"line_number":107,"context_line":"                port_id\u003dsubport.port_id,"},{"line_number":108,"context_line":"                host\u003ddb_port.binding.host)"},{"line_number":109,"context_line":"            port_obj.PortBindingLevel.delete_objects("}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_ad3f9320","side":"PARENT","line":106,"range":{"start_line":105,"start_character":17,"end_line":106,"end_character":27},"in_reply_to":"3fa7e38b_e4d608c5","updated":"2019-12-03 08:05:34.000000000","message":"Ok, but still do we need to stay with \u0027vif_type\u0027? I believe we could set while unbinding_profile, that the port is unbound right?","commit_id":"64e3dd8eaeb302177685145c25d72e56634b1a38"}]}
