Skip to content
This repository was archived by the owner on Sep 23, 2021. It is now read-only.

Commit 5b815db

Browse files
committed
fixed bug with image labels
1 parent f6aec7c commit 5b815db

File tree

5 files changed

+30
-8
lines changed

5 files changed

+30
-8
lines changed

DockerBuildSystem/DockerImageTools.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,17 @@ def GetImageRepoDigest(imageName):
5959
return repoDigest
6060

6161

62+
def GetImageLabels(imageName):
63+
jsonInfo = GetImageInfo(imageName)
64+
labels = jsonInfo['ContainerConfig']['Labels']
65+
return labels
66+
67+
6268
def GetImageLabel(imageName, labelKey):
63-
terminalCommand = "docker inspect --format=\"{{.Config.Labels." + labelKey + "}}\" " + imageName
64-
labelValue = str(TerminalTools.ExecuteTerminalCommandAndGetOutput(terminalCommand).decode("utf-8"))
65-
if len(labelValue) > 0 and labelValue[-1] == '\n':
66-
labelValue = labelValue[:-1]
67-
return labelValue
69+
labels = GetImageLabels(imageName)
70+
if labelKey in labels:
71+
return labels[labelKey]
72+
return '<no value>'
6873

6974

7075
def CheckImageLabelExists(imageName, labelKey):

example/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ COPY ./pythonSnippet.py ./src/pythonSnippet.py
44

55
LABEL version="1.0"
66
LABEL owner="example owner"
7+
LABEL org.opencontainers.image.version="1.0.0"
78
LABEL license="example:license"
89

910
ENTRYPOINT python ./src/pythonSnippet.py

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
# For a discussion on single-sourcing the version across setup.py and the
4141
# project code, see
4242
# https://packaging.python.org/en/latest/single_source_version.html
43-
version='1.1.37', # Required
43+
version='1.1.38', # Required
4444

4545
# This is a one-line description or tagline of what your project does. This
4646
# corresponds to the "Summary" metadata field:

tests/TestDockerImageTools.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,18 @@ def test_g_GetImageRepoDigest(self):
5555
self.assertFalse('\n' in repoDigest)
5656
print('DONE GET IMAGE REPO DIGEST')
5757

58+
def test_h_GetImageLabels(self):
59+
print('GET IMAGE LABELS')
60+
labels = DockerImageTools.GetImageLabels(TEST_IMAGE)
61+
self.assertGreater(len(labels), 0)
62+
self.assertTrue('owner', labels)
63+
self.assertTrue(labels['owner'] == 'example owner')
64+
print('DONE GET IMAGE LABELS')
65+
5866
def test_h_GetImageLabel(self):
5967
print('GET IMAGE LABEL')
60-
labelValue = DockerImageTools.GetImageLabel(TEST_IMAGE, 'owner')
61-
self.assertEqual('example owner', labelValue)
68+
labelValue = DockerImageTools.GetImageLabel(TEST_IMAGE, 'org.opencontainers.image.version')
69+
self.assertEqual('1.0.0', labelValue)
6270

6371
labelValue = DockerImageTools.GetImageLabel(TEST_IMAGE, 'none_existent')
6472
self.assertEqual('<no value>', labelValue)
@@ -68,6 +76,8 @@ def test_i_CheckImageLabelExists(self):
6876
print('CHECK IMAGE LABEL EXISTS')
6977
exists = DockerImageTools.CheckImageLabelExists(TEST_IMAGE, 'owner')
7078
self.assertTrue(exists)
79+
exists = DockerImageTools.CheckImageLabelExists(TEST_IMAGE, 'org.opencontainers.image.version')
80+
self.assertTrue(exists)
7181

7282
exists = DockerImageTools.CheckImageLabelExists(TEST_IMAGE, 'none_existent')
7383
self.assertFalse(exists)
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
def GetInfoMsg():
2+
infoMsg = "This python snippet is just an example.\r\n"
3+
return infoMsg
4+
5+
if __name__ == "__main__":
6+
print(GetInfoMsg())

0 commit comments

Comments
 (0)