Add pull image with tag prefix and XML
After the parent commit, the registry might contain prefixed images. This commit adds the functionality to pull such prefixed image. Since we rename the pulled image (to have a consistent name, from whichever registry we might pull), remove the prefix as well so that it can be used with other CI functionality (remove image, use in test, ...) Examples for renaming: - pull from internal_registry for x86 internal_registry/oai-gnb:branchA => oai-ci/oai-gnb:branchA - pull from internal registry for ARM with "arm_" prefix internal_registry/oai-gnb:arm_branchA => oai-ci/oai-gnb:branchA - pull from x86 other registry (e.g., openshift) openshift/namespace/oai-gnb:branchA => oai-ci/oai-gnb:branchA
This commit is contained in:
@@ -775,7 +775,7 @@ class Containerize():
|
||||
HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
|
||||
return True
|
||||
|
||||
def Pull_Image(cmd, images, tag, registry, username, password):
|
||||
def Pull_Image(cmd, images, tag, tag_prefix, registry, username, password):
|
||||
if username is not None and password is not None:
|
||||
logging.info(f"logging into registry {username}@{registry}")
|
||||
response = cmd.run(f'docker login -u {username} -p {password} {registry}', silent=True, reportNonZero=False)
|
||||
@@ -785,14 +785,15 @@ class Containerize():
|
||||
return False, msg
|
||||
pulled_images = []
|
||||
for image in images:
|
||||
imagePrefTag = f"{image}:{tag_prefix}{tag}"
|
||||
imageTag = f"{image}:{tag}"
|
||||
response = cmd.run(f'docker pull {registry}/{imageTag}')
|
||||
response = cmd.run(f'docker pull {registry}/{imagePrefTag}')
|
||||
if response.returncode != 0:
|
||||
msg = f'Could not pull {image} from local registry: {imageTag}'
|
||||
msg = f'Could not pull {image} from local registry: {imagePrefTag}'
|
||||
logging.error(msg)
|
||||
return False, msg
|
||||
cmd.run(f'docker tag {registry}/{imageTag} oai-ci/{imageTag}')
|
||||
cmd.run(f'docker rmi {registry}/{imageTag}')
|
||||
cmd.run(f'docker tag {registry}/{imagePrefTag} oai-ci/{imageTag}')
|
||||
cmd.run(f'docker rmi {registry}/{imagePrefTag}')
|
||||
pulled_images += [f"oai-ci/{imageTag}"]
|
||||
if username is not None and password is not None:
|
||||
response = cmd.run(f'docker logout {registry}')
|
||||
@@ -800,13 +801,13 @@ class Containerize():
|
||||
msg = "Pulled Images:\n" + '\n'.join(pulled_images)
|
||||
return True, msg
|
||||
|
||||
def Pull_Image_from_Registry(self, HTML, svr_id, images, tag=None, registry="porcepix.sboai.cs.eurecom.fr", username="oaicicd", password="oaicicd"):
|
||||
def Pull_Image_from_Registry(self, HTML, svr_id, images, tag=None, tag_prefix="", registry="porcepix.sboai.cs.eurecom.fr", username="oaicicd", password="oaicicd"):
|
||||
lIpAddr, lSourcePath = self.GetCredentials(svr_id)
|
||||
logging.debug('\u001B[1m Pulling image(s) on server: ' + lIpAddr + '\u001B[0m')
|
||||
if not tag:
|
||||
tag = CreateTag(self.ranCommitID, self.ranBranch, self.ranAllowMerge)
|
||||
with cls_cmd.getConnection(lIpAddr) as cmd:
|
||||
success, msg = Containerize.Pull_Image(cmd, images, tag, registry, username, password)
|
||||
success, msg = Containerize.Pull_Image(cmd, images, tag, tag_prefix, registry, username, password)
|
||||
param = f"on node {lIpAddr}"
|
||||
if success:
|
||||
HTML.CreateHtmlTestRowQueue(param, 'OK', [msg])
|
||||
|
||||
Reference in New Issue
Block a user