Пример #1
0
def _try_get_protectable_item_for_afs(cli_ctx, vault_name, resource_group_name, afs_name, storage_account_name):
    backup_protectable_items_client = backup_protectable_items_cf(cli_ctx)

    filter_string = helper.get_filter_string({
        'backupManagementType': backup_management_type,
        'workloadType': workload_type})

    protectable_items_paged = backup_protectable_items_client.list(vault_name, resource_group_name, filter_string)
    protectable_items = helper.get_list_from_paged_response(protectable_items_paged)
    result = protectable_items
    if helper.is_native_name(storage_account_name):
        result = [protectable_item for protectable_item in result
                  if protectable_item.id.split('/')[12] == storage_account_name.lower()]
    else:
        result = [protectable_item for protectable_item in result
                  if protectable_item.properties.parent_container_friendly_name.lower() == storage_account_name.lower()]
    if helper.is_native_name(afs_name):
        result = [protectable_item for protectable_item in result
                  if protectable_item.name.lower() == afs_name.lower()]
    else:
        result = [protectable_item for protectable_item in result
                  if protectable_item.properties.friendly_name.lower() == afs_name.lower()]
    if len(result) > 1:
        raise CLIError("Could not find a unique resource, Please pass native names instead")
    if len(result) == 1:
        return result[0]
    return None
Пример #2
0
def show_recovery_config(cmd,
                         client,
                         resource_group_name,
                         vault_name,
                         restore_mode,
                         container_name,
                         item_name,
                         rp_name=None,
                         target_item_name=None,
                         log_point_in_time=None,
                         target_server_type=None,
                         target_server_name=None,
                         workload_type=None):
    target_item = None
    if target_item_name is not None:
        protectable_items_client = backup_protectable_items_cf(cmd.cli_ctx)
        target_item = show_protectable_instance(cmd, protectable_items_client,
                                                resource_group_name,
                                                vault_name, target_server_name,
                                                target_server_type,
                                                workload_type, container_name)
    return custom_wl.show_recovery_config(cmd, client, resource_group_name,
                                          vault_name, restore_mode,
                                          container_name, item_name, rp_name,
                                          target_item, target_item_name,
                                          log_point_in_time)
Пример #3
0
def auto_enable_for_azure_wl(cmd, client, resource_group_name, vault_name, policy_name, protectable_item_name,
                             protectable_item_type, server_name, workload_type):
    policy_object = show_policy(protection_policies_cf(cmd.cli_ctx), resource_group_name, vault_name, policy_name)
    protectable_items_client = backup_protectable_items_cf(cmd.cli_ctx)
    protectable_item = show_protectable_item(cmd, protectable_items_client, resource_group_name, vault_name,
                                             protectable_item_name, server_name, protectable_item_type, workload_type)
    return custom_wl.auto_enable_for_azure_wl(client, resource_group_name, vault_name, policy_object,
                                              protectable_item)
Пример #4
0
def show_recovery_config(cmd,
                         client,
                         resource_group_name,
                         vault_name,
                         restore_mode,
                         container_name,
                         item_name,
                         rp_name=None,
                         target_item_name=None,
                         log_point_in_time=None,
                         target_server_type=None,
                         target_server_name=None,
                         workload_type=None,
                         backup_management_type="AzureWorkload",
                         from_full_rp_name=None,
                         filepath=None,
                         target_container_name=None,
                         target_resource_group=None,
                         target_vault_name=None):
    target_resource_group = resource_group_name if target_resource_group is None else target_resource_group
    target_vault_name = vault_name if target_vault_name is None else target_vault_name
    target_container_name = container_name if target_container_name is None else target_container_name
    target_item = None
    if target_item_name is not None:
        protectable_items_client = backup_protectable_items_cf(cmd.cli_ctx)
        target_item = show_protectable_instance(
            cmd, protectable_items_client, target_resource_group,
            target_vault_name, target_server_name, target_server_type,
            workload_type, target_container_name)

    target_container = None
    if target_container_name is not None:
        container_client = backup_protection_containers_cf(cmd.cli_ctx)
        target_container = common.show_container(cmd, container_client,
                                                 target_container_name,
                                                 target_resource_group,
                                                 target_vault_name,
                                                 backup_management_type)

        if isinstance(target_container, list):
            raise ValidationError("""
            Multiple containers with same Friendly Name found. Please give native names instead.
            """)

    return custom_wl.show_recovery_config(
        cmd, client, resource_group_name, vault_name, restore_mode,
        container_name, item_name, rp_name, target_item, target_item_name,
        log_point_in_time, from_full_rp_name, filepath, target_container,
        target_resource_group, target_vault_name)
Пример #5
0
def disable_auto_for_azure_wl(cmd, client, resource_group_name, vault_name,
                              protectable_item_name, protectable_item_type,
                              server_name, workload_type):
    protectable_items_client = backup_protectable_items_cf(cmd.cli_ctx)
    protectable_item = show_protectable_item(cmd, protectable_items_client,
                                             resource_group_name, vault_name,
                                             protectable_item_name,
                                             server_name,
                                             protectable_item_type,
                                             workload_type)
    custom_help.validate_protectable_item(protectable_item)

    return custom_wl.disable_auto_for_azure_wl(cmd, client,
                                               resource_group_name, vault_name,
                                               protectable_item)
Пример #6
0
def _try_get_protectable_item_for_vm(cli_ctx, vault_name, vault_rg, vm_name, vm_rg):
    backup_protectable_items_client = backup_protectable_items_cf(cli_ctx)

    filter_string = _get_filter_string({
        'backupManagementType': 'AzureIaasVM'})

    protectable_items_paged = backup_protectable_items_client.list(vault_name, vault_rg, filter_string)
    protectable_items = _get_list_from_paged_response(protectable_items_paged)

    for protectable_item in protectable_items:
        item_vm_name = _get_vm_name_from_vm_id(protectable_item.properties.virtual_machine_id)
        item_vm_rg = _get_resource_group_from_id(protectable_item.properties.virtual_machine_id)
        if item_vm_name.lower() == vm_name.lower() and item_vm_rg.lower() == vm_rg.lower():
            return protectable_item
    return None