Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------
import os
import traceback
import json
import re
from azure.cli.core._config import GLOBAL_CONFIG_DIR, ENV_VAR_PREFIX
from knack.config import CLIConfig
from knack.log import get_logger
az_config = CLIConfig(config_dir=GLOBAL_CONFIG_DIR, config_env_var_prefix=ENV_VAR_PREFIX)
_CUSTOM_EXT_DIR = az_config.get('extension', 'dir', None)
_DEV_EXTENSION_SOURCES = az_config.get('extension', 'dev_sources', None)
EXTENSIONS_DIR = os.path.expanduser(_CUSTOM_EXT_DIR) if _CUSTOM_EXT_DIR else os.path.join(GLOBAL_CONFIG_DIR,
'cliextensions')
DEV_EXTENSION_SOURCES = _DEV_EXTENSION_SOURCES.split(',') if _DEV_EXTENSION_SOURCES else []
EXTENSIONS_MOD_PREFIX = 'azext_'
WHL_METADATA_FILENAME = 'metadata.json'
EGG_INFO_METADATA_FILE_NAME = 'PKG-INFO' # used for dev packages
AZEXT_METADATA_FILENAME = 'azext_metadata.json'
EXT_METADATA_MINCLICOREVERSION = 'azext.minCliCoreVersion'
EXT_METADATA_MAXCLICOREVERSION = 'azext.maxCliCoreVersion'
EXT_METADATA_ISPREVIEW = 'azext.isPreview'
def __init__(self,
cli_name='cli',
config_dir=None,
config_env_var_prefix=None,
out_file=sys.stdout,
config_cls=CLIConfig,
logging_cls=CLILogging,
invocation_cls=CommandInvoker,
output_cls=OutputProducer,
completion_cls=CLICompletion,
query_cls=CLIQuery,
parser_cls=CLICommandParser,
commands_loader_cls=CLICommandsLoader,
help_cls=CLIHelp):
"""
:param cli_name: The name of the CLI (e.g. the executable name 'az')
:type cli_name: str
:param config_dir: Path to store config files for this CLI
:type config_dir: str
:param config_env_var_prefix: The prefix for configuration environment variables
:type config_env_var_prefix: str
:param out_file: File to write output to
def set_config_value(name, value):
"""Set a config by name to a value."""
cli_config = CLIConfig(SF_CLI_CONFIG_DIR, SF_CLI_ENV_VAR_PREFIX)
cli_config.set_value('servicefabric', name, value)
def get_config_bool(name, fallback=False):
"""Checks if a config value is set to a valid bool value."""
cli_config = CLIConfig(SF_CLI_CONFIG_DIR, SF_CLI_ENV_VAR_PREFIX)
return cli_config.getboolean('servicefabric', name, fallback)
def get_state_value(name, fallback=None):
"""Gets a state entry by name.
In the case where the state entry name is not found, will use fallback value."""
cli_config = CLIConfig(SF_CLI_STATE_DIR, SF_CLI_NAME, 'state')
return cli_config.get('servicefabric', name, fallback)
def set_state_value(name, value):
"""
Set a state entry with a specified a value.
:param name: (str) name of the state
:param value: (str) value of the state
:return: None
"""
cli_config = CLIConfig(SF_CLI_STATE_DIR, SF_CLI_NAME, 'state')
cli_config.set_value('servicefabric', name, value)
_UNSET = object()
def _get_config_dir():
azure_devops_config_dir = os.getenv(AZ_DEVOPS_CONFIG_DIR_ENVKEY, None) or AZ_DEVOPS_DEFAULT_CONFIG_DIR
# Create a directory if it doesn't exist
ensure_dir(azure_devops_config_dir)
return azure_devops_config_dir
AZ_DEVOPS_GLOBAL_CONFIG_DIR = _get_config_dir()
AZ_DEVOPS_GLOBAL_CONFIG_PATH = os.path.join(AZ_DEVOPS_GLOBAL_CONFIG_DIR, CONFIG_FILE_NAME)
class AzDevopsConfig(CLIConfig):
def __init__(self, config_dir=AZ_DEVOPS_GLOBAL_CONFIG_DIR, config_env_var_prefix=CLI_ENV_VARIABLE_PREFIX):
super(AzDevopsConfig, self).__init__(config_dir=config_dir, config_env_var_prefix=config_env_var_prefix)
self.config_parser = get_config_parser()
azdevops_config = AzDevopsConfig()
azdevops_config.config_parser.read(AZ_DEVOPS_GLOBAL_CONFIG_PATH)
def set_global_config_value(section, option, value):
azdevops_config.set_value(section, option, _normalize_config_value(value))
azdevops_config.config_parser.read(AZ_DEVOPS_GLOBAL_CONFIG_PATH)
def _normalize_config_value(value):
if value:
def get_azdev_config():
return CLIConfig(config_dir=get_azdev_config_dir(), config_env_var_prefix='AZDEV')