Files
homelab/acm-hub-bootstrap/tests/interop/test_validate_edge_site_components.py

73 lines
2.4 KiB
Python

import logging
import os
import pytest
from validatedpatterns_tests.interop import application, components
from . import __loggername__
logger = logging.getLogger(__loggername__)
oc = os.environ["HOME"] + "/oc_client/oc"
@pytest.mark.test_validate_edge_site_components
def test_validate_edge_site_components():
logger.info("Checking Openshift version on edge site")
version_out = components.dump_openshift_version()
logger.info(f"Openshift version:\n{version_out}")
@pytest.mark.validate_edge_site_reachable
def test_validate_edge_site_reachable(kube_config, openshift_dyn_client):
logger.info("Check if edge site API end point is reachable")
err_msg = components.validate_site_reachable(kube_config, openshift_dyn_client)
if err_msg:
logger.error(f"FAIL: {err_msg}")
assert False, err_msg
else:
logger.info("PASS: Edge site is reachable")
@pytest.mark.validate_argocd_reachable_edge_site
def test_validate_argocd_reachable_edge_site(openshift_dyn_client):
logger.info("Check if argocd route/url on edge site is reachable")
err_msg = components.validate_argocd_reachable(openshift_dyn_client)
if err_msg:
logger.error(f"FAIL: {err_msg}")
assert False, err_msg
else:
logger.info("PASS: Argocd is reachable")
@pytest.mark.check_pod_status_edge
def test_check_pod_status(openshift_dyn_client):
logger.info("Checking pod status")
projects = [
"openshift-operators",
"open-cluster-management-agent",
"open-cluster-management-agent-addon",
"openshift-gitops",
]
err_msg = components.check_pod_status(openshift_dyn_client, projects)
if err_msg:
logger.error(f"FAIL: {err_msg}")
assert False, err_msg
else:
logger.info("PASS: Pod status check succeeded.")
@pytest.mark.validate_argocd_applications_health_edge_site
def test_validate_argocd_applications_health_edge_site(openshift_dyn_client):
logger.info("Get all applications deployed by argocd on edge site")
projects = ["openshift-gitops"]
unhealthy_apps = application.get_argocd_application_status(
openshift_dyn_client, projects
)
if unhealthy_apps:
err_msg = "Some or all applications deployed on edge site are unhealthy"
logger.error(f"FAIL: {err_msg}:\n{unhealthy_apps}")
assert False, err_msg
else:
logger.info("PASS: All applications deployed on edge site are healthy.")