)]}'
{"paunch/builder/base.py":[{"author":{"_account_id":360,"name":"Dan Prince","email":"dprince@redhat.com","username":"dan-prince"},"change_message_id":"e0c6c00a746e7047270c6a910d337fc10a55d884","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            # before and won\u0027t fail."},{"line_number":64,"context_line":"            if self.runner.cont_cmd \u003d\u003d \u0027podman\u0027:"},{"line_number":65,"context_line":"                try:"},{"line_number":66,"context_line":"                    self.runner.remove_container(container, \u0027docker\u0027)"},{"line_number":67,"context_line":"                except Exception as e:"},{"line_number":68,"context_line":"                    LOG.debug(\u0027Error when running %s docker rm, \u0027"},{"line_number":69,"context_line":"                              \u0027%s container probably does not exist in Docker \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_57c3313a","line":66,"updated":"2018-10-05 17:38:52.000000000","message":"Rather than remove the interim container like this I wonder if a sledgehammer is what we really want. I think doing this can actually leave stuff in /var/lib/docker due to how overlayfs works.\n\nsystemctl stop docker\nrm -Rf /var/lib/docker/*\n\nboom","commit_id":"2f8c00e43f76eb74a8c1bd80c5789e6435b7c44b"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"66d4d7ad7de4245a2255e7251cc67e798adb6547","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            # before and won\u0027t fail."},{"line_number":64,"context_line":"            if self.runner.cont_cmd \u003d\u003d \u0027podman\u0027:"},{"line_number":65,"context_line":"                try:"},{"line_number":66,"context_line":"                    self.runner.remove_container(container, \u0027docker\u0027)"},{"line_number":67,"context_line":"                except Exception as e:"},{"line_number":68,"context_line":"                    LOG.debug(\u0027Error when running %s docker rm, \u0027"},{"line_number":69,"context_line":"                              \u0027%s container probably does not exist in Docker \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_72b2fb98","line":66,"in_reply_to":"3f79a3b5_57c3313a","updated":"2018-10-05 18:50:02.000000000","message":"I don\u0027t think we want to stop docker, as it would stop all containers at once (too violent right?).\nBut yes some cleanup in var/lib/docker/* is something we\u0027ll also have to do, probably in an upgrade task or something.","commit_id":"2f8c00e43f76eb74a8c1bd80c5789e6435b7c44b"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"8c5d24345b38077ead488815803bef1b85dc4eb3","unresolved":false,"context_lines":[{"line_number":64,"context_line":"            if self.runner.cont_cmd \u003d\u003d \u0027podman\u0027:"},{"line_number":65,"context_line":"                try:"},{"line_number":66,"context_line":"                    self.runner.remove_container(container, \u0027docker\u0027)"},{"line_number":67,"context_line":"                except Exception as e:"},{"line_number":68,"context_line":"                    LOG.debug(\u0027Error when running %s docker rm, \u0027"},{"line_number":69,"context_line":"                              \u0027%s container probably does not exist in Docker \u0027"},{"line_number":70,"context_line":"                              \u0027anymore\u0027 % (e, container))"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_f7c35d57","line":67,"range":{"start_line":67,"start_character":16,"end_line":67,"end_character":38},"updated":"2018-10-05 17:33:59.000000000","message":"I\u0027ll need to test this piece a bit more, the remove_container method calls LOG.error, I don\u0027t want the operator confused here.","commit_id":"2f8c00e43f76eb74a8c1bd80c5789e6435b7c44b"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"e660bc40b69be2d2197f2bb205d8e5f4a003f4f4","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                try:"},{"line_number":66,"context_line":"                    self.runner.remove_container(container, \u0027docker\u0027)"},{"line_number":67,"context_line":"                except Exception as e:"},{"line_number":68,"context_line":"                    LOG.debug(\u0027Error when running %s docker rm, \u0027"},{"line_number":69,"context_line":"                              \u0027%s container probably does not exist in Docker \u0027"},{"line_number":70,"context_line":"                              \u0027anymore\u0027 % (e, container))"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"            if action \u003d\u003d \u0027run\u0027:"},{"line_number":73,"context_line":"                if container in desired_names:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_f41c9f67","line":70,"range":{"start_line":68,"start_character":0,"end_line":70,"end_character":57},"updated":"2018-10-08 11:11:12.000000000","message":"I think this code is useless, as the log is already handled in the runner. Will clean that up after double checking in my env.","commit_id":"93b342ca51b25b7505737707dced724a21afe6e3"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"6823b4cd5c1def2a2b7e5f66aa90b5f05264d670","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                try:"},{"line_number":66,"context_line":"                    self.runner.remove_container(container, \u0027docker\u0027)"},{"line_number":67,"context_line":"                except Exception as e:"},{"line_number":68,"context_line":"                    LOG.debug(\u0027Error when running %s docker rm, \u0027"},{"line_number":69,"context_line":"                              \u0027%s container probably does not exist in Docker \u0027"},{"line_number":70,"context_line":"                              \u0027anymore\u0027 % (e, container))"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"            if action \u003d\u003d \u0027run\u0027:"},{"line_number":73,"context_line":"                if container in desired_names:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_54860f61","line":70,"range":{"start_line":68,"start_character":0,"end_line":70,"end_character":57},"in_reply_to":"3f79a3b5_c1058e10","updated":"2018-10-15 21:47:11.000000000","message":"I disagree here. We should rather try to reduce the downtime by removing the container in Docker and immediately start in Podman instead of starting them all, far later.","commit_id":"93b342ca51b25b7505737707dced724a21afe6e3"},{"author":{"_account_id":11090,"name":"Sergii Golovatiuk","email":"sgolovat@redhat.com","username":"holser"},"change_message_id":"2860291b7a5bf055f815f7683aa6c5bd1e120080","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                try:"},{"line_number":66,"context_line":"                    self.runner.remove_container(container, \u0027docker\u0027)"},{"line_number":67,"context_line":"                except Exception as e:"},{"line_number":68,"context_line":"                    LOG.debug(\u0027Error when running %s docker rm, \u0027"},{"line_number":69,"context_line":"                              \u0027%s container probably does not exist in Docker \u0027"},{"line_number":70,"context_line":"                              \u0027anymore\u0027 % (e, container))"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"            if action \u003d\u003d \u0027run\u0027:"},{"line_number":73,"context_line":"                if container in desired_names:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_c1058e10","line":70,"range":{"start_line":68,"start_character":0,"end_line":70,"end_character":57},"in_reply_to":"3f79a3b5_f41c9f67","updated":"2018-10-15 13:30:20.000000000","message":"Hmm, the logic should be to remove all containers after upgrade. There shouldn\u0027t be any container removals during upgrade. We should run upgrade, validate it and then only then remove docker containers. Otherwise, there might be issue with one of containers, giving no chance operator to restore undercloud\u0027s previous state easily.","commit_id":"93b342ca51b25b7505737707dced724a21afe6e3"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"bb34f57b29998d350e404cab0163e529bc819d04","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            # upgrade_tasks."},{"line_number":64,"context_line":"            if self.runner.cont_cmd \u003d\u003d \u0027podman\u0027:"},{"line_number":65,"context_line":"                try:"},{"line_number":66,"context_line":"                    self.runner.container_stop(container, \u0027docker\u0027)"},{"line_number":67,"context_line":"                except Exception as e:"},{"line_number":68,"context_line":"                    LOG.debug(\u0027Error when running %s docker stop, \u0027"},{"line_number":69,"context_line":"                              \u0027%s container was probably not started \u0027"},{"line_number":70,"context_line":"                              \u0027anymore\u0027 % (e, container))"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"            if action \u003d\u003d \u0027run\u0027:"},{"line_number":73,"context_line":"                if container in desired_names:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_7835f242","line":70,"range":{"start_line":66,"start_character":0,"end_line":70,"end_character":57},"updated":"2018-10-18 16:29:10.000000000","message":"Should this actually be a LOG.warn and we exclude the case when docker isn\u0027t present (e.g. initial installs of podman only)","commit_id":"70ef23e3fb402fbf029f3df4329dad27dd6cd0d8"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"513d43161382e17f0f15ab9feb3a3cf39378632d","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            # upgrade_tasks."},{"line_number":64,"context_line":"            if self.runner.cont_cmd \u003d\u003d \u0027podman\u0027:"},{"line_number":65,"context_line":"                try:"},{"line_number":66,"context_line":"                    self.runner.container_stop(container, \u0027docker\u0027)"},{"line_number":67,"context_line":"                except Exception as e:"},{"line_number":68,"context_line":"                    LOG.debug(\u0027Error when running %s docker stop, \u0027"},{"line_number":69,"context_line":"                              \u0027%s container was probably not started \u0027"},{"line_number":70,"context_line":"                              \u0027anymore\u0027 % (e, container))"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"            if action \u003d\u003d \u0027run\u0027:"},{"line_number":73,"context_line":"                if container in desired_names:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_aaea4d9d","line":70,"range":{"start_line":66,"start_character":0,"end_line":70,"end_character":57},"in_reply_to":"3f79a3b5_7835f242","updated":"2018-10-18 20:35:14.000000000","message":"Done","commit_id":"70ef23e3fb402fbf029f3df4329dad27dd6cd0d8"},{"author":{"_account_id":11090,"name":"Sergii Golovatiuk","email":"sgolovat@redhat.com","username":"holser"},"change_message_id":"b82019a44b998e64976e5e93ca7f68c25429a7b0","unresolved":false,"context_lines":[{"line_number":20,"context_line":"if sys.version_info \u003e\u003d (3, 3):"},{"line_number":21,"context_line":"    import shutil"},{"line_number":22,"context_line":"else:"},{"line_number":23,"context_line":"    import distutils.spawn"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from paunch.utils import systemd"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_f4b1ff92","line":23,"updated":"2018-10-19 11:24:40.000000000","message":"try:\n    import shutil\nexcept ImportError:\n    import distutils.spawn\n\nis more useful IMHO.","commit_id":"bd791588ea7e3533da1445fb2b3cbdf3424f178d"},{"author":{"_account_id":11090,"name":"Sergii Golovatiuk","email":"sgolovat@redhat.com","username":"holser"},"change_message_id":"290263c46ea87f312c19d4ef1d8719e77712b80a","unresolved":false,"context_lines":[{"line_number":20,"context_line":"if sys.version_info \u003e\u003d (3, 3):"},{"line_number":21,"context_line":"    import shutil"},{"line_number":22,"context_line":"else:"},{"line_number":23,"context_line":"    import distutils.spawn"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from paunch.utils import systemd"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_36fe9704","line":23,"in_reply_to":"3f79a3b5_1b8f06d4","updated":"2018-10-19 12:42:55.000000000","message":"The code I showed used across all components. I don\u0027t insist, though it would be nice to have the same structure across all components.","commit_id":"bd791588ea7e3533da1445fb2b3cbdf3424f178d"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"4ac6140459f5da58103c54c9579dea488e9cb7e0","unresolved":false,"context_lines":[{"line_number":20,"context_line":"if sys.version_info \u003e\u003d (3, 3):"},{"line_number":21,"context_line":"    import shutil"},{"line_number":22,"context_line":"else:"},{"line_number":23,"context_line":"    import distutils.spawn"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from paunch.utils import systemd"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_df16574b","line":23,"in_reply_to":"3f79a3b5_36fe9704","updated":"2018-10-19 14:15:57.000000000","message":"Done","commit_id":"bd791588ea7e3533da1445fb2b3cbdf3424f178d"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"6d0bb156972910b3993178091b661a774c1be39d","unresolved":false,"context_lines":[{"line_number":20,"context_line":"if sys.version_info \u003e\u003d (3, 3):"},{"line_number":21,"context_line":"    import shutil"},{"line_number":22,"context_line":"else:"},{"line_number":23,"context_line":"    import distutils.spawn"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from paunch.utils import systemd"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_1b8f06d4","line":23,"in_reply_to":"3f79a3b5_f4b1ff92","updated":"2018-10-19 12:31:58.000000000","message":"it has the same result. Any good reason to switch on this code?","commit_id":"bd791588ea7e3533da1445fb2b3cbdf3424f178d"},{"author":{"_account_id":11082,"name":"Kamil Sambor","email":"ksambor@redhat.com","username":"ksambor"},"change_message_id":"dd292ee928e29e17d35c0e406bfaab39b483455c","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            if self.runner.cont_cmd \u003d\u003d \u0027podman\u0027 and self.which(\u0027docker\u0027):"},{"line_number":67,"context_line":"                try:"},{"line_number":68,"context_line":"                    self.runner.stop_container(container, \u0027docker\u0027)"},{"line_number":69,"context_line":"                except Exception as e:"},{"line_number":70,"context_line":"                    LOG.warn(\u0027Error when running %s docker stop, \u0027"},{"line_number":71,"context_line":"                             \u0027%s container was probably not started \u0027"},{"line_number":72,"context_line":"                             \u0027anymore\u0027 % (e, container))"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f79a3b5_c092daa0","line":69,"updated":"2018-10-22 12:44:15.000000000","message":"We try to catch some error but in stop_container we are not raise any exceptions, do we really need this try, except block?","commit_id":"8064f0f691b08a9defed7c7af0c8a1bb29b73ac7"},{"author":{"_account_id":11082,"name":"Kamil Sambor","email":"ksambor@redhat.com","username":"ksambor"},"change_message_id":"15a34d52c4d68fa0bd48095321535f2ec7e6a4b6","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            if self.runner.cont_cmd \u003d\u003d \u0027podman\u0027 and self.which(\u0027docker\u0027):"},{"line_number":67,"context_line":"                try:"},{"line_number":68,"context_line":"                    self.runner.stop_container(container, \u0027docker\u0027)"},{"line_number":69,"context_line":"                except Exception as e:"},{"line_number":70,"context_line":"                    LOG.warn(\u0027Error when running %s docker stop, \u0027"},{"line_number":71,"context_line":"                             \u0027%s container was probably not started \u0027"},{"line_number":72,"context_line":"                             \u0027anymore\u0027 % (e, container))"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f79a3b5_b96a62b2","line":69,"in_reply_to":"3f79a3b5_46fa6211","updated":"2018-10-23 09:51:06.000000000","message":"Thank you for answer, I see. But as far as I know this fail only if cmd \u0027docker\u0027 will be not found on the system. In a case when docker container was already stop error about it will be log here https://review.openstack.org/#/c/608319/10/paunch/runner.py@170 . But this is small comment so I\u0027m still with +1 and this comment can be ignored ;)","commit_id":"8064f0f691b08a9defed7c7af0c8a1bb29b73ac7"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"41a6587f7bdfa274a5128c4a5a0837dffec7bd89","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            if self.runner.cont_cmd \u003d\u003d \u0027podman\u0027 and self.which(\u0027docker\u0027):"},{"line_number":67,"context_line":"                try:"},{"line_number":68,"context_line":"                    self.runner.stop_container(container, \u0027docker\u0027)"},{"line_number":69,"context_line":"                except Exception as e:"},{"line_number":70,"context_line":"                    LOG.warn(\u0027Error when running %s docker stop, \u0027"},{"line_number":71,"context_line":"                             \u0027%s container was probably not started \u0027"},{"line_number":72,"context_line":"                             \u0027anymore\u0027 % (e, container))"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f79a3b5_46fa6211","line":69,"in_reply_to":"3f79a3b5_c092daa0","updated":"2018-10-22 13:52:44.000000000","message":"I think yes, it\u0027s a way to not fail if the container was already stopped for example.","commit_id":"8064f0f691b08a9defed7c7af0c8a1bb29b73ac7"}],"paunch/tests/test_runner.py":[{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"34e4724294487322398ed7d1ed59803daf87de5f","unresolved":false,"context_lines":[{"line_number":218,"context_line":""},{"line_number":219,"context_line":"        self.runner.remove_container(\u0027one\u0027, \u0027podman\u0027)"},{"line_number":220,"context_line":"        self.assert_execute("},{"line_number":221,"context_line":"            popen, [\u0027podman\u0027, \u0027rm\u0027, \u0027-f\u0027, \u0027one\u0027]"},{"line_number":222,"context_line":"        )"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    @mock.patch(\u0027subprocess.Popen\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_a2cf3752","line":221,"updated":"2018-10-15 10:19:12.000000000","message":"shouldn\u0027t a proper test case operate on docker instead to rm a container, to be started next by podman?","commit_id":"93b342ca51b25b7505737707dced724a21afe6e3"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"6823b4cd5c1def2a2b7e5f66aa90b5f05264d670","unresolved":false,"context_lines":[{"line_number":218,"context_line":""},{"line_number":219,"context_line":"        self.runner.remove_container(\u0027one\u0027, \u0027podman\u0027)"},{"line_number":220,"context_line":"        self.assert_execute("},{"line_number":221,"context_line":"            popen, [\u0027podman\u0027, \u0027rm\u0027, \u0027-f\u0027, \u0027one\u0027]"},{"line_number":222,"context_line":"        )"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    @mock.patch(\u0027subprocess.Popen\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_94902798","line":221,"in_reply_to":"3f79a3b5_a2cf3752","updated":"2018-10-15 21:47:11.000000000","message":"it\u0027s a PoC, I didn\u0027t write proper test cases yet.","commit_id":"93b342ca51b25b7505737707dced724a21afe6e3"}]}
