From: Sage Weil Date: Mon, 25 Jan 2021 22:32:45 +0000 (-0600) Subject: cephadm: fix 'inspect' and 'pull' X-Git-Tag: v15.2.10~23^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=984e8fc64d30ed2c2ca88f2f56c46de1fd39e8da;p=ceph.git cephadm: fix 'inspect' and 'pull' With podman 2.2.1 I would get ERRO[0000] Error printing inspect output: template: all inspect:1: function "json" not defined Removing the 'json' portion of the query resolves it. Fixes: https://tracker.ceph.com/issues/49522 Signed-off-by: Sage Weil (cherry picked from commit d31bed79411ca493ec48eeed4e9cbb7ad92295c3) Conflicts: src/cephadm/cephadm --- diff --git a/src/cephadm/cephadm b/src/cephadm/cephadm index 8de809d75bf12..158e81fcaf2de 100755 --- a/src/cephadm/cephadm +++ b/src/cephadm/cephadm @@ -2723,7 +2723,7 @@ def command_inspect_image(): # type: () -> int out, err, ret = call_throws([ container_path, 'inspect', - '--format', '{{.ID}},{{json .RepoDigests}}', + '--format', '{{.ID}},{{.RepoDigests}}', args.image]) if ret: return errno.ENOENT @@ -2745,7 +2745,7 @@ def get_image_info_from_inspect(out, image): 'image_id': normalize_container_id(image_id) } if digests: - json_digests = json.loads(digests) + json_digests = digests[1:-1].split(' ') if json_digests: r['repo_digest'] = json_digests[0] return r diff --git a/src/cephadm/tests/test_cephadm.py b/src/cephadm/tests/test_cephadm.py index 5487f43b3a88c..74a93d8dd7142 100644 --- a/src/cephadm/tests/test_cephadm.py +++ b/src/cephadm/tests/test_cephadm.py @@ -241,7 +241,7 @@ default via fe80::2480:28ec:5097:3fe2 dev wlp2s0 proto ra metric 20600 pref medi def test_get_image_info_from_inspect(self): # podman - out = """204a01f9b0b6710dd0c0af7f37ce7139c47ff0f0105d778d7104c69282dfbbf1,["docker.io/ceph/ceph@sha256:1cc9b824e1b076cdff52a9aa3f0cc8557d879fb2fbbba0cafed970aca59a3992"]""" + out = """204a01f9b0b6710dd0c0af7f37ce7139c47ff0f0105d778d7104c69282dfbbf1,[docker.io/ceph/ceph@sha256:1cc9b824e1b076cdff52a9aa3f0cc8557d879fb2fbbba0cafed970aca59a3992]""" r = cd.get_image_info_from_inspect(out, 'registry/ceph/ceph:latest') assert r == { 'image_id': '204a01f9b0b6710dd0c0af7f37ce7139c47ff0f0105d778d7104c69282dfbbf1', @@ -249,7 +249,7 @@ default via fe80::2480:28ec:5097:3fe2 dev wlp2s0 proto ra metric 20600 pref medi } # docker - out = """sha256:16f4549cf7a8f112bbebf7946749e961fbbd1b0838627fe619aab16bc17ce552,["quay.ceph.io/ceph-ci/ceph@sha256:4e13da36c1bd6780b312a985410ae678984c37e6a9493a74c87e4a50b9bda41f"]""" + out = """sha256:16f4549cf7a8f112bbebf7946749e961fbbd1b0838627fe619aab16bc17ce552,[quay.ceph.io/ceph-ci/ceph@sha256:4e13da36c1bd6780b312a985410ae678984c37e6a9493a74c87e4a50b9bda41f]""" r = cd.get_image_info_from_inspect(out, 'registry/ceph/ceph:latest') assert r == { 'image_id': '16f4549cf7a8f112bbebf7946749e961fbbd1b0838627fe619aab16bc17ce552',