azext_edge/edge/providers/support/meso.py (65 lines of code) (raw):

# coding=utf-8 # ---------------------------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License file in the project root for license information. # ---------------------------------------------------------------------------------------------- from functools import partial from knack.log import get_logger from .base import ( DAY_IN_SECONDS, process_cluster_role_bindings, process_cluster_roles, process_config_maps, process_deployments, process_replicasets, process_services, process_v1_pods, ) from .common import NAME_LABEL_FORMAT logger = get_logger(__name__) MESO_NAME_LABEL = NAME_LABEL_FORMAT.format(label="microsoft-iotoperations-observability") MESO_DIRECTORY_PATH = "meso" def fetch_deployments(): return process_deployments( directory_path=MESO_DIRECTORY_PATH, label_selector=MESO_NAME_LABEL, ) def fetch_replicasets(): return process_replicasets( directory_path=MESO_DIRECTORY_PATH, label_selector=MESO_NAME_LABEL, ) def fetch_pods(since_seconds: int = DAY_IN_SECONDS): return process_v1_pods( directory_path=MESO_DIRECTORY_PATH, label_selector=MESO_NAME_LABEL, since_seconds=since_seconds, ) def fetch_services(): return process_services( directory_path=MESO_DIRECTORY_PATH, label_selector=MESO_NAME_LABEL, ) def fetch_config_maps(): return process_config_maps( directory_path=MESO_DIRECTORY_PATH, label_selector=MESO_NAME_LABEL, ) def fetch_cluster_roles(): return process_cluster_roles( directory_path=MESO_DIRECTORY_PATH, label_selector=MESO_NAME_LABEL, ) def fetch_cluster_role_bindings(): return process_cluster_role_bindings( directory_path=MESO_DIRECTORY_PATH, label_selector=MESO_NAME_LABEL, ) support_runtime_elements = { "configmaps": fetch_config_maps, "deployments": fetch_deployments, "replicasets": fetch_replicasets, "services": fetch_services, "clusterroles": fetch_cluster_roles, "clusterrolebindings": fetch_cluster_role_bindings, } def prepare_bundle(log_age_seconds: int = DAY_IN_SECONDS) -> dict: meso_to_run = {} support_runtime_elements["pods"] = partial(fetch_pods, since_seconds=log_age_seconds) meso_to_run.update(support_runtime_elements) return meso_to_run