)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":37313,"name":"Alma MAILLET-CONTOZ","display_name":"Alma MAILLET-CONTOZ","email":"alma.maillet-contoz@infomaniak.com","username":"nicolasmc","status":"Intern SRE at Infomaniak"},"change_message_id":"55ab1247270febb09c9d13c4d9858f898bfc4a1b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"3a90e32b_a38d6491","updated":"2026-04-27 09:50:10.000000000","message":"LGTM!","commit_id":"74672243a712c73d40e483129537c9571844315d"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"e0fd3193c4609d37ff041e15b860234347e71c07","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d73f5af2_7af4f541","updated":"2026-05-13 13:29:55.000000000","message":"Seems like a very sensible change","commit_id":"74672243a712c73d40e483129537c9571844315d"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"a2937caf75abba6e73782239916ea291712015c6","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"a1c4b5d9_d2194274","updated":"2026-09-07 08:38:32.000000000","message":"actually I\u0027m not sure yet about the federation failure in the test change, let\u0027s wait for fresh results there","commit_id":"96767cbc15105a11b0f3fde3bf08a2195a188d90"},{"author":{"_account_id":37203,"name":"Bertrand Lanson","display_name":"Bertrand Lanson","email":"bertrand.lanson@infomaniak.com","username":"lanson","status":"Infomaniak Network SA"},"change_message_id":"5b53b36877de75bc4602948eb055dd9f3a837b06","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"c706b207_b7426a12","updated":"2026-09-23 13:37:23.000000000","message":"feature freeze but should be ok","commit_id":"96767cbc15105a11b0f3fde3bf08a2195a188d90"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"398f6e5c0eba9d98a3017ab47aa69b4ea1966079","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"32fb70fd_9fe82148","updated":"2026-09-07 08:36:56.000000000","message":"lgtm, thx for the updates","commit_id":"96767cbc15105a11b0f3fde3bf08a2195a188d90"}],"ansible/module_utils/kolla_container_worker.py":[{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"7c679b70f4c428880d54d5e5bf4e5851baa70e33","unresolved":true,"context_lines":[{"line_number":721,"context_line":"            status \u003d health.get(\u0027Status\u0027)"},{"line_number":722,"context_line":"            if status \u003d\u003d \u0027healthy\u0027:"},{"line_number":723,"context_line":"                return"},{"line_number":724,"context_line":"            if status \u003d\u003d \u0027unhealthy\u0027:"},{"line_number":725,"context_line":"                self.module.fail_json("},{"line_number":726,"context_line":"                    msg\u003d\"Container {} reported unhealthy\".format("},{"line_number":727,"context_line":"                        self.params.get(\u0027name\u0027))"},{"line_number":728,"context_line":"                )"},{"line_number":729,"context_line":"            sleep(interval)"},{"line_number":730,"context_line":"            elapsed +\u003d interval"},{"line_number":731,"context_line":""},{"line_number":732,"context_line":"        self.module.fail_json("},{"line_number":733,"context_line":"            msg\u003d\"Timed out waiting for container {} to become \""}],"source_content_type":"text/x-python","patch_set":2,"id":"c5418412_1259e539","line":730,"range":{"start_line":724,"start_character":0,"end_line":730,"end_character":31},"updated":"2026-07-29 14:40:20.000000000","message":"Shouldn\u0027t be better wait for timeout if unhealthy will be still present and not fail right after it\u0027s unhealthy ? \n\nSometimes I\u0027ve seen ... starting -\u003e unhealthy (for sec for example) -\u003e stable healthy ...\n\nBut it\u0027s just a question ...","commit_id":"2fdc47831a5a9eade2b55c84912b3c8fe36d5a43"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"398f6e5c0eba9d98a3017ab47aa69b4ea1966079","unresolved":false,"context_lines":[{"line_number":721,"context_line":"            status \u003d health.get(\u0027Status\u0027)"},{"line_number":722,"context_line":"            if status \u003d\u003d \u0027healthy\u0027:"},{"line_number":723,"context_line":"                return"},{"line_number":724,"context_line":"            if status \u003d\u003d \u0027unhealthy\u0027:"},{"line_number":725,"context_line":"                self.module.fail_json("},{"line_number":726,"context_line":"                    msg\u003d\"Container {} reported unhealthy\".format("},{"line_number":727,"context_line":"                        self.params.get(\u0027name\u0027))"},{"line_number":728,"context_line":"                )"},{"line_number":729,"context_line":"            sleep(interval)"},{"line_number":730,"context_line":"            elapsed +\u003d interval"},{"line_number":731,"context_line":""},{"line_number":732,"context_line":"        self.module.fail_json("},{"line_number":733,"context_line":"            msg\u003d\"Timed out waiting for container {} to become \""}],"source_content_type":"text/x-python","patch_set":2,"id":"75db0c95_aea84cda","line":730,"range":{"start_line":724,"start_character":0,"end_line":730,"end_character":31},"in_reply_to":"0be8112c_30ed93c7","updated":"2026-09-07 08:36:56.000000000","message":"Acknowledged","commit_id":"2fdc47831a5a9eade2b55c84912b3c8fe36d5a43"},{"author":{"_account_id":37203,"name":"Bertrand Lanson","display_name":"Bertrand Lanson","email":"bertrand.lanson@infomaniak.com","username":"lanson","status":"Infomaniak Network SA"},"change_message_id":"09f62890dd6dda0763911dfc3af8fabcffa34672","unresolved":true,"context_lines":[{"line_number":721,"context_line":"            status \u003d health.get(\u0027Status\u0027)"},{"line_number":722,"context_line":"            if status \u003d\u003d \u0027healthy\u0027:"},{"line_number":723,"context_line":"                return"},{"line_number":724,"context_line":"            if status \u003d\u003d \u0027unhealthy\u0027:"},{"line_number":725,"context_line":"                self.module.fail_json("},{"line_number":726,"context_line":"                    msg\u003d\"Container {} reported unhealthy\".format("},{"line_number":727,"context_line":"                        self.params.get(\u0027name\u0027))"},{"line_number":728,"context_line":"                )"},{"line_number":729,"context_line":"            sleep(interval)"},{"line_number":730,"context_line":"            elapsed +\u003d interval"},{"line_number":731,"context_line":""},{"line_number":732,"context_line":"        self.module.fail_json("},{"line_number":733,"context_line":"            msg\u003d\"Timed out waiting for container {} to become \""}],"source_content_type":"text/x-python","patch_set":2,"id":"0be8112c_30ed93c7","line":730,"range":{"start_line":724,"start_character":0,"end_line":730,"end_character":31},"in_reply_to":"48cb98d1_fa0e40c5","updated":"2026-09-07 07:27:18.000000000","message":"I can see the usefulness of declaring a behavior variable like fail_unhealthy or something to allow both types of checks. but I\u0027m worried that this will just hide the issue under the rug and we\u0027ll never get around to fixing those healthchecks. + the implementation of the `wait_For_healthy` is completely optional for now. So if it does not work because the healthcheck flaps, we can simply disable it ?\n\nI guess we should start as-is, and see how bad things get ?","commit_id":"2fdc47831a5a9eade2b55c84912b3c8fe36d5a43"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"cf1c0c6047f2fb0ab48197205e28d4a760d9badd","unresolved":true,"context_lines":[{"line_number":721,"context_line":"            status \u003d health.get(\u0027Status\u0027)"},{"line_number":722,"context_line":"            if status \u003d\u003d \u0027healthy\u0027:"},{"line_number":723,"context_line":"                return"},{"line_number":724,"context_line":"            if status \u003d\u003d \u0027unhealthy\u0027:"},{"line_number":725,"context_line":"                self.module.fail_json("},{"line_number":726,"context_line":"                    msg\u003d\"Container {} reported unhealthy\".format("},{"line_number":727,"context_line":"                        self.params.get(\u0027name\u0027))"},{"line_number":728,"context_line":"                )"},{"line_number":729,"context_line":"            sleep(interval)"},{"line_number":730,"context_line":"            elapsed +\u003d interval"},{"line_number":731,"context_line":""},{"line_number":732,"context_line":"        self.module.fail_json("},{"line_number":733,"context_line":"            msg\u003d\"Timed out waiting for container {} to become \""}],"source_content_type":"text/x-python","patch_set":2,"id":"48cb98d1_fa0e40c5","line":730,"range":{"start_line":724,"start_character":0,"end_line":730,"end_character":31},"in_reply_to":"7a846df0_3356de66","updated":"2026-08-19 15:39:38.000000000","message":"I tend to agree on one hand, on the other, the function is called `wait_for_healthy` and not `wait_for_no_longer_starting`, so I\u0027m not sure which one is better. maybe we can test it with the current code first and if errors happen, see if we can improve the healthcheck instead? otherwise we might need to add another variable `treat_unhealthy_as_fail`?","commit_id":"2fdc47831a5a9eade2b55c84912b3c8fe36d5a43"},{"author":{"_account_id":37203,"name":"Bertrand Lanson","display_name":"Bertrand Lanson","email":"bertrand.lanson@infomaniak.com","username":"lanson","status":"Infomaniak Network SA"},"change_message_id":"423fe3c7a600e8555f22e02a2f60ad6d1fe87abe","unresolved":true,"context_lines":[{"line_number":721,"context_line":"            status \u003d health.get(\u0027Status\u0027)"},{"line_number":722,"context_line":"            if status \u003d\u003d \u0027healthy\u0027:"},{"line_number":723,"context_line":"                return"},{"line_number":724,"context_line":"            if status \u003d\u003d \u0027unhealthy\u0027:"},{"line_number":725,"context_line":"                self.module.fail_json("},{"line_number":726,"context_line":"                    msg\u003d\"Container {} reported unhealthy\".format("},{"line_number":727,"context_line":"                        self.params.get(\u0027name\u0027))"},{"line_number":728,"context_line":"                )"},{"line_number":729,"context_line":"            sleep(interval)"},{"line_number":730,"context_line":"            elapsed +\u003d interval"},{"line_number":731,"context_line":""},{"line_number":732,"context_line":"        self.module.fail_json("},{"line_number":733,"context_line":"            msg\u003d\"Timed out waiting for container {} to become \""}],"source_content_type":"text/x-python","patch_set":2,"id":"7a846df0_3356de66","line":730,"range":{"start_line":724,"start_character":0,"end_line":730,"end_character":31},"in_reply_to":"c5418412_1259e539","updated":"2026-07-29 20:29:31.000000000","message":"My take on this is that when(if) we enable this feature, it should be optional, to not block deployments if this happens, but the better solution would be to make proper healthchecks that wont flap like what you mention? else we\u0027re just building a feature with a builtin workaround just because the base on which it stands isn\u0027t stable ?","commit_id":"2fdc47831a5a9eade2b55c84912b3c8fe36d5a43"}],"ansible/module_utils/kolla_docker_worker.py":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"cf1c0c6047f2fb0ab48197205e28d4a760d9badd","unresolved":true,"context_lines":[{"line_number":399,"context_line":"                self.systemd.create_unit_file()"},{"line_number":400,"context_line":"                if not self.systemd.start():"},{"line_number":401,"context_line":"                    self.module.fail_json("},{"line_number":402,"context_line":"                        changed\u003dTrue,"},{"line_number":403,"context_line":"                        msg\u003d\"Container timed out\","},{"line_number":404,"context_line":"                        **self.check_container())"},{"line_number":405,"context_line":"                self.wait_for_healthy()"}],"source_content_type":"text/x-python","patch_set":2,"id":"52ba266c_49ac5be3","line":402,"updated":"2026-08-19 15:39:38.000000000","message":"do we need to set this for the failures within the new function, too?","commit_id":"2fdc47831a5a9eade2b55c84912b3c8fe36d5a43"},{"author":{"_account_id":37203,"name":"Bertrand Lanson","display_name":"Bertrand Lanson","email":"bertrand.lanson@infomaniak.com","username":"lanson","status":"Infomaniak Network SA"},"change_message_id":"09f62890dd6dda0763911dfc3af8fabcffa34672","unresolved":false,"context_lines":[{"line_number":399,"context_line":"                self.systemd.create_unit_file()"},{"line_number":400,"context_line":"                if not self.systemd.start():"},{"line_number":401,"context_line":"                    self.module.fail_json("},{"line_number":402,"context_line":"                        changed\u003dTrue,"},{"line_number":403,"context_line":"                        msg\u003d\"Container timed out\","},{"line_number":404,"context_line":"                        **self.check_container())"},{"line_number":405,"context_line":"                self.wait_for_healthy()"}],"source_content_type":"text/x-python","patch_set":2,"id":"5ca33371_eb93f835","line":402,"in_reply_to":"52ba266c_49ac5be3","updated":"2026-09-07 07:27:18.000000000","message":"Done","commit_id":"2fdc47831a5a9eade2b55c84912b3c8fe36d5a43"}]}
