)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"7cabc1e58b931816f52a0a7206838a3d2adc80ab","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"70d364c2_a6129990","updated":"2024-09-24 14:00:02.000000000","message":"I think we should also deprecate the corresponding options (defined in oslo_db/options.py ).","commit_id":"40c5375332e37a458e4a70ffe627c832a5143466"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"b52250a9b4d18e15d9b70d77dddd970145573980","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e95148c8_efb7d141","updated":"2024-08-20 14:42:03.000000000","message":"Thanks for clearing it up, I will give this a try when I have some time available.","commit_id":"40c5375332e37a458e4a70ffe627c832a5143466"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"46668cccb9a19bd952d1f1f6068e53c7d320f460","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"eb23ca9f_2c88ab56","in_reply_to":"70d364c2_a6129990","updated":"2025-11-18 16:07:09.000000000","message":"OK I noticed this is not needed because this affects only how enginefacade is initialized.","commit_id":"40c5375332e37a458e4a70ffe627c832a5143466"}],"oslo_db/sqlalchemy/enginefacade.py":[{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"eebbcc5f13685a05867fa186d3f2d78fadbf00e3","unresolved":true,"context_lines":[{"line_number":485,"context_line":"            engine_args \u003d self._engine_args_for_conf(conf)"},{"line_number":486,"context_line":"            maker_args \u003d self._maker_args_for_conf(conf)"},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"            self._writer_engine, self._writer_maker \u003d \\"},{"line_number":489,"context_line":"                self._setup_for_connection("},{"line_number":490,"context_line":"                    url_args[\u0027connection\u0027],"},{"line_number":491,"context_line":"                    engine_args, maker_args)"}],"source_content_type":"text/x-python","patch_set":1,"id":"f087b351_b644b78d","line":488,"updated":"2024-08-20 14:26:52.000000000","message":"If no, then this is where I means that we always setup a connection that blocks using `slave_connection`, even if the `mode` requested is `_READER` we\u0027d setup connection for `_WRITER` here.","commit_id":"40c5375332e37a458e4a70ffe627c832a5143466"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"b52250a9b4d18e15d9b70d77dddd970145573980","unresolved":false,"context_lines":[{"line_number":485,"context_line":"            engine_args \u003d self._engine_args_for_conf(conf)"},{"line_number":486,"context_line":"            maker_args \u003d self._maker_args_for_conf(conf)"},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"            self._writer_engine, self._writer_maker \u003d \\"},{"line_number":489,"context_line":"                self._setup_for_connection("},{"line_number":490,"context_line":"                    url_args[\u0027connection\u0027],"},{"line_number":491,"context_line":"                    engine_args, maker_args)"}],"source_content_type":"text/x-python","patch_set":1,"id":"2a68d348_eb67f394","line":488,"in_reply_to":"c3285e9d_3599dd97","updated":"2024-08-20 14:42:03.000000000","message":"Acknowledged","commit_id":"40c5375332e37a458e4a70ffe627c832a5143466"},{"author":{"_account_id":11816,"name":"mike_mp@zzzcomputing.com","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"d5ffa7fa2b724dc524d995ddec81ba064c5eb3b8","unresolved":true,"context_lines":[{"line_number":485,"context_line":"            engine_args \u003d self._engine_args_for_conf(conf)"},{"line_number":486,"context_line":"            maker_args \u003d self._maker_args_for_conf(conf)"},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"            self._writer_engine, self._writer_maker \u003d \\"},{"line_number":489,"context_line":"                self._setup_for_connection("},{"line_number":490,"context_line":"                    url_args[\u0027connection\u0027],"},{"line_number":491,"context_line":"                    engine_args, maker_args)"}],"source_content_type":"text/x-python","patch_set":1,"id":"c3285e9d_3599dd97","line":488,"in_reply_to":"f087b351_b644b78d","updated":"2024-08-20 14:30:28.000000000","message":"like ive mentioned, this sets up SQLAlchemy create_engine() with parameters and such but if you dont connect() with that engine, there is no database connection established\n\nI acknowledge that if we are going with this approach I should be adding tests here to absolutely confirm no DB connection is made to writer if reader only, and vice versa","commit_id":"40c5375332e37a458e4a70ffe627c832a5143466"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"eebbcc5f13685a05867fa186d3f2d78fadbf00e3","unresolved":true,"context_lines":[{"line_number":513,"context_line":"            raise exception.CantStartEngineError("},{"line_number":514,"context_line":"                \"No sql_connection parameter is established\")"},{"line_number":515,"context_line":"        engine \u003d engines.create_engine("},{"line_number":516,"context_line":"            sql_connection\u003dsql_connection, max_retries\u003d0, **engine_kwargs)"},{"line_number":517,"context_line":"        for hook in self._facade_cfg[\u0027on_engine_create\u0027]:"},{"line_number":518,"context_line":"            hook(engine)"},{"line_number":519,"context_line":"        sessionmaker \u003d orm.get_maker(engine\u003dengine, **maker_kwargs)"}],"source_content_type":"text/x-python","patch_set":1,"id":"dea54dcc_01bf50ab","line":516,"updated":"2024-08-20 14:26:52.000000000","message":"Does this mean \"do not connect to database\" for create_engine()..?","commit_id":"40c5375332e37a458e4a70ffe627c832a5143466"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"b52250a9b4d18e15d9b70d77dddd970145573980","unresolved":false,"context_lines":[{"line_number":513,"context_line":"            raise exception.CantStartEngineError("},{"line_number":514,"context_line":"                \"No sql_connection parameter is established\")"},{"line_number":515,"context_line":"        engine \u003d engines.create_engine("},{"line_number":516,"context_line":"            sql_connection\u003dsql_connection, max_retries\u003d0, **engine_kwargs)"},{"line_number":517,"context_line":"        for hook in self._facade_cfg[\u0027on_engine_create\u0027]:"},{"line_number":518,"context_line":"            hook(engine)"},{"line_number":519,"context_line":"        sessionmaker \u003d orm.get_maker(engine\u003dengine, **maker_kwargs)"}],"source_content_type":"text/x-python","patch_set":1,"id":"c368e539_dae9b6e6","line":516,"in_reply_to":"2f68f3f7_3e0a27cb","updated":"2024-08-20 14:42:03.000000000","message":"Acknowledged","commit_id":"40c5375332e37a458e4a70ffe627c832a5143466"},{"author":{"_account_id":11816,"name":"mike_mp@zzzcomputing.com","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"d5ffa7fa2b724dc524d995ddec81ba064c5eb3b8","unresolved":true,"context_lines":[{"line_number":513,"context_line":"            raise exception.CantStartEngineError("},{"line_number":514,"context_line":"                \"No sql_connection parameter is established\")"},{"line_number":515,"context_line":"        engine \u003d engines.create_engine("},{"line_number":516,"context_line":"            sql_connection\u003dsql_connection, max_retries\u003d0, **engine_kwargs)"},{"line_number":517,"context_line":"        for hook in self._facade_cfg[\u0027on_engine_create\u0027]:"},{"line_number":518,"context_line":"            hook(engine)"},{"line_number":519,"context_line":"        sessionmaker \u003d orm.get_maker(engine\u003dengine, **maker_kwargs)"}],"source_content_type":"text/x-python","patch_set":1,"id":"2f68f3f7_3e0a27cb","line":516,"in_reply_to":"dea54dcc_01bf50ab","updated":"2024-08-20 14:30:28.000000000","message":"that\u0027s what that\u0027s supposed to do, yes.  I reviewed the code just now to make sure, we can add tests if there\u0027s not some already","commit_id":"40c5375332e37a458e4a70ffe627c832a5143466"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"7cabc1e58b931816f52a0a7206838a3d2adc80ab","unresolved":true,"context_lines":[{"line_number":1169,"context_line":"\"\"\"The global \u0027writer\u0027 starting point.\"\"\""},{"line_number":1170,"context_line":""},{"line_number":1171,"context_line":""},{"line_number":1172,"context_line":"class LegacyEngineFacade(object):"},{"line_number":1173,"context_line":"    \"\"\"A helper class for removing of global engine instances from oslo.db."},{"line_number":1174,"context_line":""},{"line_number":1175,"context_line":"    .. deprecated:: 1.12.0"}],"source_content_type":"text/x-python","patch_set":1,"id":"b46b203b_3ae5051e","line":1172,"range":{"start_line":1172,"start_character":6,"end_line":1172,"end_character":24},"updated":"2024-09-24 14:00:02.000000000","message":"It probably makes sense to get rid of LegacyEngineFacade before we merge this.","commit_id":"40c5375332e37a458e4a70ffe627c832a5143466"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"47d91baaa5bd7419a65d576a0addf00e8aea0af4","unresolved":false,"context_lines":[{"line_number":1169,"context_line":"\"\"\"The global \u0027writer\u0027 starting point.\"\"\""},{"line_number":1170,"context_line":""},{"line_number":1171,"context_line":""},{"line_number":1172,"context_line":"class LegacyEngineFacade(object):"},{"line_number":1173,"context_line":"    \"\"\"A helper class for removing of global engine instances from oslo.db."},{"line_number":1174,"context_line":""},{"line_number":1175,"context_line":"    .. deprecated:: 1.12.0"}],"source_content_type":"text/x-python","patch_set":1,"id":"cde4f504_12fbc30c","line":1172,"range":{"start_line":1172,"start_character":6,"end_line":1172,"end_character":24},"in_reply_to":"a8cabea7_f070d54b","updated":"2025-11-18 16:00:26.000000000","message":"Done","commit_id":"40c5375332e37a458e4a70ffe627c832a5143466"},{"author":{"_account_id":11816,"name":"mike_mp@zzzcomputing.com","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"37ad87ee40349ec4ebc9d1361c48246092174575","unresolved":true,"context_lines":[{"line_number":1169,"context_line":"\"\"\"The global \u0027writer\u0027 starting point.\"\"\""},{"line_number":1170,"context_line":""},{"line_number":1171,"context_line":""},{"line_number":1172,"context_line":"class LegacyEngineFacade(object):"},{"line_number":1173,"context_line":"    \"\"\"A helper class for removing of global engine instances from oslo.db."},{"line_number":1174,"context_line":""},{"line_number":1175,"context_line":"    .. deprecated:: 1.12.0"}],"source_content_type":"text/x-python","patch_set":1,"id":"a8cabea7_f070d54b","line":1172,"range":{"start_line":1172,"start_character":6,"end_line":1172,"end_character":24},"in_reply_to":"b46b203b_3ae5051e","updated":"2024-09-24 14:07:06.000000000","message":"that\u0027s fine, this PR was inspired by having to show users this kind of thing:  https://review.opendev.org/c/openstack/keystone/+/926776/1/keystone/common/sql/core.py which they can always do anyway to turn off the initial connection ping","commit_id":"40c5375332e37a458e4a70ffe627c832a5143466"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"46668cccb9a19bd952d1f1f6068e53c7d320f460","unresolved":true,"context_lines":[{"line_number":231,"context_line":"        # but do not apply to the standard enginefacade arguments (most seem"},{"line_number":232,"context_line":"        # to apply to api.DBAPI)."},{"line_number":233,"context_line":"        self._ignored_cfg \u003d {"},{"line_number":234,"context_line":"            k: _Default(None)"},{"line_number":235,"context_line":"            for k in ["},{"line_number":236,"context_line":"                \"db_max_retries\","},{"line_number":237,"context_line":"                \"db_inc_retry_interval\","},{"line_number":238,"context_line":"                \"use_db_reconnect\","},{"line_number":239,"context_line":"                \"db_retry_interval\","},{"line_number":240,"context_line":"                \"db_max_retry_interval\","},{"line_number":241,"context_line":"                \"backend\","},{"line_number":242,"context_line":"            ]"},{"line_number":243,"context_line":"        }"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"        self._started \u003d False"}],"source_content_type":"text/x-python","patch_set":2,"id":"6f12d852_7c97d4f1","side":"PARENT","line":242,"range":{"start_line":234,"start_character":29,"end_line":242,"end_character":13},"updated":"2025-11-18 16:07:09.000000000","message":"Could you help me understand why this change is correct ? Looking at the code I think we expect this to include the config options (in oslo_db.options) which are not actually included in any other _cfg dicts and I thought just adding max_retries and retry_interval here is expected.","commit_id":"13975afcb54009984319ad11eea719f6d77e1d29"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"901e2f2eb28292582382c387d040858c0d96c36a","unresolved":true,"context_lines":[{"line_number":231,"context_line":"        # but do not apply to the standard enginefacade arguments (most seem"},{"line_number":232,"context_line":"        # to apply to api.DBAPI)."},{"line_number":233,"context_line":"        self._ignored_cfg \u003d {"},{"line_number":234,"context_line":"            k: _Default(None)"},{"line_number":235,"context_line":"            for k in ["},{"line_number":236,"context_line":"                \"db_max_retries\","},{"line_number":237,"context_line":"                \"db_inc_retry_interval\","},{"line_number":238,"context_line":"                \"use_db_reconnect\","},{"line_number":239,"context_line":"                \"db_retry_interval\","},{"line_number":240,"context_line":"                \"db_max_retry_interval\","},{"line_number":241,"context_line":"                \"backend\","},{"line_number":242,"context_line":"            ]"},{"line_number":243,"context_line":"        }"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"        self._started \u003d False"}],"source_content_type":"text/x-python","patch_set":2,"id":"12d78d36_e6e425bc","side":"PARENT","line":242,"range":{"start_line":234,"start_character":29,"end_line":242,"end_character":13},"in_reply_to":"6f12d852_7c97d4f1","updated":"2025-11-24 17:19:02.000000000","message":"adding -1 to highlight my question.","commit_id":"13975afcb54009984319ad11eea719f6d77e1d29"}]}
