)]}'
{"paunch/runner.py":[{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"4f5f4617020779b02ff06a63a4e36d96e96c4f57","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def container_exist(self, name, quiet\u003dFalse):"},{"line_number":104,"context_line":"        exist \u003d False"},{"line_number":105,"context_line":"        cmd \u003d ["},{"line_number":106,"context_line":"            self.cont_cmd, \u0027ps\u0027, \u0027-a\u0027, \u0027--filter\u0027,"},{"line_number":107,"context_line":"            \u0027label\u003dcontainer_name\u003d%s\u0027 % name, \u0027--format\u0027, \u0027{{.Names}}\u0027"},{"line_number":108,"context_line":"        ]"},{"line_number":109,"context_line":"        (cmd_stdout, cmd_stderr, returncode) \u003d self.execute(cmd, self.log)"},{"line_number":110,"context_line":"        return True if cmd_stdout.split() else False"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_95c1bfe7","line":108,"range":{"start_line":105,"start_character":8,"end_line":108,"end_character":9},"updated":"2019-06-17 17:43:20.000000000","message":"you can use \"podman container exists \u003cname\u003e\"","commit_id":"3cd6bf15542df9d92701fa26b5ef7447f572e8c0"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"69246d2e032fa87f0d5eb0a9fc133958674c005b","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def container_exist(self, name, quiet\u003dFalse):"},{"line_number":104,"context_line":"        exist \u003d False"},{"line_number":105,"context_line":"        cmd \u003d ["},{"line_number":106,"context_line":"            self.cont_cmd, \u0027ps\u0027, \u0027-a\u0027, \u0027--filter\u0027,"},{"line_number":107,"context_line":"            \u0027label\u003dcontainer_name\u003d%s\u0027 % name, \u0027--format\u0027, \u0027{{.Names}}\u0027"},{"line_number":108,"context_line":"        ]"},{"line_number":109,"context_line":"        (cmd_stdout, cmd_stderr, returncode) \u003d self.execute(cmd, self.log)"},{"line_number":110,"context_line":"        return True if cmd_stdout.split() else False"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_1644ebb6","line":108,"range":{"start_line":105,"start_character":8,"end_line":108,"end_character":9},"in_reply_to":"9fb8cfa7_16d62bf3","updated":"2019-06-18 09:26:46.000000000","message":"@Damien, I see, posted my answer without seeing yours yet. Will try to do the same, interesting..","commit_id":"3cd6bf15542df9d92701fa26b5ef7447f572e8c0"},{"author":{"_account_id":20778,"name":"Damien Ciabrini","email":"dciabrin@redhat.com","username":"dciabrin"},"change_message_id":"2d7ec7a6adabb6e4d86829189f7fe84290796e49","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def container_exist(self, name, quiet\u003dFalse):"},{"line_number":104,"context_line":"        exist \u003d False"},{"line_number":105,"context_line":"        cmd \u003d ["},{"line_number":106,"context_line":"            self.cont_cmd, \u0027ps\u0027, \u0027-a\u0027, \u0027--filter\u0027,"},{"line_number":107,"context_line":"            \u0027label\u003dcontainer_name\u003d%s\u0027 % name, \u0027--format\u0027, \u0027{{.Names}}\u0027"},{"line_number":108,"context_line":"        ]"},{"line_number":109,"context_line":"        (cmd_stdout, cmd_stderr, returncode) \u003d self.execute(cmd, self.log)"},{"line_number":110,"context_line":"        return True if cmd_stdout.split() else False"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_9cb6c7dc","line":108,"range":{"start_line":105,"start_character":8,"end_line":108,"end_character":9},"in_reply_to":"9fb8cfa7_5cdb6f4e","updated":"2019-06-17 19:13:45.000000000","message":"Answering to myself: \"podman container exists\" seems to exhibit the same problem under load that what I see with \"podman inspect\". So that won\u0027t fix much unfortunately :/","commit_id":"3cd6bf15542df9d92701fa26b5ef7447f572e8c0"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"9b2a6f92ec5a2358ee471e7c7929c40f0a2f91bc","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def container_exist(self, name, quiet\u003dFalse):"},{"line_number":104,"context_line":"        exist \u003d False"},{"line_number":105,"context_line":"        cmd \u003d ["},{"line_number":106,"context_line":"            self.cont_cmd, \u0027ps\u0027, \u0027-a\u0027, \u0027--filter\u0027,"},{"line_number":107,"context_line":"            \u0027label\u003dcontainer_name\u003d%s\u0027 % name, \u0027--format\u0027, \u0027{{.Names}}\u0027"},{"line_number":108,"context_line":"        ]"},{"line_number":109,"context_line":"        (cmd_stdout, cmd_stderr, returncode) \u003d self.execute(cmd, self.log)"},{"line_number":110,"context_line":"        return True if cmd_stdout.split() else False"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_f60037ae","line":108,"range":{"start_line":105,"start_character":8,"end_line":108,"end_character":9},"in_reply_to":"9fb8cfa7_7f2bc52f","updated":"2019-06-18 09:07:05.000000000","message":"@Damien, how do you measure it?","commit_id":"3cd6bf15542df9d92701fa26b5ef7447f572e8c0"},{"author":{"_account_id":20778,"name":"Damien Ciabrini","email":"dciabrin@redhat.com","username":"dciabrin"},"change_message_id":"7cbccda120d66f3442e1de7d56fc6158311e2b84","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def container_exist(self, name, quiet\u003dFalse):"},{"line_number":104,"context_line":"        exist \u003d False"},{"line_number":105,"context_line":"        cmd \u003d ["},{"line_number":106,"context_line":"            self.cont_cmd, \u0027ps\u0027, \u0027-a\u0027, \u0027--filter\u0027,"},{"line_number":107,"context_line":"            \u0027label\u003dcontainer_name\u003d%s\u0027 % name, \u0027--format\u0027, \u0027{{.Names}}\u0027"},{"line_number":108,"context_line":"        ]"},{"line_number":109,"context_line":"        (cmd_stdout, cmd_stderr, returncode) \u003d self.execute(cmd, self.log)"},{"line_number":110,"context_line":"        return True if cmd_stdout.split() else False"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_5cdb6f4e","line":108,"range":{"start_line":105,"start_character":8,"end_line":108,"end_character":9},"in_reply_to":"9fb8cfa7_95c1bfe7","updated":"2019-06-17 19:01:07.000000000","message":"Oh wow, I didn\u0027t know that one existed.\nI\u0027m checking at once whether its performance matches that of a podman ps or podman exec...","commit_id":"3cd6bf15542df9d92701fa26b5ef7447f572e8c0"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"075b9d953456b351c532fc77899bba127f6d4c6b","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def container_exist(self, name, quiet\u003dFalse):"},{"line_number":104,"context_line":"        exist \u003d False"},{"line_number":105,"context_line":"        cmd \u003d ["},{"line_number":106,"context_line":"            self.cont_cmd, \u0027ps\u0027, \u0027-a\u0027, \u0027--filter\u0027,"},{"line_number":107,"context_line":"            \u0027label\u003dcontainer_name\u003d%s\u0027 % name, \u0027--format\u0027, \u0027{{.Names}}\u0027"},{"line_number":108,"context_line":"        ]"},{"line_number":109,"context_line":"        (cmd_stdout, cmd_stderr, returncode) \u003d self.execute(cmd, self.log)"},{"line_number":110,"context_line":"        return True if cmd_stdout.split() else False"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_7f2bc52f","line":108,"range":{"start_line":105,"start_character":8,"end_line":108,"end_character":9},"in_reply_to":"9fb8cfa7_9cb6c7dc","updated":"2019-06-17 20:01:36.000000000","message":"ok I\u0027ll keep using ps then","commit_id":"3cd6bf15542df9d92701fa26b5ef7447f572e8c0"},{"author":{"_account_id":20778,"name":"Damien Ciabrini","email":"dciabrin@redhat.com","username":"dciabrin"},"change_message_id":"ae13b342be8a9a4b8d965a6d51678352ad812959","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def container_exist(self, name, quiet\u003dFalse):"},{"line_number":104,"context_line":"        exist \u003d False"},{"line_number":105,"context_line":"        cmd \u003d ["},{"line_number":106,"context_line":"            self.cont_cmd, \u0027ps\u0027, \u0027-a\u0027, \u0027--filter\u0027,"},{"line_number":107,"context_line":"            \u0027label\u003dcontainer_name\u003d%s\u0027 % name, \u0027--format\u0027, \u0027{{.Names}}\u0027"},{"line_number":108,"context_line":"        ]"},{"line_number":109,"context_line":"        (cmd_stdout, cmd_stderr, returncode) \u003d self.execute(cmd, self.log)"},{"line_number":110,"context_line":"        return True if cmd_stdout.split() else False"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_b6b63fdc","line":108,"range":{"start_line":105,"start_character":8,"end_line":108,"end_character":9},"in_reply_to":"9fb8cfa7_f60037ae","updated":"2019-06-18 09:22:15.000000000","message":"@Sagi basically:\n\n- my env is an el8 baremetal host, where XFS filesystem hosts the podman images.\n\n- a run a simple container with e.g. \"podman run -it fedora bash -c \u0027sleep infinity\u0027\"\n\n- I then stress the underlying filesystem with e.g. \"dd if\u003d/dev/zero of\u003dbigtestfile bs\u003d1M\"\n\n- while dd is still running, I try to run \"podman container exists fedora\", and the command hangs until there is no IO anymore on the FS","commit_id":"3cd6bf15542df9d92701fa26b5ef7447f572e8c0"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"c6e85315af7381d002a794d6b705815dc8c5a459","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def container_exist(self, name, quiet\u003dFalse):"},{"line_number":104,"context_line":"        exist \u003d False"},{"line_number":105,"context_line":"        cmd \u003d ["},{"line_number":106,"context_line":"            self.cont_cmd, \u0027ps\u0027, \u0027-a\u0027, \u0027--filter\u0027,"},{"line_number":107,"context_line":"            \u0027label\u003dcontainer_name\u003d%s\u0027 % name, \u0027--format\u0027, \u0027{{.Names}}\u0027"},{"line_number":108,"context_line":"        ]"},{"line_number":109,"context_line":"        (cmd_stdout, cmd_stderr, returncode) \u003d self.execute(cmd, self.log)"},{"line_number":110,"context_line":"        return True if cmd_stdout.split() else False"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_16d62bf3","line":108,"range":{"start_line":105,"start_character":8,"end_line":108,"end_character":9},"in_reply_to":"9fb8cfa7_f60037ae","updated":"2019-06-18 09:24:50.000000000","message":"From my very simple test seems like \"exists\" is winning:\n\nNon existing container:\n\n$ time for i in {1..500}; do podman container inspect eee \u0026\u003e/dev/null; done\n\nreal    0m26.827s\nuser    0m21.566s\nsys     0m9.591s\n$ time for i in {1..500}; do podman container exists eee; done\n\nreal    0m26.547s\nuser    0m20.419s\nsys     0m9.628s\n\n$ time for i in {1..500}; do podman ps -a --filter \"name\u003deee\" --format \u0027{{.Names}}\u0027 \u0026\u003e/dev/null; done\n\nreal    0m29.390s\nuser    0m25.769s\nsys     0m9.839s\n\n\n\nExisting container:\n\n$ time for i in {1..500}; do podman container inspect myapplication \u0026\u003e/dev/null; done\n\nreal    0m37.273s\nuser    0m30.882s\nsys     0m10.847s\n\n$ time for i in {1..500}; do podman container exists myapplication; done\n\nreal    0m30.445s\nuser    0m26.405s\nsys     0m10.095s\n\n$ time for i in {1..500}; do podman ps -a --filter \"name\u003dmyapplication\" --format \u0027{{.Names}}\u0027 \u0026\u003e/dev/null; done\n\nreal    0m31.345s\nuser    0m27.612s\nsys     0m10.276s","commit_id":"3cd6bf15542df9d92701fa26b5ef7447f572e8c0"}],"paunch/tests/test_runner.py":[{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"35dffc7ffbcedb1947e468fc041c9f69d734c261","unresolved":false,"context_lines":[{"line_number":425,"context_line":"            popen, [\u0027podman\u0027, \u0027image\u0027, \u0027exists\u0027, \u0027one\u0027]"},{"line_number":426,"context_line":"        )"},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"    @mock.patch(\u0027subprocess.Popen\u0027)"},{"line_number":429,"context_line":"    def test_container_exist(self, popen):"},{"line_number":430,"context_line":"        self.mock_execute(popen, \u0027\u0027, \u0027\u0027, 0)"},{"line_number":431,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_458bd4be","line":428,"range":{"start_line":428,"start_character":4,"end_line":428,"end_character":35},"updated":"2019-06-28 15:02:01.000000000","message":"As mentioned in the other patch, this should mock execute not popen","commit_id":"42ad46e2eb9d3b37d79f92322ba0812d3620ed0f"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"15c6fa4ac913acbebd8080ee6945effeccd38f7c","unresolved":false,"context_lines":[{"line_number":425,"context_line":"            popen, [\u0027podman\u0027, \u0027image\u0027, \u0027exists\u0027, \u0027one\u0027]"},{"line_number":426,"context_line":"        )"},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"    @mock.patch(\u0027subprocess.Popen\u0027)"},{"line_number":429,"context_line":"    def test_container_exist(self, popen):"},{"line_number":430,"context_line":"        self.mock_execute(popen, \u0027\u0027, \u0027\u0027, 0)"},{"line_number":431,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_90758366","line":428,"range":{"start_line":428,"start_character":4,"end_line":428,"end_character":35},"in_reply_to":"9fb8cfa7_458bd4be","updated":"2019-06-28 19:33:23.000000000","message":"i\u0027ll hold you to refactoring this later","commit_id":"42ad46e2eb9d3b37d79f92322ba0812d3620ed0f"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"994e4d8c4603011933be3599e422f3bb035264f8","unresolved":false,"context_lines":[{"line_number":425,"context_line":"            popen, [\u0027podman\u0027, \u0027image\u0027, \u0027exists\u0027, \u0027one\u0027]"},{"line_number":426,"context_line":"        )"},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"    @mock.patch(\u0027subprocess.Popen\u0027)"},{"line_number":429,"context_line":"    def test_container_exist(self, popen):"},{"line_number":430,"context_line":"        self.mock_execute(popen, \u0027\u0027, \u0027\u0027, 0)"},{"line_number":431,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_809f51b2","line":428,"range":{"start_line":428,"start_character":4,"end_line":428,"end_character":35},"in_reply_to":"9fb8cfa7_90758366","updated":"2019-07-02 12:49:51.000000000","message":"yes","commit_id":"42ad46e2eb9d3b37d79f92322ba0812d3620ed0f"}]}
