)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":12404,"name":"Rico Lin","email":"ricolin@ricolky.com","username":"rico.lin"},"change_message_id":"69110c787cdad392daa5fe91649833f011c20829","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"1f621f24_1eeef620","line":16,"updated":"2020-11-17 15:54:55.000000000","message":"should also add `Task: 40611` here. That will help the storyboard to auto mark that task and story to completed","commit_id":"abb115788ec7ef86da5b10111d727322b95ecdb9"}],"heat/engine/resources/openstack/neutron/subnet.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6646d998fb28a041083a2e3646c9008c918b6eb9","unresolved":false,"context_lines":[{"line_number":379,"context_line":"        if subnetpool is not None and cidr:"},{"line_number":380,"context_line":"            if not self.validate_pool_range():"},{"line_number":381,"context_line":"                raise exception.ResourcePropertyConflict(self.SUBNETPOOL,"},{"line_number":382,"context_line":"                                                     self.CIDR)"},{"line_number":383,"context_line":"        if subnetpool is None and not cidr:"},{"line_number":384,"context_line":"            raise exception.PropertyUnspecifiedError(self.SUBNETPOOL,"},{"line_number":385,"context_line":"                                                     self.CIDR)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_ab5f7c4b","line":382,"updated":"2020-10-02 12:20:04.000000000","message":"pep8: E128 continuation line under-indented for visual indent","commit_id":"b62c37e1cbe4c789963f58e7caff2cd5e6d4e97e"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"23eb1cbc6770e881243a2323e831648003701607","unresolved":false,"context_lines":[{"line_number":355,"context_line":"        pools \u003d self.properties[self.ALLOCATION_POOLS]"},{"line_number":356,"context_line":"        subnetpool_name \u003d self.properties[self.SUBNETPOOL]"},{"line_number":357,"context_line":"        # the subnetpools in that network."},{"line_number":358,"context_line":"        for res in self.stack.values():"},{"line_number":359,"context_line":"            if res.has_interface(\u0027OS::Neutron::SubnetPool\u0027):"},{"line_number":360,"context_line":"                if not subnetpool_name \u003d\u003d res.properties.get(res.NAME):"},{"line_number":361,"context_line":"                    continue"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_f82d76fd","line":358,"updated":"2020-10-08 14:22:05.000000000","message":"This is extremely expensive, if there is literally *any* other way to do this, we should do that instead.","commit_id":"0cd99a9a530c6bfb476bee52aec80acede4ec0d7"},{"author":{"_account_id":15895,"name":"Adriano Petrich","email":"apetrich@redhat.com","username":"apetrich"},"change_message_id":"7da2c100374674747caf13e941a667d4c3e97653","unresolved":false,"context_lines":[{"line_number":355,"context_line":"        pools \u003d self.properties[self.ALLOCATION_POOLS]"},{"line_number":356,"context_line":"        subnetpool_name \u003d self.properties[self.SUBNETPOOL]"},{"line_number":357,"context_line":"        # the subnetpools in that network."},{"line_number":358,"context_line":"        for res in self.stack.values():"},{"line_number":359,"context_line":"            if res.has_interface(\u0027OS::Neutron::SubnetPool\u0027):"},{"line_number":360,"context_line":"                if not subnetpool_name \u003d\u003d res.properties.get(res.NAME):"},{"line_number":361,"context_line":"                    continue"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f681702_17736617","line":358,"in_reply_to":"9f560f44_f82d76fd","updated":"2020-10-19 09:28:55.000000000","message":"I know but I wasn\u0027t able to find a better solution and this was used elsewhere multiple times http://codesearch.openstack.org/?q\u003dself.stack.values\u0026i\u003dnope\u0026files\u003d\u0026repos\u003dopenstack/heat","commit_id":"0cd99a9a530c6bfb476bee52aec80acede4ec0d7"},{"author":{"_account_id":12404,"name":"Rico Lin","email":"ricolin@ricolky.com","username":"rico.lin"},"change_message_id":"5f3945251b5068919f18940660c0fc0440872043","unresolved":false,"context_lines":[{"line_number":356,"context_line":"        subnetpool_name \u003d self.properties[self.SUBNETPOOL]"},{"line_number":357,"context_line":"        # the subnetpools in that network."},{"line_number":358,"context_line":"        for res in self.stack.values():"},{"line_number":359,"context_line":"            if res.has_interface(\u0027OS::Neutron::SubnetPool\u0027):"},{"line_number":360,"context_line":"                if not subnetpool_name \u003d\u003d res.properties.get(res.NAME):"},{"line_number":361,"context_line":"                    continue"},{"line_number":362,"context_line":"                prefixes \u003d res.properties.get(res.PREFIXES)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1f621f24_5e234ea7","line":359,"range":{"start_line":359,"start_character":15,"end_line":359,"end_character":60},"updated":"2020-11-17 15:52:43.000000000","message":"For cases like nested stack (which SubnetPool resource might be created by child stack), this will not work. But to fix this issue, will have to dive into all child stacks. Which might be easier if we just notify users about this.\nSo maybe we can added an release note there?:)","commit_id":"abb115788ec7ef86da5b10111d727322b95ecdb9"}],"heat/tests/openstack/neutron/test_neutron_subnet.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6646d998fb28a041083a2e3646c9008c918b6eb9","unresolved":false,"context_lines":[{"line_number":32,"context_line":"from heat.tests import common"},{"line_number":33,"context_line":"from heat.tests import utils"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"#AP"},{"line_number":36,"context_line":"neutron_template \u003d \u0027\u0027\u0027"},{"line_number":37,"context_line":"heat_template_version: 2015-04-30"},{"line_number":38,"context_line":"description: Template to test subnet Neutron resource"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_abbadc6d","line":35,"updated":"2020-10-02 12:20:04.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"b62c37e1cbe4c789963f58e7caff2cd5e6d4e97e"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6646d998fb28a041083a2e3646c9008c918b6eb9","unresolved":false,"context_lines":[{"line_number":596,"context_line":"                         \"supported for ipv4.\", str(ex))"},{"line_number":597,"context_line":""},{"line_number":598,"context_line":"    def test_validate_both_subnetpool_cidr(self):"},{"line_number":599,"context_line":"        #AP"},{"line_number":600,"context_line":"        self.patchobject(neutronV20, \u0027find_resourceid_by_name_or_id\u0027,"},{"line_number":601,"context_line":"                         return_value\u003d\u0027subpool1\u0027)"},{"line_number":602,"context_line":"        subnetpool \u003d {"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_8bbd5869","line":599,"updated":"2020-10-02 12:20:04.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"b62c37e1cbe4c789963f58e7caff2cd5e6d4e97e"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6646d998fb28a041083a2e3646c9008c918b6eb9","unresolved":false,"context_lines":[{"line_number":614,"context_line":"        props \u003d t[\u0027resources\u0027][\u0027sub_net\u0027][\u0027properties\u0027]"},{"line_number":615,"context_line":"        props[\u0027subnetpool\u0027] \u003d \u0027subpool1\u0027"},{"line_number":616,"context_line":"        stack \u003d utils.parse_stack(t)"},{"line_number":617,"context_line":"        #self.patchobject(stack[\u0027subnetpool\u0027], \u0027FnGetRefId\u0027,"},{"line_number":618,"context_line":"        #                 return_value\u003dNone)"},{"line_number":619,"context_line":"        self.patchobject(stack[\u0027net\u0027], \u0027FnGetRefId\u0027,"},{"line_number":620,"context_line":"                         return_value\u003d\u0027fc68ea2c-b60b-4b4f-bd82-94ec81110766\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_ebb4d484","line":617,"updated":"2020-10-02 12:20:04.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"b62c37e1cbe4c789963f58e7caff2cd5e6d4e97e"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6646d998fb28a041083a2e3646c9008c918b6eb9","unresolved":false,"context_lines":[{"line_number":622,"context_line":"        self.assertIsNone(rsrc.validate())"},{"line_number":623,"context_line":""},{"line_number":624,"context_line":"    def test_validate_both_subnetpool_cidr_dynamic_pool(self):"},{"line_number":625,"context_line":"        #AP"},{"line_number":626,"context_line":"        self.patchobject(neutronV20, \u0027find_resourceid_by_name_or_id\u0027,"},{"line_number":627,"context_line":"                         return_value\u003d\u0027new_pool\u0027)"},{"line_number":628,"context_line":"        subnetpool \u003d {"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_cbb75085","line":625,"updated":"2020-10-02 12:20:04.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"b62c37e1cbe4c789963f58e7caff2cd5e6d4e97e"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6646d998fb28a041083a2e3646c9008c918b6eb9","unresolved":false,"context_lines":[{"line_number":651,"context_line":"        self.assertEqual(msg, str(ex))"},{"line_number":652,"context_line":""},{"line_number":653,"context_line":"    def test_validate_both_subnetpool_cidr_wrong_range(self):"},{"line_number":654,"context_line":"        #AP"},{"line_number":655,"context_line":"        self.patchobject(neutronV20, \u0027find_resourceid_by_name_or_id\u0027,"},{"line_number":656,"context_line":"                         return_value\u003d\u0027new_pool\u0027)"},{"line_number":657,"context_line":"        subnetpool \u003d {"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_2baecc2e","line":654,"updated":"2020-10-02 12:20:04.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"b62c37e1cbe4c789963f58e7caff2cd5e6d4e97e"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6646d998fb28a041083a2e3646c9008c918b6eb9","unresolved":false,"context_lines":[{"line_number":669,"context_line":"        t \u003d template_format.parse(neutron_template)"},{"line_number":670,"context_line":"        props \u003d t[\u0027resources\u0027][\u0027sub_net\u0027][\u0027properties\u0027]"},{"line_number":671,"context_line":"        props[\u0027subnetpool\u0027] \u003d \u0027subpool1\u0027"},{"line_number":672,"context_line":"        props[\u0027allocation_pools\u0027] \u003d [ {\u0027start\u0027: \u002710.1.3.20\u0027, \u0027end\u0027: \u002710.1.3.150\u0027} ]"},{"line_number":673,"context_line":""},{"line_number":674,"context_line":"        stack \u003d utils.parse_stack(t)"},{"line_number":675,"context_line":"        self.patchobject(stack[\u0027net\u0027], \u0027FnGetRefId\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_0ba94824","line":672,"updated":"2020-10-02 12:20:04.000000000","message":"pep8: E201 whitespace after \u0027[\u0027","commit_id":"b62c37e1cbe4c789963f58e7caff2cd5e6d4e97e"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6646d998fb28a041083a2e3646c9008c918b6eb9","unresolved":false,"context_lines":[{"line_number":669,"context_line":"        t \u003d template_format.parse(neutron_template)"},{"line_number":670,"context_line":"        props \u003d t[\u0027resources\u0027][\u0027sub_net\u0027][\u0027properties\u0027]"},{"line_number":671,"context_line":"        props[\u0027subnetpool\u0027] \u003d \u0027subpool1\u0027"},{"line_number":672,"context_line":"        props[\u0027allocation_pools\u0027] \u003d [ {\u0027start\u0027: \u002710.1.3.20\u0027, \u0027end\u0027: \u002710.1.3.150\u0027} ]"},{"line_number":673,"context_line":""},{"line_number":674,"context_line":"        stack \u003d utils.parse_stack(t)"},{"line_number":675,"context_line":"        self.patchobject(stack[\u0027net\u0027], \u0027FnGetRefId\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_4ba34044","line":672,"updated":"2020-10-02 12:20:04.000000000","message":"pep8: E202 whitespace before \u0027]\u0027","commit_id":"b62c37e1cbe4c789963f58e7caff2cd5e6d4e97e"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6646d998fb28a041083a2e3646c9008c918b6eb9","unresolved":false,"context_lines":[{"line_number":669,"context_line":"        t \u003d template_format.parse(neutron_template)"},{"line_number":670,"context_line":"        props \u003d t[\u0027resources\u0027][\u0027sub_net\u0027][\u0027properties\u0027]"},{"line_number":671,"context_line":"        props[\u0027subnetpool\u0027] \u003d \u0027subpool1\u0027"},{"line_number":672,"context_line":"        props[\u0027allocation_pools\u0027] \u003d [ {\u0027start\u0027: \u002710.1.3.20\u0027, \u0027end\u0027: \u002710.1.3.150\u0027} ]"},{"line_number":673,"context_line":""},{"line_number":674,"context_line":"        stack \u003d utils.parse_stack(t)"},{"line_number":675,"context_line":"        self.patchobject(stack[\u0027net\u0027], \u0027FnGetRefId\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_6ba8c41f","line":672,"updated":"2020-10-02 12:20:04.000000000","message":"pep8: E501 line too long (83 \u003e 79 characters)","commit_id":"b62c37e1cbe4c789963f58e7caff2cd5e6d4e97e"}]}
