Exemplo n.º 1
0
def _force_delete_vault(cmd, vault_name, resource_group_name):
    logger.warning('Attemping to force delete vault: %s', vault_name)
    container_client = backup_protection_containers_cf(cmd.cli_ctx)
    backup_item_client = backup_protected_items_cf(cmd.cli_ctx)
    item_client = protected_items_cf(cmd.cli_ctx)
    vault_client = vaults_cf(cmd.cli_ctx)
    containers = _get_containers(container_client, 'AzureIaasVM', 'Registered',
                                 resource_group_name, vault_name)
    for container in containers:
        container_name = container.name.rsplit(';', 1)[1]
        items = list_items(cmd, backup_item_client, resource_group_name,
                           vault_name, container_name)
        for item in items:
            item_name = item.name.rsplit(';', 1)[1]
            logger.warning("Deleting backup item '%s' in container '%s'",
                           item_name, container_name)
            disable_protection(cmd,
                               item_client,
                               resource_group_name,
                               vault_name,
                               container_name,
                               item_name,
                               delete_backup_data=True)
    # now delete the vault
    vault_client.delete(resource_group_name, vault_name)
Exemplo n.º 2
0
def _force_delete_vault(cmd, vault_name, resource_group_name):
    logger.warning('Attemping to force delete vault: %s', vault_name)
    container_client = backup_protection_containers_cf(cmd.cli_ctx)
    backup_item_client = backup_protected_items_cf(cmd.cli_ctx)
    item_client = protected_items_cf(cmd.cli_ctx)
    vault_client = vaults_cf(cmd.cli_ctx)
    containers = _get_containers(container_client, 'AzureIaasVM', 'Registered',
                                 resource_group_name, vault_name)
    for container in containers:
        container_name = container.name.rsplit(';', 1)[1]
        items = list_items(cmd, backup_item_client, resource_group_name,
                           vault_name, container_name)
        for item in items:
            item_name = item.name.rsplit(';', 1)[1]
            logger.warning("Deleting backup item '%s' in container '%s'",
                           item_name, container_name)
            disable_protection(cmd, item_client, resource_group_name,
                               vault_name, item, True)
    # now delete the vault
    try:
        vault_client.delete(resource_group_name, vault_name)
    except Exception:
        raise CLIError(
            "Vault cannot be deleted as there are existing resources within the vault"
        )
Exemplo n.º 3
0
def show_item(cmd,
              client,
              resource_group_name,
              vault_name,
              container_name,
              name,
              backup_management_type=None,
              workload_type=None):
    if custom_help.is_native_name(name) and custom_help.is_native_name(
            container_name):
        client = protected_items_cf(cmd.cli_ctx)
        return client.get(vault_name, resource_group_name, fabric_name,
                          container_name, name)
    container_type = custom_help.validate_and_extract_container_type(
        container_name, backup_management_type)

    items = list_items(cmd, client, resource_group_name, vault_name,
                       workload_type, container_name, container_type)

    if custom_help.is_native_name(name):
        filtered_items = [
            item for item in items if item.name.lower() == name.lower()
        ]
    else:
        filtered_items = [
            item for item in items
            if item.properties.friendly_name.lower() == name.lower()
        ]

    return custom_help.get_none_one_or_many(filtered_items)
Exemplo n.º 4
0
def show_item(cmd,
              client,
              resource_group_name,
              vault_name,
              container_name,
              name,
              backup_management_type=None,
              workload_type=None,
              use_secondary_region=None):
    container_type = custom_help.validate_and_extract_container_type(
        container_name, backup_management_type)
    if use_secondary_region:
        if container_type and container_type.lower() in crr_not_supported_bmt:
            raise InvalidArgumentValueError("""
                --use-secondary-region flag is not supported for this backup management type.
                Please either remove the flag or query for any other container type.
                """)
    else:
        if custom_help.is_native_name(name) and custom_help.is_native_name(
                container_name):
            client = protected_items_cf(cmd.cli_ctx)
            return client.get(vault_name, resource_group_name, fabric_name,
                              container_name, name)

    items = list_items(cmd, client, resource_group_name, vault_name,
                       workload_type, container_name, container_type,
                       use_secondary_region)

    if custom_help.is_native_name(name):
        filtered_items = [
            item for item in items if item.name.lower() == name.lower()
        ]
    else:
        filtered_items = [
            item for item in items
            if item.properties.friendly_name.lower() == name.lower()
        ]

    return custom_help.get_none_one_or_many(filtered_items)