Squashed 'acm-hub-bootstrap/' content from commit 4b79b1a0
git-subtree-dir: acm-hub-bootstrap git-subtree-split: 4b79b1a0be6da2a9efc9ace8871b4762342da70b
This commit is contained in:
95
tests/interop/test_validate_hub_site_components.py
Normal file
95
tests/interop/test_validate_hub_site_components.py
Normal file
@@ -0,0 +1,95 @@
|
||||
import logging
|
||||
import os
|
||||
|
||||
import pytest
|
||||
from ocp_resources.storage_class import StorageClass
|
||||
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_hub_site_components
|
||||
def test_validate_hub_site_components(openshift_dyn_client):
|
||||
logger.info("Checking Openshift version on hub site")
|
||||
version_out = components.dump_openshift_version()
|
||||
logger.info(f"Openshift version:\n{version_out}")
|
||||
|
||||
logger.info("Dump PVC and storageclass info")
|
||||
pvcs_out = components.dump_pvc()
|
||||
logger.info(f"PVCs:\n{pvcs_out}")
|
||||
|
||||
for sc in StorageClass.get(dyn_client=openshift_dyn_client):
|
||||
logger.info(sc.instance)
|
||||
|
||||
|
||||
@pytest.mark.validate_hub_site_reachable
|
||||
def test_validate_hub_site_reachable(kube_config, openshift_dyn_client):
|
||||
logger.info("Check if hub 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: Hub site is reachable")
|
||||
|
||||
|
||||
@pytest.mark.check_pod_status_hub
|
||||
def test_check_pod_status(openshift_dyn_client):
|
||||
logger.info("Checking pod status")
|
||||
projects = [
|
||||
"openshift-operators",
|
||||
"open-cluster-management",
|
||||
"open-cluster-management-hub",
|
||||
"openshift-gitops",
|
||||
"vault",
|
||||
]
|
||||
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_acm_self_registration_managed_clusters
|
||||
def test_validate_acm_self_registration_managed_clusters(openshift_dyn_client):
|
||||
logger.info("Check ACM self registration for edge site")
|
||||
kubefiles = [os.getenv("KUBECONFIG_EDGE")]
|
||||
err_msg = components.validate_acm_self_registration_managed_clusters(
|
||||
openshift_dyn_client, kubefiles
|
||||
)
|
||||
if err_msg:
|
||||
logger.error(f"FAIL: {err_msg}")
|
||||
assert False, err_msg
|
||||
else:
|
||||
logger.info("PASS: Edge site is self registered")
|
||||
|
||||
|
||||
@pytest.mark.validate_argocd_reachable_hub_site
|
||||
def test_validate_argocd_reachable_hub_site(openshift_dyn_client):
|
||||
logger.info("Check if argocd route/url on hub 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.validate_argocd_applications_health_hub_site
|
||||
def test_validate_argocd_applications_health_hub_site(openshift_dyn_client):
|
||||
logger.info("Get all applications deployed by argocd on hub site")
|
||||
projects = ["openshift-gitops", "multicloud-gitops-hub"]
|
||||
unhealthy_apps = application.get_argocd_application_status(
|
||||
openshift_dyn_client, projects
|
||||
)
|
||||
if unhealthy_apps:
|
||||
err_msg = "Some or all applications deployed on hub site are unhealthy"
|
||||
logger.error(f"FAIL: {err_msg}:\n{unhealthy_apps}")
|
||||
assert False, err_msg
|
||||
else:
|
||||
logger.info("PASS: All applications deployed on hub site are healthy.")
|
||||
Reference in New Issue
Block a user