Module harvester_e2e_tests.fixtures.images

Functions

def image_checker(api_client, wait_timeout, sleep_timeout)
Expand source code
@pytest.fixture(scope="session")
def image_checker(api_client, wait_timeout, sleep_timeout):
    class ImageChecker:
        def __init__(self):
            self.images = api_client.images

        @wait_until(wait_timeout, sleep_timeout)
        def wait_downloaded(self, image_name):
            code, data = self.images.get(image_name)
            if data.get('status', {}).get('progress') == 100:
                return True, (code, data)
            return False, (code, data)

        @wait_until(wait_timeout, sleep_timeout)
        def wait_deleted(self, image_name):
            code, data = self.images.get(image_name)
            if code == 404:
                return True, (code, data)
            return False, (code, data)

    return ImageChecker()
def image_k3s(request)
Expand source code
@pytest.fixture(scope="session")
def image_k3s(request):
    external = "https://github.com/rancher/k3os/releases/download/v0.20.11-k3s2r1/"
    base_url = request.config.getoption("--image-cache-url") or external
    url = urlparse(urljoin(f"{base_url}/", "k3os-amd64.iso"))

    return ImageInfo(url, ssh_user="k3s")
def image_opensuse(request, api_client)
Expand source code
@pytest.fixture(scope="session")
def image_opensuse(request, api_client):
    image_server = request.config.getoption("--image-cache-url")
    image_checksum = request.config.getoption("--opensuse-checksum", default=None)
    url = urlparse(
        request.config.getoption("--opensuse-image-url")
    )

    if image_server:
        *_, image_name = url.path.rsplit("/", 1)
        url = urlparse(urljoin(f"{image_server}/", image_name))

    return ImageInfo(url, image_checksum, name="opensuse", ssh_user="opensuse")
def image_ubuntu(request)
Expand source code
@pytest.fixture(scope="session")
def image_ubuntu(request):
    image_server = request.config.getoption("--image-cache-url")
    image_checksum = request.config.getoption("--ubuntu-checksum", default=None)
    url = urlparse(
        request.config.getoption("--ubuntu-image-url") or DEFAULT_UBUNTU_IMAGE_URL
    )

    if image_server:
        *_, image_name = url.path.rsplit("/", 1)
        url = urlparse(urljoin(f"{image_server}/", image_name))

    return ImageInfo(url, image_checksum, name="ubuntu", ssh_user="ubuntu")

Classes

class ImageInfo (url_result, image_checksum=None, name='', ssh_user=None)
Expand source code
class ImageInfo:
    def __init__(self, url_result, image_checksum=None, name="", ssh_user=None):
        self.url_result = url_result
        if name:
            self.name = name
        else:
            self.name = self.url.rsplit("/", 1)[-1]
        self.ssh_user = ssh_user
        self.image_checksum = image_checksum

    def __repr__(self):
        return f"{__class__.__name__}({self.url_result})"

    @property
    def is_file(self):
        return "file" == self.url_result.scheme

    @property
    def url(self):
        if self.is_file:
            return self.url_result.geturl().split("file://", 1)[-1]
        return self.url_result.geturl()

Instance variables

prop is_file
Expand source code
@property
def is_file(self):
    return "file" == self.url_result.scheme
prop url
Expand source code
@property
def url(self):
    if self.is_file:
        return self.url_result.geturl().split("file://", 1)[-1]
    return self.url_result.geturl()