)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"e5b67335302e3e16d0c275941cbda52714a56cfa","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implement Reverse DNS support for Fixed IPs"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I6542f4e8306f72b81c09ee43cf7517ae90dcd318"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Implement Reverse DNS support for Fixed IPs"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"59ee6f2f_62f9d37a","line":9,"updated":"2024-07-16 09:27:27.000000000","message":"this doesn\u0027t belong here","commit_id":"3ed657ba398401c5e7554bd013e48b2a61a12f70"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"56fa20581ff0eb9436bba5f0fb0b2021a5f4ec10","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implement Reverse DNS support for Fixed IPs"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I6542f4e8306f72b81c09ee43cf7517ae90dcd318"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Implement Reverse DNS support for Fixed IPs"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"4214deea_066c3b60","line":9,"in_reply_to":"59ee6f2f_62f9d37a","updated":"2024-07-16 09:43:44.000000000","message":"Done","commit_id":"3ed657ba398401c5e7554bd013e48b2a61a12f70"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"5023ad391e0280a681ad8a0b2ad8dbf7dfa18833","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"05d68442_83ea5dad","updated":"2024-06-06 07:31:47.000000000","message":"Fyi I\u0027ll likely continue somewhere end of june/begin July. Hadn\u0027t come around to it yet due to other responsibilities, and I\u0027ll soon leave for a vacation (laptop stays home, otherwise I have an angry partner xD).","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"a0f291643fa0da02ee054e66eddfa4369c391582","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"4457d8df_102ffe05","updated":"2024-05-13 12:40:39.000000000","message":"Ive submitted this mergerequest last month, wasn\u0027t sure if it was noticed yet. Let me know what y\u0027all think!","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"8062b01773bbe6a69f03dc533727f7abb59513e3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f92f7170_bc5ceff9","updated":"2024-05-21 12:27:01.000000000","message":"Thank you Sam for all the hard work. I left a few comments, IMO the most important one is on the network_api/neutron.py file. I didn\u0027t review tests (yet)","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"e5b67335302e3e16d0c275941cbda52714a56cfa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"943e4068_8bef0e20","updated":"2024-07-16 09:27:27.000000000","message":"Before going into details about this patch, I\u0027d like to ask first why you would want to implement this in Designate at all and not use the implementation for reverse DNS that is available in Neutron.\n\nThe blueprint that you reference is 10 years old, at that time the functionality in Neutron was not available yet at all, but today the situation has changed. Fwiw I would also consider the Floating IP functionality in Designate to be outdated and a candidate for deprecation.","commit_id":"3ed657ba398401c5e7554bd013e48b2a61a12f70"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"98c38e64b108a29650b806f5527fd76de44d364d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"d3a56510_117aaa58","updated":"2024-07-16 08:30:22.000000000","message":"Hi Omer and Erik,\n\nI have refactored the patch with the provided feedback!","commit_id":"3ed657ba398401c5e7554bd013e48b2a61a12f70"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"9edef89b2af66d5381d05c9684fba18b264c8fc2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"c5c35a96_8dc35df7","in_reply_to":"943e4068_8bef0e20","updated":"2024-07-16 09:49:30.000000000","message":"Afaik neutron still requires intergration with an external DNS provider for that. For us this is Designate, so we\u0027d like this functionality in Designate (we actually already use this patch in our production environment).\n\nIf there is something I missed about reverse DNS in neutron please do share the relevant resources, I cant find anything other than integration with an external provider such as designate.","commit_id":"3ed657ba398401c5e7554bd013e48b2a61a12f70"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"55dda8bc82d21cbe1e6a7fe642aea3f36c780c49","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"c6eca131_33b81dc5","in_reply_to":"c5c35a96_8dc35df7","updated":"2024-07-16 13:14:27.000000000","message":"Well, yes, the external service is Designate, so the PTR records end up in the same zones as they would with this solution (or so I assume, didn\u0027t check the details here yet).\n\nhttps://docs.openstack.org/neutron/latest/admin/config-dns-int-ext-serv.html#use-case-3a-the-subnet-dns-publish-fixed-ip-extension should be the relevant doc","commit_id":"3ed657ba398401c5e7554bd013e48b2a61a12f70"}],"api-ref/source/dns-api-v2-reverse-fixedips.inc":[{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"8062b01773bbe6a69f03dc533727f7abb59513e3","unresolved":true,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"   - x-openstack-request-id: x-openstack-request-id"},{"line_number":59,"context_line":"   - id: fixedptr_id"},{"line_number":60,"context_line":"   - ptrdname: fptrd_name"},{"line_number":61,"context_line":"   - description: fptr_description"},{"line_number":62,"context_line":"   - ttl: fptr_ttl"},{"line_number":63,"context_line":"   - address: fixedip_address"}],"source_content_type":"text/x-c++src","patch_set":1,"id":"989c54a6_4f2b657c","line":60,"range":{"start_line":60,"start_character":15,"end_line":60,"end_character":25},"updated":"2024-05-21 12:27:01.000000000","message":"nit: there is a small inconsistency here. Do we prefer using fptr like we do in the floating IP ptrs? or fixedptr?","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"5023ad391e0280a681ad8a0b2ad8dbf7dfa18833","unresolved":true,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"   - x-openstack-request-id: x-openstack-request-id"},{"line_number":59,"context_line":"   - id: fixedptr_id"},{"line_number":60,"context_line":"   - ptrdname: fptrd_name"},{"line_number":61,"context_line":"   - description: fptr_description"},{"line_number":62,"context_line":"   - ttl: fptr_ttl"},{"line_number":63,"context_line":"   - address: fixedip_address"}],"source_content_type":"text/x-c++src","patch_set":1,"id":"996621e1_c61c9d63","line":60,"range":{"start_line":60,"start_character":15,"end_line":60,"end_character":25},"in_reply_to":"989c54a6_4f2b657c","updated":"2024-06-06 07:31:47.000000000","message":"I agree on changing it, for more clarity","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"98c38e64b108a29650b806f5527fd76de44d364d","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"   - x-openstack-request-id: x-openstack-request-id"},{"line_number":59,"context_line":"   - id: fixedptr_id"},{"line_number":60,"context_line":"   - ptrdname: fptrd_name"},{"line_number":61,"context_line":"   - description: fptr_description"},{"line_number":62,"context_line":"   - ttl: fptr_ttl"},{"line_number":63,"context_line":"   - address: fixedip_address"}],"source_content_type":"text/x-c++src","patch_set":1,"id":"961ecfb5_ec736946","line":60,"range":{"start_line":60,"start_character":15,"end_line":60,"end_character":25},"in_reply_to":"996621e1_c61c9d63","updated":"2024-07-16 08:30:22.000000000","message":"Done","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"}],"api-ref/source/samples/reverse_fixedips/set-ptr-record-request.json":[{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"8062b01773bbe6a69f03dc533727f7abb59513e3","unresolved":true,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"  \"ptrdname\" : \"smtp.example.com.\","},{"line_number":3,"context_line":"  \"description\" : \"This is a fixed ip for 10.0.0.8\","},{"line_number":4,"context_line":"  \"ttl\": 600"},{"line_number":5,"context_line":"}"}],"source_content_type":"application/json","patch_set":1,"id":"10ff8492_bae19009","line":3,"range":{"start_line":3,"start_character":42,"end_line":3,"end_character":50},"updated":"2024-05-21 12:27:01.000000000","message":"nit: 10.0.0.8 fits the floating ip common format on OSP, maybe we can replace it with the same \u0027172.24.4.10\u0027 fixed ip was used in other files in the patch?","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"98c38e64b108a29650b806f5527fd76de44d364d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"  \"ptrdname\" : \"smtp.example.com.\","},{"line_number":3,"context_line":"  \"description\" : \"This is a fixed ip for 10.0.0.8\","},{"line_number":4,"context_line":"  \"ttl\": 600"},{"line_number":5,"context_line":"}"}],"source_content_type":"application/json","patch_set":1,"id":"c022056d_857a32a9","line":3,"range":{"start_line":3,"start_character":42,"end_line":3,"end_character":50},"in_reply_to":"0e9d1521_07f58e0a","updated":"2024-07-16 08:30:22.000000000","message":"Done","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"5023ad391e0280a681ad8a0b2ad8dbf7dfa18833","unresolved":true,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"  \"ptrdname\" : \"smtp.example.com.\","},{"line_number":3,"context_line":"  \"description\" : \"This is a fixed ip for 10.0.0.8\","},{"line_number":4,"context_line":"  \"ttl\": 600"},{"line_number":5,"context_line":"}"}],"source_content_type":"application/json","patch_set":1,"id":"0e9d1521_07f58e0a","line":3,"range":{"start_line":3,"start_character":42,"end_line":3,"end_character":50},"in_reply_to":"10ff8492_bae19009","updated":"2024-06-06 07:31:47.000000000","message":"Ack","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"}],"designate/api/v2/controllers/fixedips.py":[{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"8062b01773bbe6a69f03dc533727f7abb59513e3","unresolved":true,"context_lines":[{"line_number":30,"context_line":"    m \u003d constants.RE_FIXED_IP_KEY.match(key)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    # NOTE: Ensure that the fixed_ip matches region:fixedip or raise, if"},{"line_number":33,"context_line":"    # not this will cause a 500."},{"line_number":34,"context_line":"    if m is None:"},{"line_number":35,"context_line":"        msg \u003d \u0027Fixed IP %s is not in the format of \u003cregion\u003e:\u003cIPv4\u003e\u0027"},{"line_number":36,"context_line":"        raise exceptions.BadRequest(msg % key)"}],"source_content_type":"text/x-python","patch_set":1,"id":"b67e2c87_e555020a","line":33,"range":{"start_line":33,"start_character":28,"end_line":33,"end_character":31},"updated":"2024-05-21 12:27:01.000000000","message":"400","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"5023ad391e0280a681ad8a0b2ad8dbf7dfa18833","unresolved":true,"context_lines":[{"line_number":30,"context_line":"    m \u003d constants.RE_FIXED_IP_KEY.match(key)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    # NOTE: Ensure that the fixed_ip matches region:fixedip or raise, if"},{"line_number":33,"context_line":"    # not this will cause a 500."},{"line_number":34,"context_line":"    if m is None:"},{"line_number":35,"context_line":"        msg \u003d \u0027Fixed IP %s is not in the format of \u003cregion\u003e:\u003cIPv4\u003e\u0027"},{"line_number":36,"context_line":"        raise exceptions.BadRequest(msg % key)"}],"source_content_type":"text/x-python","patch_set":1,"id":"d2ab31e7_706818ba","line":33,"range":{"start_line":33,"start_character":28,"end_line":33,"end_character":31},"in_reply_to":"b67e2c87_e555020a","updated":"2024-06-06 07:31:47.000000000","message":"Ack","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"98c38e64b108a29650b806f5527fd76de44d364d","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    m \u003d constants.RE_FIXED_IP_KEY.match(key)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    # NOTE: Ensure that the fixed_ip matches region:fixedip or raise, if"},{"line_number":33,"context_line":"    # not this will cause a 500."},{"line_number":34,"context_line":"    if m is None:"},{"line_number":35,"context_line":"        msg \u003d \u0027Fixed IP %s is not in the format of \u003cregion\u003e:\u003cIPv4\u003e\u0027"},{"line_number":36,"context_line":"        raise exceptions.BadRequest(msg % key)"}],"source_content_type":"text/x-python","patch_set":1,"id":"631a4296_7b5fe31d","line":33,"range":{"start_line":33,"start_character":28,"end_line":33,"end_character":31},"in_reply_to":"d2ab31e7_706818ba","updated":"2024-07-16 08:30:22.000000000","message":"Done","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"}],"designate/central/service.py":[{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"8062b01773bbe6a69f03dc533727f7abb59513e3","unresolved":true,"context_lines":[{"line_number":1973,"context_line":"                record[\u0027id\u0027]"},{"line_number":1974,"context_line":"            )"},{"line_number":1975,"context_line":""},{"line_number":1976,"context_line":"    def _invalidate_floatingips(self, context, records):"},{"line_number":1977,"context_line":"        \"\"\""},{"line_number":1978,"context_line":"        Utility method to delete a list of records."},{"line_number":1979,"context_line":"        \"\"\""},{"line_number":1980,"context_line":"        return self._invalidate_ips(context, records)"},{"line_number":1981,"context_line":""},{"line_number":1982,"context_line":"    def _invalidate_fixedips(self, context, records):"},{"line_number":1983,"context_line":"        \"\"\""},{"line_number":1984,"context_line":"        Utility method to delete a list of records."},{"line_number":1985,"context_line":"        \"\"\""},{"line_number":1986,"context_line":"        return self._invalidate_ips(context, records)"},{"line_number":1987,"context_line":""},{"line_number":1988,"context_line":"    def _list_floatingips(self, context, region\u003dNone):"},{"line_number":1989,"context_line":"        data \u003d self.network_api.list_floatingips(context, region\u003dregion)"}],"source_content_type":"text/x-python","patch_set":1,"id":"181a89ad_02fbce77","line":1986,"range":{"start_line":1976,"start_character":4,"end_line":1986,"end_character":53},"updated":"2024-05-21 12:27:01.000000000","message":"A suggestion: it looks like the only difference between _invalidate_floatingips and _invalidate_fixedips is the name. Maybe we can just call directly _invalidate_ips from their callers?\n\nI would consider the same regarding _list_floatingips/_list_fixedips (receiving a list_ips method and just call it)","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"5023ad391e0280a681ad8a0b2ad8dbf7dfa18833","unresolved":true,"context_lines":[{"line_number":1973,"context_line":"                record[\u0027id\u0027]"},{"line_number":1974,"context_line":"            )"},{"line_number":1975,"context_line":""},{"line_number":1976,"context_line":"    def _invalidate_floatingips(self, context, records):"},{"line_number":1977,"context_line":"        \"\"\""},{"line_number":1978,"context_line":"        Utility method to delete a list of records."},{"line_number":1979,"context_line":"        \"\"\""},{"line_number":1980,"context_line":"        return self._invalidate_ips(context, records)"},{"line_number":1981,"context_line":""},{"line_number":1982,"context_line":"    def _invalidate_fixedips(self, context, records):"},{"line_number":1983,"context_line":"        \"\"\""},{"line_number":1984,"context_line":"        Utility method to delete a list of records."},{"line_number":1985,"context_line":"        \"\"\""},{"line_number":1986,"context_line":"        return self._invalidate_ips(context, records)"},{"line_number":1987,"context_line":""},{"line_number":1988,"context_line":"    def _list_floatingips(self, context, region\u003dNone):"},{"line_number":1989,"context_line":"        data \u003d self.network_api.list_floatingips(context, region\u003dregion)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3e969b7b_1f6bb271","line":1986,"range":{"start_line":1976,"start_character":4,"end_line":1986,"end_character":53},"in_reply_to":"181a89ad_02fbce77","updated":"2024-06-06 07:31:47.000000000","message":"Yes I agree, another reviewer also mentioned this. I originally did it like this to preserve the current structure, but refactoring is cleaner imo","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"98c38e64b108a29650b806f5527fd76de44d364d","unresolved":false,"context_lines":[{"line_number":1973,"context_line":"                record[\u0027id\u0027]"},{"line_number":1974,"context_line":"            )"},{"line_number":1975,"context_line":""},{"line_number":1976,"context_line":"    def _invalidate_floatingips(self, context, records):"},{"line_number":1977,"context_line":"        \"\"\""},{"line_number":1978,"context_line":"        Utility method to delete a list of records."},{"line_number":1979,"context_line":"        \"\"\""},{"line_number":1980,"context_line":"        return self._invalidate_ips(context, records)"},{"line_number":1981,"context_line":""},{"line_number":1982,"context_line":"    def _invalidate_fixedips(self, context, records):"},{"line_number":1983,"context_line":"        \"\"\""},{"line_number":1984,"context_line":"        Utility method to delete a list of records."},{"line_number":1985,"context_line":"        \"\"\""},{"line_number":1986,"context_line":"        return self._invalidate_ips(context, records)"},{"line_number":1987,"context_line":""},{"line_number":1988,"context_line":"    def _list_floatingips(self, context, region\u003dNone):"},{"line_number":1989,"context_line":"        data \u003d self.network_api.list_floatingips(context, region\u003dregion)"}],"source_content_type":"text/x-python","patch_set":1,"id":"d88e3b6e_93e0caea","line":1986,"range":{"start_line":1976,"start_character":4,"end_line":1986,"end_character":53},"in_reply_to":"3e969b7b_1f6bb271","updated":"2024-07-16 08:30:22.000000000","message":"Done","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"8062b01773bbe6a69f03dc533727f7abb59513e3","unresolved":true,"context_lines":[{"line_number":2098,"context_line":""},{"line_number":2099,"context_line":"        tenant_ips \u003d self._list_fixedips(context, region\u003dregion)"},{"line_number":2100,"context_line":""},{"line_number":2101,"context_line":"        fip \u003d self._get_fixedip(context, region, fixedip_id, tenant_ips)"},{"line_number":2102,"context_line":""},{"line_number":2103,"context_line":"        result \u003d self._list_to_dict([fip], keys\u003d[\u0027region\u0027, \u0027id\u0027])"},{"line_number":2104,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1ed9f824_4ee92274","line":2101,"range":{"start_line":2101,"start_character":8,"end_line":2101,"end_character":11},"updated":"2024-05-21 12:27:01.000000000","message":"there are many s/fip/fixedip typos in the fixedips part","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"5023ad391e0280a681ad8a0b2ad8dbf7dfa18833","unresolved":true,"context_lines":[{"line_number":2098,"context_line":""},{"line_number":2099,"context_line":"        tenant_ips \u003d self._list_fixedips(context, region\u003dregion)"},{"line_number":2100,"context_line":""},{"line_number":2101,"context_line":"        fip \u003d self._get_fixedip(context, region, fixedip_id, tenant_ips)"},{"line_number":2102,"context_line":""},{"line_number":2103,"context_line":"        result \u003d self._list_to_dict([fip], keys\u003d[\u0027region\u0027, \u0027id\u0027])"},{"line_number":2104,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"b34d9f52_7e5206bb","line":2101,"range":{"start_line":2101,"start_character":8,"end_line":2101,"end_character":11},"in_reply_to":"1ed9f824_4ee92274","updated":"2024-06-06 07:31:47.000000000","message":"Ack","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"98c38e64b108a29650b806f5527fd76de44d364d","unresolved":false,"context_lines":[{"line_number":2098,"context_line":""},{"line_number":2099,"context_line":"        tenant_ips \u003d self._list_fixedips(context, region\u003dregion)"},{"line_number":2100,"context_line":""},{"line_number":2101,"context_line":"        fip \u003d self._get_fixedip(context, region, fixedip_id, tenant_ips)"},{"line_number":2102,"context_line":""},{"line_number":2103,"context_line":"        result \u003d self._list_to_dict([fip], keys\u003d[\u0027region\u0027, \u0027id\u0027])"},{"line_number":2104,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5c87593e_e7e67c87","line":2101,"range":{"start_line":2101,"start_character":8,"end_line":2101,"end_character":11},"in_reply_to":"b34d9f52_7e5206bb","updated":"2024-07-16 08:30:22.000000000","message":"Done","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"b0dc570d2539ea2ba6d552112d6af3b5e8f5fc8e","unresolved":true,"context_lines":[{"line_number":2176,"context_line":"            is_fixed_ip\u003dis_fixed_ip"},{"line_number":2177,"context_line":"        )"},{"line_number":2178,"context_line":""},{"line_number":2179,"context_line":"    def _set_floatingip_reverse(self, context, region, floatingip_id, values):"},{"line_number":2180,"context_line":"        \"\"\""},{"line_number":2181,"context_line":"        Set the FloatingIP\u0027s PTR record based on values."},{"line_number":2182,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"02058c57_d9b3c85b","line":2179,"updated":"2024-05-13 13:40:57.000000000","message":"Are the _set_floatingip_reverse and _set_fixedip_reverse functions ever used?","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"55f6a79bf747bbb1b33a078227b1afe549f472af","unresolved":true,"context_lines":[{"line_number":2176,"context_line":"            is_fixed_ip\u003dis_fixed_ip"},{"line_number":2177,"context_line":"        )"},{"line_number":2178,"context_line":""},{"line_number":2179,"context_line":"    def _set_floatingip_reverse(self, context, region, floatingip_id, values):"},{"line_number":2180,"context_line":"        \"\"\""},{"line_number":2181,"context_line":"        Set the FloatingIP\u0027s PTR record based on values."},{"line_number":2182,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"7b059a0b_136ff375","line":2179,"in_reply_to":"02058c57_d9b3c85b","updated":"2024-05-14 07:23:09.000000000","message":"Negative, I\u0027ll refactor them out","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"98c38e64b108a29650b806f5527fd76de44d364d","unresolved":false,"context_lines":[{"line_number":2176,"context_line":"            is_fixed_ip\u003dis_fixed_ip"},{"line_number":2177,"context_line":"        )"},{"line_number":2178,"context_line":""},{"line_number":2179,"context_line":"    def _set_floatingip_reverse(self, context, region, floatingip_id, values):"},{"line_number":2180,"context_line":"        \"\"\""},{"line_number":2181,"context_line":"        Set the FloatingIP\u0027s PTR record based on values."},{"line_number":2182,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"b6b1d1ad_37056940","line":2179,"in_reply_to":"7b059a0b_136ff375","updated":"2024-07-16 08:30:22.000000000","message":"Done","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"8062b01773bbe6a69f03dc533727f7abb59513e3","unresolved":true,"context_lines":[{"line_number":2232,"context_line":"                elevated_context, criterion\u003dcriterion"},{"line_number":2233,"context_line":"            )"},{"line_number":2234,"context_line":"        except exceptions.RecordNotFound:"},{"line_number":2235,"context_line":"            msg \u003d f\u0027No such IP {region}:{ip_id}\u0027"},{"line_number":2236,"context_line":"            raise exceptions.NotFound(msg)"},{"line_number":2237,"context_line":""},{"line_number":2238,"context_line":"        self._delete_or_update_managed_recordset("},{"line_number":2239,"context_line":"            elevated_context, record.zone_id, record.recordset_id,"},{"line_number":2240,"context_line":"            record[\u0027id\u0027]"},{"line_number":2241,"context_line":"        )"},{"line_number":2242,"context_line":""},{"line_number":2243,"context_line":"    def _unset_floatingip_reverse(self, context, region, floatingip_id):"},{"line_number":2244,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"85937555_1e706899","line":2241,"range":{"start_line":2235,"start_character":12,"end_line":2241,"end_character":9},"updated":"2024-05-21 12:27:01.000000000","message":"IMHO if we don\u0027t find the record, we can skip the rest (i.e. not raising an exception and not calling the _delete_or_update_managed_recordset), as it looks like in _delete_or_update_managed_recordset we try to achieve exactly that.\nWhat do you guys (reviewers/owner) think?","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"98c38e64b108a29650b806f5527fd76de44d364d","unresolved":false,"context_lines":[{"line_number":2232,"context_line":"                elevated_context, criterion\u003dcriterion"},{"line_number":2233,"context_line":"            )"},{"line_number":2234,"context_line":"        except exceptions.RecordNotFound:"},{"line_number":2235,"context_line":"            msg \u003d f\u0027No such IP {region}:{ip_id}\u0027"},{"line_number":2236,"context_line":"            raise exceptions.NotFound(msg)"},{"line_number":2237,"context_line":""},{"line_number":2238,"context_line":"        self._delete_or_update_managed_recordset("},{"line_number":2239,"context_line":"            elevated_context, record.zone_id, record.recordset_id,"},{"line_number":2240,"context_line":"            record[\u0027id\u0027]"},{"line_number":2241,"context_line":"        )"},{"line_number":2242,"context_line":""},{"line_number":2243,"context_line":"    def _unset_floatingip_reverse(self, context, region, floatingip_id):"},{"line_number":2244,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"7d2078fd_9f1787a7","line":2241,"range":{"start_line":2235,"start_character":12,"end_line":2241,"end_character":9},"in_reply_to":"036b8085_8bd60381","updated":"2024-07-16 08:30:22.000000000","message":"Done","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"5023ad391e0280a681ad8a0b2ad8dbf7dfa18833","unresolved":true,"context_lines":[{"line_number":2232,"context_line":"                elevated_context, criterion\u003dcriterion"},{"line_number":2233,"context_line":"            )"},{"line_number":2234,"context_line":"        except exceptions.RecordNotFound:"},{"line_number":2235,"context_line":"            msg \u003d f\u0027No such IP {region}:{ip_id}\u0027"},{"line_number":2236,"context_line":"            raise exceptions.NotFound(msg)"},{"line_number":2237,"context_line":""},{"line_number":2238,"context_line":"        self._delete_or_update_managed_recordset("},{"line_number":2239,"context_line":"            elevated_context, record.zone_id, record.recordset_id,"},{"line_number":2240,"context_line":"            record[\u0027id\u0027]"},{"line_number":2241,"context_line":"        )"},{"line_number":2242,"context_line":""},{"line_number":2243,"context_line":"    def _unset_floatingip_reverse(self, context, region, floatingip_id):"},{"line_number":2244,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"036b8085_8bd60381","line":2241,"range":{"start_line":2235,"start_character":12,"end_line":2241,"end_character":9},"in_reply_to":"85937555_1e706899","updated":"2024-06-06 07:31:47.000000000","message":"Doesnt this currently, by raising NotFound, already backout of the function? If its not found, _delete_or_update_managed_recordset would not be called.","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"b0dc570d2539ea2ba6d552112d6af3b5e8f5fc8e","unresolved":true,"context_lines":[{"line_number":2240,"context_line":"            record[\u0027id\u0027]"},{"line_number":2241,"context_line":"        )"},{"line_number":2242,"context_line":""},{"line_number":2243,"context_line":"    def _unset_floatingip_reverse(self, context, region, floatingip_id):"},{"line_number":2244,"context_line":"        \"\"\""},{"line_number":2245,"context_line":"        Unset the FloatingIP PTR record based on the"},{"line_number":2246,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"df76fdac_fb48c5f6","line":2243,"updated":"2024-05-13 13:40:57.000000000","message":"Same here. Are _unset_floatingip_reverse and _unset_fixedip_reverse used anywhere?","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"98c38e64b108a29650b806f5527fd76de44d364d","unresolved":false,"context_lines":[{"line_number":2240,"context_line":"            record[\u0027id\u0027]"},{"line_number":2241,"context_line":"        )"},{"line_number":2242,"context_line":""},{"line_number":2243,"context_line":"    def _unset_floatingip_reverse(self, context, region, floatingip_id):"},{"line_number":2244,"context_line":"        \"\"\""},{"line_number":2245,"context_line":"        Unset the FloatingIP PTR record based on the"},{"line_number":2246,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"2b6a99a5_aa902262","line":2243,"in_reply_to":"63098a31_a1826e7c","updated":"2024-07-16 08:30:22.000000000","message":"Done","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"55f6a79bf747bbb1b33a078227b1afe549f472af","unresolved":true,"context_lines":[{"line_number":2240,"context_line":"            record[\u0027id\u0027]"},{"line_number":2241,"context_line":"        )"},{"line_number":2242,"context_line":""},{"line_number":2243,"context_line":"    def _unset_floatingip_reverse(self, context, region, floatingip_id):"},{"line_number":2244,"context_line":"        \"\"\""},{"line_number":2245,"context_line":"        Unset the FloatingIP PTR record based on the"},{"line_number":2246,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"63098a31_a1826e7c","line":2243,"in_reply_to":"df76fdac_fb48c5f6","updated":"2024-05-14 07:23:09.000000000","message":"Idem here","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"8062b01773bbe6a69f03dc533727f7abb59513e3","unresolved":true,"context_lines":[{"line_number":2341,"context_line":""},{"line_number":2342,"context_line":"        return fip_ptr"},{"line_number":2343,"context_line":""},{"line_number":2344,"context_line":"    @rpc.expected_exceptions()"},{"line_number":2345,"context_line":"    def _create_floating_ip(self, context, fip, record,"},{"line_number":2346,"context_line":"                            zone\u003dNone, recordset\u003dNone):"},{"line_number":2347,"context_line":"        \"\"\""},{"line_number":2348,"context_line":"        Creates a FloatingIP based on floating ip and record data."},{"line_number":2349,"context_line":"        \"\"\""},{"line_number":2350,"context_line":"        return self._create_ip(context, fip, record, zone, recordset, False)"},{"line_number":2351,"context_line":""},{"line_number":2352,"context_line":"    @rpc.expected_exceptions()"},{"line_number":2353,"context_line":"    def _create_fixed_ip(self, context, fip, record,"},{"line_number":2354,"context_line":"                         zone\u003dNone, recordset\u003dNone):"},{"line_number":2355,"context_line":"        \"\"\""},{"line_number":2356,"context_line":"        Creates a FloatingIP based on floating ip and record data."},{"line_number":2357,"context_line":"        \"\"\""},{"line_number":2358,"context_line":"        return self._create_ip(context, fip, record, zone, recordset, True)"},{"line_number":2359,"context_line":""},{"line_number":2360,"context_line":"    def _create_ip_list(self, context, data, is_fixed_ip\u003dFalse):"},{"line_number":2361,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"0a1febdc_ba1b1127","line":2358,"range":{"start_line":2344,"start_character":4,"end_line":2358,"end_character":75},"updated":"2024-05-21 12:27:01.000000000","message":"Are the _create_floating_ip and _create_fixed_ip functions ever used?","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"5023ad391e0280a681ad8a0b2ad8dbf7dfa18833","unresolved":true,"context_lines":[{"line_number":2341,"context_line":""},{"line_number":2342,"context_line":"        return fip_ptr"},{"line_number":2343,"context_line":""},{"line_number":2344,"context_line":"    @rpc.expected_exceptions()"},{"line_number":2345,"context_line":"    def _create_floating_ip(self, context, fip, record,"},{"line_number":2346,"context_line":"                            zone\u003dNone, recordset\u003dNone):"},{"line_number":2347,"context_line":"        \"\"\""},{"line_number":2348,"context_line":"        Creates a FloatingIP based on floating ip and record data."},{"line_number":2349,"context_line":"        \"\"\""},{"line_number":2350,"context_line":"        return self._create_ip(context, fip, record, zone, recordset, False)"},{"line_number":2351,"context_line":""},{"line_number":2352,"context_line":"    @rpc.expected_exceptions()"},{"line_number":2353,"context_line":"    def _create_fixed_ip(self, context, fip, record,"},{"line_number":2354,"context_line":"                         zone\u003dNone, recordset\u003dNone):"},{"line_number":2355,"context_line":"        \"\"\""},{"line_number":2356,"context_line":"        Creates a FloatingIP based on floating ip and record data."},{"line_number":2357,"context_line":"        \"\"\""},{"line_number":2358,"context_line":"        return self._create_ip(context, fip, record, zone, recordset, True)"},{"line_number":2359,"context_line":""},{"line_number":2360,"context_line":"    def _create_ip_list(self, context, data, is_fixed_ip\u003dFalse):"},{"line_number":2361,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"af750b25_4d2dedfa","line":2358,"range":{"start_line":2344,"start_character":4,"end_line":2358,"end_character":75},"in_reply_to":"0a1febdc_ba1b1127","updated":"2024-06-06 07:31:47.000000000","message":"Was planning to refactor them away","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"98c38e64b108a29650b806f5527fd76de44d364d","unresolved":false,"context_lines":[{"line_number":2341,"context_line":""},{"line_number":2342,"context_line":"        return fip_ptr"},{"line_number":2343,"context_line":""},{"line_number":2344,"context_line":"    @rpc.expected_exceptions()"},{"line_number":2345,"context_line":"    def _create_floating_ip(self, context, fip, record,"},{"line_number":2346,"context_line":"                            zone\u003dNone, recordset\u003dNone):"},{"line_number":2347,"context_line":"        \"\"\""},{"line_number":2348,"context_line":"        Creates a FloatingIP based on floating ip and record data."},{"line_number":2349,"context_line":"        \"\"\""},{"line_number":2350,"context_line":"        return self._create_ip(context, fip, record, zone, recordset, False)"},{"line_number":2351,"context_line":""},{"line_number":2352,"context_line":"    @rpc.expected_exceptions()"},{"line_number":2353,"context_line":"    def _create_fixed_ip(self, context, fip, record,"},{"line_number":2354,"context_line":"                         zone\u003dNone, recordset\u003dNone):"},{"line_number":2355,"context_line":"        \"\"\""},{"line_number":2356,"context_line":"        Creates a FloatingIP based on floating ip and record data."},{"line_number":2357,"context_line":"        \"\"\""},{"line_number":2358,"context_line":"        return self._create_ip(context, fip, record, zone, recordset, True)"},{"line_number":2359,"context_line":""},{"line_number":2360,"context_line":"    def _create_ip_list(self, context, data, is_fixed_ip\u003dFalse):"},{"line_number":2361,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"afcd6db0_46e1a526","line":2358,"range":{"start_line":2344,"start_character":4,"end_line":2358,"end_character":75},"in_reply_to":"af750b25_4d2dedfa","updated":"2024-07-16 08:30:22.000000000","message":"Done","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"8062b01773bbe6a69f03dc533727f7abb59513e3","unresolved":true,"context_lines":[{"line_number":2373,"context_line":"            ips.append(fip_ptr)"},{"line_number":2374,"context_line":"        return ips"},{"line_number":2375,"context_line":""},{"line_number":2376,"context_line":"    def _create_floating_ip_list(self, context, data):"},{"line_number":2377,"context_line":"        \"\"\""},{"line_number":2378,"context_line":"        Creates a FloatingIPList based on floating ips and records data."},{"line_number":2379,"context_line":"        \"\"\""},{"line_number":2380,"context_line":"        return self._create_ip_list(context, data, False)"},{"line_number":2381,"context_line":""},{"line_number":2382,"context_line":"    def _create_fixed_ip_list(self, context, data):"},{"line_number":2383,"context_line":"        \"\"\""},{"line_number":2384,"context_line":"        Creates a FixedIPList based on fixed ips and records data."},{"line_number":2385,"context_line":"        \"\"\""},{"line_number":2386,"context_line":"        return self._create_ip_list(context, data, True)"},{"line_number":2387,"context_line":""},{"line_number":2388,"context_line":"    @transaction"},{"line_number":2389,"context_line":"    def _delete_or_update_managed_recordset(self, context, zone_id,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9eba007a_6bb52151","line":2386,"range":{"start_line":2376,"start_character":4,"end_line":2386,"end_character":56},"updated":"2024-05-21 12:27:01.000000000","message":"I think we can skip those and let the method\u0027s callers call _create_ip_list directly","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"98c38e64b108a29650b806f5527fd76de44d364d","unresolved":false,"context_lines":[{"line_number":2373,"context_line":"            ips.append(fip_ptr)"},{"line_number":2374,"context_line":"        return ips"},{"line_number":2375,"context_line":""},{"line_number":2376,"context_line":"    def _create_floating_ip_list(self, context, data):"},{"line_number":2377,"context_line":"        \"\"\""},{"line_number":2378,"context_line":"        Creates a FloatingIPList based on floating ips and records data."},{"line_number":2379,"context_line":"        \"\"\""},{"line_number":2380,"context_line":"        return self._create_ip_list(context, data, False)"},{"line_number":2381,"context_line":""},{"line_number":2382,"context_line":"    def _create_fixed_ip_list(self, context, data):"},{"line_number":2383,"context_line":"        \"\"\""},{"line_number":2384,"context_line":"        Creates a FixedIPList based on fixed ips and records data."},{"line_number":2385,"context_line":"        \"\"\""},{"line_number":2386,"context_line":"        return self._create_ip_list(context, data, True)"},{"line_number":2387,"context_line":""},{"line_number":2388,"context_line":"    @transaction"},{"line_number":2389,"context_line":"    def _delete_or_update_managed_recordset(self, context, zone_id,"}],"source_content_type":"text/x-python","patch_set":1,"id":"6a4aea79_7e7603be","line":2386,"range":{"start_line":2376,"start_character":4,"end_line":2386,"end_character":56},"in_reply_to":"48cf5bc0_1ff97a36","updated":"2024-07-16 08:30:22.000000000","message":"Done","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"5023ad391e0280a681ad8a0b2ad8dbf7dfa18833","unresolved":true,"context_lines":[{"line_number":2373,"context_line":"            ips.append(fip_ptr)"},{"line_number":2374,"context_line":"        return ips"},{"line_number":2375,"context_line":""},{"line_number":2376,"context_line":"    def _create_floating_ip_list(self, context, data):"},{"line_number":2377,"context_line":"        \"\"\""},{"line_number":2378,"context_line":"        Creates a FloatingIPList based on floating ips and records data."},{"line_number":2379,"context_line":"        \"\"\""},{"line_number":2380,"context_line":"        return self._create_ip_list(context, data, False)"},{"line_number":2381,"context_line":""},{"line_number":2382,"context_line":"    def _create_fixed_ip_list(self, context, data):"},{"line_number":2383,"context_line":"        \"\"\""},{"line_number":2384,"context_line":"        Creates a FixedIPList based on fixed ips and records data."},{"line_number":2385,"context_line":"        \"\"\""},{"line_number":2386,"context_line":"        return self._create_ip_list(context, data, True)"},{"line_number":2387,"context_line":""},{"line_number":2388,"context_line":"    @transaction"},{"line_number":2389,"context_line":"    def _delete_or_update_managed_recordset(self, context, zone_id,"}],"source_content_type":"text/x-python","patch_set":1,"id":"48cf5bc0_1ff97a36","line":2386,"range":{"start_line":2376,"start_character":4,"end_line":2386,"end_character":56},"in_reply_to":"9eba007a_6bb52151","updated":"2024-06-06 07:31:47.000000000","message":"Idem","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"b0dc570d2539ea2ba6d552112d6af3b5e8f5fc8e","unresolved":true,"context_lines":[{"line_number":2457,"context_line":"        return recordset"},{"line_number":2458,"context_line":""},{"line_number":2459,"context_line":"    @rpc.expected_exceptions()"},{"line_number":2460,"context_line":"    def update_ip(self, context, region, ip_id, values, is_fixed_ip\u003dFalse):"},{"line_number":2461,"context_line":"        \"\"\""},{"line_number":2462,"context_line":"        We strictly see if values[\u0027ptrdname\u0027] is str or None and set / unset"},{"line_number":2463,"context_line":"        the requested IP\u0027s PTR record based on that."}],"source_content_type":"text/x-python","patch_set":1,"id":"1ada1d18_eb05bf02","line":2460,"updated":"2024-05-13 13:40:57.000000000","message":"I think nested rpc.expected_exceptions can cause some weirdness with testing. It might be better to create a private method of update_ip and call that in the rpc functions (update_ip, update_floatingip and update_fixedip).","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"55f6a79bf747bbb1b33a078227b1afe549f472af","unresolved":true,"context_lines":[{"line_number":2457,"context_line":"        return recordset"},{"line_number":2458,"context_line":""},{"line_number":2459,"context_line":"    @rpc.expected_exceptions()"},{"line_number":2460,"context_line":"    def update_ip(self, context, region, ip_id, values, is_fixed_ip\u003dFalse):"},{"line_number":2461,"context_line":"        \"\"\""},{"line_number":2462,"context_line":"        We strictly see if values[\u0027ptrdname\u0027] is str or None and set / unset"},{"line_number":2463,"context_line":"        the requested IP\u0027s PTR record based on that."}],"source_content_type":"text/x-python","patch_set":1,"id":"29345b6b_a78b855b","line":2460,"in_reply_to":"1ada1d18_eb05bf02","updated":"2024-05-14 07:23:09.000000000","message":"I didn\u0027t see any issues arise. However as update_fixedip and update_floatingip are currently just a shell passing a boolean to update_ip, perhaps it would be better to refactor usages of those to a direct call to update_ip? That would be in line with the removal of functions earlier","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"8062b01773bbe6a69f03dc533727f7abb59513e3","unresolved":true,"context_lines":[{"line_number":2457,"context_line":"        return recordset"},{"line_number":2458,"context_line":""},{"line_number":2459,"context_line":"    @rpc.expected_exceptions()"},{"line_number":2460,"context_line":"    def update_ip(self, context, region, ip_id, values, is_fixed_ip\u003dFalse):"},{"line_number":2461,"context_line":"        \"\"\""},{"line_number":2462,"context_line":"        We strictly see if values[\u0027ptrdname\u0027] is str or None and set / unset"},{"line_number":2463,"context_line":"        the requested IP\u0027s PTR record based on that."}],"source_content_type":"text/x-python","patch_set":1,"id":"86b8785e_7bc54ccf","line":2460,"in_reply_to":"29345b6b_a78b855b","updated":"2024-05-21 12:27:01.000000000","message":"+1 to remove those methods","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"98c38e64b108a29650b806f5527fd76de44d364d","unresolved":false,"context_lines":[{"line_number":2457,"context_line":"        return recordset"},{"line_number":2458,"context_line":""},{"line_number":2459,"context_line":"    @rpc.expected_exceptions()"},{"line_number":2460,"context_line":"    def update_ip(self, context, region, ip_id, values, is_fixed_ip\u003dFalse):"},{"line_number":2461,"context_line":"        \"\"\""},{"line_number":2462,"context_line":"        We strictly see if values[\u0027ptrdname\u0027] is str or None and set / unset"},{"line_number":2463,"context_line":"        the requested IP\u0027s PTR record based on that."}],"source_content_type":"text/x-python","patch_set":1,"id":"0954c7b9_9eabecad","line":2460,"in_reply_to":"86b8785e_7bc54ccf","updated":"2024-07-16 08:30:22.000000000","message":"Done","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"}],"designate/network_api/neutron.py":[{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"8062b01773bbe6a69f03dc533727f7abb59513e3","unresolved":true,"context_lines":[{"line_number":162,"context_line":"            # The network API has no built-in mechanism to retrieve only"},{"line_number":163,"context_line":"            # fixed ips, so we\u0027ll retrieve all ips associated to a port on the"},{"line_number":164,"context_line":"            # public network and drop the ones that neutron says are floating."},{"line_number":165,"context_line":"            floating_ips \u003d set()"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"            for ip in client.network.ips(project_id\u003dproject_id):"},{"line_number":168,"context_line":"                floating_ips.add(ip[\u0027floating_ip_address\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"30da4f09_615dfd27","line":165,"range":{"start_line":165,"start_character":12,"end_line":165,"end_character":24},"updated":"2024-05-21 12:27:01.000000000","message":"repeating typo: fixed_ips","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"98c38e64b108a29650b806f5527fd76de44d364d","unresolved":false,"context_lines":[{"line_number":162,"context_line":"            # The network API has no built-in mechanism to retrieve only"},{"line_number":163,"context_line":"            # fixed ips, so we\u0027ll retrieve all ips associated to a port on the"},{"line_number":164,"context_line":"            # public network and drop the ones that neutron says are floating."},{"line_number":165,"context_line":"            floating_ips \u003d set()"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"            for ip in client.network.ips(project_id\u003dproject_id):"},{"line_number":168,"context_line":"                floating_ips.add(ip[\u0027floating_ip_address\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"fec78ac7_2e0e2ba6","line":165,"range":{"start_line":165,"start_character":12,"end_line":165,"end_character":24},"in_reply_to":"30da4f09_615dfd27","updated":"2024-07-16 08:30:22.000000000","message":"This is correct, as we don\u0027t really have a way to get only fixed ips we have to get all ips and a set of all floating ips and remove the floating ips from the set of all ips.","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"8062b01773bbe6a69f03dc533727f7abb59513e3","unresolved":true,"context_lines":[{"line_number":165,"context_line":"            floating_ips \u003d set()"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"            for ip in client.network.ips(project_id\u003dproject_id):"},{"line_number":168,"context_line":"                floating_ips.add(ip[\u0027floating_ip_address\u0027])"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"            # Dynamically retrieve the public network IDs"},{"line_number":171,"context_line":"            networks \u003d [network[\u0027id\u0027] for network in"}],"source_content_type":"text/x-python","patch_set":1,"id":"9e904a62_51021d16","line":168,"range":{"start_line":168,"start_character":37,"end_line":168,"end_character":56},"updated":"2024-05-21 12:27:01.000000000","message":"In my humble opinion, this patch was using FIPs until now. Can you change it to fixed ip addresses and make sure the feature still works as expected?","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"},{"author":{"_account_id":36834,"name":"Sam Toxopeus","display_name":"sam@fuga.cloud","email":"sam@fuga.cloud","username":"sam@fuga.cloud"},"change_message_id":"98c38e64b108a29650b806f5527fd76de44d364d","unresolved":false,"context_lines":[{"line_number":165,"context_line":"            floating_ips \u003d set()"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"            for ip in client.network.ips(project_id\u003dproject_id):"},{"line_number":168,"context_line":"                floating_ips.add(ip[\u0027floating_ip_address\u0027])"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"            # Dynamically retrieve the public network IDs"},{"line_number":171,"context_line":"            networks \u003d [network[\u0027id\u0027] for network in"}],"source_content_type":"text/x-python","patch_set":1,"id":"eea23e59_79724cb1","line":168,"range":{"start_line":168,"start_character":37,"end_line":168,"end_character":56},"in_reply_to":"9e904a62_51021d16","updated":"2024-07-16 08:30:22.000000000","message":"This is correct behaviour, as its iterating through a list of floating ips. See cient.network.ips definition:\n\n```py\n    def ips(self, **query):\n        \"\"\"Return a generator of ips\n\n        :param dict query: Optional query parameters to be sent to limit\n            the resources being returned. Valid parameters are:\n\n            * ``description``: The description of a floating IP.\n            * ``fixed_ip_address``: The fixed IP address associated with a\n              floating IP address.\n            * ``floating_ip_address``: The IP address of a floating IP.\n            * ``floating_network_id``: The ID of the network associated with\n              a floating IP.\n            * ``port_id``: The ID of the port to which a floating IP is\n              associated.\n            * ``project_id``: The ID of the project a floating IP is\n              associated with.\n            * ``router_id``: The ID of an associated router.\n            * ``status``: The status of a floating IP, which can be ``ACTIVE``\n              or ``DOWN``.\n\n        :returns: A generator of floating IP objects\n        :rtype: :class:`~openstack.network.v2.floating_ip.FloatingIP`\n        \"\"\"\n        return self._list(_floating_ip.FloatingIP, **query)\n```","commit_id":"006dc44e624c99aec037ca3a16264a6635f809f8"}]}
