)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"cc831efd402c36b37c75d859a4a81d35c280207c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ffe62b97_4220529c","updated":"2017-03-30 08:23:18.000000000","message":"Please format commit message according to https://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"67edc26b85399a57d8e04d1da8c05d21f76fe25b"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b3e5199e98a920d320355a09c4b0fb93d16a3457","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Neutron throws an exception when we try to attach the floating ip"},{"line_number":10,"context_line":"to the instances that are launched in a network whose subnet is"},{"line_number":11,"context_line":"connected to the external router by an Ip address otherthan its"},{"line_number":12,"context_line":"gateway-ip. Now the neutron will execute the request by throwing"},{"line_number":13,"context_line":"the warning message which is not harmful."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"dfeb2761_cc8300cc","line":11,"range":{"start_line":11,"start_character":39,"end_line":11,"end_character":41},"updated":"2017-04-04 09:19:49.000000000","message":"s/Ip/IP","commit_id":"cf01b14f7f3a0622fdb171ad9e3ca668a28de8fd"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b3e5199e98a920d320355a09c4b0fb93d16a3457","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Neutron throws an exception when we try to attach the floating ip"},{"line_number":10,"context_line":"to the instances that are launched in a network whose subnet is"},{"line_number":11,"context_line":"connected to the external router by an Ip address otherthan its"},{"line_number":12,"context_line":"gateway-ip. Now the neutron will execute the request by throwing"},{"line_number":13,"context_line":"the warning message which is not harmful."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"dfeb2761_6c687420","line":11,"range":{"start_line":11,"start_character":50,"end_line":11,"end_character":59},"updated":"2017-04-04 09:19:49.000000000","message":"s/otherthan/other than","commit_id":"cf01b14f7f3a0622fdb171ad9e3ca668a28de8fd"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b3e5199e98a920d320355a09c4b0fb93d16a3457","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Neutron throws an exception when we try to attach the floating ip"},{"line_number":10,"context_line":"to the instances that are launched in a network whose subnet is"},{"line_number":11,"context_line":"connected to the external router by an Ip address otherthan its"},{"line_number":12,"context_line":"gateway-ip. Now the neutron will execute the request by throwing"},{"line_number":13,"context_line":"the warning message which is not harmful."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-Bug: #1515990"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"dfeb2761_0c632844","line":12,"range":{"start_line":12,"start_character":16,"end_line":12,"end_character":27},"updated":"2017-04-04 09:19:49.000000000","message":"Now Neutron will execute...","commit_id":"cf01b14f7f3a0622fdb171ad9e3ca668a28de8fd"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"27f86af8740fc7a8153371757ce7524431eadeb1","unresolved":false,"context_lines":[{"line_number":10,"context_line":"to the instances that are launched in a network whose subnet is"},{"line_number":11,"context_line":"connected to the external router by an Ip address otherthan its"},{"line_number":12,"context_line":"gateway-ip. Now the neutron will execute the request by throwing"},{"line_number":13,"context_line":"the warning message which is not harmful."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-Bug: #1515990"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7ffa3b31_382b1295","line":13,"updated":"2017-04-17 06:14:59.000000000","message":"not true now","commit_id":"90106e62a0b3d9910e35eb7aeaa645a59a9c1aa1"}],"neutron/db/l3_db.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"cc831efd402c36b37c75d859a4a81d35c280207c","unresolved":false,"context_lines":[{"line_number":1034,"context_line":"                                   external_network_id):"},{"line_number":1035,"context_line":"        subnet \u003d self._core_plugin.get_subnet(context, internal_subnet_id)"},{"line_number":1036,"context_line":"        if not subnet[\u0027gateway_ip\u0027]:"},{"line_number":1037,"context_line":"            LOG.warning(_LW(\u0027You are trying to associate floatingip to subnet %s\u0027"},{"line_number":1038,"context_line":"                     \u0027which has no gateway_ip\u0027) % internal_subnet_id)"},{"line_number":1039,"context_line":"        return self.get_router_for_floatingip(context,"},{"line_number":1040,"context_line":"            internal_port, subnet, external_network_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffe62b97_629eb6b9","line":1037,"range":{"start_line":1037,"start_character":29,"end_line":1037,"end_character":56},"updated":"2017-03-30 08:23:18.000000000","message":"This is not what user sees when associating a Floating IP but operator who reads the log afterwards, so consider rephrasing to smth like \"Floating IP association on a subnet with no gateway IP: \u003csubnet_id\u003e - \u003cip\u003e\"","commit_id":"67edc26b85399a57d8e04d1da8c05d21f76fe25b"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"fe101592e371fc4f56e5965829bdae9ac4663f67","unresolved":false,"context_lines":[{"line_number":1033,"context_line":"                                   internal_subnet_id,"},{"line_number":1034,"context_line":"                                   external_network_id):"},{"line_number":1035,"context_line":"        subnet \u003d self._core_plugin.get_subnet(context, internal_subnet_id)"},{"line_number":1036,"context_line":"        if not subnet[\u0027gateway_ip\u0027]:"},{"line_number":1037,"context_line":"            LOG.warning(_LW(\u0027Floating IP association on a subnet with no\u0027"},{"line_number":1038,"context_line":"                            \u0027gateway IP: %(internal_subnet_id)s\u0027))"},{"line_number":1039,"context_line":"        return self.get_router_for_floatingip(context,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7ffa3b31_6bac2d8c","line":1036,"updated":"2017-04-16 02:05:20.000000000","message":"I recommend just removing this check completely. There is no point in warning the operator that a user has done something valid.","commit_id":"cf01b14f7f3a0622fdb171ad9e3ca668a28de8fd"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b3e5199e98a920d320355a09c4b0fb93d16a3457","unresolved":false,"context_lines":[{"line_number":1034,"context_line":"                                   external_network_id):"},{"line_number":1035,"context_line":"        subnet \u003d self._core_plugin.get_subnet(context, internal_subnet_id)"},{"line_number":1036,"context_line":"        if not subnet[\u0027gateway_ip\u0027]:"},{"line_number":1037,"context_line":"            LOG.warning(_LW(\u0027Floating IP association on a subnet with no\u0027"},{"line_number":1038,"context_line":"                            \u0027gateway IP: %(internal_subnet_id)s\u0027))"},{"line_number":1039,"context_line":"        return self.get_router_for_floatingip(context,"},{"line_number":1040,"context_line":"            internal_port, subnet, external_network_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfeb2761_6c84f4b1","line":1037,"range":{"start_line":1037,"start_character":24,"end_line":1037,"end_character":27},"updated":"2017-04-04 09:19:49.000000000","message":"Remove the translator (http://lists.openstack.org/pipermail/openstack-i18n/2016-November/002574.html)","commit_id":"cf01b14f7f3a0622fdb171ad9e3ca668a28de8fd"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"302361c4acf143bd8acb4cc96b9c807ba1698cbb","unresolved":false,"context_lines":[{"line_number":1034,"context_line":"                                   external_network_id):"},{"line_number":1035,"context_line":"        subnet \u003d self._core_plugin.get_subnet(context, internal_subnet_id)"},{"line_number":1036,"context_line":"        if not subnet[\u0027gateway_ip\u0027]:"},{"line_number":1037,"context_line":"            LOG.warning(_LW(\u0027Floating IP association on a subnet with no\u0027"},{"line_number":1038,"context_line":"                            \u0027gateway IP: %(internal_subnet_id)s\u0027))"},{"line_number":1039,"context_line":"        return self.get_router_for_floatingip(context,"},{"line_number":1040,"context_line":"            internal_port, subnet, external_network_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7ffa3b31_2bb865c6","line":1037,"range":{"start_line":1037,"start_character":24,"end_line":1037,"end_character":27},"in_reply_to":"dfeb2761_34085890","updated":"2017-04-16 02:09:44.000000000","message":"Done","commit_id":"cf01b14f7f3a0622fdb171ad9e3ca668a28de8fd"},{"author":{"_account_id":22220,"name":"Anindita Das","email":"anindita.das@utexas.edu","username":"anudas"},"change_message_id":"38a194051eae60ff212083321e1507109d636144","unresolved":false,"context_lines":[{"line_number":1034,"context_line":"                                   external_network_id):"},{"line_number":1035,"context_line":"        subnet \u003d self._core_plugin.get_subnet(context, internal_subnet_id)"},{"line_number":1036,"context_line":"        if not subnet[\u0027gateway_ip\u0027]:"},{"line_number":1037,"context_line":"            LOG.warning(_LW(\u0027Floating IP association on a subnet with no\u0027"},{"line_number":1038,"context_line":"                            \u0027gateway IP: %(internal_subnet_id)s\u0027))"},{"line_number":1039,"context_line":"        return self.get_router_for_floatingip(context,"},{"line_number":1040,"context_line":"            internal_port, subnet, external_network_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfeb2761_34085890","line":1037,"range":{"start_line":1037,"start_character":24,"end_line":1037,"end_character":27},"in_reply_to":"dfeb2761_6c84f4b1","updated":"2017-04-04 22:23:23.000000000","message":"+1","commit_id":"cf01b14f7f3a0622fdb171ad9e3ca668a28de8fd"}],"neutron/tests/unit/extensions/test_l3.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"cc831efd402c36b37c75d859a4a81d35c280207c","unresolved":false,"context_lines":[{"line_number":2143,"context_line":"                                 body[\u0027floatingip\u0027][\u0027fixed_ip_address\u0027])"},{"line_number":2144,"context_line":""},{"line_number":2145,"context_line":"    def test_floatingip_update_subnet_gateway_disabled("},{"line_number":2146,"context_line":"          self, expected_status\u003dlib_constants.FLOATINGIP_STATUS_ACTIVE):"},{"line_number":2147,"context_line":"          \u0027\u0027\u0027 This is to  associate  the floatingip for a subnet which"},{"line_number":2148,"context_line":"             is connected to the router by an ip of a subnet(not the gateway ip)\u0027\u0027\u0027"},{"line_number":2149,"context_line":"          with self.subnet(cidr\u003d\u002730.0.0.0/24\u0027, gateway_ip\u003dNone) as private_sub:"},{"line_number":2150,"context_line":"               with self.port(private_sub) as p:"},{"line_number":2151,"context_line":"                   private_sub\u003d {\u0027subnet\u0027 : {\u0027id\u0027 : p[\u0027port\u0027][\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027]}}"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffe62b97_825e5ae7","line":2148,"range":{"start_line":2146,"start_character":10,"end_line":2148,"end_character":83},"updated":"2017-03-30 08:23:18.000000000","message":"see line #1936 for an example of docstring for a test","commit_id":"67edc26b85399a57d8e04d1da8c05d21f76fe25b"},{"author":{"_account_id":22220,"name":"Anindita Das","email":"anindita.das@utexas.edu","username":"anudas"},"change_message_id":"38a194051eae60ff212083321e1507109d636144","unresolved":false,"context_lines":[{"line_number":2144,"context_line":""},{"line_number":2145,"context_line":"    def test_floatingip_update_subnet_gateway_disabled("},{"line_number":2146,"context_line":"        self, expected_status\u003dlib_constants.FLOATINGIP_STATUS_ACTIVE):"},{"line_number":2147,"context_line":"        \"\"\"Attach a Floating-Ip to an instance"},{"line_number":2148,"context_line":""},{"line_number":2149,"context_line":"        Verify that the FloatingIp can be associated to a port whose subnet\u0027s"},{"line_number":2150,"context_line":"        gateway ip is not connected to the external router, but the router"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfeb2761_f4e430e2","line":2147,"range":{"start_line":2147,"start_character":20,"end_line":2147,"end_character":31},"updated":"2017-04-04 22:23:23.000000000","message":"/s/Floating-Ip/floating ip","commit_id":"cf01b14f7f3a0622fdb171ad9e3ca668a28de8fd"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"302361c4acf143bd8acb4cc96b9c807ba1698cbb","unresolved":false,"context_lines":[{"line_number":2144,"context_line":""},{"line_number":2145,"context_line":"    def test_floatingip_update_subnet_gateway_disabled("},{"line_number":2146,"context_line":"        self, expected_status\u003dlib_constants.FLOATINGIP_STATUS_ACTIVE):"},{"line_number":2147,"context_line":"        \"\"\"Attach a Floating-Ip to an instance"},{"line_number":2148,"context_line":""},{"line_number":2149,"context_line":"        Verify that the FloatingIp can be associated to a port whose subnet\u0027s"},{"line_number":2150,"context_line":"        gateway ip is not connected to the external router, but the router"}],"source_content_type":"text/x-python","patch_set":2,"id":"7ffa3b31_0bbda9b6","line":2147,"range":{"start_line":2147,"start_character":20,"end_line":2147,"end_character":31},"in_reply_to":"dfeb2761_f4e430e2","updated":"2017-04-16 02:09:44.000000000","message":"Done","commit_id":"cf01b14f7f3a0622fdb171ad9e3ca668a28de8fd"},{"author":{"_account_id":22220,"name":"Anindita Das","email":"anindita.das@utexas.edu","username":"anudas"},"change_message_id":"38a194051eae60ff212083321e1507109d636144","unresolved":false,"context_lines":[{"line_number":2146,"context_line":"        self, expected_status\u003dlib_constants.FLOATINGIP_STATUS_ACTIVE):"},{"line_number":2147,"context_line":"        \"\"\"Attach a Floating-Ip to an instance"},{"line_number":2148,"context_line":""},{"line_number":2149,"context_line":"        Verify that the FloatingIp can be associated to a port whose subnet\u0027s"},{"line_number":2150,"context_line":"        gateway ip is not connected to the external router, but the router"},{"line_number":2151,"context_line":"        has an ip in that subnet."},{"line_number":2152,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"dfeb2761_b4d228ff","line":2149,"range":{"start_line":2149,"start_character":24,"end_line":2149,"end_character":35},"updated":"2017-04-04 22:23:23.000000000","message":"ditto","commit_id":"cf01b14f7f3a0622fdb171ad9e3ca668a28de8fd"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"302361c4acf143bd8acb4cc96b9c807ba1698cbb","unresolved":false,"context_lines":[{"line_number":2146,"context_line":"        self, expected_status\u003dlib_constants.FLOATINGIP_STATUS_ACTIVE):"},{"line_number":2147,"context_line":"        \"\"\"Attach a Floating-Ip to an instance"},{"line_number":2148,"context_line":""},{"line_number":2149,"context_line":"        Verify that the FloatingIp can be associated to a port whose subnet\u0027s"},{"line_number":2150,"context_line":"        gateway ip is not connected to the external router, but the router"},{"line_number":2151,"context_line":"        has an ip in that subnet."},{"line_number":2152,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"7ffa3b31_cbb6a1da","line":2149,"range":{"start_line":2149,"start_character":24,"end_line":2149,"end_character":35},"in_reply_to":"dfeb2761_b4d228ff","updated":"2017-04-16 02:09:44.000000000","message":"Done","commit_id":"cf01b14f7f3a0622fdb171ad9e3ca668a28de8fd"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b3e5199e98a920d320355a09c4b0fb93d16a3457","unresolved":false,"context_lines":[{"line_number":2172,"context_line":"                    self.assertEqual(port_id, body[\u0027floatingip\u0027][\u0027port_id\u0027])"},{"line_number":2173,"context_line":"                    self.assertEqual(p[\u0027port\u0027][\u0027fixed_ips\u0027][0][\u0027ip_address\u0027],"},{"line_number":2174,"context_line":"                                     body[\u0027floatingip\u0027][\u0027fixed_ip_address\u0027])"},{"line_number":2175,"context_line":""},{"line_number":2176,"context_line":"    def test_floatingip_create_different_fixed_ip_same_port(self):"},{"line_number":2177,"context_line":"        \u0027\u0027\u0027This tests that it is possible to delete a port that has"},{"line_number":2178,"context_line":"        multiple floating ip addresses associated with it (each floating"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfeb2761_0238919d","line":2175,"updated":"2017-04-04 09:19:49.000000000","message":"The router_id if floatingip is also modified. You should check it too.","commit_id":"cf01b14f7f3a0622fdb171ad9e3ca668a28de8fd"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"302361c4acf143bd8acb4cc96b9c807ba1698cbb","unresolved":false,"context_lines":[{"line_number":2172,"context_line":"                    self.assertEqual(port_id, body[\u0027floatingip\u0027][\u0027port_id\u0027])"},{"line_number":2173,"context_line":"                    self.assertEqual(p[\u0027port\u0027][\u0027fixed_ips\u0027][0][\u0027ip_address\u0027],"},{"line_number":2174,"context_line":"                                     body[\u0027floatingip\u0027][\u0027fixed_ip_address\u0027])"},{"line_number":2175,"context_line":""},{"line_number":2176,"context_line":"    def test_floatingip_create_different_fixed_ip_same_port(self):"},{"line_number":2177,"context_line":"        \u0027\u0027\u0027This tests that it is possible to delete a port that has"},{"line_number":2178,"context_line":"        multiple floating ip addresses associated with it (each floating"}],"source_content_type":"text/x-python","patch_set":2,"id":"7ffa3b31_abcb5551","line":2175,"in_reply_to":"dfeb2761_0238919d","updated":"2017-04-16 02:09:44.000000000","message":"Done","commit_id":"cf01b14f7f3a0622fdb171ad9e3ca668a28de8fd"}]}
