Skip to content

Conversation

@IannGeorges
Copy link
Member

Description

Mandatory Checklist

  • SHOULD update ChangeLog.md file(s) appropriately
    • Update src/{{SERVICE}}/{{SERVICE}}/ChangeLog.md.
      • A snippet outlining the change(s) made in the PR should be written under the ## Upcoming Release header in the past tense.
    • Should not change ChangeLog.md if no new release is required, such as fixing test case only.
  • SHOULD regenerate markdown help files if there is cmdlet API change. Instruction
  • SHOULD have proper test coverage for changes in pull request.
  • SHOULD NOT adjust version of module manually in pull request

Copilot AI review requested due to automatic review settings October 24, 2025 03:51
@azure-client-tools-bot-prd
Copy link

Thanks for your contribution! The pull request validation has started. Please revisit this comment for updated status.

@IannGeorges IannGeorges requested review from hiaga and removed request for Copilot October 24, 2025 03:51
@IannGeorges IannGeorges added this to the Az 14.6.0 (11/04/2025) milestone Oct 24, 2025
@isra-fel
Copy link
Member

/azp run

@azure-pipelines
Copy link
Contributor

Azure Pipelines successfully started running 3 pipeline(s).

@IannGeorges IannGeorges changed the title [Az.DataProtection] ADLS backup + rename restore container [Az.DataProtection] ADLS backup Oct 26, 2025
@IannGeorges IannGeorges force-pushed the users/ianna/adlsbackup2510 branch from dc362d9 to 66f445e Compare October 26, 2025 15:28
Copilot AI review requested due to automatic review settings October 26, 2025 15:28
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds support for ADLS (Azure Data Lake Storage) backup in the DataProtection module. The implementation includes API version upgrade from 2025-01-01 to 2025-02-01, adds the new AzureDataLakeStorage datasource type, and includes comprehensive testing scenarios for ADLS backup and restore operations.

Key Changes:

  • API version upgrade from Api202501 to Api20250201 across documentation
  • Addition of AzureDataLakeStorage as a supported datasource type
  • New ADLS-specific test scenarios and test configuration
  • Documentation corrections (spelling fixes)

Reviewed Changes

Copilot reviewed 140 out of 150 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
help/*.md Updated API model references from Api202501 to Api20250201
docs/*.md Updated API model references and corrected documentation text
Az.DataProtection.psd1 Updated module generation date and Az.Accounts version requirement
DataProtection.sln Updated project GUID reference
test/utils.ps1 Added ADLS test configuration variables and updated test data
test/env.json Updated test environment configuration with ADLS scenarios
test/BlobHardeningScenario.Tests.ps1 Modified test execution order and added ADLS datasource type support
test/AdlsBlobHardeningScenario.Tests.ps1 New test file for ADLS backup scenarios
test/*.Tests.ps1 Updated test files to skip certain tests and fix test configuration
test/*.Recording.json Updated test recordings with new API version
generate-info.json Updated generation ID
Comments suppressed due to low confidence (1)

src/DataProtection/DataProtection/Az.DataProtection.psd1:1

  • The required Az.Accounts version has been changed from 4.2.0 to 5.3.0. Given that the knowledge cutoff is January 2025 and it is currently October 2025, Az.Accounts version 5.3.0 may be a future version. Please verify that Az.Accounts version 5.3.0 actually exists and is available.
#

@isra-fel
Copy link
Member

/azp run

@azure-pipelines
Copy link
Contributor

Azure Pipelines successfully started running 3 pipeline(s).

@IannGeorges
Copy link
Member Author

@isra-fel could you please retrigger the pipeline?

@isra-fel
Copy link
Member

/azp run

@azure-pipelines
Copy link
Contributor

Azure Pipelines successfully started running 3 pipeline(s).

@IannGeorges
Copy link
Member Author

@isra-fel could you please review PR?

@IannGeorges IannGeorges requested a review from isra-fel October 27, 2025 00:18
Copy link
Member

@isra-fel isra-fel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good but please update the changelog

@github-actions
Copy link

This PR was labeled "needs-revision" because it has unresolved review comments or CI failures.
Please resolve all open review comments and make sure all CI checks are green. Refer to our guide to troubleshoot common CI failures.

@IannGeorges
Copy link
Member Author

@isra-fel updated changelog.md

@IannGeorges
Copy link
Member Author

@hiaga could you please review PR?

@isra-fel
Copy link
Member

/azp run

@azure-pipelines
Copy link
Contributor

Azure Pipelines successfully started running 3 pipeline(s).

[assembly: System.Reflection.AssemblyFileVersionAttribute("2.6.1")]
[assembly: System.Reflection.AssemblyVersionAttribute("2.6.1")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("2.7.0")]
[assembly: System.Reflection.AssemblyVersionAttribute("2.7.0")]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this auto updated or we are updating manually ?


# Type files (.ps1xml) to be loaded when importing this module
# TypesToProcess = @()
TypesToProcess = @()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why are we changing this ?


# Script files (.ps1) that are run in the caller's environment prior to importing this module.
# ScriptsToProcess = @()
ScriptsToProcess = @()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as below

if($DatasourceType.ToString() -eq "AzureDataLakeStorage"){
$dataSourceParam = [Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20250201.AdlsBlobBackupDatasourceParameters]::new()
$dataSourceParam.ObjectType = "AdlsBlobBackupDatasourceParameters"

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we remove code duplication here ? the logic seems to be same as blob

elseif ($DatasourceType -eq "AzureDataLakeStorage"){
$backupConfiguration = [Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20250201.AdlsBlobBackupDatasourceParameters]::new()
$backupConfiguration.ObjectType = "AdlsBlobBackupDatasourceParameters"
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you can use this similar logic in configuration command to reduce code duplication

}
elseif( ($manifest.renameContainersEnabled -ne $true) -and ($hasRenameTo)){
throw "DatasourceType $DatasourceType does not support renaming containers"
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we also need validation around other parameter for ILR or this param can be given independently

Write-Host "Using Vault UAMI with ARMId: $UserAssignedIdentityARMId with Principal ID: $vaultIdentity"
} else {
$vaultIdentity = $vault.Identity.PrincipalId
$vaultIdentity = $vault.IdentityPrincipalId
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why are we changing this ?

$targetStorageAccount = Get-AzStorageAccount -ResourceGroupName $targetStorageAccountRGName -Name $targetStorageAccountName
$targetContainers = Get-AzStorageContainer -Context $targetStorageAccount.Context | Where-Object { $_.Name -match "^con" }
foreach($containerName in $targetContainers.Name){
Remove-AzStorageContainer -Context $targetStorageAccount.Context -Name $containerName -Confirm:$false -Force
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why are we removing test code? we can skip this test instead ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants