)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":28691,"name":"Bo Tran","email":"ministry.96.nd@gmail.com","username":"ministry"},"change_message_id":"7d9d7855e10f58ce0c79e0b0e9130ddb23b34c4a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ed65859e_b0482385","updated":"2023-05-23 02:28:22.000000000","message":"LGTM","commit_id":"56faa1c4b5a06b33e3b877c8faf8c76edc02e411"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"e38f84eee44eeaa648bde5cdcdcb843da21d93bf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6f6cdc41_cd0b40ef","updated":"2023-06-06 12:54:11.000000000","message":"LGTM, could you also help review this one[0]? should we backport this change to stable branch？ thanks very much.\n[0]https://review.opendev.org/c/openstack/trove/+/883737","commit_id":"56faa1c4b5a06b33e3b877c8faf8c76edc02e411"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"3c03517c10f01aa87a09e09fa9d7d0655972e063","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"240a3d06_b9e48137","updated":"2023-06-14 13:03:32.000000000","message":"this is a bug fix, we also need a release note.","commit_id":"56faa1c4b5a06b33e3b877c8faf8c76edc02e411"},{"author":{"_account_id":31737,"name":"Hirotaka Wakabayashi","email":"hiwkby@yahoo.com","username":"hiwkby"},"change_message_id":"538e45370ee7a7e403d2748b691e55bee3a99ae5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"9fe6520f_215431d6","in_reply_to":"6f6cdc41_cd0b40ef","updated":"2023-06-13 20:49:32.000000000","message":"Hi Wu! Thank you very much for your comment. Sure I will review #883737. We should apply this patch to stable branch. I will cherry-pick the patch soon. Thanks!","commit_id":"56faa1c4b5a06b33e3b877c8faf8c76edc02e411"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"df2c88c1799e71f4ac6d9c101d0e4cf4b408d615","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"77d464b3_bd15d1d1","updated":"2023-06-16 08:46:01.000000000","message":"hi, As i don\u0027t know when will you update this ps, and this bug seems to be a urgent bug,  I submitted a new patch[0] to fix this bug, the corresponding CI[1] test for the patch already passed in the zuul.\n\n[0]:https://review.opendev.org/c/openstack/trove/+/886241\n[1]: https://review.opendev.org/c/openstack/trove/+/886042\n\nthis PR can focus on the unittest part which i don\u0027t do.","commit_id":"59338ae3223192cfdba801fe074ba469d8d70cc2"},{"author":{"_account_id":31737,"name":"Hirotaka Wakabayashi","email":"hiwkby@yahoo.com","username":"hiwkby"},"change_message_id":"4ccd88b95b8bac3482168267fae572e44f29feb6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"3409fed0_0befcf81","updated":"2023-08-04 08:17:48.000000000","message":"Hello Wu and Bo, could you please check this?","commit_id":"4d817231f7c091b2c1fffdd37915c89f7e369c28"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"77315bd88e3d8ed37f5c82e25d93c08ad11b18b0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"cb47825d_79d09831","updated":"2023-08-04 09:31:03.000000000","message":"no problem","commit_id":"4d817231f7c091b2c1fffdd37915c89f7e369c28"},{"author":{"_account_id":31737,"name":"Hirotaka Wakabayashi","email":"hiwkby@yahoo.com","username":"hiwkby"},"change_message_id":"fa546a3aef91e516013beb02e6aa7201fd9999ab","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"ba62bd4f_10f5756e","updated":"2023-08-09 07:34:03.000000000","message":"Thanks for the review!","commit_id":"d2602bbf3800a19231a5fb7e0c84be4e2144aefc"}],"requirements.txt":[{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"5a1073532d1109be393ee89dcf7f10ba2207b2ee","unresolved":true,"context_lines":[{"line_number":47,"context_line":"oslo.policy\u003e\u003d3.6.0 # Apache-2.0"},{"line_number":48,"context_line":"diskimage-builder!\u003d1.6.0,!\u003d1.7.0,!\u003d1.7.1,\u003e\u003d1.1.2 # Apache-2.0"},{"line_number":49,"context_line":"docker\u003e\u003d4.2.0 # Apache-2.0"},{"line_number":50,"context_line":"psycopg2-binary\u003e\u003d2.9.6 # LGPL/ZPL"},{"line_number":51,"context_line":"semantic-version\u003e\u003d2.7.0 # BSD"},{"line_number":52,"context_line":"oslo.cache\u003e\u003d1.26.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":1,"id":"0d4ef9e9_161379fc","line":50,"updated":"2023-06-14 13:45:15.000000000","message":"why do we need to upgrade version to 2.9.6 as the minimum version? Isn\u0027t this change backward compatible with the 2.6.2 version ?","commit_id":"56faa1c4b5a06b33e3b877c8faf8c76edc02e411"},{"author":{"_account_id":31737,"name":"Hirotaka Wakabayashi","email":"hiwkby@yahoo.com","username":"hiwkby"},"change_message_id":"30d3e5ffe74b375d1254e1525e87028347086f58","unresolved":false,"context_lines":[{"line_number":47,"context_line":"oslo.policy\u003e\u003d3.6.0 # Apache-2.0"},{"line_number":48,"context_line":"diskimage-builder!\u003d1.6.0,!\u003d1.7.0,!\u003d1.7.1,\u003e\u003d1.1.2 # Apache-2.0"},{"line_number":49,"context_line":"docker\u003e\u003d4.2.0 # Apache-2.0"},{"line_number":50,"context_line":"psycopg2-binary\u003e\u003d2.9.6 # LGPL/ZPL"},{"line_number":51,"context_line":"semantic-version\u003e\u003d2.7.0 # BSD"},{"line_number":52,"context_line":"oslo.cache\u003e\u003d1.26.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":1,"id":"c74dd2b6_c74033d3","line":50,"in_reply_to":"0d4ef9e9_161379fc","updated":"2023-06-14 20:50:54.000000000","message":"Hi Wu, Thank you for the comment. I think this change keeps compatibility because psycopg supports context manager by using connection object with `with` statement since psycopg-2.5.0 version.\nhttps://www.psycopg.org/docs/news.html#what-s-new-in-psycopg-2-5\n\nI think we probably should not apply the patches for requirements.txt against the stable branches because that might break the module dependencies.","commit_id":"56faa1c4b5a06b33e3b877c8faf8c76edc02e411"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"16c04c8daf63e7990c3099fca013f6a6e5a1b9f3","unresolved":false,"context_lines":[{"line_number":47,"context_line":"oslo.policy\u003e\u003d3.6.0 # Apache-2.0"},{"line_number":48,"context_line":"diskimage-builder!\u003d1.6.0,!\u003d1.7.0,!\u003d1.7.1,\u003e\u003d1.1.2 # Apache-2.0"},{"line_number":49,"context_line":"docker\u003e\u003d4.2.0 # Apache-2.0"},{"line_number":50,"context_line":"psycopg2-binary\u003e\u003d2.9.6 # LGPL/ZPL"},{"line_number":51,"context_line":"semantic-version\u003e\u003d2.7.0 # BSD"},{"line_number":52,"context_line":"oslo.cache\u003e\u003d1.26.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":1,"id":"70f52385_29ea6820","line":50,"in_reply_to":"c74dd2b6_c74033d3","updated":"2023-06-15 01:56:16.000000000","message":"yes, I think this change doesn\u0027t break compatibility too. so we don\u0027t need to upgrade to the 2.9.6 version. version in here just a minimum version. in most cases, pip will install the latest version against the requirement[0].\n[0]: https://github.com/openstack/requirements/blob/master/upper-constraints.txt","commit_id":"56faa1c4b5a06b33e3b877c8faf8c76edc02e411"}],"trove/guestagent/datastore/postgres/service.py":[{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"3c03517c10f01aa87a09e09fa9d7d0655972e063","unresolved":true,"context_lines":[{"line_number":770,"context_line":"    def _execute_stmt(self, statement, identifiers, data_values, fetch,"},{"line_number":771,"context_line":"                      autocommit\u003dFalse):"},{"line_number":772,"context_line":"        cmd \u003d self._bind(statement, identifiers)"},{"line_number":773,"context_line":"        connection \u003d None"},{"line_number":774,"context_line":"        try:"},{"line_number":775,"context_line":"            connection \u003d psycopg2.connect(self.connect_str)"},{"line_number":776,"context_line":"            connection.autocommit \u003d autocommit"}],"source_content_type":"text/x-python","patch_set":1,"id":"ea908d3a_03e80d50","line":773,"range":{"start_line":773,"start_character":8,"end_line":773,"end_character":25},"updated":"2023-06-14 13:03:32.000000000","message":"Actually, I don\u0027t understand why we write `connection \u003d None` here, if the `psycopg2.connect(self.connect_str)` line executed failed, then we should run into the finally statement, so connection.close should raise an error like: None type has no close method. i just prefer to add `connection \u003d psycopg2.connect(self.connect_str)` out of the try statement. and close this connection later.","commit_id":"56faa1c4b5a06b33e3b877c8faf8c76edc02e411"},{"author":{"_account_id":31737,"name":"Hirotaka Wakabayashi","email":"hiwkby@yahoo.com","username":"hiwkby"},"change_message_id":"30d3e5ffe74b375d1254e1525e87028347086f58","unresolved":false,"context_lines":[{"line_number":770,"context_line":"    def _execute_stmt(self, statement, identifiers, data_values, fetch,"},{"line_number":771,"context_line":"                      autocommit\u003dFalse):"},{"line_number":772,"context_line":"        cmd \u003d self._bind(statement, identifiers)"},{"line_number":773,"context_line":"        connection \u003d None"},{"line_number":774,"context_line":"        try:"},{"line_number":775,"context_line":"            connection \u003d psycopg2.connect(self.connect_str)"},{"line_number":776,"context_line":"            connection.autocommit \u003d autocommit"}],"source_content_type":"text/x-python","patch_set":1,"id":"d7a7d00c_c8d44e29","line":773,"range":{"start_line":773,"start_character":8,"end_line":773,"end_character":25},"in_reply_to":"ea908d3a_03e80d50","updated":"2023-06-14 20:50:54.000000000","message":"Hi Wu, Thank you for the comment. psycopg implements the Exception class[1] In compliance with the DB API 2.0 and we can use try-catch clause to dump error messages to clarify the reason for the error. \n\n--\n1: https://www.psycopg.org/docs/module.html#exceptions","commit_id":"56faa1c4b5a06b33e3b877c8faf8c76edc02e411"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"16c04c8daf63e7990c3099fca013f6a6e5a1b9f3","unresolved":true,"context_lines":[{"line_number":770,"context_line":"    def _execute_stmt(self, statement, identifiers, data_values, fetch,"},{"line_number":771,"context_line":"                      autocommit\u003dFalse):"},{"line_number":772,"context_line":"        cmd \u003d self._bind(statement, identifiers)"},{"line_number":773,"context_line":"        connection \u003d None"},{"line_number":774,"context_line":"        try:"},{"line_number":775,"context_line":"            connection \u003d psycopg2.connect(self.connect_str)"},{"line_number":776,"context_line":"            connection.autocommit \u003d autocommit"}],"source_content_type":"text/x-python","patch_set":3,"id":"f7baa3b0_982b273e","line":773,"updated":"2023-06-15 01:56:16.000000000","message":"I tested this patch in CI [0] and it failed. though we can use try-except statement here, but it seems that if `psycopg2.Error` happened, we only print a error log and do nothing else. we don\u0027t raise this error to the caller which i think we should do. this makes no sense for me. original error can be found in the trove-taskmanager log already.\n[0]https://zuul.opendev.org/t/openstack/build/8e877a7accba47c89327d2568932cd7d","commit_id":"59338ae3223192cfdba801fe074ba469d8d70cc2"},{"author":{"_account_id":31737,"name":"Hirotaka Wakabayashi","email":"hiwkby@yahoo.com","username":"hiwkby"},"change_message_id":"4ccd88b95b8bac3482168267fae572e44f29feb6","unresolved":false,"context_lines":[{"line_number":770,"context_line":"    def _execute_stmt(self, statement, identifiers, data_values, fetch,"},{"line_number":771,"context_line":"                      autocommit\u003dFalse):"},{"line_number":772,"context_line":"        cmd \u003d self._bind(statement, identifiers)"},{"line_number":773,"context_line":"        connection \u003d None"},{"line_number":774,"context_line":"        try:"},{"line_number":775,"context_line":"            connection \u003d psycopg2.connect(self.connect_str)"},{"line_number":776,"context_line":"            connection.autocommit \u003d autocommit"}],"source_content_type":"text/x-python","patch_set":3,"id":"77ff00cc_d1d0b5ec","line":773,"in_reply_to":"f7baa3b0_982b273e","updated":"2023-08-04 08:17:48.000000000","message":"Done","commit_id":"59338ae3223192cfdba801fe074ba469d8d70cc2"}]}
