)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"4bca1596ed8a5a9c5d03e6e854d2295a75db9f3a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"40f5cec7_ea765b9d","updated":"2023-08-07 06:35:44.000000000","message":"Hi, Bo, Do you use this in your production?","commit_id":"2e82958c521460be9d6b2236508545b1cd4dab1e"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"526808f5aeb802521f415a4cf1320a6a7e46547e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d7861e65_c1fa52ca","in_reply_to":"40f5cec7_ea765b9d","updated":"2023-08-07 07:20:51.000000000","message":"Yup. Depend on company\u0027s policies. We can have some required for datastore versions.\nIf have a lot of change make current database instance can\u0027t work right. You need config to custom datastore registry external. Such as:\n- You have 3 instances running postgres with some logic return A when start once.\n- You do change some logic of postgres datastore - this changes will make current database instances wrong working - just working with new database instances\n\nIn here, you need update source code in 3 old instances - this maybe make downtime for 3 old instances and can\u0027t run mix of new \u0026 old code.\n\nSo, if you config extension for each datastore version, you can do it. You don\u0027t need do migrate old instances, some action like resize flavor, restart, rebuild will don\u0027t make change. This ensure about backward compatible when you have \"beta\" datastore version with some new features.","commit_id":"2e82958c521460be9d6b2236508545b1cd4dab1e"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"ddd6541b1280ddde3d73b3ce0e22600dc28da196","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ba8bbefd_47e2f43a","in_reply_to":"d7861e65_c1fa52ca","updated":"2023-08-09 01:12:12.000000000","message":"ok, got it. i will add this patch to my review queue.","commit_id":"2e82958c521460be9d6b2236508545b1cd4dab1e"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"76924f77e8ca1e9a964c6d7cf33b337c3cd1e838","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"db8de150_59159288","updated":"2023-08-09 07:37:34.000000000","message":"hi, hirotaka, could you help to review this commit? thanks in advance.","commit_id":"b3ce23dcabc726b1a0228e4ec57aab2e26e9e90d"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"2b0224bda3aa4b89109d01c61e7509ce9465b06e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"92d2d965_23867071","updated":"2023-12-05 06:48:06.000000000","message":"Hi， the error message is here: https://zuul.opendev.org/t/openstack/build/da3f434591564f7ca727d153169c4f1c/log/controller/logs/screen-tr-tmgr.txt#895\n\nFor short: self.replication.backup_required_for_replication()\\n\\nAttributeError: \\\u0027NoneType\\\u0027 object has no attribute \\\u0027backup_required_for_replication\\\u0027\\n.\\n\u0027]","commit_id":"01d2264fd4b632595f84d487c5b6849d6b892cf4"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"00bf168d2d06587a9e0f58d1f51dd79f50996928","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"5b58e5fe_c50fcf9b","updated":"2023-12-13 04:34:12.000000000","message":"@wu.chunyang can you review this patch again? I had debugged that bug make CI run failed before.","commit_id":"42d20a8bf35e60b441a101d5f1044fca96bb4de5"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"66939f57c4a875c6fa19467d20c44f8495e4b2cd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"e84e824a_ce55cee9","updated":"2023-12-27 01:56:06.000000000","message":"Hi, i just took a look.As i know, The manager is not a driver class. how do we install the new manager in your case?","commit_id":"42d20a8bf35e60b441a101d5f1044fca96bb4de5"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"ed22cea78cc29efb431bac0d1f5cd3a2fc0e97e8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"4a4ef2a9_d4bc0e79","in_reply_to":"0b332167_893ee43f","updated":"2023-12-27 01:51:46.000000000","message":"ok， i will start to review this patch today.","commit_id":"42d20a8bf35e60b441a101d5f1044fca96bb4de5"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"f4b284a107b7a47345c35d575e2b2ec4f849fbef","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"e691d81a_e2207d74","in_reply_to":"44b34545_a6fd2b71","updated":"2023-12-27 02:16:28.000000000","message":"@wu.chunyang ok.","commit_id":"42d20a8bf35e60b441a101d5f1044fca96bb4de5"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"2306fe27d890fd3ee0d1bc4e2feafdf4c5ccd756","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"d854ec5d_ff720e54","in_reply_to":"5b58e5fe_c50fcf9b","updated":"2023-12-13 08:56:29.000000000","message":"ok, I will take a review","commit_id":"42d20a8bf35e60b441a101d5f1044fca96bb4de5"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"7320b6d5f9ba4c5e6938c0ca9436f9f155358889","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"0b332167_893ee43f","in_reply_to":"d854ec5d_ff720e54","updated":"2023-12-27 01:47:23.000000000","message":"help me review this path, please","commit_id":"42d20a8bf35e60b441a101d5f1044fca96bb4de5"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"575a29e2d20a4e07e065e9ce8445277c624db2ff","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"44b34545_a6fd2b71","in_reply_to":"e6e3f82f_6182e5e7","updated":"2023-12-27 02:15:34.000000000","message":"could you give an example about how to use this feature in the story board?  i can\u0027t understand well.","commit_id":"42d20a8bf35e60b441a101d5f1044fca96bb4de5"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"7fc44627a88ac7bdae89f699b026c27293c91757","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"e6e3f82f_6182e5e7","in_reply_to":"e84e824a_ce55cee9","updated":"2023-12-27 02:08:16.000000000","message":"What is the manager that you said? It\u0027s datastore manager or datastore manager version?","commit_id":"42d20a8bf35e60b441a101d5f1044fca96bb4de5"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"800331d7cc9a21a5c89ebd892e8baf75627c4d65","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"57603596_109e399e","updated":"2023-12-27 06:50:16.000000000","message":"recheck","commit_id":"b8719b93a2c1c01673dfc481fb20d77e5d47f2a8"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"b77151f7749ead3f5e37bc018f67fefd73c3ee5e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"50b55e45_335ceb97","in_reply_to":"57603596_109e399e","updated":"2023-12-27 07:10:49.000000000","message":"i found a bug make CI failed","commit_id":"b8719b93a2c1c01673dfc481fb20d77e5d47f2a8"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"78690833bb8b52e2d0f14f3425aeca079e785f05","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"c7e11946_47523ea6","updated":"2023-12-27 11:41:41.000000000","message":"recheck","commit_id":"4e8817e793718b304c541e458f227dba9cf28880"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"d178d9a34e0f591093cc2e90affc674eb8038711","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"46b23fd8_0cb190b4","updated":"2024-01-16 02:51:40.000000000","message":"i will test this patch in my local env","commit_id":"c5f6b764285f0ece4a4b7e886a2332bc35424c20"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"2b8b192a295fd08ff98ab5c195a63d43afaa79eb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"efa0e9b6_dd9b5ddc","updated":"2024-01-29 01:42:48.000000000","message":"@wu.chunyang can you help me about trove-tox-bandit-baseline error?","commit_id":"f2dbcdd8afc125d59e425791841c0bb5e516e47a"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"4e36a22fb108f0f47e7594a85533e0a4de91d115","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"12acc5c2_ec5caafe","updated":"2024-01-26 06:44:14.000000000","message":"recheck","commit_id":"f2dbcdd8afc125d59e425791841c0bb5e516e47a"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"cbd54c4877755669aaf167acbdbfc3cfc92fca9b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"22ec77fc_9a101bce","updated":"2024-01-26 04:26:59.000000000","message":"recheck","commit_id":"f2dbcdd8afc125d59e425791841c0bb5e516e47a"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"68e052ba817b49ff43012b1eb339f398984b08dc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"036350d3_610c6449","in_reply_to":"efa0e9b6_dd9b5ddc","updated":"2024-01-30 03:06:14.000000000","message":"OK, it\u0027s fixed now.","commit_id":"f2dbcdd8afc125d59e425791841c0bb5e516e47a"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"5163de930be3971f95cfba1bb6bff921aa33c413","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"6ec08f71_e3f9058d","updated":"2024-02-20 08:14:35.000000000","message":"@wu.chunyang can you help me review this patch again?","commit_id":"f11f927d465747542d71f7133cc33ec10247af67"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"d4accf358a314c8e014fe798b99fa99c51478f89","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"67ca5105_e3c9f22b","updated":"2024-02-23 14:11:36.000000000","message":"hi，Bo, thanks for your great work!!! it looks good to me overall, however, there are still some work need to do.","commit_id":"f11f927d465747542d71f7133cc33ec10247af67"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"8962621e34fce0b473f85378e4b483e46f701bdb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"3350e20e_ace4cfc8","in_reply_to":"6ec08f71_e3f9058d","updated":"2024-02-22 02:26:02.000000000","message":"No problem， sorry for my late response. because i was in holiday.","commit_id":"f11f927d465747542d71f7133cc33ec10247af67"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"aed5a30ecb6c7de754cf1beaad44d66a3318e8e0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"f819ba9f_2a65885b","updated":"2024-03-04 14:02:57.000000000","message":"LGTM, however you should rebase on the master after you remove the dicts to the constants.py","commit_id":"1628667498b047dce216922f021f9905442f39c6"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"4e8de560b5abed7ed91f64b518209499c268bc75","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"883561d0_3c0db084","updated":"2024-03-11 03:38:25.000000000","message":"recheck","commit_id":"1628667498b047dce216922f021f9905442f39c6"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"d8fb58c9d9a50b2f7833a077133e4c7e767c314a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"9df933b1_070b0df5","in_reply_to":"7660358d_44c61081","updated":"2024-03-16 01:35:12.000000000","message":"ok. I don\u0027t familiar with oslo.db. let me see.","commit_id":"1628667498b047dce216922f021f9905442f39c6"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"484aec685b808022855307a8e6153b7ec18c216f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"7660358d_44c61081","in_reply_to":"883561d0_3c0db084","updated":"2024-03-11 13:37:35.000000000","message":"Our trove code doesn\u0027t fit the latest code of oslo.db 15.0.0. we need fix the CI first.","commit_id":"1628667498b047dce216922f021f9905442f39c6"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"4815081b73fba21f3c430ed655dcbd6552bb0fbf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"c64cb43d_55b21493","updated":"2024-03-20 14:25:57.000000000","message":"It seems like something was wrong with the unittest.","commit_id":"121abb35f331c08904f5c21dc8a062ab71ea234c"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"d971050ceca96045e8b63bba92c5db4d3d6764b9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":28,"id":"756a41f7_d5e854e7","updated":"2024-03-28 13:54:16.000000000","message":"recheck docker error","commit_id":"b127068c2046f4abc71e30d89069ead1d6ba06a3"}],"doc/source/cli/trove-manage.rst":[{"author":{"_account_id":31737,"name":"Hirotaka Wakabayashi","email":"hiwkby@yahoo.com","username":"hiwkby"},"change_message_id":"4d731cbe06101aea964dc0e000c43d33ed117093","unresolved":true,"context_lines":[{"line_number":243,"context_line":""},{"line_number":244,"context_line":"``--registry-ext``"},{"line_number":245,"context_line":"  Extension for default datastore version managers. Allows the use of custom managers "},{"line_number":246,"context_line":"  for each of the datastore versions supported by Trove."},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"trove-manage db_downgrade"},{"line_number":249,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":3,"id":"aea1d9d3_f11df1d1","line":246,"updated":"2023-08-10 01:28:51.000000000","message":"Hi Bo, Thanks for the very nice patch! We should add the data type of the value(string or dict, and so on) and the default value when users do not specify this option. we should also describe this parameter is something to improve development flexibility. \n\nThanks in advance","commit_id":"b3ce23dcabc726b1a0228e4ec57aab2e26e9e90d"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"9ff51afb144d68fb9e6843343e988797d73d11c1","unresolved":false,"context_lines":[{"line_number":243,"context_line":""},{"line_number":244,"context_line":"``--registry-ext``"},{"line_number":245,"context_line":"  Extension for default datastore version managers. Allows the use of custom managers "},{"line_number":246,"context_line":"  for each of the datastore versions supported by Trove."},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"trove-manage db_downgrade"},{"line_number":249,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fee782d0_7ce320b4","line":246,"in_reply_to":"0ef78fa8_c7ab24f0","updated":"2023-12-05 06:47:31.000000000","message":"Thanks you.\n\n(1). This ERROR log can be find in here: https://zuul.opendev.org/t/openstack/build/da3f434591564f7ca727d153169c4f1c/log/controller/logs/guest-agent-logs/3f536979-f9c4-4707-9a15-9b2bd5c126e3/log/trove/trove-guestagent_log.txt\n\nI doing debug this log.","commit_id":"b3ce23dcabc726b1a0228e4ec57aab2e26e9e90d"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"a8e77e8ca7bba401fd04f9ea3f09ae1200e74b31","unresolved":false,"context_lines":[{"line_number":243,"context_line":""},{"line_number":244,"context_line":"``--registry-ext``"},{"line_number":245,"context_line":"  Extension for default datastore version managers. Allows the use of custom managers "},{"line_number":246,"context_line":"  for each of the datastore versions supported by Trove."},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"trove-manage db_downgrade"},{"line_number":249,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":3,"id":"56f5eb84_ca00ae64","line":246,"in_reply_to":"36450688_c5579a92","updated":"2023-12-05 07:04:45.000000000","message":"`Cannot get replication instance for \u0027postgresql\u0027: No module named \u0027PostgresqlReplicationStreaming\u0027: ModuleNotFoundError: No module named \u0027PostgresqlReplicationStreaming\u0027` this is root cause. let me see.","commit_id":"b3ce23dcabc726b1a0228e4ec57aab2e26e9e90d"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"c7befc9c4f9d1354ab6af45b893395bf9e7b6de7","unresolved":false,"context_lines":[{"line_number":243,"context_line":""},{"line_number":244,"context_line":"``--registry-ext``"},{"line_number":245,"context_line":"  Extension for default datastore version managers. Allows the use of custom managers "},{"line_number":246,"context_line":"  for each of the datastore versions supported by Trove."},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"trove-manage db_downgrade"},{"line_number":249,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":3,"id":"65bd35d0_1981f50e","line":246,"in_reply_to":"4fe9be1e_cb37f03b","updated":"2023-09-27 08:21:21.000000000","message":"this is too big, it will take more time","commit_id":"b3ce23dcabc726b1a0228e4ec57aab2e26e9e90d"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"8a90ed739f547ba8cfb702c32b7b859d73d3500d","unresolved":false,"context_lines":[{"line_number":243,"context_line":""},{"line_number":244,"context_line":"``--registry-ext``"},{"line_number":245,"context_line":"  Extension for default datastore version managers. Allows the use of custom managers "},{"line_number":246,"context_line":"  for each of the datastore versions supported by Trove."},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"trove-manage db_downgrade"},{"line_number":249,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":3,"id":"0ef78fa8_c7ab24f0","line":246,"in_reply_to":"51ffdd44_aacfc964","updated":"2023-12-05 06:41:39.000000000","message":"@Bo Tran: Hi, what do you need to configure? All of CI jobs are configured in trove/zuul.d directory. Tests are hosted in the trove-tempest-plugin repository.","commit_id":"b3ce23dcabc726b1a0228e4ec57aab2e26e9e90d"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"6798432def5c5d8f817220914c96f28c54ef8a63","unresolved":false,"context_lines":[{"line_number":243,"context_line":""},{"line_number":244,"context_line":"``--registry-ext``"},{"line_number":245,"context_line":"  Extension for default datastore version managers. Allows the use of custom managers "},{"line_number":246,"context_line":"  for each of the datastore versions supported by Trove."},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"trove-manage db_downgrade"},{"line_number":249,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":3,"id":"b8011a5c_95296880","line":246,"in_reply_to":"56f5eb84_ca00ae64","updated":"2023-12-05 07:50:21.000000000","message":"@wu.chunyang Can you help me find why this option `replication_namespace` being set `PostgresqlReplicationStreaming` when run CI? This isn\u0027t expected value.","commit_id":"b3ce23dcabc726b1a0228e4ec57aab2e26e9e90d"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"465a6e4765cfb48f6f836b8fde064d6b59e566b0","unresolved":false,"context_lines":[{"line_number":243,"context_line":""},{"line_number":244,"context_line":"``--registry-ext``"},{"line_number":245,"context_line":"  Extension for default datastore version managers. Allows the use of custom managers "},{"line_number":246,"context_line":"  for each of the datastore versions supported by Trove."},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"trove-manage db_downgrade"},{"line_number":249,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":3,"id":"51ffdd44_aacfc964","line":246,"in_reply_to":"65bd35d0_1981f50e","updated":"2023-12-05 04:38:08.000000000","message":"@wu.chunyang How to config for CI. I doing debug and get some error about config for guest-agent make CI run failed.","commit_id":"b3ce23dcabc726b1a0228e4ec57aab2e26e9e90d"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"16b9738a6df7bf7507b392cf9827107c3d8dea27","unresolved":false,"context_lines":[{"line_number":243,"context_line":""},{"line_number":244,"context_line":"``--registry-ext``"},{"line_number":245,"context_line":"  Extension for default datastore version managers. Allows the use of custom managers "},{"line_number":246,"context_line":"  for each of the datastore versions supported by Trove."},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"trove-manage db_downgrade"},{"line_number":249,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":3,"id":"4fe9be1e_cb37f03b","line":246,"in_reply_to":"aea1d9d3_f11df1d1","updated":"2023-09-27 01:28:33.000000000","message":"Can you review this patch?","commit_id":"b3ce23dcabc726b1a0228e4ec57aab2e26e9e90d"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"e16e6623ef2e8bb34d2154e6896140108a8e7302","unresolved":false,"context_lines":[{"line_number":243,"context_line":""},{"line_number":244,"context_line":"``--registry-ext``"},{"line_number":245,"context_line":"  Extension for default datastore version managers. Allows the use of custom managers "},{"line_number":246,"context_line":"  for each of the datastore versions supported by Trove."},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"trove-manage db_downgrade"},{"line_number":249,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":3,"id":"8697fe27_46aadd0b","line":246,"in_reply_to":"b8011a5c_95296880","updated":"2023-12-06 03:42:50.000000000","message":"as per[0], the default value is PostgresqlReplicationStreaming, we didn\u0027t change this value in our CI\n\n[0]:https://github.com/openstack/trove/blob/48439619b5fbce3ac70be5ae092c88fae072cde9/trove/common/cfg.py#L1140","commit_id":"b3ce23dcabc726b1a0228e4ec57aab2e26e9e90d"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"d08cc20232bcf0961f108612cbe0b112c09e4732","unresolved":false,"context_lines":[{"line_number":243,"context_line":""},{"line_number":244,"context_line":"``--registry-ext``"},{"line_number":245,"context_line":"  Extension for default datastore version managers. Allows the use of custom managers "},{"line_number":246,"context_line":"  for each of the datastore versions supported by Trove."},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"trove-manage db_downgrade"},{"line_number":249,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":3,"id":"36450688_c5579a92","line":246,"in_reply_to":"fee782d0_7ce320b4","updated":"2023-12-05 06:50:14.000000000","message":"Yes, it seems to has a syntax error.","commit_id":"b3ce23dcabc726b1a0228e4ec57aab2e26e9e90d"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"494af9ede02fa6923db6821cadb5d779bbecf5bb","unresolved":true,"context_lines":[{"line_number":243,"context_line":"  up the latest image automatically for creating instances."},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"``--registry-ext``"},{"line_number":246,"context_line":"  Extension for default datastore version managers. Allows the use of custom managers "},{"line_number":247,"context_line":"  for each of the datastore versions supported by Trove."},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"``--repl-strategy``"}],"source_content_type":"text/x-rst","patch_set":20,"id":"b5d6d9ba_fd8b95aa","line":246,"updated":"2024-01-16 07:24:49.000000000","message":"redundant space","commit_id":"c5f6b764285f0ece4a4b7e886a2332bc35424c20"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"494af9ede02fa6923db6821cadb5d779bbecf5bb","unresolved":true,"context_lines":[{"line_number":247,"context_line":"  for each of the datastore versions supported by Trove."},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"``--repl-strategy``"},{"line_number":250,"context_line":"    Extension for default strategy for replication. Allows the use of custom "},{"line_number":251,"context_line":"    replication strategy for each of the datastores supported by Trove."},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"trove-manage db_downgrade"}],"source_content_type":"text/x-rst","patch_set":20,"id":"5c807a1a_e134f2a2","line":250,"updated":"2024-01-16 07:24:49.000000000","message":"ditto","commit_id":"c5f6b764285f0ece4a4b7e886a2332bc35424c20"}],"releasenotes/notes/add_datastore_registry_external_to_datastore_verion.yaml":[{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"494af9ede02fa6923db6821cadb5d779bbecf5bb","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Users with the administrator role can configure the datastore registry external "},{"line_number":4,"context_line":"    for each datastore version using a command, without editing configuration files."},{"line_number":5,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":20,"id":"4868d24f_dee45208","line":3,"updated":"2024-01-16 07:24:49.000000000","message":"redundant space","commit_id":"c5f6b764285f0ece4a4b7e886a2332bc35424c20"}],"tox.ini":[{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"3c588c213efdf65d025b5a667eb878b842c72c49","unresolved":true,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"[flake8]"},{"line_number":60,"context_line":"show-source \u003d True"},{"line_number":61,"context_line":"ignore \u003d E402,E731,F601,H301,H306,H404,H405,H501,W503,W504,W605"},{"line_number":62,"context_line":"enable-extensions \u003d H203,H106"},{"line_number":63,"context_line":"import-order-style \u003d pep8"},{"line_number":64,"context_line":"builtins \u003d _"}],"source_content_type":"text/x-properties","patch_set":16,"id":"3f78e823_3e54fbdc","line":61,"range":{"start_line":61,"start_character":28,"end_line":61,"end_character":33},"updated":"2024-01-04 09:37:41.000000000","message":"remove H306 from the ignore list?","commit_id":"4e8817e793718b304c541e458f227dba9cf28880"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"3bc5afc8b40481a25a0104f73152aa2247283ecd","unresolved":true,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"[flake8]"},{"line_number":60,"context_line":"show-source \u003d True"},{"line_number":61,"context_line":"ignore \u003d E402,E731,F601,H301,H306,H404,H405,H501,W503,W504,W605"},{"line_number":62,"context_line":"enable-extensions \u003d H203,H106"},{"line_number":63,"context_line":"import-order-style \u003d pep8"},{"line_number":64,"context_line":"builtins \u003d _"}],"source_content_type":"text/x-properties","patch_set":16,"id":"d3257cf1_75a98ab4","line":61,"range":{"start_line":61,"start_character":28,"end_line":61,"end_character":33},"in_reply_to":"3f78e823_3e54fbdc","updated":"2024-01-09 01:49:54.000000000","message":"I being so hard when import modules, so I want we just sort with alphabeta to make import to easy","commit_id":"4e8817e793718b304c541e458f227dba9cf28880"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"da5735096eac579fd2e4542ab06a5327bbd847fb","unresolved":true,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"[flake8]"},{"line_number":60,"context_line":"show-source \u003d True"},{"line_number":61,"context_line":"ignore \u003d E402,E731,F601,H301,H306,H404,H405,H501,W503,W504,W605"},{"line_number":62,"context_line":"enable-extensions \u003d H203,H106"},{"line_number":63,"context_line":"import-order-style \u003d pep8"},{"line_number":64,"context_line":"builtins \u003d _"}],"source_content_type":"text/x-properties","patch_set":16,"id":"b586a7fc_3b42a91c","line":61,"range":{"start_line":61,"start_character":28,"end_line":61,"end_character":33},"in_reply_to":"7fcd1b00_e1e14b2f","updated":"2024-01-09 04:33:47.000000000","message":"my wrong","commit_id":"4e8817e793718b304c541e458f227dba9cf28880"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"5feed806fe34ea88a6a3306dc53dd4dfca3762d3","unresolved":true,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"[flake8]"},{"line_number":60,"context_line":"show-source \u003d True"},{"line_number":61,"context_line":"ignore \u003d E402,E731,F601,H301,H306,H404,H405,H501,W503,W504,W605"},{"line_number":62,"context_line":"enable-extensions \u003d H203,H106"},{"line_number":63,"context_line":"import-order-style \u003d pep8"},{"line_number":64,"context_line":"builtins \u003d _"}],"source_content_type":"text/x-properties","patch_set":16,"id":"7fcd1b00_e1e14b2f","line":61,"range":{"start_line":61,"start_character":28,"end_line":61,"end_character":33},"in_reply_to":"d3257cf1_75a98ab4","updated":"2024-01-09 03:02:19.000000000","message":"I\u0027ve put a lot of effort to fix the H306 issue. So i can\u0027t understand that you add it back. \n\nhttps://github.com/openstack/trove/commit/c1761147ba7f22cbb25a634b151bca7cdc4f43cf","commit_id":"4e8817e793718b304c541e458f227dba9cf28880"}],"trove/common/cfg.py":[{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"3c588c213efdf65d025b5a667eb878b842c72c49","unresolved":true,"context_lines":[{"line_number":530,"context_line":"        \u0027enable_volume_az\u0027, default\u003dFalse,"},{"line_number":531,"context_line":"        help\u003d\u0027If true create the volume in the same availability-zone as the \u0027"},{"line_number":532,"context_line":"             \u0027instance\u0027),"},{"line_number":533,"context_line":"    cfg.StrOpt(\u0027replication_strategy\u0027,"},{"line_number":534,"context_line":"               default\u003d\u0027trove.guestagent.strategies.replication.\u0027"},{"line_number":535,"context_line":"               \u0027mysql_gtid.MysqlGTIDReplication\u0027,"},{"line_number":536,"context_line":"               help\u003d\u0027Namespace to load replication strategies from.\u0027,"}],"source_content_type":"text/x-python","patch_set":16,"id":"ca2b2fc1_a63cee28","line":533,"updated":"2024-01-04 09:37:41.000000000","message":"why we add a new opt here, and set it as deprecated at the following changes ?","commit_id":"4e8817e793718b304c541e458f227dba9cf28880"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"50bf8d38241f14b539a206b482574a6363c469c7","unresolved":true,"context_lines":[{"line_number":530,"context_line":"        \u0027enable_volume_az\u0027, default\u003dFalse,"},{"line_number":531,"context_line":"        help\u003d\u0027If true create the volume in the same availability-zone as the \u0027"},{"line_number":532,"context_line":"             \u0027instance\u0027),"},{"line_number":533,"context_line":"    cfg.StrOpt(\u0027replication_strategy\u0027,"},{"line_number":534,"context_line":"               default\u003d\u0027trove.guestagent.strategies.replication.\u0027"},{"line_number":535,"context_line":"               \u0027mysql_gtid.MysqlGTIDReplication\u0027,"},{"line_number":536,"context_line":"               help\u003d\u0027Namespace to load replication strategies from.\u0027,"}],"source_content_type":"text/x-python","patch_set":16,"id":"812c7b6f_1efe72c3","line":533,"in_reply_to":"3d13083d_5115f497","updated":"2024-01-16 09:00:29.000000000","message":"how to make this option as global. I want keep this option.","commit_id":"4e8817e793718b304c541e458f227dba9cf28880"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"d4accf358a314c8e014fe798b99fa99c51478f89","unresolved":true,"context_lines":[{"line_number":530,"context_line":"        \u0027enable_volume_az\u0027, default\u003dFalse,"},{"line_number":531,"context_line":"        help\u003d\u0027If true create the volume in the same availability-zone as the \u0027"},{"line_number":532,"context_line":"             \u0027instance\u0027),"},{"line_number":533,"context_line":"    cfg.StrOpt(\u0027replication_strategy\u0027,"},{"line_number":534,"context_line":"               default\u003d\u0027trove.guestagent.strategies.replication.\u0027"},{"line_number":535,"context_line":"               \u0027mysql_gtid.MysqlGTIDReplication\u0027,"},{"line_number":536,"context_line":"               help\u003d\u0027Namespace to load replication strategies from.\u0027,"}],"source_content_type":"text/x-python","patch_set":16,"id":"8e4d2447_3ac35b13","line":533,"in_reply_to":"812c7b6f_1efe72c3","updated":"2024-02-23 14:11:36.000000000","message":"oh, i see, i know what you want to do now. you want to make this value only used in trove guest-agent at here[1], for this purpose, we don\u0027t need to declare at here. please see the example[2] about how to set this value only in the guest agent. \n\nplease remove this opt to file[2]\n\n\n[1]:https://review.opendev.org/c/openstack/trove/+/890613/25/trove/guestagent/strategies/replication/__init__.py\n[2]: https://github.com/openstack/trove/blob/master/trove/cmd/guest.py#L36","commit_id":"4e8817e793718b304c541e458f227dba9cf28880"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"3bc5afc8b40481a25a0104f73152aa2247283ecd","unresolved":true,"context_lines":[{"line_number":530,"context_line":"        \u0027enable_volume_az\u0027, default\u003dFalse,"},{"line_number":531,"context_line":"        help\u003d\u0027If true create the volume in the same availability-zone as the \u0027"},{"line_number":532,"context_line":"             \u0027instance\u0027),"},{"line_number":533,"context_line":"    cfg.StrOpt(\u0027replication_strategy\u0027,"},{"line_number":534,"context_line":"               default\u003d\u0027trove.guestagent.strategies.replication.\u0027"},{"line_number":535,"context_line":"               \u0027mysql_gtid.MysqlGTIDReplication\u0027,"},{"line_number":536,"context_line":"               help\u003d\u0027Namespace to load replication strategies from.\u0027,"}],"source_content_type":"text/x-python","patch_set":16,"id":"d8e95494_5c59966c","line":533,"in_reply_to":"ca2b2fc1_a63cee28","updated":"2024-01-09 01:49:54.000000000","message":"my wrong","commit_id":"4e8817e793718b304c541e458f227dba9cf28880"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"494af9ede02fa6923db6821cadb5d779bbecf5bb","unresolved":true,"context_lines":[{"line_number":530,"context_line":"        \u0027enable_volume_az\u0027, default\u003dFalse,"},{"line_number":531,"context_line":"        help\u003d\u0027If true create the volume in the same availability-zone as the \u0027"},{"line_number":532,"context_line":"             \u0027instance\u0027),"},{"line_number":533,"context_line":"    cfg.StrOpt(\u0027replication_strategy\u0027,"},{"line_number":534,"context_line":"               default\u003d\u0027trove.guestagent.strategies.replication.\u0027"},{"line_number":535,"context_line":"               \u0027mysql_gtid.MysqlGTIDReplication\u0027,"},{"line_number":536,"context_line":"               help\u003d\u0027Namespace to load replication strategies from.\u0027,"}],"source_content_type":"text/x-python","patch_set":16,"id":"3d13083d_5115f497","line":533,"in_reply_to":"d8e95494_5c59966c","updated":"2024-01-16 07:24:49.000000000","message":"remove these changes?","commit_id":"4e8817e793718b304c541e458f227dba9cf28880"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"d4accf358a314c8e014fe798b99fa99c51478f89","unresolved":true,"context_lines":[{"line_number":453,"context_line":"                help\u003d\u0027Extension for default datastore managers. \u0027"},{"line_number":454,"context_line":"                     \u0027Allows the use of custom managers for each of \u0027"},{"line_number":455,"context_line":"                     \u0027the datastores supported by Trove.\u0027,"},{"line_number":456,"context_line":"                deprecated_name\u003d\u0027replication_strategy\u0027,"},{"line_number":457,"context_line":"                deprecated_group\u003d\u0027DEFAULT\u0027),"},{"line_number":458,"context_line":"    cfg.StrOpt(\u0027docker_bridge_network_ip\u0027, default\u003dNone,"},{"line_number":459,"context_line":"               help\u003d\u0027Docker bridge network IP.\u0027),"}],"source_content_type":"text/x-python","patch_set":25,"id":"c01ada97_1ff00e7b","line":456,"updated":"2024-02-23 14:11:36.000000000","message":"please undo this","commit_id":"f11f927d465747542d71f7133cc33ec10247af67"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"d4accf358a314c8e014fe798b99fa99c51478f89","unresolved":true,"context_lines":[{"line_number":1153,"context_line":"        \u0027replication_namespace\u0027,"},{"line_number":1154,"context_line":"        default\u003d\u0027trove.guestagent.strategies.replication.postgresql\u0027,"},{"line_number":1155,"context_line":"        help\u003d\u0027Namespace to load replication strategies from.\u0027"},{"line_number":1156,"context_line":"             \u0027Being deprecated in next cycle\u0027"},{"line_number":1157,"context_line":"    ),"},{"line_number":1158,"context_line":"    cfg.StrOpt(\u0027mount_point\u0027, default\u003d\u0027/var/lib/postgresql\u0027,"},{"line_number":1159,"context_line":"               help\u003d\"Filesystem path for mounting \""}],"source_content_type":"text/x-python","patch_set":25,"id":"cf9ec433_75f2b598","line":1156,"updated":"2024-02-23 14:11:36.000000000","message":"you only deprecate the  replication_namespace in postgresql group here? what about other group?","commit_id":"f11f927d465747542d71f7133cc33ec10247af67"}],"trove/datastore/models.py":[{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"3c588c213efdf65d025b5a667eb878b842c72c49","unresolved":true,"context_lines":[{"line_number":33,"context_line":"CONF \u003d cfg.CONF"},{"line_number":34,"context_line":"db_api \u003d get_db_api()"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"registry_ext_defaults \u003d {"},{"line_number":37,"context_line":"    \u0027mysql\u0027:"},{"line_number":38,"context_line":"        \u0027trove.guestagent.datastore.mysql.manager.Manager\u0027,"},{"line_number":39,"context_line":"    \u0027mariadb\u0027:"}],"source_content_type":"text/x-python","patch_set":16,"id":"54c45995_8257b06a","line":36,"updated":"2024-01-04 09:37:41.000000000","message":"this dict was duplicated with [0], as it is a constant， i recommend to remove this to common/constants.py\n\n\n[0]https://github.com/openstack/trove/blob/f8150f82a31c6f86239bc8bcd1e9e5e5d3389189/trove/guestagent/dbaas.py#L36","commit_id":"4e8817e793718b304c541e458f227dba9cf28880"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"3bc5afc8b40481a25a0104f73152aa2247283ecd","unresolved":true,"context_lines":[{"line_number":33,"context_line":"CONF \u003d cfg.CONF"},{"line_number":34,"context_line":"db_api \u003d get_db_api()"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"registry_ext_defaults \u003d {"},{"line_number":37,"context_line":"    \u0027mysql\u0027:"},{"line_number":38,"context_line":"        \u0027trove.guestagent.datastore.mysql.manager.Manager\u0027,"},{"line_number":39,"context_line":"    \u0027mariadb\u0027:"}],"source_content_type":"text/x-python","patch_set":16,"id":"5b369a60_07c50e75","line":36,"in_reply_to":"54c45995_8257b06a","updated":"2024-01-09 01:49:54.000000000","message":"anw. this options being deleted in next cycle. I think we can keep it.","commit_id":"4e8817e793718b304c541e458f227dba9cf28880"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"5feed806fe34ea88a6a3306dc53dd4dfca3762d3","unresolved":true,"context_lines":[{"line_number":33,"context_line":"CONF \u003d cfg.CONF"},{"line_number":34,"context_line":"db_api \u003d get_db_api()"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"registry_ext_defaults \u003d {"},{"line_number":37,"context_line":"    \u0027mysql\u0027:"},{"line_number":38,"context_line":"        \u0027trove.guestagent.datastore.mysql.manager.Manager\u0027,"},{"line_number":39,"context_line":"    \u0027mariadb\u0027:"}],"source_content_type":"text/x-python","patch_set":16,"id":"9fb2e5e9_2a747d98","line":36,"in_reply_to":"5b369a60_07c50e75","updated":"2024-01-09 03:02:19.000000000","message":"I don\u0027t understand why this options will be deleted in the next cycle ?","commit_id":"4e8817e793718b304c541e458f227dba9cf28880"}],"trove/datastore/views.py":[{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"3c588c213efdf65d025b5a667eb878b842c72c49","unresolved":true,"context_lines":[{"line_number":87,"context_line":"            ds_version[\"datastore\"] \u003d (self.datastore_version.datastore_id)"},{"line_number":88,"context_line":"        if self.context.is_admin:"},{"line_number":89,"context_line":"            ds_version[\u0027active\u0027] \u003d self.datastore_version.active"},{"line_number":90,"context_line":"            ds_version[\u0027packages\u0027] \u003d (self.datastore_version.packages)"},{"line_number":91,"context_line":"            ds_version[\u0027image\u0027] \u003d self.datastore_version.image_id"},{"line_number":92,"context_line":"            ds_version[\u0027registry_ext\u0027] \u003d self.datastore_version.registry_ext"},{"line_number":93,"context_line":"            ds_version["}],"source_content_type":"text/x-python","patch_set":16,"id":"7b046478_09cb6806","line":90,"updated":"2024-01-04 09:37:41.000000000","message":"why did you rename this variable name?","commit_id":"4e8817e793718b304c541e458f227dba9cf28880"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"5feed806fe34ea88a6a3306dc53dd4dfca3762d3","unresolved":false,"context_lines":[{"line_number":87,"context_line":"            ds_version[\"datastore\"] \u003d (self.datastore_version.datastore_id)"},{"line_number":88,"context_line":"        if self.context.is_admin:"},{"line_number":89,"context_line":"            ds_version[\u0027active\u0027] \u003d self.datastore_version.active"},{"line_number":90,"context_line":"            ds_version[\u0027packages\u0027] \u003d (self.datastore_version.packages)"},{"line_number":91,"context_line":"            ds_version[\u0027image\u0027] \u003d self.datastore_version.image_id"},{"line_number":92,"context_line":"            ds_version[\u0027registry_ext\u0027] \u003d self.datastore_version.registry_ext"},{"line_number":93,"context_line":"            ds_version["}],"source_content_type":"text/x-python","patch_set":16,"id":"d8beca2d_515e07c3","line":90,"in_reply_to":"16904996_bda950c4","updated":"2024-01-09 03:02:19.000000000","message":"I don\u0027t recommend making changes in areas unrelated to this functionality.\n\nIf you want to change this dict name, it should be in a separate patch.","commit_id":"4e8817e793718b304c541e458f227dba9cf28880"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"3bc5afc8b40481a25a0104f73152aa2247283ecd","unresolved":false,"context_lines":[{"line_number":87,"context_line":"            ds_version[\"datastore\"] \u003d (self.datastore_version.datastore_id)"},{"line_number":88,"context_line":"        if self.context.is_admin:"},{"line_number":89,"context_line":"            ds_version[\u0027active\u0027] \u003d self.datastore_version.active"},{"line_number":90,"context_line":"            ds_version[\u0027packages\u0027] \u003d (self.datastore_version.packages)"},{"line_number":91,"context_line":"            ds_version[\u0027image\u0027] \u003d self.datastore_version.image_id"},{"line_number":92,"context_line":"            ds_version[\u0027registry_ext\u0027] \u003d self.datastore_version.registry_ext"},{"line_number":93,"context_line":"            ds_version["}],"source_content_type":"text/x-python","patch_set":16,"id":"16904996_bda950c4","line":90,"in_reply_to":"7b046478_09cb6806","updated":"2024-01-09 01:49:54.000000000","message":"it just make clear code and beautiful","commit_id":"4e8817e793718b304c541e458f227dba9cf28880"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"494af9ede02fa6923db6821cadb5d779bbecf5bb","unresolved":true,"context_lines":[{"line_number":88,"context_line":"        if self.context.is_admin:"},{"line_number":89,"context_line":"            ds_version[\u0027active\u0027] \u003d self.datastore_version.active"},{"line_number":90,"context_line":"            ds_version[\u0027packages\u0027] \u003d (self.datastore_version.packages)"},{"line_number":91,"context_line":"            ds_version[\u0027image\u0027] \u003d self.datastore_version.image_id"},{"line_number":92,"context_line":"            ds_version[\u0027registry_ext\u0027] \u003d self.datastore_version.registry_ext"},{"line_number":93,"context_line":"            ds_version["},{"line_number":94,"context_line":"                \u0027repl_strategy\u0027] \u003d self.datastore_version.repl_strategy"}],"source_content_type":"text/x-python","patch_set":20,"id":"4efac0ee_b5f4be54","line":91,"updated":"2024-01-16 07:24:49.000000000","message":"Don\u0027t change this name here.","commit_id":"c5f6b764285f0ece4a4b7e886a2332bc35424c20"}],"trove/db/sqlalchemy/migrate_repo/versions/049_add_registry_ext_to_datastore_version.py":[{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"494af9ede02fa6923db6821cadb5d779bbecf5bb","unresolved":true,"context_lines":[{"line_number":22,"context_line":"from trove.db.sqlalchemy.migrate_repo.schema import Table"},{"line_number":23,"context_line":"from trove.db.sqlalchemy.migrate_repo.schema import Text"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"registry_exts \u003d {"},{"line_number":26,"context_line":"    \u0027mysql\u0027:"},{"line_number":27,"context_line":"        \u0027trove.guestagent.datastore.mysql.manager.Manager\u0027,"},{"line_number":28,"context_line":"    \u0027mariadb\u0027:"},{"line_number":29,"context_line":"        \u0027trove.guestagent.datastore.mariadb.manager.Manager\u0027,"},{"line_number":30,"context_line":"    \u0027postgresql\u0027:"},{"line_number":31,"context_line":"        \u0027trove.guestagent.datastore.postgres.manager.PostgresManager\u0027,"},{"line_number":32,"context_line":"    \u0027percona\u0027:"},{"line_number":33,"context_line":"        \u0027trove.guestagent.datastore.experimental.percona.manager.Manager\u0027,"},{"line_number":34,"context_line":"    \u0027pxc\u0027:"},{"line_number":35,"context_line":"        \u0027trove.guestagent.datastore.experimental.pxc.manager.Manager\u0027,"},{"line_number":36,"context_line":"    \u0027redis\u0027:"},{"line_number":37,"context_line":"        \u0027trove.guestagent.datastore.experimental.redis.manager.Manager\u0027,"},{"line_number":38,"context_line":"    \u0027cassandra\u0027:"},{"line_number":39,"context_line":"        \u0027trove.guestagent.datastore.experimental.cassandra.manager.Manager\u0027,"},{"line_number":40,"context_line":"    \u0027couchbase\u0027:"},{"line_number":41,"context_line":"        \u0027trove.guestagent.datastore.experimental.couchbase.manager.Manager\u0027,"},{"line_number":42,"context_line":"    \u0027mongodb\u0027:"},{"line_number":43,"context_line":"        \u0027trove.guestagent.datastore.experimental.mongodb.manager.Manager\u0027,"},{"line_number":44,"context_line":"    \u0027couchdb\u0027:"},{"line_number":45,"context_line":"        \u0027trove.guestagent.datastore.experimental.couchdb.manager.Manager\u0027,"},{"line_number":46,"context_line":"    \u0027vertica\u0027:"},{"line_number":47,"context_line":"        \u0027trove.guestagent.datastore.experimental.vertica.manager.Manager\u0027,"},{"line_number":48,"context_line":"    \u0027db2\u0027:"},{"line_number":49,"context_line":"        \u0027trove.guestagent.datastore.experimental.db2.manager.Manager\u0027,"},{"line_number":50,"context_line":"}"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"repl_namespaces \u003d {"},{"line_number":53,"context_line":"    \"mariadb\": \"trove.guestagent.strategies.replication.mariadb_gtid\","}],"source_content_type":"text/x-python","patch_set":20,"id":"623cc6a6_cef68a8b","line":50,"range":{"start_line":25,"start_character":0,"end_line":50,"end_character":1},"updated":"2024-01-16 07:24:49.000000000","message":"cloud we import this value from constants?","commit_id":"c5f6b764285f0ece4a4b7e886a2332bc35424c20"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"50bf8d38241f14b539a206b482574a6363c469c7","unresolved":true,"context_lines":[{"line_number":22,"context_line":"from trove.db.sqlalchemy.migrate_repo.schema import Table"},{"line_number":23,"context_line":"from trove.db.sqlalchemy.migrate_repo.schema import Text"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"registry_exts \u003d {"},{"line_number":26,"context_line":"    \u0027mysql\u0027:"},{"line_number":27,"context_line":"        \u0027trove.guestagent.datastore.mysql.manager.Manager\u0027,"},{"line_number":28,"context_line":"    \u0027mariadb\u0027:"},{"line_number":29,"context_line":"        \u0027trove.guestagent.datastore.mariadb.manager.Manager\u0027,"},{"line_number":30,"context_line":"    \u0027postgresql\u0027:"},{"line_number":31,"context_line":"        \u0027trove.guestagent.datastore.postgres.manager.PostgresManager\u0027,"},{"line_number":32,"context_line":"    \u0027percona\u0027:"},{"line_number":33,"context_line":"        \u0027trove.guestagent.datastore.experimental.percona.manager.Manager\u0027,"},{"line_number":34,"context_line":"    \u0027pxc\u0027:"},{"line_number":35,"context_line":"        \u0027trove.guestagent.datastore.experimental.pxc.manager.Manager\u0027,"},{"line_number":36,"context_line":"    \u0027redis\u0027:"},{"line_number":37,"context_line":"        \u0027trove.guestagent.datastore.experimental.redis.manager.Manager\u0027,"},{"line_number":38,"context_line":"    \u0027cassandra\u0027:"},{"line_number":39,"context_line":"        \u0027trove.guestagent.datastore.experimental.cassandra.manager.Manager\u0027,"},{"line_number":40,"context_line":"    \u0027couchbase\u0027:"},{"line_number":41,"context_line":"        \u0027trove.guestagent.datastore.experimental.couchbase.manager.Manager\u0027,"},{"line_number":42,"context_line":"    \u0027mongodb\u0027:"},{"line_number":43,"context_line":"        \u0027trove.guestagent.datastore.experimental.mongodb.manager.Manager\u0027,"},{"line_number":44,"context_line":"    \u0027couchdb\u0027:"},{"line_number":45,"context_line":"        \u0027trove.guestagent.datastore.experimental.couchdb.manager.Manager\u0027,"},{"line_number":46,"context_line":"    \u0027vertica\u0027:"},{"line_number":47,"context_line":"        \u0027trove.guestagent.datastore.experimental.vertica.manager.Manager\u0027,"},{"line_number":48,"context_line":"    \u0027db2\u0027:"},{"line_number":49,"context_line":"        \u0027trove.guestagent.datastore.experimental.db2.manager.Manager\u0027,"},{"line_number":50,"context_line":"}"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"repl_namespaces \u003d {"},{"line_number":53,"context_line":"    \"mariadb\": \"trove.guestagent.strategies.replication.mariadb_gtid\","}],"source_content_type":"text/x-python","patch_set":20,"id":"a788a5b6_6f8d02dd","line":50,"range":{"start_line":25,"start_character":0,"end_line":50,"end_character":1},"in_reply_to":"623cc6a6_cef68a8b","updated":"2024-01-16 09:00:29.000000000","message":"No. This are modules we can used to import in python.\nSuch as:\nIf you have a class to handle datastore in \u0027cloudatabase.mysql.manager.Manager\u0027\nYou can pass this value \u0027cloudatabase.mysql.manager.Manager\u0027 when create/ update datastore version with option \u0027--registry-ext\u0027.\n\nWhen you create trove instance with above datastore version, this trove instance being handle by your class.","commit_id":"c5f6b764285f0ece4a4b7e886a2332bc35424c20"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"9ed0b275de44edcbc5cd1c1079cf41b494058a9d","unresolved":true,"context_lines":[{"line_number":22,"context_line":"from trove.db.sqlalchemy.migrate_repo.schema import Table"},{"line_number":23,"context_line":"from trove.db.sqlalchemy.migrate_repo.schema import Text"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"registry_exts \u003d {"},{"line_number":26,"context_line":"    \u0027mysql\u0027:"},{"line_number":27,"context_line":"        \u0027trove.guestagent.datastore.mysql.manager.Manager\u0027,"},{"line_number":28,"context_line":"    \u0027mariadb\u0027:"},{"line_number":29,"context_line":"        \u0027trove.guestagent.datastore.mariadb.manager.Manager\u0027,"},{"line_number":30,"context_line":"    \u0027postgresql\u0027:"},{"line_number":31,"context_line":"        \u0027trove.guestagent.datastore.postgres.manager.PostgresManager\u0027,"},{"line_number":32,"context_line":"    \u0027percona\u0027:"},{"line_number":33,"context_line":"        \u0027trove.guestagent.datastore.experimental.percona.manager.Manager\u0027,"},{"line_number":34,"context_line":"    \u0027pxc\u0027:"},{"line_number":35,"context_line":"        \u0027trove.guestagent.datastore.experimental.pxc.manager.Manager\u0027,"},{"line_number":36,"context_line":"    \u0027redis\u0027:"},{"line_number":37,"context_line":"        \u0027trove.guestagent.datastore.experimental.redis.manager.Manager\u0027,"},{"line_number":38,"context_line":"    \u0027cassandra\u0027:"},{"line_number":39,"context_line":"        \u0027trove.guestagent.datastore.experimental.cassandra.manager.Manager\u0027,"},{"line_number":40,"context_line":"    \u0027couchbase\u0027:"},{"line_number":41,"context_line":"        \u0027trove.guestagent.datastore.experimental.couchbase.manager.Manager\u0027,"},{"line_number":42,"context_line":"    \u0027mongodb\u0027:"},{"line_number":43,"context_line":"        \u0027trove.guestagent.datastore.experimental.mongodb.manager.Manager\u0027,"},{"line_number":44,"context_line":"    \u0027couchdb\u0027:"},{"line_number":45,"context_line":"        \u0027trove.guestagent.datastore.experimental.couchdb.manager.Manager\u0027,"},{"line_number":46,"context_line":"    \u0027vertica\u0027:"},{"line_number":47,"context_line":"        \u0027trove.guestagent.datastore.experimental.vertica.manager.Manager\u0027,"},{"line_number":48,"context_line":"    \u0027db2\u0027:"},{"line_number":49,"context_line":"        \u0027trove.guestagent.datastore.experimental.db2.manager.Manager\u0027,"},{"line_number":50,"context_line":"}"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"repl_namespaces \u003d {"},{"line_number":53,"context_line":"    \"mariadb\": \"trove.guestagent.strategies.replication.mariadb_gtid\","}],"source_content_type":"text/x-python","patch_set":20,"id":"20fc3599_5bff39b4","line":50,"range":{"start_line":25,"start_character":0,"end_line":50,"end_character":1},"in_reply_to":"a6f37fb8_38b8333a","updated":"2024-01-17 01:15:28.000000000","message":"the python-trove client should be merged after this change. so i should review this patch first.","commit_id":"c5f6b764285f0ece4a4b7e886a2332bc35424c20"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"0fdd31b0c4f05511f65a090c9e08a42b5720c7db","unresolved":true,"context_lines":[{"line_number":22,"context_line":"from trove.db.sqlalchemy.migrate_repo.schema import Table"},{"line_number":23,"context_line":"from trove.db.sqlalchemy.migrate_repo.schema import Text"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"registry_exts \u003d {"},{"line_number":26,"context_line":"    \u0027mysql\u0027:"},{"line_number":27,"context_line":"        \u0027trove.guestagent.datastore.mysql.manager.Manager\u0027,"},{"line_number":28,"context_line":"    \u0027mariadb\u0027:"},{"line_number":29,"context_line":"        \u0027trove.guestagent.datastore.mariadb.manager.Manager\u0027,"},{"line_number":30,"context_line":"    \u0027postgresql\u0027:"},{"line_number":31,"context_line":"        \u0027trove.guestagent.datastore.postgres.manager.PostgresManager\u0027,"},{"line_number":32,"context_line":"    \u0027percona\u0027:"},{"line_number":33,"context_line":"        \u0027trove.guestagent.datastore.experimental.percona.manager.Manager\u0027,"},{"line_number":34,"context_line":"    \u0027pxc\u0027:"},{"line_number":35,"context_line":"        \u0027trove.guestagent.datastore.experimental.pxc.manager.Manager\u0027,"},{"line_number":36,"context_line":"    \u0027redis\u0027:"},{"line_number":37,"context_line":"        \u0027trove.guestagent.datastore.experimental.redis.manager.Manager\u0027,"},{"line_number":38,"context_line":"    \u0027cassandra\u0027:"},{"line_number":39,"context_line":"        \u0027trove.guestagent.datastore.experimental.cassandra.manager.Manager\u0027,"},{"line_number":40,"context_line":"    \u0027couchbase\u0027:"},{"line_number":41,"context_line":"        \u0027trove.guestagent.datastore.experimental.couchbase.manager.Manager\u0027,"},{"line_number":42,"context_line":"    \u0027mongodb\u0027:"},{"line_number":43,"context_line":"        \u0027trove.guestagent.datastore.experimental.mongodb.manager.Manager\u0027,"},{"line_number":44,"context_line":"    \u0027couchdb\u0027:"},{"line_number":45,"context_line":"        \u0027trove.guestagent.datastore.experimental.couchdb.manager.Manager\u0027,"},{"line_number":46,"context_line":"    \u0027vertica\u0027:"},{"line_number":47,"context_line":"        \u0027trove.guestagent.datastore.experimental.vertica.manager.Manager\u0027,"},{"line_number":48,"context_line":"    \u0027db2\u0027:"},{"line_number":49,"context_line":"        \u0027trove.guestagent.datastore.experimental.db2.manager.Manager\u0027,"},{"line_number":50,"context_line":"}"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"repl_namespaces \u003d {"},{"line_number":53,"context_line":"    \"mariadb\": \"trove.guestagent.strategies.replication.mariadb_gtid\","}],"source_content_type":"text/x-python","patch_set":20,"id":"a6f37fb8_38b8333a","line":50,"range":{"start_line":25,"start_character":0,"end_line":50,"end_character":1},"in_reply_to":"a788a5b6_6f8d02dd","updated":"2024-01-16 09:01:58.000000000","message":"Can you review this patch: https://review.opendev.org/c/openstack/python-troveclient/+/890615","commit_id":"c5f6b764285f0ece4a4b7e886a2332bc35424c20"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"d4accf358a314c8e014fe798b99fa99c51478f89","unresolved":true,"context_lines":[{"line_number":22,"context_line":"from trove.db.sqlalchemy.migrate_repo.schema import Table"},{"line_number":23,"context_line":"from trove.db.sqlalchemy.migrate_repo.schema import Text"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"registry_exts \u003d {"},{"line_number":26,"context_line":"    \u0027mysql\u0027:"},{"line_number":27,"context_line":"        \u0027trove.guestagent.datastore.mysql.manager.Manager\u0027,"},{"line_number":28,"context_line":"    \u0027mariadb\u0027:"},{"line_number":29,"context_line":"        \u0027trove.guestagent.datastore.mariadb.manager.Manager\u0027,"},{"line_number":30,"context_line":"    \u0027postgresql\u0027:"},{"line_number":31,"context_line":"        \u0027trove.guestagent.datastore.postgres.manager.PostgresManager\u0027,"},{"line_number":32,"context_line":"    \u0027percona\u0027:"},{"line_number":33,"context_line":"        \u0027trove.guestagent.datastore.experimental.percona.manager.Manager\u0027,"},{"line_number":34,"context_line":"    \u0027pxc\u0027:"},{"line_number":35,"context_line":"        \u0027trove.guestagent.datastore.experimental.pxc.manager.Manager\u0027,"},{"line_number":36,"context_line":"    \u0027redis\u0027:"},{"line_number":37,"context_line":"        \u0027trove.guestagent.datastore.experimental.redis.manager.Manager\u0027,"},{"line_number":38,"context_line":"    \u0027cassandra\u0027:"},{"line_number":39,"context_line":"        \u0027trove.guestagent.datastore.experimental.cassandra.manager.Manager\u0027,"},{"line_number":40,"context_line":"    \u0027couchbase\u0027:"},{"line_number":41,"context_line":"        \u0027trove.guestagent.datastore.experimental.couchbase.manager.Manager\u0027,"},{"line_number":42,"context_line":"    \u0027mongodb\u0027:"},{"line_number":43,"context_line":"        \u0027trove.guestagent.datastore.experimental.mongodb.manager.Manager\u0027,"},{"line_number":44,"context_line":"    \u0027couchdb\u0027:"},{"line_number":45,"context_line":"        \u0027trove.guestagent.datastore.experimental.couchdb.manager.Manager\u0027,"},{"line_number":46,"context_line":"    \u0027vertica\u0027:"},{"line_number":47,"context_line":"        \u0027trove.guestagent.datastore.experimental.vertica.manager.Manager\u0027,"},{"line_number":48,"context_line":"    \u0027db2\u0027:"},{"line_number":49,"context_line":"        \u0027trove.guestagent.datastore.experimental.db2.manager.Manager\u0027,"},{"line_number":50,"context_line":"}"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"repl_namespaces \u003d {"},{"line_number":53,"context_line":"    \"mariadb\": \"trove.guestagent.strategies.replication.mariadb_gtid\","},{"line_number":54,"context_line":"    \"mongodb\":"},{"line_number":55,"context_line":"        \"trove.guestagent.strategies.replication.experimental.mongo_impl\","},{"line_number":56,"context_line":"    \"mysql\": \"trove.guestagent.strategies.replication.mysql_gtid\","},{"line_number":57,"context_line":"    \"percona\": \"trove.guestagent.strategies.replication.mysql_gtid\","},{"line_number":58,"context_line":"    \"postgresql\": \"trove.guestagent.strategies.replication.postgresql\","},{"line_number":59,"context_line":"    \"pxc\": \"trove.guestagent.strategies.replication.mysql_gtid\","},{"line_number":60,"context_line":"    \"redis\": \"trove.guestagent.strategies.replication.experimental.redis_sync\","},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"}"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"repl_strategies \u003d {"},{"line_number":65,"context_line":"    \"mariadb\": \"MariaDBGTIDReplication\","},{"line_number":66,"context_line":"    \"mongodb\": \"Replication\","},{"line_number":67,"context_line":"    \"mysql\": \"MysqlGTIDReplication\","},{"line_number":68,"context_line":"    \"percona\": \"MysqlGTIDReplication\","},{"line_number":69,"context_line":"    \"postgresql\": \"PostgresqlReplicationStreaming\","},{"line_number":70,"context_line":"    \"pxc\": \"MysqlGTIDReplication\","},{"line_number":71,"context_line":"    \"redis\": \"RedisSyncReplication\","},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"}"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"def upgrade(migrate_engine):"},{"line_number":77,"context_line":"    meta \u003d MetaData()"}],"source_content_type":"text/x-python","patch_set":25,"id":"48cdcdb7_b46c4832","line":74,"range":{"start_line":25,"start_character":0,"end_line":74,"end_character":0},"updated":"2024-02-23 14:11:36.000000000","message":"hello, i review these code again. I advise to remove registry_exts, repl_namespaces, repl_strategies dict to trove/common/constant.py  so that we can take use of these constants at other place.","commit_id":"f11f927d465747542d71f7133cc33ec10247af67"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"3ce9878f68c1125d38a18059a381a5d1f80897bc","unresolved":true,"context_lines":[{"line_number":22,"context_line":"from trove.db.sqlalchemy.migrate_repo.schema import Table"},{"line_number":23,"context_line":"from trove.db.sqlalchemy.migrate_repo.schema import Text"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"registry_exts \u003d {"},{"line_number":26,"context_line":"    \u0027mysql\u0027:"},{"line_number":27,"context_line":"        \u0027trove.guestagent.datastore.mysql.manager.Manager\u0027,"},{"line_number":28,"context_line":"    \u0027mariadb\u0027:"},{"line_number":29,"context_line":"        \u0027trove.guestagent.datastore.mariadb.manager.Manager\u0027,"},{"line_number":30,"context_line":"    \u0027postgresql\u0027:"},{"line_number":31,"context_line":"        \u0027trove.guestagent.datastore.postgres.manager.PostgresManager\u0027,"},{"line_number":32,"context_line":"    \u0027percona\u0027:"},{"line_number":33,"context_line":"        \u0027trove.guestagent.datastore.experimental.percona.manager.Manager\u0027,"},{"line_number":34,"context_line":"    \u0027pxc\u0027:"},{"line_number":35,"context_line":"        \u0027trove.guestagent.datastore.experimental.pxc.manager.Manager\u0027,"},{"line_number":36,"context_line":"    \u0027redis\u0027:"},{"line_number":37,"context_line":"        \u0027trove.guestagent.datastore.experimental.redis.manager.Manager\u0027,"},{"line_number":38,"context_line":"    \u0027cassandra\u0027:"},{"line_number":39,"context_line":"        \u0027trove.guestagent.datastore.experimental.cassandra.manager.Manager\u0027,"},{"line_number":40,"context_line":"    \u0027couchbase\u0027:"},{"line_number":41,"context_line":"        \u0027trove.guestagent.datastore.experimental.couchbase.manager.Manager\u0027,"},{"line_number":42,"context_line":"    \u0027mongodb\u0027:"},{"line_number":43,"context_line":"        \u0027trove.guestagent.datastore.experimental.mongodb.manager.Manager\u0027,"},{"line_number":44,"context_line":"    \u0027couchdb\u0027:"},{"line_number":45,"context_line":"        \u0027trove.guestagent.datastore.experimental.couchdb.manager.Manager\u0027,"},{"line_number":46,"context_line":"    \u0027vertica\u0027:"},{"line_number":47,"context_line":"        \u0027trove.guestagent.datastore.experimental.vertica.manager.Manager\u0027,"},{"line_number":48,"context_line":"    \u0027db2\u0027:"},{"line_number":49,"context_line":"        \u0027trove.guestagent.datastore.experimental.db2.manager.Manager\u0027,"},{"line_number":50,"context_line":"}"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"repl_namespaces \u003d {"},{"line_number":53,"context_line":"    \"mariadb\": \"trove.guestagent.strategies.replication.mariadb_gtid\","},{"line_number":54,"context_line":"    \"mongodb\":"},{"line_number":55,"context_line":"        \"trove.guestagent.strategies.replication.experimental.mongo_impl\","},{"line_number":56,"context_line":"    \"mysql\": \"trove.guestagent.strategies.replication.mysql_gtid\","},{"line_number":57,"context_line":"    \"percona\": \"trove.guestagent.strategies.replication.mysql_gtid\","},{"line_number":58,"context_line":"    \"postgresql\": \"trove.guestagent.strategies.replication.postgresql\","},{"line_number":59,"context_line":"    \"pxc\": \"trove.guestagent.strategies.replication.mysql_gtid\","},{"line_number":60,"context_line":"    \"redis\": \"trove.guestagent.strategies.replication.experimental.redis_sync\","},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"}"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"repl_strategies \u003d {"},{"line_number":65,"context_line":"    \"mariadb\": \"MariaDBGTIDReplication\","},{"line_number":66,"context_line":"    \"mongodb\": \"Replication\","},{"line_number":67,"context_line":"    \"mysql\": \"MysqlGTIDReplication\","},{"line_number":68,"context_line":"    \"percona\": \"MysqlGTIDReplication\","},{"line_number":69,"context_line":"    \"postgresql\": \"PostgresqlReplicationStreaming\","},{"line_number":70,"context_line":"    \"pxc\": \"MysqlGTIDReplication\","},{"line_number":71,"context_line":"    \"redis\": \"RedisSyncReplication\","},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"}"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"def upgrade(migrate_engine):"},{"line_number":77,"context_line":"    meta \u003d MetaData()"}],"source_content_type":"text/x-python","patch_set":25,"id":"3b5300c7_a04da634","line":74,"range":{"start_line":25,"start_character":0,"end_line":74,"end_character":0},"in_reply_to":"48cdcdb7_b46c4832","updated":"2024-02-26 02:10:26.000000000","message":"thank you. I will rewrite in this week.","commit_id":"f11f927d465747542d71f7133cc33ec10247af67"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"aed5a30ecb6c7de754cf1beaad44d66a3318e8e0","unresolved":true,"context_lines":[{"line_number":24,"context_line":"from trove.db.sqlalchemy.migrate_repo.schema import Text"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"repl_namespaces \u003d {"},{"line_number":28,"context_line":"    \"mariadb\": \"trove.guestagent.strategies.replication.mariadb_gtid\","},{"line_number":29,"context_line":"    \"mongodb\":"},{"line_number":30,"context_line":"        \"trove.guestagent.strategies.replication.experimental.mongo_impl\","},{"line_number":31,"context_line":"    \"mysql\": \"trove.guestagent.strategies.replication.mysql_gtid\","},{"line_number":32,"context_line":"    \"percona\": \"trove.guestagent.strategies.replication.mysql_gtid\","},{"line_number":33,"context_line":"    \"postgresql\": \"trove.guestagent.strategies.replication.postgresql\","},{"line_number":34,"context_line":"    \"pxc\": \"trove.guestagent.strategies.replication.mysql_gtid\","},{"line_number":35,"context_line":"    \"redis\": \"trove.guestagent.strategies.replication.experimental.redis_sync\","},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"}"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"repl_strategies \u003d {"},{"line_number":40,"context_line":"    \"mariadb\": \"MariaDBGTIDReplication\","},{"line_number":41,"context_line":"    \"mongodb\": \"Replication\","},{"line_number":42,"context_line":"    \"mysql\": \"MysqlGTIDReplication\","},{"line_number":43,"context_line":"    \"percona\": \"MysqlGTIDReplication\","},{"line_number":44,"context_line":"    \"postgresql\": \"PostgresqlReplicationStreaming\","},{"line_number":45,"context_line":"    \"pxc\": \"MysqlGTIDReplication\","},{"line_number":46,"context_line":"    \"redis\": \"RedisSyncReplication\","},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"}"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"def upgrade(migrate_engine):"}],"source_content_type":"text/x-python","patch_set":26,"id":"89f00ec5_dcc38ff0","line":48,"range":{"start_line":27,"start_character":0,"end_line":48,"end_character":1},"updated":"2024-03-04 14:02:57.000000000","message":"these dict looks like to be constants too. so i suggest to remove them to constants as well.","commit_id":"1628667498b047dce216922f021f9905442f39c6"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"bd69b520ee069e884029d0e06f5473b469008d2d","unresolved":true,"context_lines":[{"line_number":24,"context_line":"from trove.db.sqlalchemy.migrate_repo.schema import Text"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"repl_namespaces \u003d {"},{"line_number":28,"context_line":"    \"mariadb\": \"trove.guestagent.strategies.replication.mariadb_gtid\","},{"line_number":29,"context_line":"    \"mongodb\":"},{"line_number":30,"context_line":"        \"trove.guestagent.strategies.replication.experimental.mongo_impl\","},{"line_number":31,"context_line":"    \"mysql\": \"trove.guestagent.strategies.replication.mysql_gtid\","},{"line_number":32,"context_line":"    \"percona\": \"trove.guestagent.strategies.replication.mysql_gtid\","},{"line_number":33,"context_line":"    \"postgresql\": \"trove.guestagent.strategies.replication.postgresql\","},{"line_number":34,"context_line":"    \"pxc\": \"trove.guestagent.strategies.replication.mysql_gtid\","},{"line_number":35,"context_line":"    \"redis\": \"trove.guestagent.strategies.replication.experimental.redis_sync\","},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"}"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"repl_strategies \u003d {"},{"line_number":40,"context_line":"    \"mariadb\": \"MariaDBGTIDReplication\","},{"line_number":41,"context_line":"    \"mongodb\": \"Replication\","},{"line_number":42,"context_line":"    \"mysql\": \"MysqlGTIDReplication\","},{"line_number":43,"context_line":"    \"percona\": \"MysqlGTIDReplication\","},{"line_number":44,"context_line":"    \"postgresql\": \"PostgresqlReplicationStreaming\","},{"line_number":45,"context_line":"    \"pxc\": \"MysqlGTIDReplication\","},{"line_number":46,"context_line":"    \"redis\": \"RedisSyncReplication\","},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"}"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"def upgrade(migrate_engine):"}],"source_content_type":"text/x-python","patch_set":26,"id":"2f7af02a_8a56f677","line":48,"range":{"start_line":27,"start_character":0,"end_line":48,"end_character":1},"in_reply_to":"89f00ec5_dcc38ff0","updated":"2024-03-05 10:12:30.000000000","message":"this dict don\u0027t have any affect in trove without migrate database action.","commit_id":"1628667498b047dce216922f021f9905442f39c6"}],"trove/guestagent/dbaas.py":[{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"494af9ede02fa6923db6821cadb5d779bbecf5bb","unresolved":true,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"def datastore_registry():"},{"line_number":46,"context_line":"    # Being deprecated in next cycle"},{"line_number":47,"context_line":"    return dict(chain(constants.REGISTRY_EXT_DEFAULTS.items(),"},{"line_number":48,"context_line":"                      get_custom_managers().items()))"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"9fd38a8d_a6695f1d","line":46,"range":{"start_line":46,"start_character":6,"end_line":46,"end_character":36},"updated":"2024-01-16 07:24:49.000000000","message":"Deprecated in \"Caracal\" cycle ?","commit_id":"c5f6b764285f0ece4a4b7e886a2332bc35424c20"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"fac4d0ae1aad18186b3825902c31359343eaf934","unresolved":true,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"def datastore_registry():"},{"line_number":46,"context_line":"    # Being deprecated in next cycle"},{"line_number":47,"context_line":"    return dict(chain(constants.REGISTRY_EXT_DEFAULTS.items(),"},{"line_number":48,"context_line":"                      get_custom_managers().items()))"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"0b095a5d_d0be4e7f","line":46,"range":{"start_line":46,"start_character":6,"end_line":46,"end_character":36},"in_reply_to":"9fd38a8d_a6695f1d","updated":"2024-01-19 01:35:26.000000000","message":"yup. current, customer manager being config like as story described.\nit can\u0027t be config for each datastore version. so I want move this config into database though the create new datastore version.","commit_id":"c5f6b764285f0ece4a4b7e886a2332bc35424c20"}],"trove/guestagent/strategies/replication/__init__.py":[{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"e16e6623ef2e8bb34d2154e6896140108a8e7302","unresolved":true,"context_lines":[{"line_number":36,"context_line":"    global __replication_namespace"},{"line_number":37,"context_line":"    if not __replication_instance or manager !\u003d __replication_manager:"},{"line_number":38,"context_line":"        replication_strategy \u003d get_strategy(manager)"},{"line_number":39,"context_line":"        __replication_namespace \u003d CONF.replication_namespace"},{"line_number":40,"context_line":"        replication_strategy_cls \u003d get_strategy_cls("},{"line_number":41,"context_line":"            replication_strategy, __replication_namespace)"},{"line_number":42,"context_line":"        __replication_instance \u003d replication_strategy_cls()"}],"source_content_type":"text/x-python","patch_set":12,"id":"6e893bf3_278a3c28","line":39,"updated":"2023-12-06 03:42:50.000000000","message":"perhaps any wrong with this change?","commit_id":"01d2264fd4b632595f84d487c5b6849d6b892cf4"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"9cb40893062a1cd55c9b6852edd59abb28a9d811","unresolved":true,"context_lines":[{"line_number":36,"context_line":"    global __replication_namespace"},{"line_number":37,"context_line":"    if not __replication_instance or manager !\u003d __replication_manager:"},{"line_number":38,"context_line":"        replication_strategy \u003d get_strategy(manager)"},{"line_number":39,"context_line":"        __replication_namespace \u003d CONF.replication_namespace"},{"line_number":40,"context_line":"        replication_strategy_cls \u003d get_strategy_cls("},{"line_number":41,"context_line":"            replication_strategy, __replication_namespace)"},{"line_number":42,"context_line":"        __replication_instance \u003d replication_strategy_cls()"}],"source_content_type":"text/x-python","patch_set":12,"id":"f3825172_045b1416","line":39,"in_reply_to":"6e893bf3_278a3c28","updated":"2023-12-06 03:48:27.000000000","message":"this `replication_namespace` being config by cloud-init and pass by trove-taskmanager. I think this isn\u0027t bug.\n\nthe `replication_strategy` being import from `replication_namespace`. but when CI run, replication_strategy and replication_namespace have same value","commit_id":"01d2264fd4b632595f84d487c5b6849d6b892cf4"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"c559816ebbb5cb8080c1cfe55961e5cae691d268","unresolved":true,"context_lines":[{"line_number":36,"context_line":"    global __replication_namespace"},{"line_number":37,"context_line":"    if not __replication_instance or manager !\u003d __replication_manager:"},{"line_number":38,"context_line":"        replication_strategy \u003d get_strategy(manager)"},{"line_number":39,"context_line":"        __replication_namespace \u003d CONF.replication_namespace"},{"line_number":40,"context_line":"        replication_strategy_cls \u003d get_strategy_cls("},{"line_number":41,"context_line":"            replication_strategy, __replication_namespace)"},{"line_number":42,"context_line":"        __replication_instance \u003d replication_strategy_cls()"}],"source_content_type":"text/x-python","patch_set":12,"id":"0ceaa4bc_55b74e97","line":39,"in_reply_to":"f3825172_045b1416","updated":"2023-12-06 03:58:04.000000000","message":"the value of `replication_namespace` being get from table `datastore_versions` in the database. It being update when do db sync","commit_id":"01d2264fd4b632595f84d487c5b6849d6b892cf4"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"3c588c213efdf65d025b5a667eb878b842c72c49","unresolved":true,"context_lines":[{"line_number":38,"context_line":"        replication_strategy \u003d get_strategy(manager)"},{"line_number":39,"context_line":"        __replication_namespace \u003d CONF.get(manager).replication_namespace"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        if CONF.replication_strategy:"},{"line_number":42,"context_line":"            replication_strategy \u003d CONF.replication_strategy.split(\u0027.\u0027)[-1]"},{"line_number":43,"context_line":"            __replication_namespace \u003d \u0027.\u0027.join("},{"line_number":44,"context_line":"                CONF.replication_strategy.split(\u0027.\u0027)[0:-1])"}],"source_content_type":"text/x-python","patch_set":16,"id":"67a5f2ce_6234072a","line":41,"updated":"2024-01-04 09:37:41.000000000","message":"CONF.get(manager).replication_strategy ?  CONF.replication_strategy was deprecated?","commit_id":"4e8817e793718b304c541e458f227dba9cf28880"},{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"3bc5afc8b40481a25a0104f73152aa2247283ecd","unresolved":true,"context_lines":[{"line_number":38,"context_line":"        replication_strategy \u003d get_strategy(manager)"},{"line_number":39,"context_line":"        __replication_namespace \u003d CONF.get(manager).replication_namespace"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        if CONF.replication_strategy:"},{"line_number":42,"context_line":"            replication_strategy \u003d CONF.replication_strategy.split(\u0027.\u0027)[-1]"},{"line_number":43,"context_line":"            __replication_namespace \u003d \u0027.\u0027.join("},{"line_number":44,"context_line":"                CONF.replication_strategy.split(\u0027.\u0027)[0:-1])"}],"source_content_type":"text/x-python","patch_set":16,"id":"bcb930c3_a51002d7","line":41,"in_reply_to":"67a5f2ce_6234072a","updated":"2024-01-09 01:49:54.000000000","message":"my wrong","commit_id":"4e8817e793718b304c541e458f227dba9cf28880"}]}
