)]}'
{"neutron/db/db_base_plugin_v2.py":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"a43c420bfe9fe902849486a34a2df382f0838ca8","unresolved":false,"context_lines":[{"line_number":936,"context_line":"                raise n_exc.NetworkInUse(net_id\u003did)"},{"line_number":937,"context_line":""},{"line_number":938,"context_line":"            # clean up network owned ports"},{"line_number":939,"context_line":"            for port in ports:"},{"line_number":940,"context_line":"                self.delete_port(context, port[\u0027id\u0027])"},{"line_number":941,"context_line":""},{"line_number":942,"context_line":"            # clean up subnets"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2B1%2FU%3D","line":939,"updated":"2014-03-11 19:40:16.000000000","message":"I will be extra careful in doing something like that; there may be side effects of this change because you\u0027re now involving the plugin\u0027s backends; all of a sudden this method (which was supposed to deal just with DB operations) goes on and calls into controllers; this may take a while, and may cause plugins to go on and call get_network...etc etc.\n\nI know that\u0027s not ideal, but the whole thing is flawed from the top as composition should have been favored over inheritance.","commit_id":"ed795ce39b9585af3f2f7ed46e4843d75b5d46d6"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"5ed0e9803f9f43ae47175fe5e020f3a75da62720","unresolved":false,"context_lines":[{"line_number":936,"context_line":"                raise n_exc.NetworkInUse(net_id\u003did)"},{"line_number":937,"context_line":""},{"line_number":938,"context_line":"            # clean up network owned ports"},{"line_number":939,"context_line":"            for port in ports:"},{"line_number":940,"context_line":"                self.delete_port(context, port[\u0027id\u0027])"},{"line_number":941,"context_line":""},{"line_number":942,"context_line":"            # clean up subnets"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2B128%3D","line":939,"in_reply_to":"AAAAVn%2F%2B1%2FU%3D","updated":"2014-03-11 19:57:44.000000000","message":"I agree with Armando\u0027s comment. You might want to consider the ML2 plugin\u0027s approach, which does not call this base class method. It instead uses a loop so it can call delete_port() outside the transaction, and then checks again to make sure no ports were added between transactions before deleting the network record. Without something like that approach here, the ML2 plugin will not be able to use this base class method. If you do use that sort of approach (for both delete_port() and delete_subnet()) you should also change ML2 to use this method.","commit_id":"ed795ce39b9585af3f2f7ed46e4843d75b5d46d6"}]}
