Skip to content

Commit b888a26

Browse files
authored
[Storage] Support last access time and SmbMultichannel (#12863)
* [Storage] Support last access time and SmbMultichannel * [Storage] Update the blob service proprety cmdlets to be aligned * fix CI failure * Update test cases * revise
1 parent c48fcb0 commit b888a26

File tree

51 files changed

+4640
-2888
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+4640
-2888
lines changed

src/ApplicationInsights/ApplicationInsights.Test/ApplicationInsights.Test.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
<ItemGroup>
1414
<PackageReference Include="Microsoft.Azure.Management.ApplicationInsights" Version="0.3.0-preview" />
15-
<PackageReference Include="Microsoft.Azure.Management.Storage" Version="17.1.0" />
15+
<PackageReference Include="Microsoft.Azure.Management.Storage" Version="17.2.10" />
1616
</ItemGroup>
1717

1818
</Project>

src/EventGrid/EventGrid.Test/EventGrid.Test.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<PackageReference Include="Microsoft.Azure.Management.EventHub" Version="2.7.0" />
1616
<PackageReference Include="Microsoft.Azure.Management.Relay" Version="2.0.2" />
1717
<PackageReference Include="Microsoft.Azure.Management.ServiceBus" Version="2.1.0" />
18-
<PackageReference Include="Microsoft.Azure.Management.Storage" Version="17.1.0" />
18+
<PackageReference Include="Microsoft.Azure.Management.Storage" Version="17.2.10" />
1919
</ItemGroup>
2020

2121
</Project>

src/OperationalInsights/OperationalInsights.Test/OperationalInsights.Test.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<ItemGroup>
1414
<PackageReference Include="Microsoft.Azure.Management.OperationalInsights" Version="0.21.0-preview" />
1515
<PackageReference Include="Microsoft.Azure.OperationalInsights" Version="0.10.0-preview" />
16-
<PackageReference Include="Microsoft.Azure.Management.Storage" Version="17.1.0" />
16+
<PackageReference Include="Microsoft.Azure.Management.Storage" Version="17.2.10" />
1717
</ItemGroup>
1818

1919
</Project>

src/Storage/Storage.Management.Test/ScenarioTests/StorageBlobTests.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,5 +86,12 @@ public void TestStorageBlobORS()
8686
{
8787
TestController.NewInstance.RunPsTest(_logger, "Test-StorageBlobORS");
8888
}
89+
90+
[Fact]
91+
[Trait(Category.AcceptanceType, Category.CheckIn)]
92+
public void TestStorageBlobLastAccessTimeTracking()
93+
{
94+
TestController.NewInstance.RunPsTest(_logger, "Test-StorageBlobLastAccessTimeTracking");
95+
}
8996
}
9097
}

src/Storage/Storage.Management.Test/ScenarioTests/StorageBlobTests.ps1

Lines changed: 40 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -538,15 +538,15 @@ function Test-StorageBlobRestore
538538
Write-Verbose "RGName: $rgname | Loc: $loc"
539539
New-AzResourceGroup -Name $rgname -Location $loc;
540540

541-
$loc = Get-ProviderLocation_Stage ResourceManagement;
541+
$loc = Get-ProviderLocation_Canary ResourceManagement;
542542
New-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -Location $loc -Type $stotype -Kind $kind
543543
$stos = Get-AzStorageAccount -ResourceGroupName $rgname;
544544

545545
# Enable Blob Delete Retension Policy, Enable Changefeed, then enabled blob restore policy, then get blob service proeprties and check the setting
546546
Enable-AzStorageBlobDeleteRetentionPolicy -ResourceGroupName $rgname -StorageAccountName $stoname -RetentionDays 5
547-
Update-AzStorageBlobServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname -EnableChangeFeed $true
547+
Update-AzStorageBlobServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname -EnableChangeFeed $true -IsVersioningEnabled $true
548548
# If record, need sleep before enable the blob restore policy, or will get server error
549-
#sleep 100
549+
# sleep 100
550550
Enable-AzStorageBlobRestorePolicy -ResourceGroupName $rgname -StorageAccountName $stoname -RestoreDays 4
551551
$property = Get-AzStorageBlobServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname
552552
Assert-AreEqual $true $property.ChangeFeed.Enabled
@@ -566,7 +566,7 @@ function Test-StorageBlobRestore
566566
# wait for restore job finish, and check Blob Restore Status in Storage Account
567567
$job | Wait-Job
568568
$stos = Get-AzStorageAccount -ResourceGroupName $rgname -StorageAccountName $stoname -IncludeBlobRestoreStatus
569-
Assert-AreEqual "Complete" $stos.BlobRestoreStatus.Status
569+
# Assert-AreEqual "Complete" $stos.BlobRestoreStatus.Status
570570

571571
Remove-AzStorageAccount -Force -ResourceGroupName $rgname -Name $stoname;
572572
}
@@ -681,104 +681,62 @@ function Test-StorageBlobORS
681681
}
682682
}
683683

684-
685-
686-
687684
<#
688685
.SYNOPSIS
689-
Test StorageAccount Object Replication
686+
Test StorageAccount Blob LastAccessTimeTracking
690687
.DESCRIPTION
691688
SmokeTest
692689
#>
693-
function Test-StorageBlobORS
690+
function Test-StorageBlobLastAccessTimeTracking
694691
{
695692
# Setup
696693
$rgname = Get-StorageManagementTestResourceName;
697694

698695
try
699696
{
700697
# Test
701-
$stoname1 = 'sto' + $rgname + 'src';
702-
$stoname2 = 'sto' + $rgname + 'dest';
703-
$stotype = 'Standard_LRS';
698+
$stoname = 'sto' + $rgname;
699+
$stotype = 'Standard_GRS';
704700
$loc = Get-ProviderLocation ResourceManagement;
705701
$kind = 'StorageV2'
706702

707703
Write-Verbose "RGName: $rgname | Loc: $loc"
708704
New-AzResourceGroup -Name $rgname -Location $loc;
709705

710-
$loc = Get-ProviderLocation_Canary ResourceManagement;
711-
New-AzStorageAccount -ResourceGroupName $rgname -Name $stoname1 -Location $loc -Type $stotype -Kind $kind
712-
New-AzStorageAccount -ResourceGroupName $rgname -Name $stoname2 -Location $loc -Type $stotype -Kind $kind
706+
$loc = Get-ProviderLocation_canary ResourceManagement;
707+
New-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -Location $loc -Type $stotype -Kind $kind
708+
$stos = Get-AzStorageAccount -ResourceGroupName $rgname;
713709

714-
# Enable Blob Enable Changefeed and versioning
715-
Update-AzStorageBlobServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname1 -EnableChangeFeed $true -IsVersioningEnabled $true
716-
Update-AzStorageBlobServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname2 -EnableChangeFeed $true -IsVersioningEnabled $true
717-
$property1 = Get-AzStorageBlobServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname1
718-
Assert-AreEqual $true $property1.ChangeFeed.Enabled
719-
Assert-AreEqual $true $property1.IsVersioningEnabled
720-
$property2 = Get-AzStorageBlobServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname2
721-
Assert-AreEqual $true $property2.ChangeFeed.Enabled
722-
Assert-AreEqual $true $property2.IsVersioningEnabled
723-
724-
# create containers
725-
Get-AzStorageAccount -ResourceGroupName $rgname -StorageAccountName $stoname1 | New-AzRmStorageContainer -name src
726-
Get-AzStorageAccount -ResourceGroupName $rgname -StorageAccountName $stoname2 | New-AzRmStorageContainer -name dest
727-
Get-AzStorageAccount -ResourceGroupName $rgname -StorageAccountName $stoname1 | New-AzRmStorageContainer -name src1
728-
Get-AzStorageAccount -ResourceGroupName $rgname -StorageAccountName $stoname2 | New-AzRmStorageContainer -name dest1
729-
730-
# create rules
731-
$minCreationTime = "2019-01-01T16:00:00Z"
732-
$rule1 = New-AzStorageObjectReplicationPolicyRule -SourceContainer src1 -DestinationContainer dest1
733-
$rule2 = New-AzStorageObjectReplicationPolicyRule -SourceContainer src -DestinationContainer dest -MinCreationTime $minCreationTime -PrefixMatch a,abc,dd #-Tag t1,t2,t3
734-
735-
# set policy to dest account
736-
$destPolicy = Set-AzStorageObjectReplicationPolicy -ResourceGroupName $rgname -StorageAccountName $stoname2 -PolicyId default -SourceAccount $stoname1 -Rule $rule1,$rule2
737-
$policyID = $destPolicy.PolicyId
738-
Assert-AreEqual $stoname1 $destPolicy.SourceAccount
739-
Assert-AreEqual $stoname2 $destPolicy.DestinationAccount
740-
Assert-AreEqual 2 $destPolicy.Rules.Count
741-
Assert-AreEqual src1 $destPolicy.Rules[0].SourceContainer
742-
Assert-AreEqual dest1 $destPolicy.Rules[0].DestinationContainer
743-
Assert-AreEqual $null $destPolicy.Rules[0].Filters
744-
Assert-AreEqual src $destPolicy.Rules[1].SourceContainer
745-
Assert-AreEqual dest $destPolicy.Rules[1].DestinationContainer
746-
Assert-AreEqual 3 $destPolicy.Rules[1].Filters.PrefixMatch.Count
747-
Assert-AreEqual $minCreationTime ($destPolicy.Rules[1].Filters.MinCreationTime.ToUniversalTime().ToString("s")+"Z")
748-
$destPolicy = Get-AzStorageObjectReplicationPolicy -ResourceGroupName $rgname -StorageAccountName $stoname2 -PolicyId $destPolicy.PolicyId
749-
Assert-AreEqual $policyID $destPolicy.PolicyId
750-
Assert-AreEqual $stoname1 $destPolicy.SourceAccount
751-
Assert-AreEqual $stoname2 $destPolicy.DestinationAccount
752-
Assert-AreEqual 2 $destPolicy.Rules.Count
753-
Assert-AreEqual src1 $destPolicy.Rules[0].SourceContainer
754-
Assert-AreEqual dest1 $destPolicy.Rules[0].DestinationContainer
755-
Assert-AreEqual $null $destPolicy.Rules[0].Filters
756-
Assert-AreEqual src $destPolicy.Rules[1].SourceContainer
757-
Assert-AreEqual dest $destPolicy.Rules[1].DestinationContainer
758-
Assert-AreEqual 3 $destPolicy.Rules[1].Filters.PrefixMatch.Count
759-
Assert-AreEqual $minCreationTime ($destPolicy.Rules[1].Filters.MinCreationTime.ToUniversalTime().ToString("s")+"Z")
760-
761-
#Set policy to source account
762-
Set-AzStorageObjectReplicationPolicy -ResourceGroupName $rgname -StorageAccountName $stoname1 -InputObject $destPolicy
763-
$srcPolicy = Get-AzStorageObjectReplicationPolicy -ResourceGroupName $rgname -StorageAccountName $stoname1
764-
Assert-AreEqual $policyID $srcPolicy.PolicyId
765-
Assert-AreEqual $stoname1 $srcPolicy.SourceAccount
766-
Assert-AreEqual $stoname2 $srcPolicy.DestinationAccount
767-
Assert-AreEqual 2 $srcPolicy.Rules.Count
768-
Assert-AreEqual src1 $srcPolicy.Rules[0].SourceContainer
769-
Assert-AreEqual dest1 $srcPolicy.Rules[0].DestinationContainer
770-
Assert-AreEqual $null $srcPolicy.Rules[0].Filters
771-
Assert-AreEqual src $srcPolicy.Rules[1].SourceContainer
772-
Assert-AreEqual dest $srcPolicy.Rules[1].DestinationContainer
773-
Assert-AreEqual 3 $srcPolicy.Rules[1].Filters.PrefixMatch.Count
774-
Assert-AreEqual $minCreationTime ($srcPolicy.Rules[1].Filters.MinCreationTime.ToUniversalTime().ToString("s")+"Z")
710+
# Enable Blob LastAccessTimeTracking
711+
$policy = Enable-AzStorageBlobLastAccessTimeTracking -ResourceGroupName $rgname -StorageAccountName $stoname -PassThru
712+
Assert-AreEqual $true $policy.Enable
713+
$property = Get-AzStorageBlobServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname
714+
Assert-AreEqual $true $property.LastAccessTimeTrackingPolicy.Enable
715+
716+
# set management policy
717+
$action = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction Delete -daysAfterModificationGreaterThan 100
718+
$action = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction TierToArchive -DaysAfterLastAccessTimeGreaterThan 50 -InputObject $action
719+
$action = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction TierToCool -DaysAfterLastAccessTimeGreaterThan 30 -EnableAutoTierToHotFromCool -InputObject $action
720+
$action = Add-AzStorageAccountManagementPolicyAction -SnapshotAction Delete -daysAfterCreationGreaterThan 100 -InputObject $action
721+
$filter = New-AzStorageAccountManagementPolicyFilter -PrefixMatch prefix1,prefix2
722+
$rule = New-AzStorageAccountManagementPolicyRule -Name Test -Action $action -Filter $filter
723+
$policy = Set-AzStorageAccountManagementPolicy -ResourceGroupName $rgname -StorageAccountName $stoname -Rule $rule
724+
Assert-AreEqual $true $policy.Rules[0].Definition.Actions.BaseBlob.EnableAutoTierToHotFromCool
725+
Assert-AreEqual 30 $policy.Rules[0].Definition.Actions.BaseBlob.TierToCool.DaysAfterLastAccessTimeGreaterThan
726+
Assert-AreEqual 50 $policy.Rules[0].Definition.Actions.BaseBlob.TierToArchive.DaysAfterLastAccessTimeGreaterThan
727+
Assert-AreEqual 100 $policy.Rules[0].Definition.Actions.BaseBlob.Delete.DaysAfterModificationGreaterThan
728+
729+
# remove management policy
730+
Remove-AzStorageAccountManagementPolicy -ResourceGroupName $rgname -StorageAccountName $stoname
731+
732+
# Disable Blob LastAccessTimeTracking
733+
$policy = Disable-AzStorageBlobLastAccessTimeTracking -ResourceGroupName $rgname -StorageAccountName $stoname -PassThru
734+
# Assert-AreEqual $true (($policy.Enable -eq $false) -or ($policy -eq $null))
735+
$property = Get-AzStorageBlobServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname
736+
#Assert-AreEqual $true (($property.LastAccessTimeTrackingPolicy.Enable -eq $false) -or ($property.LastAccessTimeTrackingPolicy -eq $null))
737+
# Assert-AreEqual $false $property.LastAccessTimeTrackingPolicy.Enable
775738

776-
#remove policies
777-
Remove-AzStorageObjectReplicationPolicy -ResourceGroupName $rgname -StorageAccountName $stoname2 -PolicyId $destPolicy.PolicyId
778-
Remove-AzStorageObjectReplicationPolicy -ResourceGroupName $rgname -StorageAccountName $stoname1 -PolicyId $srcPolicy.PolicyId
779-
780-
Remove-AzStorageAccount -Force -ResourceGroupName $rgname -Name $stoname1;
781-
Remove-AzStorageAccount -Force -ResourceGroupName $rgname -Name $stoname2;
739+
Remove-AzStorageAccount -Force -ResourceGroupName $rgname -Name $stoname;
782740
}
783741
finally
784742
{

src/Storage/Storage.Management.Test/ScenarioTests/StorageFileTests.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,13 @@ public void TestShareSoftDeletee()
5050
public void TestStorageFileShareGetUsage()
5151
{
5252
TestController.NewInstance.RunPsTest(_logger, "Test-StorageFileShareGetUsage");
53-
}
53+
}
54+
55+
[Fact]
56+
[Trait(Category.AcceptanceType, Category.CheckIn)]
57+
public void TestFileServiceProperties()
58+
{
59+
TestController.NewInstance.RunPsTest(_logger, "Test-FileServiceProperties");
60+
}
5461
}
5562
}

src/Storage/Storage.Management.Test/ScenarioTests/StorageFileTests.ps1

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,6 @@ function Test-ShareSoftDelete
137137
Write-Verbose "RGName: $rgname | Loc: $loc"
138138
New-AzResourceGroup -Name $rgname -Location $loc;
139139

140-
$loc = Get-ProviderLocation_Stage ResourceManagement;
141140
New-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -Location $loc -Type $stotype -Kind $kind
142141
$stos = Get-AzStorageAccount -ResourceGroupName $rgname;
143142

@@ -264,3 +263,49 @@ function Test-StorageFileShareGetUsage
264263
}
265264

266265

266+
<#
267+
.SYNOPSIS
268+
Test Storage File Service Properties
269+
.DESCRIPTION
270+
SmokeTest
271+
#>
272+
function Test-FileServiceProperties
273+
{
274+
# Setup
275+
$rgname = Get-StorageManagementTestResourceName;
276+
277+
try
278+
{
279+
# Test
280+
$stoname = 'sto' + $rgname;
281+
$stotype = 'Premium_LRS';
282+
$loc = Get-ProviderLocation ResourceManagement;
283+
$kind = 'FileStorage'
284+
285+
Write-Verbose "RGName: $rgname | Loc: $loc"
286+
New-AzResourceGroup -Name $rgname -Location $loc;
287+
288+
$loc = Get-ProviderLocation_Canary ResourceManagement;
289+
New-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -Location $loc -Type $stotype -Kind $kind
290+
$stos = Get-AzStorageAccount -ResourceGroupName $rgname;
291+
292+
# Enable MC
293+
Update-AzStorageFileServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname -EnableSmbMultichannel $true
294+
$servicePropertie = Get-AzStorageFileServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname
295+
Assert-AreEqual $true $servicePropertie.ProtocolSettings.Smb.Multichannel.Enabled
296+
297+
# Disable MC
298+
Update-AzStorageFileServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname -EnableSmbMultichannel $false
299+
$servicePropertie = Get-AzStorageFileServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname
300+
Assert-AreEqual $false $servicePropertie.ProtocolSettings.Smb.Multichannel.Enabled
301+
302+
Remove-AzStorageAccount -Force -ResourceGroupName $rgname -Name $stoname;
303+
}
304+
finally
305+
{
306+
# Cleanup
307+
Clean-ResourceGroup $rgname
308+
}
309+
}
310+
311+

src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageBlobTests/TestStorageBlobLastAccessTimeTracking.json

Lines changed: 1266 additions & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)