)]}'
{"neutron/plugins/ml2/plugin.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"18e2fb397806ed9b304a2b9ef626ed9817b65572","unresolved":false,"context_lines":[{"line_number":881,"context_line":"        # function is not used because it deallocates the subnet\u0027s addresses"},{"line_number":882,"context_line":"        # from ports in the DB without invoking the derived class\u0027s"},{"line_number":883,"context_line":"        # update_port(), preventing mechanism drivers from being called."},{"line_number":884,"context_line":"        # This approach should be revisited when the API layer is reworked"},{"line_number":885,"context_line":"        # during icehouse."},{"line_number":886,"context_line":""},{"line_number":887,"context_line":"        LOG.debug(\"Deleting subnet %s\", id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa80f949_922d6d48","line":884,"updated":"2015-11-05 15:34:24.000000000","message":"Icehouse has long since passed - too bad that never happened as comparing this with db_base_plugin_v2.delete_subnet() is tedious.","commit_id":"0309d6f2b92d1e6f5b11ace750057799954568e1"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"f2765078ee1dee72c23ffe735a88c79256a91819","unresolved":false,"context_lines":[{"line_number":881,"context_line":"        # function is not used because it deallocates the subnet\u0027s addresses"},{"line_number":882,"context_line":"        # from ports in the DB without invoking the derived class\u0027s"},{"line_number":883,"context_line":"        # update_port(), preventing mechanism drivers from being called."},{"line_number":884,"context_line":"        # This approach should be revisited when the API layer is reworked"},{"line_number":885,"context_line":"        # during icehouse."},{"line_number":886,"context_line":""},{"line_number":887,"context_line":"        LOG.debug(\"Deleting subnet %s\", id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_dcb1c290","line":884,"in_reply_to":"fa80f949_7ef20c71","updated":"2015-11-10 15:59:10.000000000","message":"This can\u0027t be done because that function deletes ports at the DB level. ML2 requires calling drivers (pre and post commit) when ports are deleted. But that function can\u0027t be changed to delete ports via the plugin because its called within a transaction, and ML2\u0027s postcommit calls must be done outside the transaction.","commit_id":"0309d6f2b92d1e6f5b11ace750057799954568e1"},{"author":{"_account_id":13768,"name":"Pavel Bondar","email":"pbondar@infoblox.com","username":"pavel_bondar"},"change_message_id":"37705aeda65bc12bac138fdbda80b45d646c6483","unresolved":false,"context_lines":[{"line_number":881,"context_line":"        # function is not used because it deallocates the subnet\u0027s addresses"},{"line_number":882,"context_line":"        # from ports in the DB without invoking the derived class\u0027s"},{"line_number":883,"context_line":"        # update_port(), preventing mechanism drivers from being called."},{"line_number":884,"context_line":"        # This approach should be revisited when the API layer is reworked"},{"line_number":885,"context_line":"        # during icehouse."},{"line_number":886,"context_line":""},{"line_number":887,"context_line":"        LOG.debug(\"Deleting subnet %s\", id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa80f949_7ef20c71","line":884,"in_reply_to":"fa80f949_922d6d48","updated":"2015-11-05 19:08:31.000000000","message":"calling db_base_plugin_v2.delete_subnet() from this method would prevent this bug and probably some others.\nBut I am not yet well aware about ml2 internals, so can only guess about consequences.","commit_id":"0309d6f2b92d1e6f5b11ace750057799954568e1"}]}
