73 lines
2.4 KiB
Python
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.")
|