azext_edge/edge/providers/check/common.py (115 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. # ---------------------------------------------------------------------------------------------- """ shared: Define shared data types(enums) and constant strings for IoT Operations service checks. """ from enum import Enum from typing import List, NamedTuple from ...common import CheckTaskStatus, ListableEnum from rich.padding import Padding class ResourceOutputDetailLevel(ListableEnum): """ Level of detail in check output. """ summary = "0" # summary detail = "1" # detail verbose = "2" # verbose class DataSourceStageType(ListableEnum): """ Data source stage type. """ http = "input/http" influxdb = "input/influxdb" mqtt = "input/mqtt" sql = "input/mssql" class ValidationResourceType(ListableEnum): """ Validation resource type. """ secret = "secret" configmap = "configmap" ERROR_NO_DETAIL = "<No detail available>" POD_CONDITION_TEXT_MAP = { "Ready": "Pod Readiness", "Initialized": "Pod Initialized", "ContainersReady": "Containers Readiness", "PodScheduled": "Pod Scheduled", "PodReadyToStartContainers": "Pod Ready To Start Containers", } ASSET_DATAPOINT_PROPERTIES = [ ("name", "Name", False), ("capabilityId", "Capability Id", True), ("dataPointConfiguration", "Configuration", True), ("observabilityMode", "Observability Mode", False), ] ASSET_PROPERTIES = [ ("description", "Description", True), ("attributes", "Attributes", True), ("defaultDatasetsConfiguration", "Default Dataset Configuration", False), ("defaultEventsConfiguration", "Default Events Configuration", False), ("displayName", "Display Name", False), ("documentationUri", "Documentation Uri", False), ("enabled", "Enabled", False), ("observabilityMode", "Observability Mode", False), ("externalAssetId", "External Asset Id", False), ("hardwareRevision", "Hardware Revision", False), ("manufacturer", "Manufacturer", False), ("manufacturerUri", "Manufacturer Uri", True), ("model", "Model", False), ("productCode", "Product Code", False), ("serialNumber", "Serial Number", False), ("softwareRevision", "Software Revision", False), ("uuid", "Uuid", False), ("version", "Version", False), ] ASSET_EVENT_PROPERTIES = [ ("name", "Name", False), ("capabilityId", "Capability Id", True), ("eventConfiguration", "Configuration", False), ("observabilityMode", "Observability Mode", False), ] BROKER_DIAGNOSTICS_PROPERTIES = [ ("logs.level", "Log Level", False), ("metrics.mode", "Metrics Mode", False), ("selfCheck.mode", "Self Check Mode", False), ("traces.mode", "Trace Mode", False), ] MAX_ASSET_EVENTS = 1000 MAX_ASSET_DATAPOINTS = 1000 # Check constants ALL_NAMESPACES_TARGET = "_all_" # when there are runtime resources related to the service but not # related to any service resource, use this as the resource name class CoreServiceResourceKinds(Enum): """ Core service resource kinds: """ RUNTIME_RESOURCE = "coreServiceRuntimeResource" # Dataflow properties class DataflowOperationType(ListableEnum): """ Dataflow Profile Operation Type: """ source = "source" destination = "destination" builtin_transformation = "builtintransformation" class DataflowEndpointType(ListableEnum): """ Dataflow Endpoint Type: """ data_explorer = "dataexplorer" datalake = "datalakestorage" fabric_onelake = "fabriconelake" kafka = "kafka" local_storage = "localstorage" mqtt = "mqtt" class CheckResult(NamedTuple): display: Padding eval_status: str class DataFlowEndpointAuthenticationType(ListableEnum): """ Dataflow Endpoint Authentication Type: """ access_token = "AccessToken" system_assigned = "SystemAssignedManagedIdentity" user_assigned = "UserAssignedManagedIdentity" x509 = "X509Certificate" service_account_token = "ServiceAccountToken" anonymous = "Anonymous" sasl = "Sasl" class PodStatusResult(NamedTuple): display_strings: List[str] eval_status: CheckTaskStatus class PodStatusConditionResult(NamedTuple): condition_string: str failed_reason: str eval_status: CheckTaskStatus # Akri runtime attributes AKRI_PREFIX = "aio-akri-" # MQ runtime attributes AIO_BROKER_DIAGNOSTICS_PROBE_PREFIX = "aio-broker-diagnostics-probe" AIO_BROKER_FRONTEND_PREFIX = "aio-broker-frontend" AIO_BROKER_BACKEND_PREFIX = "aio-broker-backend" AIO_BROKER_AUTH_PREFIX = "aio-broker-authentication" AIO_BROKER_HEALTH_MANAGER = "aio-broker-health-manager" AIO_BROKER_OPERATOR = "aio-broker-operator" AIO_BROKER_FLUENT_BIT = "aio-broker-fluent-bit" # OPCUA runtime attributes AIO_OPCUA_PREFIX = "aio-opc-" # Pre-deployment KPIs MIN_K8S_VERSION = "1.20" # Node prerequisite constants MIN_NODE_MEMORY = "16G" MIN_NODE_STORAGE = "30G" MIN_NODE_VCPU = "4" AIO_SUPPORTED_ARCHITECTURES = ["amd64"] # someday arm64 DISPLAY_BYTES_PER_GIGABYTE = 10**9 # UI constants DEFAULT_PADDING = 8 PADDING_SIZE = 4 DEFAULT_PROPERTY_DISPLAY_COLOR = "cyan" COLOR_STR_FORMAT = "[{color}]{value}[/{color}]"