)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"68f823300af7f1cdeff648b598a0ce160087194d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"f46d7875_b363548a","updated":"2021-11-02 10:46:51.000000000","message":"recheck","commit_id":"f34579f89b4df9d89da2652ae442dc6d8e9108d1"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"1ed5b5930abb044493fa2452b4d8345a10f1d383","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"a2aae6da_351166d1","updated":"2022-01-27 10:08:29.000000000","message":"well, in here you tried to fix the parsing issues, I think this is still worthwile to pursue (rebased on the other patch) but I know it needs some work to happen on fixing parsers beforehand","commit_id":"f34579f89b4df9d89da2652ae442dc6d8e9108d1"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"56dc5379fbe0725613949184c8ffd123bf68b75c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"987556dd_7f1d6d91","in_reply_to":"4bb66b42_52890d5c","updated":"2022-01-27 10:31:37.000000000","message":"But we would need to wait for dropping binary to do it in source only - or install using pip nevertheless of the type.","commit_id":"f34579f89b4df9d89da2652ae442dc6d8e9108d1"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"1e5bd2d2c1824c8a0368ac99ae18a6b64cbf1311","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"4bb66b42_52890d5c","in_reply_to":"5e245166_f34cc078","updated":"2022-01-27 10:25:02.000000000","message":"Yup. Also of importance is https://review.opendev.org/c/openstack/kolla-ansible/+/755775 - maybe the best way to solve both having the parsing issues and having to handle them is to switch to native logging. Food for thought.","commit_id":"f34579f89b4df9d89da2652ae442dc6d8e9108d1"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"d13d6b8b4bb813e304df71c7aa7b13be80c26363","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"9f7587f3_25bda3c6","in_reply_to":"987556dd_7f1d6d91","updated":"2022-01-27 10:33:31.000000000","message":"Good catch.","commit_id":"f34579f89b4df9d89da2652ae442dc6d8e9108d1"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"40a9a6fcf23f7afc0b198461fe550d5a3011101c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"5e245166_f34cc078","in_reply_to":"a2aae6da_351166d1","updated":"2022-01-27 10:21:38.000000000","message":"Right, then I\u0027ll restore it to not forget about it ;-)","commit_id":"f34579f89b4df9d89da2652ae442dc6d8e9108d1"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"f6f8f135da0e51ded7aafe9aa90d9c148bff1eaa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"c08b0cb1_924bd628","updated":"2022-04-21 10:20:51.000000000","message":"it\u0027s all happy because\n\ncheck_docker_logs_for_content: command not found","commit_id":"1a4d6339e83fc7da091fc919d681781270615d95"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"00f61518eaeac5d99d5e46ca06863b8958b951d5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":28,"id":"358c1b48_0e635122","updated":"2023-10-03 13:07:51.000000000","message":"lgtm, but my question is still unresolved","commit_id":"cff12bd831d145891a9db9a7b142f8aabdd4c357"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"fbf6630c37ca16b1673fcf8aeb390bc933ac94ec","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":30,"id":"05cdea94_ac95d7a5","updated":"2023-11-23 10:32:00.000000000","message":"recheck - to refresh Zuul output","commit_id":"fe5ace00be0f93fcb73d9ae789725c0cccb65738"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"918becd160f197758d7133afc72e888bad233ff1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":31,"id":"31448ab0_d11344b9","updated":"2023-11-29 09:40:43.000000000","message":"recheck (depends-on backports done so upgrade jobs should pass)","commit_id":"3526a384e2402a21707b9d84c8688313bfed52f1"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e4dbb97f858c3f9a30f2219263d6546656b6e791","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":31,"id":"789730bc_3f4556f3","updated":"2023-11-28 12:52:14.000000000","message":"recheck (relevant backport merged on 2023.1 branch)","commit_id":"3526a384e2402a21707b9d84c8688313bfed52f1"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"fcc9ab6886130e87d27efd1be06a0a66c3c209f3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":32,"id":"7f322d25_5834e234","updated":"2023-11-29 16:42:20.000000000","message":"recheck weird gating errors with python rich module not being importable","commit_id":"48fd20cf02a51ec8257fab58cbfa72318b896974"}],"tests/check-logs.sh":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"a3ff8d5258467c03952590af1a7dcba4546d6f86","unresolved":false,"context_lines":[{"line_number":8,"context_line":"# Enable unbuffered output for Ansible in Jenkins."},{"line_number":9,"context_line":"export PYTHONUNBUFFERED\u003d1"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"declare -a FluentChecks\u003d(\"got incomplete line before first line\" \"pattern not matched\")"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"function check_file_for_level {"},{"line_number":14,"context_line":"    # $1: file"}],"source_content_type":"text/x-sh","patch_set":2,"id":"bf51134e_f15306e1","line":11,"range":{"start_line":11,"start_character":11,"end_line":11,"end_character":23},"updated":"2020-07-23 09:45:51.000000000","message":"nit: we don\u0027t tend to use CamelCase","commit_id":"412091c39b5e02a20013d09f6f976b83a22daecb"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"a3ff8d5258467c03952590af1a7dcba4546d6f86","unresolved":false,"context_lines":[{"line_number":75,"context_line":"echo \"Checking fluentd stdout/stderr logs\""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"for string in ${FluentChecks[@]}; do"},{"line_number":78,"context_line":"    all_file\u003d/tmp/logs/kolla-all-CRITICAL.log"},{"line_number":79,"context_line":"    if check_docker_logs_for_content fluentd $string \u003e/dev/null; then"},{"line_number":80,"context_line":"        any_critical\u003d1"},{"line_number":81,"context_line":"    fi"}],"source_content_type":"text/x-sh","patch_set":2,"id":"bf51134e_91444a1b","line":78,"range":{"start_line":78,"start_character":13,"end_line":78,"end_character":45},"updated":"2020-07-23 09:45:51.000000000","message":"I\u0027d suggest putting it in a separate file, to avoid mixing with OpenStack logs. e.g. fluentd-errors.log","commit_id":"412091c39b5e02a20013d09f6f976b83a22daecb"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a24d71640e4fdf2adbb0f16aa3d192d9ed4aa334","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    check_docker_logs_for_content fluentd $string \u003e\u003e $all_file"},{"line_number":84,"context_line":"    echo \u003e\u003e $all_file"},{"line_number":85,"context_line":"done"},{"line_number":86,"context_line":"    "},{"line_number":87,"context_line":"if [[ $any_critical -eq 1 ]]; then"},{"line_number":88,"context_line":"    echo \"Found critical log messages - failing job.\""},{"line_number":89,"context_line":"    exit 1"}],"source_content_type":"text/x-sh","patch_set":2,"id":"bf51134e_fbfbf9ba","line":86,"updated":"2020-07-22 15:34:47.000000000","message":"linters: E001 Trailing Whitespace","commit_id":"412091c39b5e02a20013d09f6f976b83a22daecb"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"107bdb4c2ce124b7ea6558c504f1ed0194a5fcd5","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        any_critical\u003d1"},{"line_number":81,"context_line":"    fi"},{"line_number":82,"context_line":"    echo \"$string\" \u003e\u003e $fluentd_file"},{"line_number":83,"context_line":"    check_docker_logs_for_content fluentd \"$string\" \u003e\u003e $fluentd_file"},{"line_number":84,"context_line":"    echo \u003e\u003e $fluentd_file"},{"line_number":85,"context_line":"done"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-sh","patch_set":7,"id":"bf51134e_6e1b82c9","line":83,"range":{"start_line":83,"start_character":4,"end_line":83,"end_character":68},"updated":"2020-07-24 09:32:23.000000000","message":"you can just use it in the if","commit_id":"99409ebc66c3f91b4a3640ce71a043d10ccb4155"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"5f9961c423334cb0746aec7dc1b972b3721c9286","unresolved":true,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"for string in \"${fluentchecks[@]}\"; do"},{"line_number":91,"context_line":"    fluentd_file\u003d/tmp/logs/kolla/fluentd-errors.log"},{"line_number":92,"context_line":"    fluentd_log\u003d/var/log/kolla/fluentd/fluentd.log"},{"line_number":93,"context_line":"    if check_docker_logs_for_content fluentd \"$string\" \u003e/dev/null; then"},{"line_number":94,"context_line":"        any_critical\u003d1"},{"line_number":95,"context_line":"        echo \"$string\" \u003e\u003e $fluentd_file"}],"source_content_type":"text/x-sh","patch_set":20,"id":"07aee7cd_0e4d7c61","line":92,"range":{"start_line":92,"start_character":4,"end_line":92,"end_character":15},"updated":"2023-05-24 06:48:41.000000000","message":"not used","commit_id":"f607103a22faf28be2b61243f98d0cfc872bc5f2"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"ae3e5ea5b41a7af721059139f755f31e8e294cfc","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"for string in \"${fluentchecks[@]}\"; do"},{"line_number":91,"context_line":"    fluentd_file\u003d/tmp/logs/kolla/fluentd-errors.log"},{"line_number":92,"context_line":"    fluentd_log\u003d/var/log/kolla/fluentd/fluentd.log"},{"line_number":93,"context_line":"    if check_docker_logs_for_content fluentd \"$string\" \u003e/dev/null; then"},{"line_number":94,"context_line":"        any_critical\u003d1"},{"line_number":95,"context_line":"        echo \"$string\" \u003e\u003e $fluentd_file"}],"source_content_type":"text/x-sh","patch_set":20,"id":"f04ba338_1a16dd91","line":92,"range":{"start_line":92,"start_character":4,"end_line":92,"end_character":15},"in_reply_to":"07aee7cd_0e4d7c61","updated":"2023-05-24 07:49:30.000000000","message":"Done","commit_id":"f607103a22faf28be2b61243f98d0cfc872bc5f2"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"4af97b21caf215286165d45cc981b439d2bc1046","unresolved":true,"context_lines":[{"line_number":26,"context_line":"function check_fluentd_log_file_for_content {"},{"line_number":27,"context_line":"    # $1: file"},{"line_number":28,"context_line":"    # $2: content"},{"line_number":29,"context_line":"    sudo egrep \" $2 \" $1"},{"line_number":30,"context_line":"}"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"function filter_out_expected_critical {"}],"source_content_type":"text/x-sh","patch_set":25,"id":"554bda5f_96ccd370","line":29,"range":{"start_line":29,"start_character":9,"end_line":29,"end_character":14},"updated":"2023-07-31 10:37:35.000000000","message":"there is no regexps in patterns, so may be fgrep should be used here?","commit_id":"098af97cf5e08b88f064734837b52c2bb995625d"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"cffb42e7030798ccec127a1feab42a27cc2ed188","unresolved":true,"context_lines":[{"line_number":26,"context_line":"function check_fluentd_log_file_for_content {"},{"line_number":27,"context_line":"    # $1: file"},{"line_number":28,"context_line":"    # $2: content"},{"line_number":29,"context_line":"    sudo egrep \" $2 \" $1"},{"line_number":30,"context_line":"}"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"function filter_out_expected_critical {"}],"source_content_type":"text/x-sh","patch_set":25,"id":"95f003ea_5544a0fd","line":29,"range":{"start_line":29,"start_character":9,"end_line":29,"end_character":14},"in_reply_to":"0fe81662_395368c2","updated":"2023-11-27 17:18:31.000000000","message":"the correct answer would of course to use `grep -F` or `grep -E` instead of egrep or fgrep. and if there are no regex in the patterns, than `grep -F` is faster.","commit_id":"098af97cf5e08b88f064734837b52c2bb995625d"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"1594eea4b67031033d71b4335f7e0a63f8159fd5","unresolved":true,"context_lines":[{"line_number":26,"context_line":"function check_fluentd_log_file_for_content {"},{"line_number":27,"context_line":"    # $1: file"},{"line_number":28,"context_line":"    # $2: content"},{"line_number":29,"context_line":"    sudo egrep \" $2 \" $1"},{"line_number":30,"context_line":"}"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"function filter_out_expected_critical {"}],"source_content_type":"text/x-sh","patch_set":25,"id":"0fe81662_395368c2","line":29,"range":{"start_line":29,"start_character":9,"end_line":29,"end_character":14},"in_reply_to":"554bda5f_96ccd370","updated":"2023-11-27 16:34:46.000000000","message":"Not a big deal, but both `egrep` and `fgrep` have been deprecated since 2007 [1].\n\n[1] https://lists.gnu.org/archive/html/info-gnu/2022-09/msg00001.html.","commit_id":"098af97cf5e08b88f064734837b52c2bb995625d"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"9d78b205af16d3b9279778176afa5b8ae4ec93c9","unresolved":false,"context_lines":[{"line_number":26,"context_line":"function check_fluentd_log_file_for_content {"},{"line_number":27,"context_line":"    # $1: file"},{"line_number":28,"context_line":"    # $2: content"},{"line_number":29,"context_line":"    sudo egrep \" $2 \" $1"},{"line_number":30,"context_line":"}"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"function filter_out_expected_critical {"}],"source_content_type":"text/x-sh","patch_set":25,"id":"fedc7764_3f9ba034","line":29,"range":{"start_line":29,"start_character":9,"end_line":29,"end_character":14},"in_reply_to":"95f003ea_5544a0fd","updated":"2023-11-29 09:41:10.000000000","message":"This is not the only file that uses egrep or fgrep - so let\u0027s change them all in one go - will raise a patch for this.","commit_id":"098af97cf5e08b88f064734837b52c2bb995625d"}]}
