azext_edge/edge/_validators.py (18 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 argparse import Namespace from azure.cli.core.azclierror import InvalidArgumentValueError def validate_namespace(namespace: Namespace): if hasattr(namespace, "namespace") and namespace.namespace: import re # TODO - this is less restrictive than the official RFC 1123 DNS Label spec, # first and last character must be alphanumeric if not re.fullmatch("[a-z0-9-]{1,63}", namespace.namespace): raise InvalidArgumentValueError( f"Invalid namespace specifier '{namespace.namespace}': Limited to 63 total characters, " "only lowercase alphanumeric characters and '-' allowed." ) def validate_resource_name(namespace: Namespace): if hasattr(namespace, "resource_name") and namespace.resource_name: import re # validate resource_name that should only contain alphanumeric characters, hyphens, ? and * if not re.fullmatch(r"[a-zA-Z0-9\-?*]+", namespace.resource_name): raise InvalidArgumentValueError( f"Invalid resource name '{namespace.resource_name}'. " "Only alphanumeric characters, hyphens, ? and * are allowed." )