)]}'
{"ansible/library/kolla_docker.py":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"4781050da194e714a308cec06d01df1452abb4ac","unresolved":true,"context_lines":[{"line_number":586,"context_line":"                return True"},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"    def compare_config(self):"},{"line_number":589,"context_line":"        command \u003d [\u0027/usr/local/bin/kolla_set_configs\u0027, \u0027--check\u0027]"},{"line_number":590,"context_line":"        job \u003d self.dc.exec_create(self.params[\u0027name\u0027], command, user\u003d\u0027root\u0027)"},{"line_number":591,"context_line":"        output \u003d self.dc.exec_start(job)"},{"line_number":592,"context_line":"        exec_inspect \u003d self.dc.exec_inspect(job)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a26fe67_1d9268d4","line":589,"updated":"2021-02-01 11:30:44.000000000","message":"Wondering if we become too reliant on a functioning container here. If for some reason we are unable to exec this command (slow restart loop, etc), we may be prevented from fixing the issue.","commit_id":"c07e5d053fc9a16c62eafdcb912528f740a2130c"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b66539b8d1d90ff28c5d9bb2a617bfe96575d292","unresolved":true,"context_lines":[{"line_number":586,"context_line":"                return True"},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"    def compare_config(self):"},{"line_number":589,"context_line":"        command \u003d [\u0027/usr/local/bin/kolla_set_configs\u0027, \u0027--check\u0027]"},{"line_number":590,"context_line":"        job \u003d self.dc.exec_create(self.params[\u0027name\u0027], command, user\u003d\u0027root\u0027)"},{"line_number":591,"context_line":"        output \u003d self.dc.exec_start(job)"},{"line_number":592,"context_line":"        exec_inspect \u003d self.dc.exec_inspect(job)"}],"source_content_type":"text/x-python","patch_set":2,"id":"d8440e07_2f7b64ab","line":589,"in_reply_to":"2e6c7679_6a9ddc85","updated":"2021-02-01 11:42:58.000000000","message":"In most cases, yes I agree. It\u0027s those tricky cases where the container is in a slow restart loop, or is perhaps broken in some way that prevents an exec. A heavy handed solution would be to treat it as changed if the exec or command fails.","commit_id":"c07e5d053fc9a16c62eafdcb912528f740a2130c"},{"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":"b482715fe5972b399bc63aae6d85dda9ca118c39","unresolved":true,"context_lines":[{"line_number":586,"context_line":"                return True"},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"    def compare_config(self):"},{"line_number":589,"context_line":"        command \u003d [\u0027/usr/local/bin/kolla_set_configs\u0027, \u0027--check\u0027]"},{"line_number":590,"context_line":"        job \u003d self.dc.exec_create(self.params[\u0027name\u0027], command, user\u003d\u0027root\u0027)"},{"line_number":591,"context_line":"        output \u003d self.dc.exec_start(job)"},{"line_number":592,"context_line":"        exec_inspect \u003d self.dc.exec_inspect(job)"}],"source_content_type":"text/x-python","patch_set":2,"id":"2e6c7679_6a9ddc85","line":589,"in_reply_to":"3a26fe67_1d9268d4","updated":"2021-02-01 11:38:07.000000000","message":"compare_container_state should handle this... I think? This one is only ever called when all the other comparisons returned False.","commit_id":"c07e5d053fc9a16c62eafdcb912528f740a2130c"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"be5674b5377032ecf1a45a64cc8b7975a62e45dd","unresolved":true,"context_lines":[{"line_number":586,"context_line":"                return True"},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"    def compare_config(self):"},{"line_number":589,"context_line":"        command \u003d [\u0027/usr/local/bin/kolla_set_configs\u0027, \u0027--check\u0027]"},{"line_number":590,"context_line":"        job \u003d self.dc.exec_create(self.params[\u0027name\u0027], command, user\u003d\u0027root\u0027)"},{"line_number":591,"context_line":"        output \u003d self.dc.exec_start(job)"},{"line_number":592,"context_line":"        exec_inspect \u003d self.dc.exec_inspect(job)"}],"source_content_type":"text/x-python","patch_set":2,"id":"d0196375_b72bee10","line":589,"in_reply_to":"9d1b0a63_9df35076","updated":"2021-02-02 16:53:54.000000000","message":"I expect so. We would probably need to handle that as well.","commit_id":"c07e5d053fc9a16c62eafdcb912528f740a2130c"},{"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":"345da8f0506f637cc9a64276b6e0498817ff4739","unresolved":false,"context_lines":[{"line_number":586,"context_line":"                return True"},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"    def compare_config(self):"},{"line_number":589,"context_line":"        command \u003d [\u0027/usr/local/bin/kolla_set_configs\u0027, \u0027--check\u0027]"},{"line_number":590,"context_line":"        job \u003d self.dc.exec_create(self.params[\u0027name\u0027], command, user\u003d\u0027root\u0027)"},{"line_number":591,"context_line":"        output \u003d self.dc.exec_start(job)"},{"line_number":592,"context_line":"        exec_inspect \u003d self.dc.exec_inspect(job)"}],"source_content_type":"text/x-python","patch_set":2,"id":"f853c50b_89d7f7a0","line":589,"in_reply_to":"d0196375_b72bee10","updated":"2021-02-21 20:30:40.000000000","message":"Done. I have tested it thoroughly and even threw in unit tests!\nAnd a reno! Everyone loves a good reno! 😄","commit_id":"c07e5d053fc9a16c62eafdcb912528f740a2130c"},{"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":"7db8f20d4bc8fc28743091a6c4635d7c89e7512e","unresolved":true,"context_lines":[{"line_number":586,"context_line":"                return True"},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"    def compare_config(self):"},{"line_number":589,"context_line":"        command \u003d [\u0027/usr/local/bin/kolla_set_configs\u0027, \u0027--check\u0027]"},{"line_number":590,"context_line":"        job \u003d self.dc.exec_create(self.params[\u0027name\u0027], command, user\u003d\u0027root\u0027)"},{"line_number":591,"context_line":"        output \u003d self.dc.exec_start(job)"},{"line_number":592,"context_line":"        exec_inspect \u003d self.dc.exec_inspect(job)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9d1b0a63_9df35076","line":589,"in_reply_to":"d8440e07_2f7b64ab","updated":"2021-02-02 16:50:01.000000000","message":"I wonder if exec_ commands would raise Exceptions in such cases? Should not they?","commit_id":"c07e5d053fc9a16c62eafdcb912528f740a2130c"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"d49d72d11d0cf89a093818d6bd22bdcd19e37cb5","unresolved":true,"context_lines":[{"line_number":589,"context_line":"                return True"},{"line_number":590,"context_line":""},{"line_number":591,"context_line":"    def compare_config(self):"},{"line_number":592,"context_line":"        job \u003d self.dc.exec_create(self.params[\u0027name\u0027], COMPARE_CONFIG_CMD,"},{"line_number":593,"context_line":"                                  user\u003d\u0027root\u0027)"},{"line_number":594,"context_line":"        output \u003d self.dc.exec_start(job)"},{"line_number":595,"context_line":"        exec_inspect \u003d self.dc.exec_inspect(job)"},{"line_number":596,"context_line":"        # Exit codes:"},{"line_number":597,"context_line":"        # 0: not changed"},{"line_number":598,"context_line":"        # 1: changed"}],"source_content_type":"text/x-python","patch_set":3,"id":"6ae1bc0b_59fe9b0b","line":595,"range":{"start_line":592,"start_character":0,"end_line":595,"end_character":48},"updated":"2021-02-22 16:48:26.000000000","message":"I tried this on a container that was restarting. If the create fails we might get:\n\ndocker.errors.APIError: 409 Client Error: Conflict (\"Container dc8e4f1ffb557467550e56dba70384a8ec43d47d9a128f8010a3447bd0e96bb8 is restarting, wait until the container is running\")\n\nAnd if the start fails we might get:\n\ndocker.errors.NotFound: 404 Client Error: Not Found (\"No such exec instance: e1bd89199832388fd7d5f3ff46ad73319a9e2e4fab9f29e32c2c6df17127974c\")\n\nI expect inspect would be similar. I think we should try to be fairly open to these kinds of issues to avoid getting wedged.","commit_id":"74d7eebddc9f7ae8c7eae3a1be2f7214efb38b50"},{"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":"9cf167540bb125f1b8c5cd16fe6b06d654ba8d46","unresolved":true,"context_lines":[{"line_number":589,"context_line":"                return True"},{"line_number":590,"context_line":""},{"line_number":591,"context_line":"    def compare_config(self):"},{"line_number":592,"context_line":"        job \u003d self.dc.exec_create(self.params[\u0027name\u0027], COMPARE_CONFIG_CMD,"},{"line_number":593,"context_line":"                                  user\u003d\u0027root\u0027)"},{"line_number":594,"context_line":"        output \u003d self.dc.exec_start(job)"},{"line_number":595,"context_line":"        exec_inspect \u003d self.dc.exec_inspect(job)"},{"line_number":596,"context_line":"        # Exit codes:"},{"line_number":597,"context_line":"        # 0: not changed"},{"line_number":598,"context_line":"        # 1: changed"}],"source_content_type":"text/x-python","patch_set":3,"id":"81d6f79d_ee4d2f4c","line":595,"range":{"start_line":592,"start_character":0,"end_line":595,"end_character":48},"in_reply_to":"6ae1bc0b_59fe9b0b","updated":"2021-02-22 16:54:02.000000000","message":"Ack, will address these.\nThe first one is filtered out by the state condition checked earlier.\nHow did you get the 2nd one though?","commit_id":"74d7eebddc9f7ae8c7eae3a1be2f7214efb38b50"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"d496b54caca1ef51150f8c28c4199372eca88b79","unresolved":true,"context_lines":[{"line_number":589,"context_line":"                return True"},{"line_number":590,"context_line":""},{"line_number":591,"context_line":"    def compare_config(self):"},{"line_number":592,"context_line":"        job \u003d self.dc.exec_create(self.params[\u0027name\u0027], COMPARE_CONFIG_CMD,"},{"line_number":593,"context_line":"                                  user\u003d\u0027root\u0027)"},{"line_number":594,"context_line":"        output \u003d self.dc.exec_start(job)"},{"line_number":595,"context_line":"        exec_inspect \u003d self.dc.exec_inspect(job)"},{"line_number":596,"context_line":"        # Exit codes:"},{"line_number":597,"context_line":"        # 0: not changed"},{"line_number":598,"context_line":"        # 1: changed"}],"source_content_type":"text/x-python","patch_set":3,"id":"66bdf336_5609fa83","line":595,"range":{"start_line":592,"start_character":0,"end_line":595,"end_character":48},"in_reply_to":"81d6f79d_ee4d2f4c","updated":"2021-02-22 17:01:34.000000000","message":"There\u0027s a race condition for a restarting container. It might be fine on the first check, then fail. The second is if the container fails after the exec is created. I tested using this:\n\ndocker run --restart unless-stopped --name foo centos:8 sleep 2","commit_id":"74d7eebddc9f7ae8c7eae3a1be2f7214efb38b50"}],"releasenotes/notes/bug-1848775-b0625b7586adac96.yaml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"d49d72d11d0cf89a093818d6bd22bdcd19e37cb5","unresolved":true,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Container config check is done now on each container check to avoid stale"},{"line_number":5,"context_line":"    config in containers."},{"line_number":6,"context_line":"    This also enables ``genconfig`` + ``deploy-containers`` to make sense for"},{"line_number":7,"context_line":"    reconfig instead of ``deploy-containers`` being noop."},{"line_number":8,"context_line":"    `LP#1848775 \u003chttps://launchpad.net/bugs/1848775\u003e`__"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"5a7490c5_08e09a5f","line":7,"range":{"start_line":6,"start_character":4,"end_line":7,"end_character":57},"updated":"2021-02-22 16:48:26.000000000","message":"This could be worded a bit less tersely in a follow up.","commit_id":"74d7eebddc9f7ae8c7eae3a1be2f7214efb38b50"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"d496b54caca1ef51150f8c28c4199372eca88b79","unresolved":true,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Container config check is done now on each container check to avoid stale"},{"line_number":5,"context_line":"    config in containers."},{"line_number":6,"context_line":"    This also enables ``genconfig`` + ``deploy-containers`` to make sense for"},{"line_number":7,"context_line":"    reconfig instead of ``deploy-containers`` being noop."},{"line_number":8,"context_line":"    `LP#1848775 \u003chttps://launchpad.net/bugs/1848775\u003e`__"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"937b8cb6_f2f9017d","line":7,"range":{"start_line":6,"start_character":4,"end_line":7,"end_character":57},"in_reply_to":"2ede0cfb_ff376f59","updated":"2021-02-22 17:01:34.000000000","message":"Fixes an issue where configuration in containers could become stale. This prevented containers with updated configuration from being restarted if the ``kolla-ansible genconfig`` and ``kolla-ansible deploy-containers`` commands are used together.","commit_id":"74d7eebddc9f7ae8c7eae3a1be2f7214efb38b50"},{"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":"9cf167540bb125f1b8c5cd16fe6b06d654ba8d46","unresolved":true,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Container config check is done now on each container check to avoid stale"},{"line_number":5,"context_line":"    config in containers."},{"line_number":6,"context_line":"    This also enables ``genconfig`` + ``deploy-containers`` to make sense for"},{"line_number":7,"context_line":"    reconfig instead of ``deploy-containers`` being noop."},{"line_number":8,"context_line":"    `LP#1848775 \u003chttps://launchpad.net/bugs/1848775\u003e`__"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"2ede0cfb_ff376f59","line":7,"range":{"start_line":6,"start_character":4,"end_line":7,"end_character":57},"in_reply_to":"5a7490c5_08e09a5f","updated":"2021-02-22 16:54:02.000000000","message":"Sure thing. Suggestions welcome!","commit_id":"74d7eebddc9f7ae8c7eae3a1be2f7214efb38b50"}]}
