)]}'
{"neutron/db/l3_db.py":[{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"05da7929a5f3083072432a7bb7fbd209d7e65751","unresolved":false,"context_lines":[{"line_number":1123,"context_line":"                          {\u0027port_id\u0027: port[\u0027id\u0027],"},{"line_number":1124,"context_line":"                           \u0027port_owner\u0027: port[\u0027device_owner\u0027]})"},{"line_number":1125,"context_line":""},{"line_number":1126,"context_line":"    def disassociate_floatingips(self, context, port_id, do_notify\u003dFalse):"},{"line_number":1127,"context_line":"        \"\"\"Disassociate all floating IPs linked to specific port."},{"line_number":1128,"context_line":""},{"line_number":1129,"context_line":"        @param port_id: ID of the port to disassociate floating IPs."}],"source_content_type":"text/x-python","patch_set":1,"id":"5a710552_1100f033","line":1126,"updated":"2015-12-15 07:35:42.000000000","message":"I\u0027m not sure that we need the argument isn\u0027t used in the function.","commit_id":"d325fe82fd0a00a69bab339c999082d85ee071d0"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"0d701e624e768268c526f77839f3135d2c98e19c","unresolved":false,"context_lines":[{"line_number":1123,"context_line":"                          {\u0027port_id\u0027: port[\u0027id\u0027],"},{"line_number":1124,"context_line":"                           \u0027port_owner\u0027: port[\u0027device_owner\u0027]})"},{"line_number":1125,"context_line":""},{"line_number":1126,"context_line":"    def disassociate_floatingips(self, context, port_id, do_notify\u003dFalse):"},{"line_number":1127,"context_line":"        \"\"\"Disassociate all floating IPs linked to specific port."},{"line_number":1128,"context_line":""},{"line_number":1129,"context_line":"        @param port_id: ID of the port to disassociate floating IPs."}],"source_content_type":"text/x-python","patch_set":1,"id":"5a710552_77e9241a","line":1126,"in_reply_to":"5a710552_1100f033","updated":"2015-12-15 08:10:11.000000000","message":"it\u0027s necessary to make the method prototype consistent among implementations.","commit_id":"d325fe82fd0a00a69bab339c999082d85ee071d0"},{"author":{"_account_id":13667,"name":"ZongKai LI","email":"onionpiece@163.com","username":"lzklibj"},"change_message_id":"ae2bfe944ec45f606c21f86f35739d559d8fb4c8","unresolved":false,"context_lines":[{"line_number":1123,"context_line":"                          {\u0027port_id\u0027: port[\u0027id\u0027],"},{"line_number":1124,"context_line":"                           \u0027port_owner\u0027: port[\u0027device_owner\u0027]})"},{"line_number":1125,"context_line":""},{"line_number":1126,"context_line":"    def disassociate_floatingips(self, context, port_id, do_notify\u003dFalse):"},{"line_number":1127,"context_line":"        \"\"\"Disassociate all floating IPs linked to specific port."},{"line_number":1128,"context_line":""},{"line_number":1129,"context_line":"        @param port_id: ID of the port to disassociate floating IPs."}],"source_content_type":"text/x-python","patch_set":1,"id":"5a710552_dd30f7a0","line":1126,"in_reply_to":"5a710552_32ddaae0","updated":"2015-12-16 08:16:27.000000000","message":"OK, I begin to think it doesn\u0027t worth to vote -1 for this.\n\nBut I\u0027m curious beside L3RouterPlugin, do we have any other l3 plugins for now?","commit_id":"d325fe82fd0a00a69bab339c999082d85ee071d0"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"d1dd0ff5327e9de7139b226432b3a04de5f2cdff","unresolved":false,"context_lines":[{"line_number":1123,"context_line":"                          {\u0027port_id\u0027: port[\u0027id\u0027],"},{"line_number":1124,"context_line":"                           \u0027port_owner\u0027: port[\u0027device_owner\u0027]})"},{"line_number":1125,"context_line":""},{"line_number":1126,"context_line":"    def disassociate_floatingips(self, context, port_id, do_notify\u003dFalse):"},{"line_number":1127,"context_line":"        \"\"\"Disassociate all floating IPs linked to specific port."},{"line_number":1128,"context_line":""},{"line_number":1129,"context_line":"        @param port_id: ID of the port to disassociate floating IPs."}],"source_content_type":"text/x-python","patch_set":1,"id":"5a710552_9a7e35e3","line":1126,"in_reply_to":"5a710552_77e9241a","updated":"2015-12-15 08:31:36.000000000","message":"I got it if consistency only.","commit_id":"d325fe82fd0a00a69bab339c999082d85ee071d0"},{"author":{"_account_id":13667,"name":"ZongKai LI","email":"onionpiece@163.com","username":"lzklibj"},"change_message_id":"2aa6e42834405c91612025dd9f9646d09ecea435","unresolved":false,"context_lines":[{"line_number":1123,"context_line":"                          {\u0027port_id\u0027: port[\u0027id\u0027],"},{"line_number":1124,"context_line":"                           \u0027port_owner\u0027: port[\u0027device_owner\u0027]})"},{"line_number":1125,"context_line":""},{"line_number":1126,"context_line":"    def disassociate_floatingips(self, context, port_id, do_notify\u003dFalse):"},{"line_number":1127,"context_line":"        \"\"\"Disassociate all floating IPs linked to specific port."},{"line_number":1128,"context_line":""},{"line_number":1129,"context_line":"        @param port_id: ID of the port to disassociate floating IPs."}],"source_content_type":"text/x-python","patch_set":1,"id":"5a710552_c147b775","line":1126,"in_reply_to":"5a710552_9a7e35e3","updated":"2015-12-16 05:56:07.000000000","message":"So consistency is only reason for this patch ? Child class can override this method, and extend its arguments, it\u0027s acceptable, so I don\u0027t think we need to add an argument that prototype method doesn\u0027t need.","commit_id":"d325fe82fd0a00a69bab339c999082d85ee071d0"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"0504a0f03cc73bc23531a99aa4eb6f08a68f6577","unresolved":false,"context_lines":[{"line_number":1123,"context_line":"                          {\u0027port_id\u0027: port[\u0027id\u0027],"},{"line_number":1124,"context_line":"                           \u0027port_owner\u0027: port[\u0027device_owner\u0027]})"},{"line_number":1125,"context_line":""},{"line_number":1126,"context_line":"    def disassociate_floatingips(self, context, port_id, do_notify\u003dFalse):"},{"line_number":1127,"context_line":"        \"\"\"Disassociate all floating IPs linked to specific port."},{"line_number":1128,"context_line":""},{"line_number":1129,"context_line":"        @param port_id: ID of the port to disassociate floating IPs."}],"source_content_type":"text/x-python","patch_set":1,"id":"5a710552_32ddaae0","line":1126,"in_reply_to":"5a710552_afea910d","updated":"2015-12-16 07:36:26.000000000","message":"yes, i meant it.\n\n\"l3plugin\" isn\u0027t a part of ml2.\nit depends on which l3 plugin you use.","commit_id":"d325fe82fd0a00a69bab339c999082d85ee071d0"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"1985f39491bee27756a1049bd3a937797dbbcc8b","unresolved":false,"context_lines":[{"line_number":1123,"context_line":"                          {\u0027port_id\u0027: port[\u0027id\u0027],"},{"line_number":1124,"context_line":"                           \u0027port_owner\u0027: port[\u0027device_owner\u0027]})"},{"line_number":1125,"context_line":""},{"line_number":1126,"context_line":"    def disassociate_floatingips(self, context, port_id, do_notify\u003dFalse):"},{"line_number":1127,"context_line":"        \"\"\"Disassociate all floating IPs linked to specific port."},{"line_number":1128,"context_line":""},{"line_number":1129,"context_line":"        @param port_id: ID of the port to disassociate floating IPs."}],"source_content_type":"text/x-python","patch_set":1,"id":"5a710552_e9c97979","line":1126,"in_reply_to":"5a710552_c147b775","updated":"2015-12-16 06:08:31.000000000","message":"as mentioned in the commit message, this argument is\nused by ML2.\n\nsurely every plugins using this mixin can extend its\nargument by themselves.  i don\u0027t think it\u0027s a better alternative though.","commit_id":"d325fe82fd0a00a69bab339c999082d85ee071d0"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"34c7c6313250cdaafc3e88e2feb3fb8451a00b3c","unresolved":false,"context_lines":[{"line_number":1123,"context_line":"                          {\u0027port_id\u0027: port[\u0027id\u0027],"},{"line_number":1124,"context_line":"                           \u0027port_owner\u0027: port[\u0027device_owner\u0027]})"},{"line_number":1125,"context_line":""},{"line_number":1126,"context_line":"    def disassociate_floatingips(self, context, port_id, do_notify\u003dFalse):"},{"line_number":1127,"context_line":"        \"\"\"Disassociate all floating IPs linked to specific port."},{"line_number":1128,"context_line":""},{"line_number":1129,"context_line":"        @param port_id: ID of the port to disassociate floating IPs."}],"source_content_type":"text/x-python","patch_set":1,"id":"5a710552_4b21989e","line":1126,"in_reply_to":"5a710552_dd30f7a0","updated":"2015-12-16 09:56:03.000000000","message":"there are a lot of out-of-tree l3 plugins.","commit_id":"d325fe82fd0a00a69bab339c999082d85ee071d0"},{"author":{"_account_id":13667,"name":"ZongKai LI","email":"onionpiece@163.com","username":"lzklibj"},"change_message_id":"0656b8def73c80a902ea0372b8ef095c9d76c2bd","unresolved":false,"context_lines":[{"line_number":1123,"context_line":"                          {\u0027port_id\u0027: port[\u0027id\u0027],"},{"line_number":1124,"context_line":"                           \u0027port_owner\u0027: port[\u0027device_owner\u0027]})"},{"line_number":1125,"context_line":""},{"line_number":1126,"context_line":"    def disassociate_floatingips(self, context, port_id, do_notify\u003dFalse):"},{"line_number":1127,"context_line":"        \"\"\"Disassociate all floating IPs linked to specific port."},{"line_number":1128,"context_line":""},{"line_number":1129,"context_line":"        @param port_id: ID of the port to disassociate floating IPs."}],"source_content_type":"text/x-python","patch_set":1,"id":"5a710552_afea910d","line":1126,"in_reply_to":"5a710552_e9c97979","updated":"2015-12-16 07:06:06.000000000","message":"Do you mean the following code in ml2/plugin.py ?\n    if l3plugin:\n        router_ids \u003d l3plugin.disassociate_floatingips(\n            context, id, do_notify\u003dFalse)\nseems it\u0027s using db_mixin, not dbonly_mixin.","commit_id":"d325fe82fd0a00a69bab339c999082d85ee071d0"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"05da7929a5f3083072432a7bb7fbd209d7e65751","unresolved":false,"context_lines":[{"line_number":1429,"context_line":"        @return: set of router-ids that require notification updates"},{"line_number":1430,"context_line":"                 if do_notify is False, otherwise None."},{"line_number":1431,"context_line":"        \"\"\""},{"line_number":1432,"context_line":"        router_ids \u003d super(L3_NAT_db_mixin, self).disassociate_floatingips("},{"line_number":1433,"context_line":"            context, port_id)"},{"line_number":1434,"context_line":"        if do_notify:"},{"line_number":1435,"context_line":"            self.notify_routers_updated(context, router_ids)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a710552_5473c6b1","line":1432,"updated":"2015-12-15 07:35:42.000000000","message":"I feel strange that this trie to call superclass method with do_notify\u003dFalse although subclass method is called with do_notify\u003dTrue.","commit_id":"d325fe82fd0a00a69bab339c999082d85ee071d0"},{"author":{"_account_id":13667,"name":"ZongKai LI","email":"onionpiece@163.com","username":"lzklibj"},"change_message_id":"2aa6e42834405c91612025dd9f9646d09ecea435","unresolved":false,"context_lines":[{"line_number":1429,"context_line":"        @return: set of router-ids that require notification updates"},{"line_number":1430,"context_line":"                 if do_notify is False, otherwise None."},{"line_number":1431,"context_line":"        \"\"\""},{"line_number":1432,"context_line":"        router_ids \u003d super(L3_NAT_db_mixin, self).disassociate_floatingips("},{"line_number":1433,"context_line":"            context, port_id)"},{"line_number":1434,"context_line":"        if do_notify:"},{"line_number":1435,"context_line":"            self.notify_routers_updated(context, router_ids)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a710552_89a9d5e1","line":1432,"in_reply_to":"5a710552_17db007e","updated":"2015-12-16 05:56:07.000000000","message":"But, the super class method doesn\u0027t need that do_notify, right ?","commit_id":"d325fe82fd0a00a69bab339c999082d85ee071d0"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"0d701e624e768268c526f77839f3135d2c98e19c","unresolved":false,"context_lines":[{"line_number":1429,"context_line":"        @return: set of router-ids that require notification updates"},{"line_number":1430,"context_line":"                 if do_notify is False, otherwise None."},{"line_number":1431,"context_line":"        \"\"\""},{"line_number":1432,"context_line":"        router_ids \u003d super(L3_NAT_db_mixin, self).disassociate_floatingips("},{"line_number":1433,"context_line":"            context, port_id)"},{"line_number":1434,"context_line":"        if do_notify:"},{"line_number":1435,"context_line":"            self.notify_routers_updated(context, router_ids)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a710552_17db007e","line":1432,"in_reply_to":"5a710552_5473c6b1","updated":"2015-12-15 08:10:11.000000000","message":"Done","commit_id":"d325fe82fd0a00a69bab339c999082d85ee071d0"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"0a10ff94e5fb3feb85c3239c9d075c6c8ceff615","unresolved":false,"context_lines":[{"line_number":1129,"context_line":"        @param port_id: ID of the port to disassociate floating IPs."},{"line_number":1130,"context_line":"        @param do_notify: whether we should notify routers right away."},{"line_number":1131,"context_line":"        @return: set of router-ids that require notification updates"},{"line_number":1132,"context_line":"                 if do_notify is False, otherwise None."},{"line_number":1133,"context_line":"        \"\"\""},{"line_number":1134,"context_line":"        router_ids \u003d set()"},{"line_number":1135,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a710552_a53c3294","line":1132,"updated":"2015-12-15 08:44:08.000000000","message":"This comment shows this method returns None as router_ids if do_notify is True but it practically doesn\u0027t so. Could you properly solve this contradiction?","commit_id":"67c2055ac0ff49d823681463cecf46e4cd087ee7"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"582c1bdd2b98cac0f962ee64aa428ec0b6d396ed","unresolved":false,"context_lines":[{"line_number":1129,"context_line":"        @param port_id: ID of the port to disassociate floating IPs."},{"line_number":1130,"context_line":"        @param do_notify: whether we should notify routers right away."},{"line_number":1131,"context_line":"        @return: set of router-ids that require notification updates"},{"line_number":1132,"context_line":"                 if do_notify is False, otherwise None."},{"line_number":1133,"context_line":"        \"\"\""},{"line_number":1134,"context_line":"        router_ids \u003d set()"},{"line_number":1135,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a710552_fd516e63","line":1132,"in_reply_to":"5a710552_a53c3294","updated":"2015-12-15 10:23:10.000000000","message":"Done","commit_id":"67c2055ac0ff49d823681463cecf46e4cd087ee7"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"465528c147062b397dfa38db22bbc7c0d4a4c5e8","unresolved":false,"context_lines":[{"line_number":1123,"context_line":"                          {\u0027port_id\u0027: port[\u0027id\u0027],"},{"line_number":1124,"context_line":"                           \u0027port_owner\u0027: port[\u0027device_owner\u0027]})"},{"line_number":1125,"context_line":""},{"line_number":1126,"context_line":"    def disassociate_floatingips(self, context, port_id, do_notify\u003dFalse):"},{"line_number":1127,"context_line":"        \"\"\"Disassociate all floating IPs linked to specific port."},{"line_number":1128,"context_line":""},{"line_number":1129,"context_line":"        @param port_id: ID of the port to disassociate floating IPs."}],"source_content_type":"text/x-python","patch_set":3,"id":"da0c15f0_d20da638","line":1126,"updated":"2016-03-28 11:12:41.000000000","message":"Oh, makes sense.","commit_id":"cc81e6b813e69f3f49ff1b21b376f5828aa73356"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"3b5d3cce4d2e08a1d1975ec7239b98fa089555cd","unresolved":false,"context_lines":[{"line_number":1123,"context_line":"                          {\u0027port_id\u0027: port[\u0027id\u0027],"},{"line_number":1124,"context_line":"                           \u0027port_owner\u0027: port[\u0027device_owner\u0027]})"},{"line_number":1125,"context_line":""},{"line_number":1126,"context_line":"    def disassociate_floatingips(self, context, port_id, do_notify\u003dFalse):"},{"line_number":1127,"context_line":"        \"\"\"Disassociate all floating IPs linked to specific port."},{"line_number":1128,"context_line":""},{"line_number":1129,"context_line":"        @param port_id: ID of the port to disassociate floating IPs."}],"source_content_type":"text/x-python","patch_set":3,"id":"ba0121b8_5a04517d","line":1126,"range":{"start_line":1126,"start_character":57,"end_line":1126,"end_character":72},"updated":"2016-03-29 08:41:40.000000000","message":"do_notify parameter in a db mixin is confusing, I\u0027d go with **kwargs here and delete parameter description from the docstring.","commit_id":"cc81e6b813e69f3f49ff1b21b376f5828aa73356"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"8e760418106f271b23392e0c20d01840f7ebc501","unresolved":false,"context_lines":[{"line_number":1123,"context_line":"                          {\u0027port_id\u0027: port[\u0027id\u0027],"},{"line_number":1124,"context_line":"                           \u0027port_owner\u0027: port[\u0027device_owner\u0027]})"},{"line_number":1125,"context_line":""},{"line_number":1126,"context_line":"    def disassociate_floatingips(self, context, port_id, do_notify\u003dFalse):"},{"line_number":1127,"context_line":"        \"\"\"Disassociate all floating IPs linked to specific port."},{"line_number":1128,"context_line":""},{"line_number":1129,"context_line":"        @param port_id: ID of the port to disassociate floating IPs."}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_dc20d84b","line":1126,"updated":"2016-01-08 22:09:52.000000000","message":"ml2 seems to be the only user of this kwarg. why not just remove the do_notify kwarg and remove the notification logic from the other one since ML2 sets it to false?","commit_id":"cc81e6b813e69f3f49ff1b21b376f5828aa73356"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"c16e7a8117cb337fa147d4a9beffad2915b867dc","unresolved":false,"context_lines":[{"line_number":1123,"context_line":"                          {\u0027port_id\u0027: port[\u0027id\u0027],"},{"line_number":1124,"context_line":"                           \u0027port_owner\u0027: port[\u0027device_owner\u0027]})"},{"line_number":1125,"context_line":""},{"line_number":1126,"context_line":"    def disassociate_floatingips(self, context, port_id, do_notify\u003dFalse):"},{"line_number":1127,"context_line":"        \"\"\"Disassociate all floating IPs linked to specific port."},{"line_number":1128,"context_line":""},{"line_number":1129,"context_line":"        @param port_id: ID of the port to disassociate floating IPs."}],"source_content_type":"text/x-python","patch_set":3,"id":"da6ed579_a8a42e08","line":1126,"in_reply_to":"fa69d971_dc20d84b","updated":"2016-01-12 03:42:56.000000000","message":"L3_NAT_db_mixin\u0027s default is do_notify\u003dTrue.\nremoving the logic would break other users of L3_NAT_db_mixin.","commit_id":"cc81e6b813e69f3f49ff1b21b376f5828aa73356"}]}
