Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def get_resources_in_resource_group(cli_ctx, resource_group_name, resource_type=None):
from azure.cli.core.commands.client_factory import get_mgmt_service_client
from azure.cli.core.profiles import supported_api_version
rcf = get_mgmt_service_client(cli_ctx, ResourceType.MGMT_RESOURCE_RESOURCES)
filter_str = "resourceType eq '{}'".format(resource_type) if resource_type else None
if supported_api_version(cli_ctx, ResourceType.MGMT_RESOURCE_RESOURCES, max_api='2016-09-01'):
return list(rcf.resource_groups.list_resources(resource_group_name, filter=filter_str))
return list(rcf.resources.list_by_resource_group(resource_group_name, filter=filter_str))
def cosmosdb_table_exists(cli_ctx):
try:
return supported_api_version(cli_ctx, ResourceType.DATA_COSMOS_TABLE, min_api='2017-04-17')
except APIVersionException:
return False
def _deploy_arm_template_core(cli_ctx, resource_group_name,
template_file=None, template_uri=None, deployment_name=None,
parameters=None, mode=None, rollback_on_error=None, validate_only=False,
no_wait=False, aux_subscriptions=None):
DeploymentProperties, TemplateLink, OnErrorDeployment = get_sdk(cli_ctx, ResourceType.MGMT_RESOURCE_RESOURCES,
'DeploymentProperties', 'TemplateLink',
'OnErrorDeployment', mod='models')
template = None
template_link = None
template_obj = None
on_error_deployment = None
if template_uri:
template_link = TemplateLink(uri=template_uri)
template_obj = shell_safe_json_parse(_urlretrieve(template_uri).decode('utf-8'), preserve_order=True)
else:
template = get_file_json(template_file, preserve_order=True)
template_obj = template
if rollback_on_error == '':
on_error_deployment = OnErrorDeployment(type='LastSuccessful')
def get_auth_management_client(cli_ctx, scope=None, **_):
import re
from azure.cli.core.profiles import ResourceType
from azure.cli.core.commands.client_factory import get_mgmt_service_client
subscription_id = None
if scope:
matched = re.match('/subscriptions/(?P[^/]*)/', scope)
if matched:
subscription_id = matched.groupdict()['subscription']
return get_mgmt_service_client(cli_ctx, ResourceType.MGMT_AUTHORIZATION, subscription_id=subscription_id)
def validate_asp_create(cmd, namespace):
"""Validate the SiteName that is being used to create is available
This API requires that the RG is already created"""
client = web_client_factory(cmd.cli_ctx)
if isinstance(namespace.name, str) and isinstance(namespace.resource_group_name, str):
resource_group_name = namespace.resource_group_name
if isinstance(namespace.location, str):
location = namespace.location
else:
from azure.cli.core.profiles import ResourceType
rg_client = get_mgmt_service_client(cmd.cli_ctx, ResourceType.MGMT_RESOURCE_RESOURCES)
group = rg_client.resource_groups.get(resource_group_name)
location = group.location
validation_payload = {
"name": namespace.name,
"type": "Microsoft.Web/serverfarms",
"location": location,
"properties": {
"skuName": _normalize_sku(namespace.sku) or 'B1',
"capacity": namespace.number_of_workers or 1,
"needLinuxWorkers": namespace.is_linux,
"isXenon": namespace.hyper_v
}
}
validation = client.validate(resource_group_name, validation_payload)
if validation.status.lower() == "failure" and validation.error.code != 'ServerFarmAlreadyExists':
def _get_storage_prerequisites(cmd, storage_account, container):
t_page_blob_service = get_sdk(cmd.cli_ctx, ResourceType.DATA_STORAGE, 'blob.pageblobservice#PageBlobService')
mgmt_client = get_mgmt_service_client(cmd.cli_ctx, ResourceType.MGMT_STORAGE)
acc = next((x for x in mgmt_client.storage_accounts.list() if x.name.lower() == storage_account.lower()), None)
account_key = None
if acc:
rg = parse_resource_id(acc.id)['resource_group']
t_storage_account_keys, t_storage_account_list_keys_results = get_sdk(
cmd.cli_ctx, ResourceType.MGMT_STORAGE,
'models#StorageAccountKeys',
'models#StorageAccountListKeysResult')
if t_storage_account_keys:
account_key = mgmt_client.storage_accounts.list_keys(rg, storage_account).key1
elif t_storage_account_list_keys_results:
account_key = mgmt_client.storage_accounts.list_keys(rg, storage_account).keys[0].value
else:
raise CLIError('Storage account of "{}" doesn\'t exist'.format(storage_account))
def _default_certificate_profile(cmd):
Action = cmd.get_models('Action', resource_type=ResourceType.DATA_KEYVAULT)
ActionType = cmd.get_models('ActionType', resource_type=ResourceType.DATA_KEYVAULT)
KeyUsageType = cmd.get_models('KeyUsageType', resource_type=ResourceType.DATA_KEYVAULT)
CertificateAttributes = cmd.get_models('CertificateAttributes', resource_type=ResourceType.DATA_KEYVAULT)
CertificatePolicy = cmd.get_models('CertificatePolicy', resource_type=ResourceType.DATA_KEYVAULT)
IssuerParameters = cmd.get_models('IssuerParameters', resource_type=ResourceType.DATA_KEYVAULT)
KeyProperties = cmd.get_models('KeyProperties', resource_type=ResourceType.DATA_KEYVAULT)
LifetimeAction = cmd.get_models('LifetimeAction', resource_type=ResourceType.DATA_KEYVAULT)
SecretProperties = cmd.get_models('SecretProperties', resource_type=ResourceType.DATA_KEYVAULT)
X509CertificateProperties = cmd.get_models('X509CertificateProperties', resource_type=ResourceType.DATA_KEYVAULT)
Trigger = cmd.get_models('Trigger', resource_type=ResourceType.DATA_KEYVAULT)
template = CertificatePolicy(
key_properties=KeyProperties(
exportable=True,
key_type=u'RSA',
key_size=2048,
reuse_key=True
),
secret_properties=SecretProperties(
content_type=u'application/x-pkcs12'
),
x509_certificate_properties=X509CertificateProperties(
def _resource_policy_client_factory(cli_ctx, **_):
from azure.cli.core.commands.client_factory import get_mgmt_service_client
from azure.cli.core.profiles import ResourceType
return get_mgmt_service_client(cli_ctx, ResourceType.MGMT_RESOURCE_POLICY)
def storage_account_id(cmd, namespace):
"""Validate storage account name"""
from azure.cli.core.profiles import ResourceType
from azure.cli.core.commands.client_factory import get_mgmt_service_client
if (namespace.storage_account and not
('/providers/Microsoft.ClassicStorage/storageAccounts/' in namespace.storage_account or
'/providers/Microsoft.Storage/storageAccounts/' in namespace.storage_account)):
storage_client = get_mgmt_service_client(cmd.cli_ctx, ResourceType.MGMT_STORAGE)
acc = storage_client.storage_accounts.get_properties(namespace.resource_group_name,
namespace.storage_account)
if not acc:
raise ValueError("Storage account named '{}' not found in the resource group '{}'.".
format(namespace.storage_account, namespace.resource_group_name))
namespace.storage_account = acc.id # pylint: disable=no-member
def network_client_factory(cli_ctx, **kwargs):
from azure.cli.core.profiles import ResourceType
from azure.cli.core.commands.client_factory import get_mgmt_service_client
return get_mgmt_service_client(cli_ctx, ResourceType.MGMT_NETWORK, **kwargs)