)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"30dfe09e9c84e8ce1c11ecd1c18c3da2769a2291","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"8a60a759_81e14814","updated":"2026-01-06 13:55:03.000000000","message":"@wchy1001@gmail.com hello, please find time for review this, I can confirm this issue.","commit_id":"9f627a5ef1f257527e393b2dd5b8443626a9f1d6"},{"author":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"mangust404@gmail.com","username":"mongoose404","status":"PS Cloud services employee"},"change_message_id":"346ff174db523a1871db07d0b1a24a7b19a7e87b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"8f080796_99c2b415","updated":"2025-12-18 07:38:21.000000000","message":"Hello, Bo! Please review this patch.\nIt seems that the bug was induced by dbb18bea1022e6c1f6bb5da721c3e791aa1f69b8","commit_id":"9f627a5ef1f257527e393b2dd5b8443626a9f1d6"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"5fd5c2da9ed88a5d33dedf2809728c47d64fb3f8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"b7483030_fcdf8008","updated":"2025-12-12 12:01:19.000000000","message":"LGTM","commit_id":"9f627a5ef1f257527e393b2dd5b8443626a9f1d6"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"801801446429f6cd814c664bda90228edaae1b03","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"45b8c894_23cacb1a","updated":"2026-01-07 14:12:33.000000000","message":"hi, refer to the doc: https://docs.openstack.org/api-ref/database/#attach-detach-configuration-group\n\nit seems like this is expected behavior?  IMO，we should reconstruct this logic to handle the configuration group id carefully.","commit_id":"9f627a5ef1f257527e393b2dd5b8443626a9f1d6"},{"author":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"mangust404@gmail.com","username":"mongoose404","status":"PS Cloud services employee"},"change_message_id":"a3530229c4474a330282f020e50eee281040efaa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"0ec480a8_a4037ccc","in_reply_to":"0c866d97_0f4ea68b","updated":"2026-01-07 15:46:57.000000000","message":"Hello, Wu! Thank you for the review.\n\nRight now the behavior of python-troveclient, for `openstack database configuration detach \u003cinstance id\u003e` command is that it sends `\"configuration\": null` value and the remaining methods works fine with this patch too.\n\nWe may split \"Attach/Detach configuration group\" example API docs to:\n- \"Attach configuration group\"\n- \"Detach configuration group\"\nAnd set example request with \"configuration\": null in the Detach method.\n\nAnd also we should get rid of the text \"When you pass in only an instance ID and omit the configuration ID, this operation detaches any configuration group that was attached to the instance.\".\nThis will remove ambiguity in API requests.\n\nIs it fine? I can make corresponding changes in API docs.","commit_id":"9f627a5ef1f257527e393b2dd5b8443626a9f1d6"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"3041371fe9aabb810ba0943fdf367c60df87806b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"abd41c9b_8a3b21cc","in_reply_to":"0ec480a8_a4037ccc","updated":"2026-01-08 01:38:33.000000000","message":"Yes, the python-troveclient works as expected. Personally, the solution with `\"configuration_id\": null` is certainly much better. However, this may break our downstream users, so I’d rather not change this API unless we really have to.","commit_id":"9f627a5ef1f257527e393b2dd5b8443626a9f1d6"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"14ab8a09d836381efac5cea0d904964e1bf599e2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"0c866d97_0f4ea68b","in_reply_to":"45b8c894_23cacb1a","updated":"2026-01-07 14:31:50.000000000","message":"if we adopt this commit, we also need to update our api document.","commit_id":"9f627a5ef1f257527e393b2dd5b8443626a9f1d6"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"414c574723dcf421bd158684b0e33f9a039c9416","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"95359e9a_30e75290","in_reply_to":"8a60a759_81e14814","updated":"2026-01-06 14:03:07.000000000","message":"ok, i will review this patch ASAP","commit_id":"9f627a5ef1f257527e393b2dd5b8443626a9f1d6"},{"author":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"mangust404@gmail.com","username":"mongoose404","status":"PS Cloud services employee"},"change_message_id":"8b567724a55cdc823c7f45bea06c99559b82b901","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e7c2ad4c_2b0569dc","in_reply_to":"abd41c9b_8a3b21cc","updated":"2026-01-08 03:27:35.000000000","message":"Yes, I can see the point now.\nIf the decision would be to keep API as it is, then this issue should be also escalated to python-troveclient.\nFrom my point of view as an end-user, it is certainly a minor bug and/or discrepancy in API.\nFor a correct work, python-troveclient should provide configuration_id for each `PUT /v1.0/{project_id}/instances/{instanceId}` request and fetch instance info beforehand.\n\nAlso, in order to remove discrepancy in API on trove\u0027s side with existing code, we should add a note to each call:\n- Update instance name\n- Upgrade datastore version for instance\n- Detach replica\n- Update instance accessbility\n\nstating that user should provide attached `configuration_id`, otherwise configuration would be detached.\n\nSo the choice is up to you...","commit_id":"9f627a5ef1f257527e393b2dd5b8443626a9f1d6"},{"author":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"mangust404@gmail.com","username":"mongoose404","status":"PS Cloud services employee"},"change_message_id":"aa850e3291486f8980e5a197e06265eabba81a3e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e09f764b_83dd6bd7","in_reply_to":"cff7e76f_035badf8","updated":"2026-01-08 10:37:14.000000000","message":"Oh, sorry, my bad. Finally I saw the meaning in your code snippet now.\n\nI\u0027ve added unit test case and also made slight changes in api-ref to clarify both cases how detachment requests should be sent. Check it out please.\n\nI\u0027m not sure about pluralizing of \"Request Example\" title though, but ``tox -e api-ref`` works fine for me. I can see two request examples in the output.\n\nIf the patchset needs further improvements, please let me know.","commit_id":"9f627a5ef1f257527e393b2dd5b8443626a9f1d6"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"68963efb5ff7d340891919637bd1af7fc07b5901","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"cff7e76f_035badf8","in_reply_to":"e7c2ad4c_2b0569dc","updated":"2026-01-08 05:52:31.000000000","message":"Hi:\n\n\u003e For a correct work, python-troveclient should provide configuration_id for each PUT /v1.0/{project_id}/instances/{instanceId} request and fetch instance info beforehand.\n\nI don\u0027t understand why do we need do this after we merge this patch.  the currently logics are following:\n\n1. update name， in this case, the configuration_id is none and the body contains name, so it will not detach  the configuration group.\n2. update configuration_id, in this case, the configuration_id is provided, this will be updated correctly \n3. detach configuration. in this case, the trove client provides `configuration_id: Null`, the configuration_id should be detached correctly.\n4. For api users: if the body is None, we consider it as detaching configuration_id as noted in the API document.\n\nBoth `configuration_id: null` and empty body are considered as detaching configuration group","commit_id":"9f627a5ef1f257527e393b2dd5b8443626a9f1d6"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"68963efb5ff7d340891919637bd1af7fc07b5901","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"e184fee5_4b0c2a32","updated":"2026-01-08 05:52:31.000000000","message":"What do you think about this? I think the current patch is ready for merged.  as i updated this patch, so i need to wait for your feedback.","commit_id":"5f49cc6c62d517c7d794017a9402c431177ab3ab"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"95ae461a209dc2234510002d666da613cd525eff","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"9497371e_e808a1b1","updated":"2026-01-08 13:14:32.000000000","message":"Looks great to me! the document is rendered perfectly in [here](https://storage.gra.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_c11/openstack/c115f9fceee5460d92c266c1e2696ab3/docs/#detach-configuration-group)","commit_id":"2509581457d9a13c8aa25346e634bbc3fe6e4572"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"595bafc5a59e2246711b66fc47edbec52ac06285","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"1b4abe64_ac345083","updated":"2026-01-08 13:14:32.000000000","message":"recheck","commit_id":"2509581457d9a13c8aa25346e634bbc3fe6e4572"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"2c7b5902382ce568511048fed39041da7ef3293a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"b91d9f86_ff822e88","updated":"2026-01-12 04:47:21.000000000","message":"recheck","commit_id":"fd7186bdcc194b8965fd16a6c7e32eb93bb91061"}],"trove/instance/service.py":[{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"a571dbb1621999398cab6f2f89e7795c50ccbfdb","unresolved":true,"context_lines":[{"line_number":583,"context_line":"            configuration_id \u003d self._configuration_parse(context, body)"},{"line_number":584,"context_line":"            args[\u0027configuration_id\u0027] \u003d configuration_id"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"        # if body[\u0027instance\u0027] is empty, set configuration_id to None"},{"line_number":587,"context_line":"        if not body[\u0027instance\u0027]:"},{"line_number":588,"context_line":"            args[\u0027configuration_id\u0027] \u003d None"},{"line_number":589,"context_line":""},{"line_number":590,"context_line":"        if \u0027access\u0027 in body[\u0027instance\u0027]:"},{"line_number":591,"context_line":"            args[\u0027access\u0027] \u003d body[\u0027instance\u0027][\u0027access\u0027]"},{"line_number":592,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"d02da713_110a00af","line":589,"range":{"start_line":586,"start_character":0,"end_line":589,"end_character":0},"updated":"2026-01-07 15:21:53.000000000","message":"Hi, I added this code snippet to align the behavior with the API document. https://docs.openstack.org/api-ref/database/#attach-detach-configuration-group","commit_id":"5f49cc6c62d517c7d794017a9402c431177ab3ab"},{"author":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"mangust404@gmail.com","username":"mongoose404","status":"PS Cloud services employee"},"change_message_id":"a3530229c4474a330282f020e50eee281040efaa","unresolved":true,"context_lines":[{"line_number":583,"context_line":"            configuration_id \u003d self._configuration_parse(context, body)"},{"line_number":584,"context_line":"            args[\u0027configuration_id\u0027] \u003d configuration_id"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"        # if body[\u0027instance\u0027] is empty, set configuration_id to None"},{"line_number":587,"context_line":"        if not body[\u0027instance\u0027]:"},{"line_number":588,"context_line":"            args[\u0027configuration_id\u0027] \u003d None"},{"line_number":589,"context_line":""},{"line_number":590,"context_line":"        if \u0027access\u0027 in body[\u0027instance\u0027]:"},{"line_number":591,"context_line":"            args[\u0027access\u0027] \u003d body[\u0027instance\u0027][\u0027access\u0027]"},{"line_number":592,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"58ab7a60_f85f89fc","line":589,"range":{"start_line":586,"start_character":0,"end_line":589,"end_character":0},"in_reply_to":"d02da713_110a00af","updated":"2026-01-07 15:46:57.000000000","message":"imo, the solution with `\"configuration_id\": null` in the API will be much clearer, how do you think?","commit_id":"5f49cc6c62d517c7d794017a9402c431177ab3ab"}]}
