From 0826c45e0cb5d60fcf8cd71cd14edd34a6997cd4 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 27 Jan 2021 07:50:14 -0600 Subject: [PATCH] cephadm: include image_digests list in 'ls' output Signed-off-by: Sage Weil --- src/cephadm/cephadm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/cephadm/cephadm b/src/cephadm/cephadm index 6a723d9bb8ec1..d37bef123a06a 100755 --- a/src/cephadm/cephadm +++ b/src/cephadm/cephadm @@ -4402,6 +4402,9 @@ def list_daemons(ctx, detail=True, legacy_dir=None): # keep track of ceph versions we see seen_versions = {} # type: Dict[str, Optional[str]] + # keep track of image digests + seen_digests = {} # type: Dict[str, List[str]] + # /var/lib/ceph if os.path.exists(data_dir): for i in os.listdir(data_dir): @@ -4458,6 +4461,7 @@ def list_daemons(ctx, detail=True, legacy_dir=None): container_id = None image_name = None image_id = None + image_digests = None version = None start_stamp = None @@ -4474,6 +4478,22 @@ def list_daemons(ctx, detail=True, legacy_dir=None): image_id = normalize_container_id(image_id) daemon_type = name.split('.', 1)[0] start_stamp = try_convert_datetime(start) + + # collect digests for this image id + image_digests = seen_digests.get(image_id) + if not image_digests: + out, err, code = call( + ctx, + [ + container_path, 'image', 'inspect', image_name, + '--format', '{{.RepoDigests}}', + ], + verbosity=CallVerbosity.DEBUG) + if not code: + image_digests = out.strip()[1:-1].split(' ') + seen_digests[image_id] = image_digests + + # identify software version inside the container (if we can) if not version or '.' not in version: version = seen_versions.get(image_id, None) if daemon_type == NFSGanesha.daemon_type: @@ -4541,6 +4561,7 @@ def list_daemons(ctx, detail=True, legacy_dir=None): val['container_id'] = container_id val['container_image_name'] = image_name val['container_image_id'] = image_id + val['container_image_digests'] = image_digests val['version'] = version val['started'] = start_stamp val['created'] = get_file_timestamp( -- 2.39.5