)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"ecb69c6e19e2adf04445b39a645e72163c6b8323","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"32143d63_94ec7851","updated":"2023-06-19 14:27:24.000000000","message":"Path looks quite fair to me, some small comments though.","commit_id":"afa7049f789f823ca20a845d4a044c1b618c7533"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"4d4bc5cedb82c0d855f6ae7a9cef70a2dbe9585d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"5997bdcc_f54c351f","updated":"2023-06-20 12:14:01.000000000","message":"Actually, it would be awesome to also write a release note, using reno: https://docs.openstack.org/reno/latest/user/usage.html\n\nAs this change introduces a new feature. This can be done in a follow-up patch as well.","commit_id":"8a372ff1b1b097c56461326e878fc8e31a9809af"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"86c35a0a365cd4116b35939b921fc5478fcfcc89","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ab005a1c_71507b7c","updated":"2023-06-20 10:00:43.000000000","message":"LGTM","commit_id":"8a372ff1b1b097c56461326e878fc8e31a9809af"},{"author":{"_account_id":34150,"name":"Simon Hensel","email":"simon.hensel@inovex.de","username":"shensel"},"change_message_id":"e92970a9d96da0ce30cf61e7c78b21e4c717d953","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"d6c13af6_5816ee95","updated":"2023-06-20 09:05:11.000000000","message":"Some comments addressing the review.","commit_id":"8a372ff1b1b097c56461326e878fc8e31a9809af"},{"author":{"_account_id":34150,"name":"Simon Hensel","email":"simon.hensel@inovex.de","username":"shensel"},"change_message_id":"10402d7189d27ddc3f476768ff92f3fd41b91e6b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c6cb34e7_725fe9fe","in_reply_to":"5997bdcc_f54c351f","updated":"2023-06-20 13:46:00.000000000","message":"Included the release notes as requested. Thanks for the fast review!","commit_id":"8a372ff1b1b097c56461326e878fc8e31a9809af"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"da2c7a8973f39738d5136943d1024ba9aecb95a0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"0900ea41_3574bd81","updated":"2023-06-20 13:38:24.000000000","message":"Thanks for adding a note!","commit_id":"60009ed7cebe9c082592fd564b1577068ef94b6c"},{"author":{"_account_id":32755,"name":"Christian Rohmann","email":"christian.rohmann@inovex.de","username":"frittentheke"},"change_message_id":"238290bb72f73c0b1ac4452ebca40b592541100b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"9d69c555_c49eeb4b","updated":"2023-06-27 12:47:59.000000000","message":"recheck","commit_id":"60009ed7cebe9c082592fd564b1577068ef94b6c"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"bd87459bf543ebd13b9019f5dc198d066a7c5fc1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"a0678309_2fecb582","updated":"2023-06-26 16:03:48.000000000","message":"recheck rocky intermittent failure on tempest","commit_id":"60009ed7cebe9c082592fd564b1577068ef94b6c"}],"templates/mariabackup_script.py.j2":[{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"ecb69c6e19e2adf04445b39a645e72163c6b8323","unresolved":true,"context_lines":[{"line_number":37,"context_line":"    parser.add_argument("},{"line_number":38,"context_line":"        \"--compress\","},{"line_number":39,"context_line":"        dest\u003d\"compress_flag\","},{"line_number":40,"context_line":"        default\u003dFalse,"},{"line_number":41,"context_line":"        type\u003deval,"},{"line_number":42,"context_line":"        choices\u003d[True, False],"},{"line_number":43,"context_line":"        help\u003d\"Flag to compress created backups\","},{"line_number":44,"context_line":"        )"},{"line_number":45,"context_line":"    parser.add_argument("}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"e4ae6173_cf766314","line":42,"range":{"start_line":40,"start_character":0,"end_line":42,"end_character":30},"updated":"2023-06-19 14:27:24.000000000","message":"Shouldn\u0027t be just `action\u003d\u0027store_true\u0027`? [1]\n\n[1] https://docs.python.org/3/library/argparse.html#action","commit_id":"afa7049f789f823ca20a845d4a044c1b618c7533"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"86c35a0a365cd4116b35939b921fc5478fcfcc89","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    parser.add_argument("},{"line_number":38,"context_line":"        \"--compress\","},{"line_number":39,"context_line":"        dest\u003d\"compress_flag\","},{"line_number":40,"context_line":"        default\u003dFalse,"},{"line_number":41,"context_line":"        type\u003deval,"},{"line_number":42,"context_line":"        choices\u003d[True, False],"},{"line_number":43,"context_line":"        help\u003d\"Flag to compress created backups\","},{"line_number":44,"context_line":"        )"},{"line_number":45,"context_line":"    parser.add_argument("}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"b9710c70_49891a9b","line":42,"range":{"start_line":40,"start_character":0,"end_line":42,"end_character":30},"in_reply_to":"c5f5c920_2dccf6a1","updated":"2023-06-20 10:00:43.000000000","message":"Ack","commit_id":"afa7049f789f823ca20a845d4a044c1b618c7533"},{"author":{"_account_id":34150,"name":"Simon Hensel","email":"simon.hensel@inovex.de","username":"shensel"},"change_message_id":"e92970a9d96da0ce30cf61e7c78b21e4c717d953","unresolved":true,"context_lines":[{"line_number":37,"context_line":"    parser.add_argument("},{"line_number":38,"context_line":"        \"--compress\","},{"line_number":39,"context_line":"        dest\u003d\"compress_flag\","},{"line_number":40,"context_line":"        default\u003dFalse,"},{"line_number":41,"context_line":"        type\u003deval,"},{"line_number":42,"context_line":"        choices\u003d[True, False],"},{"line_number":43,"context_line":"        help\u003d\"Flag to compress created backups\","},{"line_number":44,"context_line":"        )"},{"line_number":45,"context_line":"    parser.add_argument("}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"c5f5c920_2dccf6a1","line":42,"range":{"start_line":40,"start_character":0,"end_line":42,"end_character":30},"in_reply_to":"e4ae6173_cf766314","updated":"2023-06-20 09:05:11.000000000","message":"Usually that is true, however this approach makes it a bit easier to template the --compress flag into the Ansible task.\nThis way, we can use --compress\u003dTrue|False (which is not possible with store_true) and template the value of the Ansible variable directly. Whereas otherwise we would need to rely on Ansibles omit logic to decide whether to compress backups or not.","commit_id":"afa7049f789f823ca20a845d4a044c1b618c7533"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"ecb69c6e19e2adf04445b39a645e72163c6b8323","unresolved":false,"context_lines":[{"line_number":127,"context_line":"            mariabackup_run \u003d Popen("},{"line_number":128,"context_line":"            [\"/usr/bin/mariabackup\"] + extra_mariabackup_args + [\"--backup\", \"--stream\u003dxbstream\", \"--extra-lsndir\u003d\"+os.path.normpath(dest+\"/\"+full_backup_filename+curtime)], stdout\u003dPIPE, stderr\u003derr"},{"line_number":129,"context_line":"            )"},{"line_number":130,"context_line":"            compressed_backup \u003d open(os.path.normpath(dest+\"/\"+full_backup_filename+curtime+\"/\"+full_backup_filename+curtime), \"wb\")"},{"line_number":131,"context_line":"            run([compressor], stdin\u003dmariabackup_run.stdout, stdout\u003dcompressed_backup)"},{"line_number":132,"context_line":"            mariabackup_run.wait()"},{"line_number":133,"context_line":"            mariabackup_res \u003d mariabackup_run.communicate()"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"5d6df1f5_91a3b57f","line":130,"range":{"start_line":130,"start_character":37,"end_line":130,"end_character":124},"updated":"2023-06-19 14:27:24.000000000","message":"Not sure how much sense it makes to create a single file per directory, but ok... Frankly speaking, I would just create compressed files in dest\n\nOn other note it would make sense to me to add extension to the compressed file, but I totally see how it adds up complexity.","commit_id":"afa7049f789f823ca20a845d4a044c1b618c7533"},{"author":{"_account_id":34150,"name":"Simon Hensel","email":"simon.hensel@inovex.de","username":"shensel"},"change_message_id":"e92970a9d96da0ce30cf61e7c78b21e4c717d953","unresolved":false,"context_lines":[{"line_number":127,"context_line":"            mariabackup_run \u003d Popen("},{"line_number":128,"context_line":"            [\"/usr/bin/mariabackup\"] + extra_mariabackup_args + [\"--backup\", \"--stream\u003dxbstream\", \"--extra-lsndir\u003d\"+os.path.normpath(dest+\"/\"+full_backup_filename+curtime)], stdout\u003dPIPE, stderr\u003derr"},{"line_number":129,"context_line":"            )"},{"line_number":130,"context_line":"            compressed_backup \u003d open(os.path.normpath(dest+\"/\"+full_backup_filename+curtime+\"/\"+full_backup_filename+curtime), \"wb\")"},{"line_number":131,"context_line":"            run([compressor], stdin\u003dmariabackup_run.stdout, stdout\u003dcompressed_backup)"},{"line_number":132,"context_line":"            mariabackup_run.wait()"},{"line_number":133,"context_line":"            mariabackup_res \u003d mariabackup_run.communicate()"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"05f56dc0_e9f7f143","line":130,"range":{"start_line":130,"start_character":37,"end_line":130,"end_character":124},"in_reply_to":"5d6df1f5_91a3b57f","updated":"2023-06-20 09:05:11.000000000","message":"Dumping the files directly into the root backup dir is also possible.\nSince we store backup metadata alongside the archives (the two files xtrabackup_checkpoints and xtrabackup_info), having a separate directory for each backup helps keeping a cleaner directory structure.\n\nFiles extensions are omitted to keep the script simpler, also since Unix systems don\u0027t really care about them.","commit_id":"afa7049f789f823ca20a845d4a044c1b618c7533"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"ecb69c6e19e2adf04445b39a645e72163c6b8323","unresolved":true,"context_lines":[{"line_number":135,"context_line":"                print(mariabackup_res[1])"},{"line_number":136,"context_line":"            compressed_backup.close()"},{"line_number":137,"context_line":"        else:"},{"line_number":138,"context_line":"            err \u003d open(os.path.normpath(dest+\"/backup.log\"), \"w\")"},{"line_number":139,"context_line":"            #Creating full backup"},{"line_number":140,"context_line":"            mariabackup_run \u003d Popen("},{"line_number":141,"context_line":"            [\"/usr/bin/mariabackup\"] + extra_mariabackup_args + [\"--backup\", \"--target-dir\u003d\"+os.path.normpath(dest+\"/\"+full_backup_filename+curtime)], stdout\u003dNone, stderr\u003derr"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"7f8c3e3c_9c049fe2","line":138,"range":{"start_line":138,"start_character":12,"end_line":138,"end_character":65},"updated":"2023-06-19 14:27:24.000000000","message":"looks like it\u0027s not needed here as it\u0027s already defined before if?","commit_id":"afa7049f789f823ca20a845d4a044c1b618c7533"},{"author":{"_account_id":34150,"name":"Simon Hensel","email":"simon.hensel@inovex.de","username":"shensel"},"change_message_id":"e92970a9d96da0ce30cf61e7c78b21e4c717d953","unresolved":false,"context_lines":[{"line_number":135,"context_line":"                print(mariabackup_res[1])"},{"line_number":136,"context_line":"            compressed_backup.close()"},{"line_number":137,"context_line":"        else:"},{"line_number":138,"context_line":"            err \u003d open(os.path.normpath(dest+\"/backup.log\"), \"w\")"},{"line_number":139,"context_line":"            #Creating full backup"},{"line_number":140,"context_line":"            mariabackup_run \u003d Popen("},{"line_number":141,"context_line":"            [\"/usr/bin/mariabackup\"] + extra_mariabackup_args + [\"--backup\", \"--target-dir\u003d\"+os.path.normpath(dest+\"/\"+full_backup_filename+curtime)], stdout\u003dNone, stderr\u003derr"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"0e2a0cbf_1b8c14fa","line":138,"range":{"start_line":138,"start_character":12,"end_line":138,"end_character":65},"in_reply_to":"7f8c3e3c_9c049fe2","updated":"2023-06-20 09:05:11.000000000","message":"Ack","commit_id":"afa7049f789f823ca20a845d4a044c1b618c7533"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"ecb69c6e19e2adf04445b39a645e72163c6b8323","unresolved":true,"context_lines":[{"line_number":188,"context_line":"                print(mariabackup_res[1])"},{"line_number":189,"context_line":"            compressed_backup.close()"},{"line_number":190,"context_line":"        else:"},{"line_number":191,"context_line":"            err \u003d open(os.path.normpath(dest+\"/increment.err\"), \"w\")"},{"line_number":192,"context_line":"            #Creating incremental backup"},{"line_number":193,"context_line":"            mariabackup_run \u003d Popen("},{"line_number":194,"context_line":"            [\"/usr/bin/mariabackup\"] + extra_mariabackup_args + [\"--backup\", \"--target-dir\u003d\"+os.path.normpath(dest+\"/\"+increment_backup_filename+curtime), \"--incremental-basedir\u003d\"+basedir], stdout\u003dNone, stderr\u003derr"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"3d563eb4_33e85b9e","line":191,"range":{"start_line":191,"start_character":12,"end_line":191,"end_character":68},"updated":"2023-06-19 14:27:24.000000000","message":"this also seems to be not needed.","commit_id":"afa7049f789f823ca20a845d4a044c1b618c7533"},{"author":{"_account_id":34150,"name":"Simon Hensel","email":"simon.hensel@inovex.de","username":"shensel"},"change_message_id":"e92970a9d96da0ce30cf61e7c78b21e4c717d953","unresolved":false,"context_lines":[{"line_number":188,"context_line":"                print(mariabackup_res[1])"},{"line_number":189,"context_line":"            compressed_backup.close()"},{"line_number":190,"context_line":"        else:"},{"line_number":191,"context_line":"            err \u003d open(os.path.normpath(dest+\"/increment.err\"), \"w\")"},{"line_number":192,"context_line":"            #Creating incremental backup"},{"line_number":193,"context_line":"            mariabackup_run \u003d Popen("},{"line_number":194,"context_line":"            [\"/usr/bin/mariabackup\"] + extra_mariabackup_args + [\"--backup\", \"--target-dir\u003d\"+os.path.normpath(dest+\"/\"+increment_backup_filename+curtime), \"--incremental-basedir\u003d\"+basedir], stdout\u003dNone, stderr\u003derr"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"58693a4a_5dbb4ae9","line":191,"range":{"start_line":191,"start_character":12,"end_line":191,"end_character":68},"in_reply_to":"3d563eb4_33e85b9e","updated":"2023-06-20 09:05:11.000000000","message":"Ack","commit_id":"afa7049f789f823ca20a845d4a044c1b618c7533"}]}
