)]}'
{"neutron/db/address_group_db.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"58bea848dab82d3c087473b3a5c74813310ba920","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        return db_utils.resource_fields(res, fields)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @staticmethod"},{"line_number":48,"context_line":"    def check_address_group(context, id, tenant_id\u003dNone):"},{"line_number":49,"context_line":"        \"\"\"Check if address group id exists for the given tenant\"\"\""},{"line_number":50,"context_line":"        if tenant_id:"},{"line_number":51,"context_line":"            tmp_context_tenant_id \u003d context.tenant_id"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_734c4075","line":48,"range":{"start_line":48,"start_character":41,"end_line":48,"end_character":50},"updated":"2020-10-02 04:58:19.000000000","message":"for new code please use project_id","commit_id":"e172a1bbe2a83371733c52c54872b97d15e2227f"},{"author":{"_account_id":28159,"name":"Hang Yang","email":"hangyang@yahooinc.com","username":"hangyang"},"change_message_id":"2798cd6416bac4dd701d51e8eaad3cac632c400b","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        return db_utils.resource_fields(res, fields)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @staticmethod"},{"line_number":48,"context_line":"    def check_address_group(context, id, tenant_id\u003dNone):"},{"line_number":49,"context_line":"        \"\"\"Check if address group id exists for the given tenant\"\"\""},{"line_number":50,"context_line":"        if tenant_id:"},{"line_number":51,"context_line":"            tmp_context_tenant_id \u003d context.tenant_id"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_176e87fd","line":48,"range":{"start_line":48,"start_character":41,"end_line":48,"end_character":50},"in_reply_to":"9f560f44_734c4075","updated":"2020-10-02 16:05:14.000000000","message":"Oh, actually this method and the InUse exception shouldn\u0027t be in this patch. I just removed it here and will update it in https://review.opendev.org/751110 instead.","commit_id":"e172a1bbe2a83371733c52c54872b97d15e2227f"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"58bea848dab82d3c087473b3a5c74813310ba920","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        \"\"\"Check if address group id exists for the given tenant\"\"\""},{"line_number":50,"context_line":"        if tenant_id:"},{"line_number":51,"context_line":"            tmp_context_tenant_id \u003d context.tenant_id"},{"line_number":52,"context_line":"            context.tenant_id \u003d tenant_id"},{"line_number":53,"context_line":"        try:"},{"line_number":54,"context_line":"            if not ag_obj.AddressGroup.objects_exist(context, id\u003did):"},{"line_number":55,"context_line":"                raise ag_exc.AddressGroupNotFound(address_group_id\u003did)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_b356d804","line":52,"range":{"start_line":52,"start_character":20,"end_line":52,"end_character":29},"updated":"2020-10-02 04:58:19.000000000","message":"ditto","commit_id":"e172a1bbe2a83371733c52c54872b97d15e2227f"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6797368cee90130e87f4cf44e7a7242b14e80537","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        return obj"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def _process_requested_addresses(self, ag_obj, req_addrs):"},{"line_number":45,"context_line":"        \"\"\"Deduplicate, normalize and compare the requested addresses"},{"line_number":46,"context_line":"        with existing addresses in the address group"},{"line_number":47,"context_line":"        \"\"\""},{"line_number":48,"context_line":"        ag_addrs \u003d set(self._make_address_group_dict("}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_b72d1bb0","line":45,"updated":"2020-10-02 16:17:47.000000000","message":"Function description title should be contained in 1 line. You can describe it better in the body of the comment.\n\nhttps://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html","commit_id":"4136baf6e64341584e30310af37f02ad60421111"},{"author":{"_account_id":28159,"name":"Hang Yang","email":"hangyang@yahooinc.com","username":"hangyang"},"change_message_id":"d45cd3eb24b5ad393e6abcc13b70599da8d34295","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        return obj"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def _process_requested_addresses(self, ag_obj, req_addrs):"},{"line_number":45,"context_line":"        \"\"\"Deduplicate, normalize and compare the requested addresses"},{"line_number":46,"context_line":"        with existing addresses in the address group"},{"line_number":47,"context_line":"        \"\"\""},{"line_number":48,"context_line":"        ag_addrs \u003d set(self._make_address_group_dict("}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_52a3ed43","line":45,"in_reply_to":"9f560f44_b72d1bb0","updated":"2020-10-02 17:00:13.000000000","message":"Done","commit_id":"4136baf6e64341584e30310af37f02ad60421111"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6797368cee90130e87f4cf44e7a7242b14e80537","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        normalized_addrs \u003d set()"},{"line_number":51,"context_line":"        for addr in req_addrs:"},{"line_number":52,"context_line":"            addr \u003d netaddr.IPNetwork(addr)"},{"line_number":53,"context_line":"            normalized_addr \u003d \"%s/%s\" % (addr.network, addr.prefixlen)"},{"line_number":54,"context_line":"            normalized_addrs.add(normalized_addr)"},{"line_number":55,"context_line":"        addrs_in_ag \u003d []"},{"line_number":56,"context_line":"        addrs_not_in_ag \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_72b55132","line":53,"range":{"start_line":53,"start_character":30,"end_line":53,"end_character":70},"updated":"2020-10-02 16:17:47.000000000","message":"str(netaddr.IPNetwork(addr)), in base patch, is doing the same.","commit_id":"4136baf6e64341584e30310af37f02ad60421111"},{"author":{"_account_id":28159,"name":"Hang Yang","email":"hangyang@yahooinc.com","username":"hangyang"},"change_message_id":"d45cd3eb24b5ad393e6abcc13b70599da8d34295","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        normalized_addrs \u003d set()"},{"line_number":51,"context_line":"        for addr in req_addrs:"},{"line_number":52,"context_line":"            addr \u003d netaddr.IPNetwork(addr)"},{"line_number":53,"context_line":"            normalized_addr \u003d \"%s/%s\" % (addr.network, addr.prefixlen)"},{"line_number":54,"context_line":"            normalized_addrs.add(normalized_addr)"},{"line_number":55,"context_line":"        addrs_in_ag \u003d []"},{"line_number":56,"context_line":"        addrs_not_in_ag \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_d26c1d09","line":53,"range":{"start_line":53,"start_character":30,"end_line":53,"end_character":70},"in_reply_to":"9f560f44_72b55132","updated":"2020-10-02 17:00:13.000000000","message":"Actually, the base patch cannot handle the host bits in cidr. See this example:\n\n\u003e\u003e\u003e import netaddr\n\u003e\u003e\u003e print(str(netaddr.IPNetwork(\u002710.0.0.1/24\u0027)))\n10.0.0.1/24","commit_id":"4136baf6e64341584e30310af37f02ad60421111"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"078100a2c60671a74ef1d3a2ab2e7b8e0c5d9ad8","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        normalized_addrs \u003d set()"},{"line_number":51,"context_line":"        for addr in req_addrs:"},{"line_number":52,"context_line":"            addr \u003d netaddr.IPNetwork(addr)"},{"line_number":53,"context_line":"            normalized_addr \u003d \"%s/%s\" % (addr.network, addr.prefixlen)"},{"line_number":54,"context_line":"            normalized_addrs.add(normalized_addr)"},{"line_number":55,"context_line":"        addrs_in_ag \u003d []"},{"line_number":56,"context_line":"        addrs_not_in_ag \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_33047118","line":53,"range":{"start_line":53,"start_character":30,"end_line":53,"end_character":70},"in_reply_to":"9f560f44_d26c1d09","updated":"2020-10-05 08:19:38.000000000","message":"Right","commit_id":"4136baf6e64341584e30310af37f02ad60421111"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6797368cee90130e87f4cf44e7a7242b14e80537","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    def create_address_group(self, context, address_group):"},{"line_number":94,"context_line":"        \"\"\"Create an address group.\"\"\""},{"line_number":95,"context_line":"        fields \u003d address_group[\u0027address_group\u0027]"},{"line_number":96,"context_line":"        args \u003d {\u0027project_id\u0027: fields[\u0027project_id\u0027],"},{"line_number":97,"context_line":"                \u0027id\u0027: uuidutils.generate_uuid(),"},{"line_number":98,"context_line":"                \u0027name\u0027: fields[\u0027name\u0027],"},{"line_number":99,"context_line":"                \u0027description\u0027: fields[\u0027description\u0027]}"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_7756e32c","line":96,"range":{"start_line":96,"start_character":38,"end_line":96,"end_character":48},"updated":"2020-10-02 16:17:47.000000000","message":"Needed change but unrelated to this patch. \n\nDo you explicitly need this change in this patch? If not, please report it in a separate one.","commit_id":"4136baf6e64341584e30310af37f02ad60421111"},{"author":{"_account_id":28159,"name":"Hang Yang","email":"hangyang@yahooinc.com","username":"hangyang"},"change_message_id":"d45cd3eb24b5ad393e6abcc13b70599da8d34295","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    def create_address_group(self, context, address_group):"},{"line_number":94,"context_line":"        \"\"\"Create an address group.\"\"\""},{"line_number":95,"context_line":"        fields \u003d address_group[\u0027address_group\u0027]"},{"line_number":96,"context_line":"        args \u003d {\u0027project_id\u0027: fields[\u0027project_id\u0027],"},{"line_number":97,"context_line":"                \u0027id\u0027: uuidutils.generate_uuid(),"},{"line_number":98,"context_line":"                \u0027name\u0027: fields[\u0027name\u0027],"},{"line_number":99,"context_line":"                \u0027description\u0027: fields[\u0027description\u0027]}"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_52ff6d01","line":96,"range":{"start_line":96,"start_character":38,"end_line":96,"end_character":48},"in_reply_to":"9f560f44_7756e32c","updated":"2020-10-02 17:00:13.000000000","message":"This patch is intended to handle all the pending change requests from the comments of https://review.opendev.org/738274 So I do want it included here. I changed the commit message to mention it.","commit_id":"4136baf6e64341584e30310af37f02ad60421111"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3f6a72f0ba16a8aa5d1f65f8f9dba91ad118b7c9","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        return obj"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def _process_requested_addresses(self, ag_obj, req_addrs):"},{"line_number":45,"context_line":"        \"\"\" Process the requested addresses."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        Deduplicate, normalize and compare the requested addresses"},{"line_number":48,"context_line":"        with existing addresses in the address group"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_17a8421e","line":45,"updated":"2020-10-02 23:17:10.000000000","message":"pep8: H401: docstring should not start with a space","commit_id":"2c68570597b7bff24dddea118dd5f49ffe57c1ac"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3f6a72f0ba16a8aa5d1f65f8f9dba91ad118b7c9","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def _process_requested_addresses(self, ag_obj, req_addrs):"},{"line_number":45,"context_line":"        \"\"\" Process the requested addresses."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        Deduplicate, normalize and compare the requested addresses"},{"line_number":48,"context_line":"        with existing addresses in the address group"},{"line_number":49,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_f7a2ee3e","line":46,"updated":"2020-10-02 23:17:10.000000000","message":"pep8: H401: docstring should not start with a space","commit_id":"2c68570597b7bff24dddea118dd5f49ffe57c1ac"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3f6a72f0ba16a8aa5d1f65f8f9dba91ad118b7c9","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    def _process_requested_addresses(self, ag_obj, req_addrs):"},{"line_number":45,"context_line":"        \"\"\" Process the requested addresses."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        Deduplicate, normalize and compare the requested addresses"},{"line_number":48,"context_line":"        with existing addresses in the address group"},{"line_number":49,"context_line":"        \"\"\""},{"line_number":50,"context_line":"        ag_addrs \u003d set(self._make_address_group_dict("}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_575f5a4c","line":47,"updated":"2020-10-02 23:17:10.000000000","message":"pep8: H401: docstring should not start with a space","commit_id":"2c68570597b7bff24dddea118dd5f49ffe57c1ac"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3f6a72f0ba16a8aa5d1f65f8f9dba91ad118b7c9","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        \"\"\" Process the requested addresses."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        Deduplicate, normalize and compare the requested addresses"},{"line_number":48,"context_line":"        with existing addresses in the address group"},{"line_number":49,"context_line":"        \"\"\""},{"line_number":50,"context_line":"        ag_addrs \u003d set(self._make_address_group_dict("},{"line_number":51,"context_line":"            ag_obj, fields\u003d[\u0027addresses\u0027])[\u0027addresses\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_3762a616","line":48,"updated":"2020-10-02 23:17:10.000000000","message":"pep8: H401: docstring should not start with a space","commit_id":"2c68570597b7bff24dddea118dd5f49ffe57c1ac"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3f6a72f0ba16a8aa5d1f65f8f9dba91ad118b7c9","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        Deduplicate, normalize and compare the requested addresses"},{"line_number":48,"context_line":"        with existing addresses in the address group"},{"line_number":49,"context_line":"        \"\"\""},{"line_number":50,"context_line":"        ag_addrs \u003d set(self._make_address_group_dict("},{"line_number":51,"context_line":"            ag_obj, fields\u003d[\u0027addresses\u0027])[\u0027addresses\u0027])"},{"line_number":52,"context_line":"        normalized_addrs \u003d set()"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_9769f2f9","line":49,"updated":"2020-10-02 23:17:10.000000000","message":"pep8: H401: docstring should not start with a space","commit_id":"2c68570597b7bff24dddea118dd5f49ffe57c1ac"}]}
