)]}'
{"neutron/db/db_base_plugin_v2.py":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"fa82882b40361a60fceef3046612d2cfbc356220","unresolved":false,"context_lines":[{"line_number":837,"context_line":"            registry.notify(resources.SUBNET_GATEWAY, events.AFTER_UPDATE,"},{"line_number":838,"context_line":"                            self, **kwargs)"},{"line_number":839,"context_line":""},{"line_number":840,"context_line":"        return result, orig"},{"line_number":841,"context_line":""},{"line_number":842,"context_line":"    def _update_subnet_precommit(self, context, orig, body, result, subnet):"},{"line_number":843,"context_line":"        \"\"\"Hook point for core plugins to implement precommit logic."}],"source_content_type":"text/x-python","patch_set":1,"id":"9a629dbe_eeb2424b","line":840,"range":{"start_line":840,"start_character":23,"end_line":840,"end_character":27},"updated":"2016-11-10 23:46:20.000000000","message":"Curious as to why you want to return the original subnet?","commit_id":"4a97c013bd564d6d8ee45d4ea28f3504acdd22ad"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"622f9f98747123597d4db8d5c006f69e8c6317d2","unresolved":false,"context_lines":[{"line_number":837,"context_line":"            registry.notify(resources.SUBNET_GATEWAY, events.AFTER_UPDATE,"},{"line_number":838,"context_line":"                            self, **kwargs)"},{"line_number":839,"context_line":""},{"line_number":840,"context_line":"        return result, orig"},{"line_number":841,"context_line":""},{"line_number":842,"context_line":"    def _update_subnet_precommit(self, context, orig, body, result, subnet):"},{"line_number":843,"context_line":"        \"\"\"Hook point for core plugins to implement precommit logic."}],"source_content_type":"text/x-python","patch_set":1,"id":"9a629dbe_0edcd671","line":840,"range":{"start_line":840,"start_character":23,"end_line":840,"end_character":27},"in_reply_to":"9a629dbe_eeb2424b","updated":"2016-11-10 23:49:27.000000000","message":"Never mind. I answered myself the question","commit_id":"4a97c013bd564d6d8ee45d4ea28f3504acdd22ad"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"1c6a59e9f83c85c040f75ef5b2b7c5eb1d03c879","unresolved":false,"context_lines":[{"line_number":802,"context_line":"        # is in the session otherwise."},{"line_number":803,"context_line":"        context.session.expire(subnet)"},{"line_number":804,"context_line":"        result \u003d self._make_subnet_dict(subnet, context\u003dcontext)"},{"line_number":805,"context_line":"        return orig, result"},{"line_number":806,"context_line":""},{"line_number":807,"context_line":"    def _update_subnet_postcommit(self, context, orig, result):"},{"line_number":808,"context_line":"        update_ports_needed \u003d (result[\u0027cidr\u0027] !\u003d orig[\u0027cidr\u0027] and"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a77a97e_580c8f42","line":805,"updated":"2016-11-15 04:43:51.000000000","message":"I am not fond of returning a tuple to be perfectly honest. Perhaps the original method can be split in three smaller chunks that make more sense?","commit_id":"e540cee12319ba00c99f696feb71040bec1a4e13"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"88d31f013398bff1a882fcbd6ea5435e9bab7cf4","unresolved":false,"context_lines":[{"line_number":803,"context_line":"        context.session.expire(subnet)"},{"line_number":804,"context_line":"        return self._make_subnet_dict(subnet, context\u003dcontext)"},{"line_number":805,"context_line":""},{"line_number":806,"context_line":"    def _update_subnet_postcommit(self, context, orig, result):"},{"line_number":807,"context_line":"        update_ports_needed \u003d (result[\u0027cidr\u0027] !\u003d orig[\u0027cidr\u0027] and"},{"line_number":808,"context_line":"                               ipv6_utils.is_ipv6_pd_enabled(result))"},{"line_number":809,"context_line":"        if update_ports_needed:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a77a97e_2dacc19f","line":806,"updated":"2016-11-16 01:58:24.000000000","message":"Done","commit_id":"a54ebaeff9b747f595c46a348929a91bfbd88cb0"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"34409792cd7461863bc825e2a6c7543309475387","unresolved":false,"context_lines":[{"line_number":803,"context_line":"        context.session.expire(subnet)"},{"line_number":804,"context_line":"        return self._make_subnet_dict(subnet, context\u003dcontext)"},{"line_number":805,"context_line":""},{"line_number":806,"context_line":"    def _update_subnet_postcommit(self, context, orig, result):"},{"line_number":807,"context_line":"        update_ports_needed \u003d (result[\u0027cidr\u0027] !\u003d orig[\u0027cidr\u0027] and"},{"line_number":808,"context_line":"                               ipv6_utils.is_ipv6_pd_enabled(result))"},{"line_number":809,"context_line":"        if update_ports_needed:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a77a97e_8495d941","line":806,"range":{"start_line":806,"start_character":49,"end_line":806,"end_character":53},"updated":"2016-11-15 08:53:47.000000000","message":"orig and result are a little cryptic in my opinion. can you at least please add a doc string or comment explaining what these are.\nit is importnat to know that they are subnet dicstioanries\ni know that this is a nit","commit_id":"a54ebaeff9b747f595c46a348929a91bfbd88cb0"}],"neutron/plugins/ml2/plugin.py":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"fa82882b40361a60fceef3046612d2cfbc356220","unresolved":false,"context_lines":[{"line_number":1029,"context_line":"            context, body, result)"},{"line_number":1030,"context_line":"        # expire subnet object since extensions may have modified relationships"},{"line_number":1031,"context_line":"        context.session.expire(subnet)"},{"line_number":1032,"context_line":"        updated_subnet \u003d self.get_subnet(context, id)"},{"line_number":1033,"context_line":"        network \u003d self.get_network(context, updated_subnet[\u0027network_id\u0027])"},{"line_number":1034,"context_line":"        mech_context \u003d driver_context.SubnetContext("},{"line_number":1035,"context_line":"            self, context, updated_subnet, network,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a629dbe_bbb5ea7e","line":1032,"range":{"start_line":1032,"start_character":50,"end_line":1032,"end_character":52},"updated":"2016-11-10 23:46:20.000000000","message":"You are missing id here. Is it supposed to be an argument to the hook method?","commit_id":"4a97c013bd564d6d8ee45d4ea28f3504acdd22ad"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"6d9fc6ab5784eb98879e2aea9a134116348e5ffc","unresolved":false,"context_lines":[{"line_number":1029,"context_line":"            context, body, result)"},{"line_number":1030,"context_line":"        # expire subnet object since extensions may have modified relationships"},{"line_number":1031,"context_line":"        context.session.expire(subnet)"},{"line_number":1032,"context_line":"        updated_subnet \u003d self.get_subnet(context, id)"},{"line_number":1033,"context_line":"        network \u003d self.get_network(context, updated_subnet[\u0027network_id\u0027])"},{"line_number":1034,"context_line":"        mech_context \u003d driver_context.SubnetContext("},{"line_number":1035,"context_line":"            self, context, updated_subnet, network,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a629dbe_72f0a8c9","line":1032,"updated":"2016-11-12 02:45:52.000000000","message":"whoops, we can get it from the object so we shouldn\u0027t need an additional argument.","commit_id":"4a97c013bd564d6d8ee45d4ea28f3504acdd22ad"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"fa82882b40361a60fceef3046612d2cfbc356220","unresolved":false,"context_lines":[{"line_number":1039,"context_line":"    @utils.transaction_guard"},{"line_number":1040,"context_line":"    @db_api.retry_if_session_inactive()"},{"line_number":1041,"context_line":"    def update_subnet(self, context, id, subnet):"},{"line_number":1042,"context_line":"        session \u003d context.session"},{"line_number":1043,"context_line":"        updated_subnet, original_subnet \u003d self.update_subnet_return_orig("},{"line_number":1044,"context_line":"            context, id, subnet)"},{"line_number":1045,"context_line":"        network \u003d self.get_network(context, updated_subnet[\u0027network_id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a629dbe_1bafb62a","line":1042,"updated":"2016-11-10 23:46:20.000000000","message":"We don\u0027t need this line anymore","commit_id":"4a97c013bd564d6d8ee45d4ea28f3504acdd22ad"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"6d9fc6ab5784eb98879e2aea9a134116348e5ffc","unresolved":false,"context_lines":[{"line_number":1039,"context_line":"    @utils.transaction_guard"},{"line_number":1040,"context_line":"    @db_api.retry_if_session_inactive()"},{"line_number":1041,"context_line":"    def update_subnet(self, context, id, subnet):"},{"line_number":1042,"context_line":"        session \u003d context.session"},{"line_number":1043,"context_line":"        updated_subnet, original_subnet \u003d self.update_subnet_return_orig("},{"line_number":1044,"context_line":"            context, id, subnet)"},{"line_number":1045,"context_line":"        network \u003d self.get_network(context, updated_subnet[\u0027network_id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a629dbe_92eb7cdb","line":1042,"updated":"2016-11-12 02:45:52.000000000","message":"good catch","commit_id":"4a97c013bd564d6d8ee45d4ea28f3504acdd22ad"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"21bc23811803dbe9f9592a54e379a6c0b4286bd0","unresolved":false,"context_lines":[{"line_number":1042,"context_line":"        updated_subnet, original_subnet \u003d self.update_subnet_return_orig("},{"line_number":1043,"context_line":"            context, id, subnet)"},{"line_number":1044,"context_line":"        network \u003d self.get_network(context, updated_subnet[\u0027network_id\u0027])"},{"line_number":1045,"context_line":"        mech_context \u003d driver_context.SubnetContext("},{"line_number":1046,"context_line":"            self, context, updated_subnet, network,"},{"line_number":1047,"context_line":"            original_subnet\u003doriginal_subnet)"},{"line_number":1048,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7a77a97e_131123ad","line":1045,"updated":"2016-11-14 23:17:31.000000000","message":"good point. i\u0027ve refactored it in a way to preserve the context","commit_id":"fcece3f87f40cb606650407d552b476bceb7e613"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"701d276da29f43bc8208b9f2cc729a040aa5af23","unresolved":false,"context_lines":[{"line_number":1042,"context_line":"        updated_subnet, original_subnet \u003d self.update_subnet_return_orig("},{"line_number":1043,"context_line":"            context, id, subnet)"},{"line_number":1044,"context_line":"        network \u003d self.get_network(context, updated_subnet[\u0027network_id\u0027])"},{"line_number":1045,"context_line":"        mech_context \u003d driver_context.SubnetContext("},{"line_number":1046,"context_line":"            self, context, updated_subnet, network,"},{"line_number":1047,"context_line":"            original_subnet\u003doriginal_subnet)"},{"line_number":1048,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a629dbe_4924c3ae","line":1045,"range":{"start_line":1045,"start_character":8,"end_line":1045,"end_character":20},"updated":"2016-11-14 08:47:22.000000000","message":"now we use separate contexts for precommit and postcommit.\nit\u0027s a bit unusual and might be a problem for some use cases like bug 1592238 .\nhow do you think?","commit_id":"fcece3f87f40cb606650407d552b476bceb7e613"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"88d31f013398bff1a882fcbd6ea5435e9bab7cf4","unresolved":false,"context_lines":[{"line_number":1041,"context_line":"                original_subnet\u003doriginal_subnet)"},{"line_number":1042,"context_line":"            self.mechanism_manager.update_subnet_precommit(mech_context)"},{"line_number":1043,"context_line":""},{"line_number":1044,"context_line":"        # db base plugin post commit operations"},{"line_number":1045,"context_line":"        self._update_subnet_postcommit(context, original_subnet,"},{"line_number":1046,"context_line":"                                       updated_subnet)"},{"line_number":1047,"context_line":"        # TODO(apech) - handle errors raised by update_subnet, potentially"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a77a97e_4daf3d94","line":1044,"updated":"2016-11-16 01:58:24.000000000","message":"I\u0027ll just remove it. If someone wants to see what it does, they can just look at the function.","commit_id":"a54ebaeff9b747f595c46a348929a91bfbd88cb0"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"44be148265365895a4a3141ae3cc89ff01b681f0","unresolved":false,"context_lines":[{"line_number":1041,"context_line":"                original_subnet\u003doriginal_subnet)"},{"line_number":1042,"context_line":"            self.mechanism_manager.update_subnet_precommit(mech_context)"},{"line_number":1043,"context_line":""},{"line_number":1044,"context_line":"        # db base plugin post commit operations"},{"line_number":1045,"context_line":"        self._update_subnet_postcommit(context, original_subnet,"},{"line_number":1046,"context_line":"                                       updated_subnet)"},{"line_number":1047,"context_line":"        # TODO(apech) - handle errors raised by update_subnet, potentially"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a77a97e_de87a710","line":1044,"updated":"2016-11-16 00:09:23.000000000","message":"this comment left to desire for more details.","commit_id":"a54ebaeff9b747f595c46a348929a91bfbd88cb0"}]}
