)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0e71edfd16979731236cf3018d3db4f990d1421f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b7f6e5dd_70deac04","updated":"2022-03-02 09:21:38.000000000","message":"i","commit_id":"a33eb266420f1695010857c2a8fe9628e075873a"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"957ed6e16da9ed6572b515c32cb8da2263934bd1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"46f45011_77a3b7ca","updated":"2022-03-02 15:34:31.000000000","message":"damn pep8 :(","commit_id":"6059e67ad49baa3468841a0d13400ad207a499c2"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"36cf3e67b06dcdccd2b88dfd08d8c56225d3380b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"7a9b3aef_2f9e1eed","updated":"2022-03-03 04:55:32.000000000","message":"Functionals failing now, need to fix those","commit_id":"99d1ee24232471317c095fa3a196b48b4f1ef86a"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"6b701792e999fd27909f3fadb975530bbc2f26ff","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"827a7222_d9621804","updated":"2022-03-11 10:10:39.000000000","message":"thanks, it works, and it is aligned with documentation.","commit_id":"820b2e26658a3fb5e00a7cedbdc2418d2196aa42"}],"neutron/agent/linux/dhcp.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0e71edfd16979731236cf3018d3db4f990d1421f","unresolved":true,"context_lines":[{"line_number":1440,"context_line":"            skip_subnet \u003d ("},{"line_number":1441,"context_line":"                subnet.ip_version !\u003d ip_version or"},{"line_number":1442,"context_line":"                not subnet.enable_dhcp or"},{"line_number":1443,"context_line":"                subnet.gateway_ip in [None, pd_gw])"},{"line_number":1444,"context_line":""},{"line_number":1445,"context_line":"            if skip_subnet:"},{"line_number":1446,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":2,"id":"eb7a3972_13b34f35","line":1443,"range":{"start_line":1443,"start_character":16,"end_line":1443,"end_character":51},"updated":"2022-03-02 09:21:38.000000000","message":"This check is correct but we should be more precise checking subnet.subnetpool_id\u003d\u003dprefix_delegation. PD subnet will never use the DHCP local service.","commit_id":"5162a49194924dbb2e9c718c6d447a1b402cb214"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"d158ed408e34aa5d4a2af46301f093a23d5d7de2","unresolved":true,"context_lines":[{"line_number":1440,"context_line":"            skip_subnet \u003d ("},{"line_number":1441,"context_line":"                subnet.ip_version !\u003d ip_version or"},{"line_number":1442,"context_line":"                not subnet.enable_dhcp or"},{"line_number":1443,"context_line":"                subnet.gateway_ip in [None, pd_gw])"},{"line_number":1444,"context_line":""},{"line_number":1445,"context_line":"            if skip_subnet:"},{"line_number":1446,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":2,"id":"75cadf6a_f491c77d","line":1443,"range":{"start_line":1443,"start_character":16,"end_line":1443,"end_character":51},"in_reply_to":"eb7a3972_13b34f35","updated":"2022-03-02 11:54:10.000000000","message":"Ohkk switched to subnetpool_id check instead.","commit_id":"5162a49194924dbb2e9c718c6d447a1b402cb214"}],"neutron/db/db_base_plugin_common.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"e1bac3f2954a4b346d2477869f01f21901595ad8","unresolved":true,"context_lines":[{"line_number":160,"context_line":"               \u0027standard_attr_id\u0027: standard_attr_id,"},{"line_number":161,"context_line":"               }"},{"line_number":162,"context_line":"        res[\u0027gateway_ip\u0027] \u003d str("},{"line_number":163,"context_line":"            subnet[\u0027gateway_ip\u0027]) if subnet[\u0027gateway_ip\u0027] is not None else None"},{"line_number":164,"context_line":"        # TODO(korzen) this method can get subnet as DB object or Subnet OVO,"},{"line_number":165,"context_line":"        # so temporary workaround will be to fill in the fields in separate"},{"line_number":166,"context_line":"        # ways. After converting all code pieces to use Subnet OVO, the latter"}],"source_content_type":"text/x-python","patch_set":3,"id":"962d7eb7_9a5acbcb","line":163,"range":{"start_line":163,"start_character":58,"end_line":163,"end_character":69},"updated":"2022-03-02 10:07:33.000000000","message":"is this check necessary?","commit_id":"a33eb266420f1695010857c2a8fe9628e075873a"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"6b701792e999fd27909f3fadb975530bbc2f26ff","unresolved":false,"context_lines":[{"line_number":160,"context_line":"               \u0027standard_attr_id\u0027: standard_attr_id,"},{"line_number":161,"context_line":"               }"},{"line_number":162,"context_line":"        res[\u0027gateway_ip\u0027] \u003d str("},{"line_number":163,"context_line":"            subnet[\u0027gateway_ip\u0027]) if subnet[\u0027gateway_ip\u0027] is not None else None"},{"line_number":164,"context_line":"        # TODO(korzen) this method can get subnet as DB object or Subnet OVO,"},{"line_number":165,"context_line":"        # so temporary workaround will be to fill in the fields in separate"},{"line_number":166,"context_line":"        # ways. After converting all code pieces to use Subnet OVO, the latter"}],"source_content_type":"text/x-python","patch_set":3,"id":"73b59088_652c5931","line":163,"range":{"start_line":163,"start_character":58,"end_line":163,"end_character":69},"in_reply_to":"8707eacb_da39ae00","updated":"2022-03-11 10:10:39.000000000","message":"Ack","commit_id":"a33eb266420f1695010857c2a8fe9628e075873a"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"d158ed408e34aa5d4a2af46301f093a23d5d7de2","unresolved":true,"context_lines":[{"line_number":160,"context_line":"               \u0027standard_attr_id\u0027: standard_attr_id,"},{"line_number":161,"context_line":"               }"},{"line_number":162,"context_line":"        res[\u0027gateway_ip\u0027] \u003d str("},{"line_number":163,"context_line":"            subnet[\u0027gateway_ip\u0027]) if subnet[\u0027gateway_ip\u0027] is not None else None"},{"line_number":164,"context_line":"        # TODO(korzen) this method can get subnet as DB object or Subnet OVO,"},{"line_number":165,"context_line":"        # so temporary workaround will be to fill in the fields in separate"},{"line_number":166,"context_line":"        # ways. After converting all code pieces to use Subnet OVO, the latter"}],"source_content_type":"text/x-python","patch_set":3,"id":"8707eacb_da39ae00","line":163,"range":{"start_line":163,"start_character":58,"end_line":163,"end_character":69},"in_reply_to":"962d7eb7_9a5acbcb","updated":"2022-03-02 11:54:10.000000000","message":"Yes it\u0027s needed because without it res[\u0027gateway_ip\u0027] is set to None even for default prefix_delegation IPAddress(\"::\") which is valid[1]\n\n[1] https://review.opendev.org/c/openstack/neutron/+/647484","commit_id":"a33eb266420f1695010857c2a8fe9628e075873a"}],"neutron/tests/fullstack/test_subnet.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0e71edfd16979731236cf3018d3db4f990d1421f","unresolved":true,"context_lines":[{"line_number":82,"context_line":"        self.assertEqual(subnet[\u0027subnet\u0027][\u0027gateway_ip\u0027],"},{"line_number":83,"context_line":"                         str(netaddr.IPNetwork(cidr).network))"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def test_create_subnet_ipv6_prefix_delegation(self):"},{"line_number":86,"context_line":"        subnet \u003d self._create_subnet(self._project_id, self._network[\u0027id\u0027],"},{"line_number":87,"context_line":"                                     None, ipv6_address_mode\u003d\u0027slaac\u0027,"},{"line_number":88,"context_line":"                                     ipv6_ra_mode\u003d\u0027slaac\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"cb30cc65_7fae3451","line":85,"range":{"start_line":85,"start_character":8,"end_line":85,"end_character":49},"updated":"2022-03-02 09:21:38.000000000","message":"This test should also include the creation of a router, connection and disconnection of this subnet to the router.","commit_id":"a33eb266420f1695010857c2a8fe9628e075873a"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"e1bac3f2954a4b346d2477869f01f21901595ad8","unresolved":true,"context_lines":[{"line_number":82,"context_line":"        self.assertEqual(subnet[\u0027subnet\u0027][\u0027gateway_ip\u0027],"},{"line_number":83,"context_line":"                         str(netaddr.IPNetwork(cidr).network))"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def test_create_subnet_ipv6_prefix_delegation(self):"},{"line_number":86,"context_line":"        subnet \u003d self._create_subnet(self._project_id, self._network[\u0027id\u0027],"},{"line_number":87,"context_line":"                                     None, ipv6_address_mode\u003d\u0027slaac\u0027,"},{"line_number":88,"context_line":"                                     ipv6_ra_mode\u003d\u0027slaac\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"db7b1e5f_01d71c64","line":85,"range":{"start_line":85,"start_character":8,"end_line":85,"end_character":49},"in_reply_to":"cb30cc65_7fae3451","updated":"2022-03-02 10:07:33.000000000","message":"+1","commit_id":"a33eb266420f1695010857c2a8fe9628e075873a"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"d158ed408e34aa5d4a2af46301f093a23d5d7de2","unresolved":true,"context_lines":[{"line_number":82,"context_line":"        self.assertEqual(subnet[\u0027subnet\u0027][\u0027gateway_ip\u0027],"},{"line_number":83,"context_line":"                         str(netaddr.IPNetwork(cidr).network))"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def test_create_subnet_ipv6_prefix_delegation(self):"},{"line_number":86,"context_line":"        subnet \u003d self._create_subnet(self._project_id, self._network[\u0027id\u0027],"},{"line_number":87,"context_line":"                                     None, ipv6_address_mode\u003d\u0027slaac\u0027,"},{"line_number":88,"context_line":"                                     ipv6_ra_mode\u003d\u0027slaac\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"4def39e7_df0cb204","line":85,"range":{"start_line":85,"start_character":8,"end_line":85,"end_character":49},"in_reply_to":"db7b1e5f_01d71c64","updated":"2022-03-02 11:54:10.000000000","message":"Yes right this test would have caught the issue at the time of original patch.\n\nAdded router and connected subnet, disconnect is done in cleanup[1].\n\n[1] https://opendev.org/openstack/neutron/src/branch/master/neutron/tests/fullstack/resources/client.py#L238-L239","commit_id":"a33eb266420f1695010857c2a8fe9628e075873a"}]}
