)]}'
{"neutron/services/trunk/plugin.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c64c768ff85cfdb43236d97e2cc2349767d78ddb","unresolved":false,"context_lines":[{"line_number":452,"context_line":"            device_id \u003d trunk.id if event \u003d\u003d events.AFTER_CREATE else \u0027\u0027"},{"line_number":453,"context_line":"            for subport in subports:"},{"line_number":454,"context_line":"                core_plugin.update_port(context, subport.port_id,"},{"line_number":455,"context_line":"                                        {\u0027port\u0027: {\u0027device_id\u0027: device_id}})"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_285c86eb","side":"PARENT","line":455,"updated":"2020-04-01 13:26:48.000000000","message":"Suggestion:\n\nI know this sounds risky, but we should do a bulk update without using the plugin but the DB object itself (not the OVO). \"device_id\" will be \u003cempty string\u003e or the trunk ID. Can\u0027t be any other value (there are many checks in the code taking care of this that we are going to skip now).\n\nRisks:\n- We skip the plugin checks for \"device_id\".\n- We don\u0027t raise any notification. That means we can, eventually, break the compatibility with a current or a future extension reading the port update (in this particular case, the \"device_id\").\n- A multiple register writing operation is prone to fail (but we can retry).\n\nThe direct query update, using the port IDs (the \"device_id\" is the same for all of them), is a very fast operation. This will solve the rally problems we have right now.","commit_id":"8b7d0dcbef75dfdb5dbf8787aa395bf359e1c8eb"}]}
