)]}'
{"dragonflow/neutron/plugin.py":[{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"c3aeebaa4f1d53cdfb1b54d0805d31f63c23f75a","unresolved":false,"context_lines":[{"line_number":237,"context_line":"                                   self).create_subnet(context, subnet)"},{"line_number":238,"context_line":"                dhcp_port \u003d self._handle_create_subnet_dhcp("},{"line_number":239,"context_line":"                                context, new_subnet)"},{"line_number":240,"context_line":"        except Exception:"},{"line_number":241,"context_line":"            with excutils.save_and_reraise_exception() as ctxt:"},{"line_number":242,"context_line":"                ctxt.reraise \u003d True"},{"line_number":243,"context_line":"                # delete the stale dhcp port"}],"source_content_type":"text/x-python","patch_set":2,"id":"da0c15f0_8ae21302","line":240,"updated":"2016-03-25 12:58:00.000000000","message":"I dont understand which case this cover, the subnet creation failed in Neutron?\n\nI assume the problem you try to catch is that the DHCP port creation failed (if its the case it will be clearer if the try/except is only on it)\n\nIf this is the case, then maybe it will be good to also include the add_subnet call below in the try/except","commit_id":"7d2aea23d496afa6938520d42abb827f6ffc4076"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"2a3f72e8af2d0321dc981c6bf065327756d9d20c","unresolved":false,"context_lines":[{"line_number":237,"context_line":"                                   self).create_subnet(context, subnet)"},{"line_number":238,"context_line":"                dhcp_port \u003d self._handle_create_subnet_dhcp("},{"line_number":239,"context_line":"                                context, new_subnet)"},{"line_number":240,"context_line":"        except Exception:"},{"line_number":241,"context_line":"            with excutils.save_and_reraise_exception() as ctxt:"},{"line_number":242,"context_line":"                ctxt.reraise \u003d True"},{"line_number":243,"context_line":"                # delete the stale dhcp port"}],"source_content_type":"text/x-python","patch_set":2,"id":"da0c15f0_1802ae6f","line":240,"in_reply_to":"da0c15f0_8ae21302","updated":"2016-03-28 01:42:33.000000000","message":"This fix is only for nested core api. When we call a core plugin api inside db transaction, if it is failed, the neutron db will be rolled back, but df db operation will be committed anyway. We have to identify this case and fix it.\n\nThe add_subnet logic need not to be included. When neutron db transaction is rolled back, it will raise the exception to the outside then, and the add_subnet function will not be reached.","commit_id":"7d2aea23d496afa6938520d42abb827f6ffc4076"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"373cc3db0bd21ef0a2d7e0b9b33784e1c05d2b36","unresolved":false,"context_lines":[{"line_number":167,"context_line":"                fanout\u003dFalse)"},{"line_number":168,"context_line":"        return self.conn.consume_in_threads()"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    def _delete_ports(self, context, ports):"},{"line_number":171,"context_line":"        for port in ports:"},{"line_number":172,"context_line":"            try:"},{"line_number":173,"context_line":"                self.delete_port(context, port.id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da0c15f0_7b73e480","side":"PARENT","line":170,"range":{"start_line":170,"start_character":4,"end_line":170,"end_character":44},"updated":"2016-03-28 02:31:40.000000000","message":"this function is copied from ml2 plugin but never used.","commit_id":"e6fcdafe8a8c1219a1b0458f77a9d6e12be3aadd"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"36e11ee9c57b1b526b1b3280f45e6fc9c86fb569","unresolved":false,"context_lines":[{"line_number":167,"context_line":"                fanout\u003dFalse)"},{"line_number":168,"context_line":"        return self.conn.consume_in_threads()"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    def _delete_ports(self, context, ports):"},{"line_number":171,"context_line":"        for port in ports:"},{"line_number":172,"context_line":"            try:"},{"line_number":173,"context_line":"                self.delete_port(context, port.id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da0c15f0_c2b95dcd","side":"PARENT","line":170,"range":{"start_line":170,"start_character":4,"end_line":170,"end_character":44},"in_reply_to":"da0c15f0_276e6b01","updated":"2016-03-28 07:07:40.000000000","message":"OK.","commit_id":"e6fcdafe8a8c1219a1b0458f77a9d6e12be3aadd"},{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"2f27372f1fa116dbd59af62951870ac537a0fbc9","unresolved":false,"context_lines":[{"line_number":167,"context_line":"                fanout\u003dFalse)"},{"line_number":168,"context_line":"        return self.conn.consume_in_threads()"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    def _delete_ports(self, context, ports):"},{"line_number":171,"context_line":"        for port in ports:"},{"line_number":172,"context_line":"            try:"},{"line_number":173,"context_line":"                self.delete_port(context, port.id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da0c15f0_276e6b01","side":"PARENT","line":170,"range":{"start_line":170,"start_character":4,"end_line":170,"end_character":44},"in_reply_to":"da0c15f0_7b73e480","updated":"2016-03-28 06:42:23.000000000","message":"seems to me as unrelated change better to push it in another patch","commit_id":"e6fcdafe8a8c1219a1b0458f77a9d6e12be3aadd"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"373cc3db0bd21ef0a2d7e0b9b33784e1c05d2b36","unresolved":false,"context_lines":[{"line_number":580,"context_line":"        except df_exceptions.DBKeyNotFound:"},{"line_number":581,"context_line":"            LOG.debug(\"router %s is not found in DF DB, might have \""},{"line_number":582,"context_line":"                      \"been deleted concurrently\" % router_name)"},{"line_number":583,"context_line":""},{"line_number":584,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":585,"context_line":"            ret_val \u003d super(DFPlugin, self).delete_router(context,"},{"line_number":586,"context_line":"                                                          router_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da0c15f0_db0830dc","side":"PARENT","line":583,"updated":"2016-03-28 02:31:40.000000000","message":"we should first commit the neutron db operations. if it is done successfully, we call df db to update.","commit_id":"e6fcdafe8a8c1219a1b0458f77a9d6e12be3aadd"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"373cc3db0bd21ef0a2d7e0b9b33784e1c05d2b36","unresolved":false,"context_lines":[{"line_number":623,"context_line":"        interface_info[\u0027port_id\u0027] \u003d port[\u0027id\u0027]"},{"line_number":624,"context_line":"        if \u0027subnet_id\u0027 in interface_info:"},{"line_number":625,"context_line":"            del interface_info[\u0027subnet_id\u0027]"},{"line_number":626,"context_line":""},{"line_number":627,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":628,"context_line":"            result \u003d super(DFPlugin, self).add_router_interface("},{"line_number":629,"context_line":"                context, router_id, interface_info)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da0c15f0_3b104c01","side":"PARENT","line":626,"updated":"2016-03-28 02:31:40.000000000","message":"ditto","commit_id":"e6fcdafe8a8c1219a1b0458f77a9d6e12be3aadd"},{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"2f27372f1fa116dbd59af62951870ac537a0fbc9","unresolved":false,"context_lines":[{"line_number":718,"context_line":"    def _update_subnet_dhcp(self, context, old_subnet, new_subnet):"},{"line_number":719,"context_line":"        \"\"\"Update the dhcp configration for."},{"line_number":720,"context_line":""},{"line_number":721,"context_line":"        Returns the dhcp server ip address if configured"},{"line_number":722,"context_line":"        \"\"\""},{"line_number":723,"context_line":"        if cfg.CONF.df.use_centralized_ipv6_DHCP:"},{"line_number":724,"context_line":"            return self._update_subnet_dhcp_centralized(context, new_subnet)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da0c15f0_a7ab9b1c","line":721,"range":{"start_line":721,"start_character":32,"end_line":721,"end_character":43},"updated":"2016-03-28 06:42:23.000000000","message":"Port","commit_id":"9a22e0b122893a222c524ca8551b2a300531ce1f"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"36e11ee9c57b1b526b1b3280f45e6fc9c86fb569","unresolved":false,"context_lines":[{"line_number":718,"context_line":"    def _update_subnet_dhcp(self, context, old_subnet, new_subnet):"},{"line_number":719,"context_line":"        \"\"\"Update the dhcp configration for."},{"line_number":720,"context_line":""},{"line_number":721,"context_line":"        Returns the dhcp server ip address if configured"},{"line_number":722,"context_line":"        \"\"\""},{"line_number":723,"context_line":"        if cfg.CONF.df.use_centralized_ipv6_DHCP:"},{"line_number":724,"context_line":"            return self._update_subnet_dhcp_centralized(context, new_subnet)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da0c15f0_22b139e2","line":721,"range":{"start_line":721,"start_character":32,"end_line":721,"end_character":43},"in_reply_to":"da0c15f0_a7ab9b1c","updated":"2016-03-28 07:07:40.000000000","message":"Done","commit_id":"9a22e0b122893a222c524ca8551b2a300531ce1f"}]}
