Files
test/keywords/docker/images/docker_load_image_keywords.py
croy b50143a4d9 Fixing tagging of node-hello
- Fixing the tagging of node-hello in Sanity tests
- Failing fast when docker tagging fails

Change-Id: Iff25a716202d9ae4338d9d8fb117da356d25ae48
2025-03-06 09:28:20 -05:00

63 lines
2.1 KiB
Python

from config.docker.objects.registry import Registry
from framework.logging.automation_logger import get_logger
from framework.validation.validation import validate_str_contains
from keywords.base_keyword import BaseKeyword
from keywords.docker.login.docker_login_keywords import DockerLoginKeywords
class DockerLoadImageKeywords(BaseKeyword):
"""
Keywords for Loading images into docker registry
"""
def __init__(self, ssh_connection):
"""
Constructor
Args:
ssh_connection:
"""
self.ssh_connection = ssh_connection
def load_docker_image_to_host(self, image_file_name: str):
"""
Keyword to load the docker to host
Args:
image_file_name (): the image file name
Returns:
"""
output = self.ssh_connection.send_as_sudo(f"docker load -i {image_file_name}")
string_output = "".join(output)
validate_str_contains(string_output, "Loaded image", "Image")
def tag_docker_image_for_registry(self, image_name: str, tag_name: str, registry: Registry):
"""
Tags the docker image for the registry
Args:
image_name (): the image name
tag_name (): the tag name
registry (): the registry
Returns:
"""
output = self.ssh_connection.send_as_sudo(f"docker tag {image_name} {registry.get_registry_url()}/{tag_name}")
if len(output) > 1: # If things go well, we get the prompt back. Otherwise, the first line returned is an Error.
get_logger().log_error(output[0])
raise Exception(f"Failed to tag docker image {image_name}")
def push_docker_image_to_registry(self, tag_name: str, registry: Registry):
"""
Pushes the docker image to the registry
Args:
tag_name (): the tag name
registry (): the registry
Returns:
"""
DockerLoginKeywords(self.ssh_connection).login(registry.get_user_name(), registry.get_password(), registry.get_registry_url())
self.ssh_connection.send_as_sudo(f'docker push {registry.get_registry_url()}/{tag_name}')