)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"9f78c77e77871b0d8f7c6d025619206be6cc0d32","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Tom Weininger \u003ctweining@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2023-10-30 10:58:36 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"pyupgrade changes for Python3.6+"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Result of running"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"a14d80c6_ad33594d","line":7,"updated":"2023-11-03 18:57:31.000000000","message":"Why 3.6+ instead of 3.8+?\nhttps://github.com/openstack/octavia/blob/master/setup.cfg#L20","commit_id":"3e2ee0c953bdc2b292f134d1790a881ed4a33fad"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"028f8588ceb0a5ab04a0b0271f452494309f978e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Tom Weininger \u003ctweining@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2023-10-30 10:58:36 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"pyupgrade changes for Python3.6+"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Result of running"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"8e5a1ae8_3d752112","line":7,"in_reply_to":"a14d80c6_ad33594d","updated":"2023-11-06 09:20:13.000000000","message":"My thinking was that since older stable branches still support 3.6 upgrading to 3.8+ would make it more likely that backports would introduce code that is incompatible with Python 3.6.\n\nI tried the upgrade to 3.8+ now and saw that it should still work with 3.6 as well. Hence I change it to 3.8+. Thanks for the comment.","commit_id":"3e2ee0c953bdc2b292f134d1790a881ed4a33fad"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"9f78c77e77871b0d8f7c6d025619206be6cc0d32","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7a5da10c_e6f9b4ba","updated":"2023-11-03 18:57:31.000000000","message":"A few comments","commit_id":"3e2ee0c953bdc2b292f134d1790a881ed4a33fad"}],"octavia/amphorae/backends/agent/api_server/keepalived.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"9f78c77e77871b0d8f7c6d025619206be6cc0d32","unresolved":true,"context_lines":[{"line_number":165,"context_line":"            LOG.debug(\u0027Failed to %s octavia-keepalived service: %s %s\u0027,"},{"line_number":166,"context_line":"                      action, e, e.output)"},{"line_number":167,"context_line":"            return webob.Response(json\u003d{"},{"line_number":168,"context_line":"                \u0027message\u0027: \"Failed to {} octavia-keepalived service\".format("},{"line_number":169,"context_line":"                    action),"},{"line_number":170,"context_line":"                \u0027details\u0027: e.output}, status\u003d500)"},{"line_number":171,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"a8f7d21d_ed95fee9","line":168,"updated":"2023-11-03 18:57:31.000000000","message":"This seems inconsistent. In other places it is changing all of these to f-strings, why not here too?","commit_id":"3e2ee0c953bdc2b292f134d1790a881ed4a33fad"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"028f8588ceb0a5ab04a0b0271f452494309f978e","unresolved":false,"context_lines":[{"line_number":165,"context_line":"            LOG.debug(\u0027Failed to %s octavia-keepalived service: %s %s\u0027,"},{"line_number":166,"context_line":"                      action, e, e.output)"},{"line_number":167,"context_line":"            return webob.Response(json\u003d{"},{"line_number":168,"context_line":"                \u0027message\u0027: \"Failed to {} octavia-keepalived service\".format("},{"line_number":169,"context_line":"                    action),"},{"line_number":170,"context_line":"                \u0027details\u0027: e.output}, status\u003d500)"},{"line_number":171,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"a3bfed57_dea14207","line":168,"in_reply_to":"a8f7d21d_ed95fee9","updated":"2023-11-06 09:20:13.000000000","message":"Valid point. The upgrade to 3.8+ changes some strings to be f-strings, but not this one. Fixed it by hand.","commit_id":"3e2ee0c953bdc2b292f134d1790a881ed4a33fad"}],"octavia/amphorae/backends/agent/api_server/keepalivedlvs.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"9f78c77e77871b0d8f7c6d025619206be6cc0d32","unresolved":true,"context_lines":[{"line_number":180,"context_line":"            raise exceptions.HTTPException("},{"line_number":181,"context_line":"                response\u003dwebob.Response(json\u003d{"},{"line_number":182,"context_line":"                    \u0027message\u0027: \u0027UDP Listener Not Found\u0027,"},{"line_number":183,"context_line":"                    \u0027details\u0027: \"No UDP listener with UUID: {}\".format("},{"line_number":184,"context_line":"                        listener_id)}, status\u003d404))"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    def get_lvs_listener_config(self, listener_id):"}],"source_content_type":"text/x-python","patch_set":3,"id":"c43580b2_e8a25ee5","line":183,"updated":"2023-11-03 18:57:31.000000000","message":"Same, why not f-string?","commit_id":"3e2ee0c953bdc2b292f134d1790a881ed4a33fad"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"028f8588ceb0a5ab04a0b0271f452494309f978e","unresolved":false,"context_lines":[{"line_number":180,"context_line":"            raise exceptions.HTTPException("},{"line_number":181,"context_line":"                response\u003dwebob.Response(json\u003d{"},{"line_number":182,"context_line":"                    \u0027message\u0027: \u0027UDP Listener Not Found\u0027,"},{"line_number":183,"context_line":"                    \u0027details\u0027: \"No UDP listener with UUID: {}\".format("},{"line_number":184,"context_line":"                        listener_id)}, status\u003d404))"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    def get_lvs_listener_config(self, listener_id):"}],"source_content_type":"text/x-python","patch_set":3,"id":"8fbc9bcc_c2e998a0","line":183,"in_reply_to":"c43580b2_e8a25ee5","updated":"2023-11-06 09:20:13.000000000","message":"Done","commit_id":"3e2ee0c953bdc2b292f134d1790a881ed4a33fad"}],"octavia/api/common/types.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"9f78c77e77871b0d8f7c6d025619206be6cc0d32","unresolved":true,"context_lines":[{"line_number":127,"context_line":"                get_tenant_id, set_tenant_id)"},{"line_number":128,"context_line":"            # This will let us know if tenant_id was explicitly set to Unset"},{"line_number":129,"context_line":"            dct[\u0027_unset_tenant\u0027] \u003d False"},{"line_number":130,"context_line":"        return super().__new__(mcs, name, bases, dct)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"class BaseType(wtypes.Base, metaclass\u003dBaseMeta):"}],"source_content_type":"text/x-python","patch_set":3,"id":"4302a8e4_00bbb5e0","line":130,"updated":"2023-11-03 18:57:31.000000000","message":"This seems a bit odd as it will bypass the \\_\\_init\\_\\_ and the class will not get \"register()\". I am not sure the implications of that.","commit_id":"3e2ee0c953bdc2b292f134d1790a881ed4a33fad"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"028f8588ceb0a5ab04a0b0271f452494309f978e","unresolved":true,"context_lines":[{"line_number":127,"context_line":"                get_tenant_id, set_tenant_id)"},{"line_number":128,"context_line":"            # This will let us know if tenant_id was explicitly set to Unset"},{"line_number":129,"context_line":"            dct[\u0027_unset_tenant\u0027] \u003d False"},{"line_number":130,"context_line":"        return super().__new__(mcs, name, bases, dct)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"class BaseType(wtypes.Base, metaclass\u003dBaseMeta):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5e7954dc_78a59e38","line":130,"in_reply_to":"4302a8e4_00bbb5e0","updated":"2023-11-06 09:20:13.000000000","message":"I am not sure what you mean with \"bypass the \\_\\_init\\_\\_\". I don\u0027t think this will change the behavior in any way. According to the documentation of super() both forms are equivalent[1].\n\n[1]: https://docs.python.org/3/library/functions.html#super","commit_id":"3e2ee0c953bdc2b292f134d1790a881ed4a33fad"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"028f8588ceb0a5ab04a0b0271f452494309f978e","unresolved":true,"context_lines":[{"line_number":127,"context_line":"                get_tenant_id, set_tenant_id)"},{"line_number":128,"context_line":"            # This will let us know if tenant_id was explicitly set to Unset"},{"line_number":129,"context_line":"            dct[\u0027_unset_tenant\u0027] \u003d False"},{"line_number":130,"context_line":"        return super().__new__(mcs, name, bases, dct)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"class BaseType(wtypes.Base, metaclass\u003dBaseMeta):"}],"source_content_type":"text/x-python","patch_set":3,"id":"4f214900_18f03ef3","line":130,"in_reply_to":"4302a8e4_00bbb5e0","updated":"2023-11-06 09:20:13.000000000","message":"I don\u0027t think that pyupgrade is intelligent enough to understand what these parameters in `super()` mean.","commit_id":"3e2ee0c953bdc2b292f134d1790a881ed4a33fad"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"b41c5a9b442a1c0505b87e30f08ec21cb254bdad","unresolved":true,"context_lines":[{"line_number":127,"context_line":"                get_tenant_id, set_tenant_id)"},{"line_number":128,"context_line":"            # This will let us know if tenant_id was explicitly set to Unset"},{"line_number":129,"context_line":"            dct[\u0027_unset_tenant\u0027] \u003d False"},{"line_number":130,"context_line":"        return super().__new__(mcs, name, bases, dct)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"class BaseType(wtypes.Base, metaclass\u003dBaseMeta):"}],"source_content_type":"text/x-python","patch_set":3,"id":"a3277e6f_3d70703c","line":130,"in_reply_to":"5e7954dc_78a59e38","updated":"2023-11-08 00:58:24.000000000","message":"This is what I was talking about:\nhttps://opendev.org/x/wsme/src/branch/master/wsme/types.py#L761\nThe register() will not be called it seems, which I don\u0027t know the implications of that changing.","commit_id":"3e2ee0c953bdc2b292f134d1790a881ed4a33fad"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"638bccebd892ee5a570de278d5d7834d15fb2ff4","unresolved":true,"context_lines":[{"line_number":127,"context_line":"                get_tenant_id, set_tenant_id)"},{"line_number":128,"context_line":"            # This will let us know if tenant_id was explicitly set to Unset"},{"line_number":129,"context_line":"            dct[\u0027_unset_tenant\u0027] \u003d False"},{"line_number":130,"context_line":"        return super().__new__(mcs, name, bases, dct)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"class BaseType(wtypes.Base, metaclass\u003dBaseMeta):"}],"source_content_type":"text/x-python","patch_set":3,"id":"61cc3d7e_22a7e391","line":130,"in_reply_to":"a3277e6f_3d70703c","updated":"2023-11-08 10:47:30.000000000","message":"I see. I decided to use our unit tests to see whether the number of times `register()` gets called changes in any way depending on that change.\n\nSo I modified .tox/py3/lib/python3.11/site-packages/wsme/types.py and added `print(\"XXXXXXX\")` right after the `register()` call there. Then I ran `.tox/py3/bin/stestr run 2\u003e\u00261 | grep XXXXXXX | wc -l` with and without that `super()` modification. Both times the results were the same: it was called 1656 times.\n\nTo ensure that it actually ran the modified code I also added `print(\"YYYYYY\")` before the `super().__new__(mcs, name, bases, dct)` line and grepped for that during the test run.\n\nI don\u0027t have a lot of experience with metaclasses and different variants of `super()`, but to me that is the proof that behavior does not change with this modification.","commit_id":"3e2ee0c953bdc2b292f134d1790a881ed4a33fad"}],"octavia/tests/unit/amphorae/drivers/haproxy/test_rest_api_driver_1_0.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"9f78c77e77871b0d8f7c6d025619206be6cc0d32","unresolved":true,"context_lines":[{"line_number":636,"context_line":"            # Ensure that at least one call in each pair has been seen"},{"line_number":637,"context_line":"            if (dcp_calls[0] not in mock_calls and"},{"line_number":638,"context_line":"                    dcp_calls[1] not in mock_calls):"},{"line_number":639,"context_line":"                raise Exception(\"{} not found in {}\".format("},{"line_number":640,"context_line":"                    dcp_calls, mock_calls))"},{"line_number":641,"context_line":""},{"line_number":642,"context_line":"        # Now just make sure we did an update and not a delete"}],"source_content_type":"text/x-python","patch_set":3,"id":"6cf9abc2_1f232128","line":639,"updated":"2023-11-03 18:57:31.000000000","message":"I am still bugged that this tool isn\u0027t consistent. It seems like we are going to have another round of this when it again changes this string to an f-string.","commit_id":"3e2ee0c953bdc2b292f134d1790a881ed4a33fad"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"028f8588ceb0a5ab04a0b0271f452494309f978e","unresolved":false,"context_lines":[{"line_number":636,"context_line":"            # Ensure that at least one call in each pair has been seen"},{"line_number":637,"context_line":"            if (dcp_calls[0] not in mock_calls and"},{"line_number":638,"context_line":"                    dcp_calls[1] not in mock_calls):"},{"line_number":639,"context_line":"                raise Exception(\"{} not found in {}\".format("},{"line_number":640,"context_line":"                    dcp_calls, mock_calls))"},{"line_number":641,"context_line":""},{"line_number":642,"context_line":"        # Now just make sure we did an update and not a delete"}],"source_content_type":"text/x-python","patch_set":3,"id":"74126775_88d6761d","line":639,"in_reply_to":"6cf9abc2_1f232128","updated":"2023-11-06 09:20:13.000000000","message":"I agree. The tool should replace this as well. I did it manually now.","commit_id":"3e2ee0c953bdc2b292f134d1790a881ed4a33fad"}],"octavia/tests/unit/certificates/manager/test_local.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"9f78c77e77871b0d8f7c6d025619206be6cc0d32","unresolved":true,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        # Verify the correct files were opened"},{"line_number":153,"context_line":"        flags \u003d os.O_RDONLY"},{"line_number":154,"context_line":"        open_mock.assert_called_once_with(f\u0027/tmp/{secret_id}.crt\u0027,"},{"line_number":155,"context_line":"                                          flags)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        # Test failure path"}],"source_content_type":"text/x-python","patch_set":3,"id":"e8e695fe_f3455959","line":154,"updated":"2023-11-03 18:57:31.000000000","message":"This could be moved to one line.","commit_id":"3e2ee0c953bdc2b292f134d1790a881ed4a33fad"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"028f8588ceb0a5ab04a0b0271f452494309f978e","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        # Verify the correct files were opened"},{"line_number":153,"context_line":"        flags \u003d os.O_RDONLY"},{"line_number":154,"context_line":"        open_mock.assert_called_once_with(f\u0027/tmp/{secret_id}.crt\u0027,"},{"line_number":155,"context_line":"                                          flags)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        # Test failure path"}],"source_content_type":"text/x-python","patch_set":3,"id":"752a3697_6613f3f1","line":154,"in_reply_to":"e8e695fe_f3455959","updated":"2023-11-06 09:20:13.000000000","message":"Done","commit_id":"3e2ee0c953bdc2b292f134d1790a881ed4a33fad"}],"octavia/tests/unit/common/jinja/haproxy/combined_listeners/test_jinja_cfg.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"9f78c77e77871b0d8f7c6d025619206be6cc0d32","unresolved":true,"context_lines":[{"line_number":1558,"context_line":"            maxconn\u003dconstants.HAPROXY_DEFAULT_MAXCONN,"},{"line_number":1559,"context_line":"            opts\u003d\"{} {} {} {} {} {}\".format("},{"line_number":1560,"context_line":"                \"ssl\", \"crt\", pool_client_cert,"},{"line_number":1561,"context_line":"                \"ca-file %s\" % pool_ca_cert,"},{"line_number":1562,"context_line":"                \"crl-file %s\" % pool_crl,"},{"line_number":1563,"context_line":"                \"verify required sni ssl_fc_sni no-sslv3 no-tlsv10 no-tlsv11\"),"},{"line_number":1564,"context_line":"            alpn\u003d\",\".join(constants.AMPHORA_SUPPORTED_ALPN_PROTOCOLS))"}],"source_content_type":"text/x-python","patch_set":3,"id":"495b0dda_a22f69c3","line":1561,"updated":"2023-11-03 18:57:31.000000000","message":"This could also be cleaned up more","commit_id":"3e2ee0c953bdc2b292f134d1790a881ed4a33fad"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"028f8588ceb0a5ab04a0b0271f452494309f978e","unresolved":false,"context_lines":[{"line_number":1558,"context_line":"            maxconn\u003dconstants.HAPROXY_DEFAULT_MAXCONN,"},{"line_number":1559,"context_line":"            opts\u003d\"{} {} {} {} {} {}\".format("},{"line_number":1560,"context_line":"                \"ssl\", \"crt\", pool_client_cert,"},{"line_number":1561,"context_line":"                \"ca-file %s\" % pool_ca_cert,"},{"line_number":1562,"context_line":"                \"crl-file %s\" % pool_crl,"},{"line_number":1563,"context_line":"                \"verify required sni ssl_fc_sni no-sslv3 no-tlsv10 no-tlsv11\"),"},{"line_number":1564,"context_line":"            alpn\u003d\",\".join(constants.AMPHORA_SUPPORTED_ALPN_PROTOCOLS))"}],"source_content_type":"text/x-python","patch_set":3,"id":"bb8f5529_ba57c0ce","line":1561,"in_reply_to":"495b0dda_a22f69c3","updated":"2023-11-06 09:20:13.000000000","message":"Done","commit_id":"3e2ee0c953bdc2b292f134d1790a881ed4a33fad"}]}
