]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cephadm: sync normalize_image_digest with mgr/cephadm
authorSebastian Wagner <sewagner@redhat.com>
Tue, 14 Dec 2021 12:08:38 +0000 (13:08 +0100)
committerAdam King <adking@redhat.com>
Mon, 21 Feb 2022 18:43:45 +0000 (13:43 -0500)
Signed-off-by: Sebastian Wagner <sewagner@redhat.com>
(cherry picked from commit 84bef14999e0422cf3a2c456c8972211303f91f1)

src/cephadm/cephadm

index 2e8d3ebe8083f9b7667f9ce555ff19e6954b7377..bf0df09547d832d900c2cf89a879008d921ba7ba 100755 (executable)
@@ -3723,16 +3723,29 @@ def command_inspect_image(ctx):
 
 
 def normalize_image_digest(digest: str) -> str:
-    # normal case:
-    #   ceph/ceph -> docker.io/ceph/ceph
-    # edge cases that shouldn't ever come up:
-    #   ubuntu -> docker.io/ubuntu    (ubuntu alias for library/ubuntu)
-    # no change:
-    #   quay.ceph.io/ceph/ceph -> ceph
-    #   docker.io/ubuntu -> no change
-    bits = digest.split('/')
-    if '.' not in bits[0] and len(bits) < 3:
-        digest = DEFAULT_REGISTRY + '/' + digest
+    """
+    Normal case:
+    >>> normalize_image_digest('ceph/ceph', 'docker.io')
+    'docker.io/ceph/ceph'
+
+    No change:
+    >>> normalize_image_digest('quay.ceph.io/ceph/ceph', 'docker.io')
+    'quay.ceph.io/ceph/ceph'
+
+    >>> normalize_image_digest('docker.io/ubuntu', 'docker.io')
+    'docker.io/ubuntu'
+
+    >>> normalize_image_digest('localhost/ceph', 'docker.io')
+    'localhost/ceph'
+    """
+    known_shortnames = [
+        'ceph/ceph',
+        'ceph/daemon',
+        'ceph/daemon-base',
+    ]
+    for image in known_shortnames:
+        if digest.startswith(image):
+            return f'{DEFAULT_REGISTRY}/{digest}'
     return digest