]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cephadm: improve is_container_running() 41709/head
authorSage Weil <sage@newdream.net>
Sat, 5 Jun 2021 15:05:48 +0000 (10:05 -0500)
committerSage Weil <sage@newdream.net>
Sat, 5 Jun 2021 20:39:29 +0000 (15:39 -0500)
The 'podman ps' command sporatically exits with 125, I suspect due
to some race/bug in podman itself.

However, our goal here is just to check if a specific container
is running.  Use inspect for that instead--it's even (a bit) faster.

Fixes: https://tracker.ceph.com/issues/51109
Signed-off-by: Sage Weil <sage@newdream.net>
src/cephadm/cephadm

index 7e1df254da6b954f46735ffade3e70847b349aa3..9225ca61072e4bf2214785f257714f1c13f8ee26 100755 (executable)
@@ -2051,10 +2051,11 @@ def check_units(ctx, units, enabler=None):
 
 
 def is_container_running(ctx: CephadmContext, name: str) -> bool:
-    out, err, ret = call_throws(ctx, [
-        ctx.container_engine.path, 'ps',
-        '--format', '{{.Names}}'])
-    return name in out
+    out, err, ret = call(ctx, [
+        ctx.container_engine.path, 'container', 'inspect',
+        '--format', '{{.State.Status}}', name
+    ])
+    return out == 'running'
 
 
 def get_legacy_config_fsid(cluster, legacy_dir=None):