Skip to content

Commit 4f75001

Browse files
authored
[Storage] Support NFS and SmbMultichannel (#15130)
* [Storage] Support NFS * [Storage] Support EnableSmbMultichannel * fix PR review comments
1 parent 37e7adc commit 4f75001

File tree

15 files changed

+2794
-45
lines changed

15 files changed

+2794
-45
lines changed

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,20 @@ public void TestShareSoftDeletee()
5757
public void TestShareSnapshot()
5858
{
5959
TestController.NewInstance.RunPsTest(_logger, "Test-ShareSnapshot");
60+
}
61+
62+
[Fact]
63+
[Trait(Category.AcceptanceType, Category.CheckIn)]
64+
public void TestFileServiceProperties()
65+
{
66+
TestController.NewInstance.RunPsTest(_logger, "Test-FileServiceProperties");
67+
}
68+
69+
[Fact]
70+
[Trait(Category.AcceptanceType, Category.CheckIn)]
71+
public void TestAzureStorageShareNFS()
72+
{
73+
TestController.NewInstance.RunPsTest(_logger, "Test-AzureStorageShareNFS");
6074
}
6175
}
6276
}

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

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -358,4 +358,103 @@ function Test-ShareSnapshot
358358
}
359359
}
360360

361+
<#
362+
.SYNOPSIS
363+
Test Storage File Service Properties
364+
.DESCRIPTION
365+
SmokeTest
366+
#>
367+
function Test-FileServiceProperties
368+
{
369+
# Setup
370+
$rgname = Get-StorageManagementTestResourceName;
371+
372+
try
373+
{
374+
# Test
375+
$stoname = 'sto' + $rgname;
376+
$stotype = 'Premium_LRS';
377+
$loc = Get-ProviderLocation_Canary2 ResourceManagement;
378+
$kind = 'FileStorage'
379+
380+
Write-Verbose "RGName: $rgname | Loc: $loc"
381+
New-AzResourceGroup -Name $rgname -Location $loc;
382+
383+
# $loc = Get-ProviderLocation_Canary ResourceManagement;
384+
New-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -Location $loc -Type $stotype -Kind $kind
385+
$stos = Get-AzStorageAccount -ResourceGroupName $rgname;
386+
387+
# Enable MC, and set smb setting
388+
Update-AzStorageFileServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname -EnableSmbMultichannel $true
389+
$servicePropertie = Get-AzStorageFileServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname
390+
Assert-AreEqual $true $servicePropertie.ProtocolSettings.Smb.Multichannel.Enabled
391+
392+
# Disable MC, update smb setting
393+
Update-AzStorageFileServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname -EnableSmbMultichannel $false
394+
$servicePropertie = Get-AzStorageFileServiceProperty -ResourceGroupName $rgname -StorageAccountName $stoname
395+
Assert-AreEqual $false $servicePropertie.ProtocolSettings.Smb.Multichannel.Enabled
396+
397+
Remove-AzStorageAccount -Force -ResourceGroupName $rgname -Name $stoname;
398+
}
399+
finally
400+
{
401+
# Cleanup
402+
Clean-ResourceGroup $rgname
403+
}
404+
}
405+
406+
<#
407+
.SYNOPSIS
408+
Test Azure storage share with NFS
409+
.DESCRIPTION
410+
Smoke[Broken]Test
411+
#>
412+
function Test-AzureStorageShareNFS
413+
{
414+
# Setup
415+
$rgname = Get-StorageManagementTestResourceName;
416+
417+
try
418+
{
419+
# Test
420+
$stoname = 'sto' + $rgname;
421+
$stotype = 'Premium_LRS';
422+
$kind = 'FileStorage'
423+
424+
$loc = Get-ProviderLocation ResourceManagement;
425+
New-AzResourceGroup -Name $rgname -Location $loc;
426+
427+
New-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -Location $loc -Type $stotype -Kind $kind;
428+
$sto = Get-AzStorageAccount -ResourceGroupName $rgname -Name $stoname;
429+
Assert-AreEqual $stoname $sto.StorageAccountName;
430+
Assert-AreEqual $stotype $sto.Sku.Name;
431+
Assert-AreEqual $kind $sto.Kind;
432+
433+
434+
$shareName = "share"+ $rgname
435+
$sto | New-AzRmStorageShare -Name $shareName -EnabledProtocol NFS -RootSquash RootSquash
436+
$share = $sto | Get-AzRmStorageShare -Name $shareName
437+
Assert-AreEqual $rgname $share.ResourceGroupName
438+
Assert-AreEqual $stoname $share.StorageAccountName
439+
Assert-AreEqual $shareName $share.Name
440+
Assert-AreEqual "NFS" $share.EnabledProtocols
441+
Assert-AreEqual "RootSquash" $share.RootSquash
442+
443+
Update-AzRmStorageShare -ResourceGroupName $rgname -StorageAccountName $stoname -Name $shareName -RootSquash NoRootSquash
444+
$share = $sto | Get-AzRmStorageShare -Name $shareName
445+
Assert-AreEqual $rgname $share.ResourceGroupName
446+
Assert-AreEqual $stoname $share.StorageAccountName
447+
Assert-AreEqual $shareName $share.Name
448+
Assert-AreEqual "NFS" $share.EnabledProtocols
449+
Assert-AreEqual "NoRootSquash" $share.RootSquash
450+
451+
Retry-IfException { Remove-AzStorageAccount -Force -ResourceGroupName $rgname -Name $stoname; }
452+
}
453+
finally
454+
{
455+
# Cleanup
456+
Clean-ResourceGroup $rgname
457+
}
458+
}
459+
361460

src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageFileTests/TestAzureStorageShareNFS.json

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

0 commit comments

Comments
 (0)