Skip to content

Commit db50240

Browse files
authored
[NetAppFilse] Add test and fix for NetAppAccount Identity (#23808)
* Add test and fix for NetAppAccount Identity * Update test run * Update tests * Update tests * Enable volumegroup test
1 parent 538f1c4 commit db50240

File tree

13 files changed

+5120
-1541
lines changed

13 files changed

+5120
-1541
lines changed

src/NetAppFiles/NetAppFiles.Test/NetAppFiles.Test.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
<ItemGroup>
1818
<ProjectReference Include="..\NetAppFiles\NetAppFiles.csproj" />
1919
<ProjectReference Include="..\NetAppFiles.Management.Sdk\NetAppFiles.Management.Sdk.csproj" />
20+
<PackageReference Include="Microsoft.Azure.Management.ManagedServiceIdentity" Version="0.10.0-preview" />
2021
</ItemGroup>
2122

2223
<ItemGroup>

src/NetAppFiles/NetAppFiles.Test/ScenarioTests/AccountTests.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,5 +43,12 @@ public void TestAccountPipelines()
4343
{
4444
TestRunner.RunTestScript("Test-AccountPipelines");
4545
}
46+
47+
[Fact]
48+
[Trait(Category.AcceptanceType, Category.CheckIn)]
49+
public void TestAccountCMK()
50+
{
51+
TestRunner.RunTestScript("Test-AccountCMK");
52+
}
4653
}
4754
}

src/NetAppFiles/NetAppFiles.Test/ScenarioTests/AccountTests.ps1

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,91 @@ function Test-AccountCrud
193193
}
194194
}
195195

196+
<#
197+
.SYNOPSIS
198+
Test Account CMK CRUD operations
199+
#>
200+
function Test-AccountCMK
201+
{
202+
#$resourceGroup = "somename2"
203+
$currentSub = (Get-AzureRmContext).Subscription
204+
$subsid = $currentSub.SubscriptionId
205+
206+
$resourceGroup = Get-ResourceGroupName
207+
$accName1 = Get-ResourceName
208+
$accName2 = Get-ResourceName
209+
$identityName = Get-ResourceName
210+
#$keyVaultName = Get-ResourceName
211+
$resourceLocation = Get-ProviderLocation "Microsoft.NetApp"
212+
$keySource = "Microsoft.KeyVault"
213+
$keyVaultUri = "https://akvtestvault2.vault.azure.net/"
214+
$keyName = "akvTestMaster"
215+
$keyVaultName = "akvTestVault2"
216+
$keyVaultResourceId = "/subscriptions/0661b131-4a11-479b-96bf-2f95acca2f73/resourceGroups/akvTestRG/providers/Microsoft.KeyVault/vaults/akvTestVault2"
217+
$kvResourceGroup = "akvTestRG"
218+
# $userAssignedIdentity = "/subscriptions/$subsid/resourcegroups/$resourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/FakeUserIdentity"
219+
$userAssignedIdentity = "/subscriptions/$subsid/resourcegroups/akvTestRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/abAkvIdenity"
220+
221+
$identityType = "UserAssigned"
222+
223+
try
224+
{
225+
# create the resource group
226+
New-AzResourceGroup -Name $resourceGroup -Location $resourceLocation -Tags @{Owner = 'b-aubald'}
227+
228+
# New-AzResourceGroup -Name $resourceGroup -Tags @{Owner = 'b-aubald'} -Location $resourceLocation
229+
# $userAssignedIdenity = New-AzUserAssignedIdentity -ResourceGroupName $resourceGroup -Name $identityName -Location $resourceLocation
230+
# Create keyvault and userIdeneity then give the identity access to the keyvault
231+
# $azKeyVault = New-AzKeyVault -Name $keyVaultName -ResourceGroupName $resourceGroup -Location $resourceLocation -EnablePurgeProtection
232+
233+
#Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ResourceGroupname $kvResourceGroup -ObjectId $userAssignedIdenity.PrincipalId -PermissionsToKeys create,get,encrypt,decrypt -BypassObjectIdValidation
234+
# Create key
235+
#$keyVaultKey = Add-AzKeyVaultKey -VaultName $keyVaultName -Name $keyName -Destination "Software"
236+
237+
# create and check account 1
238+
$newTagName = "tag1"
239+
$newTagValue = "tagValue1"
240+
241+
# $retrievedAcc = New-AzNetAppFilesAccount -ResourceGroupName $resourceGroup -Location $resourceLocation -Name $accName1 -Tag @{$newTagName = $newTagValue}
242+
$retrievedAcc = New-AzNetAppFilesAccount -ResourceGroupName $resourceGroup -Location $resourceLocation -Name $accName1 -Tag @{$newTagName = $newTagValue} -EncryptionKeySource $keySource -IdentityType $identityType -KeyVaultKeyName $keyName -KeyVaultResourceId $keyVaultResourceId -KeyVaultUri $keyVaultUri -UserAssignedIdentity $userAssignedIdentity
243+
Assert-AreEqual $accName1 $retrievedAcc.Name
244+
Assert-AreEqual True $retrievedAcc.Tags.ContainsKey($newTagName)
245+
Assert-AreEqual "tagValue1" $retrievedAcc.Tags[$newTagName].ToString()
246+
Assert-NotNull $retrievedAcc.Identity.UserAssignedIdentities
247+
Assert-AreEqual True $retrievedAcc.Tags.ContainsKey($newTagName)
248+
Assert-AreEqual True $retrievedAcc.Identity.UserAssignedIdentities.ContainsKey($userAssignedIdentity)
249+
250+
# create and check account 2 using the Confirm flag
251+
$retrievedAcc2 = New-AzNetAppFilesAccount -ResourceGroupName $resourceGroup -Location $resourceLocation -AccountName $accName2 -Confirm:$false
252+
Assert-AreEqual $accName2 $retrievedAcc2.Name
253+
254+
# update and check account setting Encryption CMK properties
255+
Assert-ThrowsContains{$retrievedAcc = Update-AzNetAppFilesAccount -ResourceGroupName $resourceGroup -Location $resourceLocation -AccountName $accName2 -EncryptionKeySource $keySource -IdentityType $identityType -KeyVaultKeyName $keyName -KeyVaultResourceId $keyVaultResourceId -KeyVaultUri $keyVaultUri -UserAssignedIdentity $userAssignedIdenity}
256+
Assert-AreEqual $accName2 $retrievedAcc2.Name
257+
Assert-NotNull $retrievedAcc.Identity.UserAssignedIdentities
258+
Assert-AreEqual True $retrievedAcc.Tags.ContainsKey($newTagName)
259+
Assert-AreEqual True $retrievedAcc.Identity.UserAssignedIdentities.ContainsKey($userAssignedIdentity)
260+
261+
# Assert-ThrowsContains{$retrievedAcc = Update-AzNetAppFilesAccountCredential -ResourceGroupName $resourceGroup -Location $resourceLocation -AccountName $accName1 } 'NetApp account does not have an MSI credentials, therefore it is ineligible for renewal of credentials'
262+
Update-AzNetAppFilesAccountCredential -ResourceGroupName $resourceGroup -Location $resourceLocation -AccountName $accName1
263+
264+
# get and check accounts by group (list)
265+
$retrievedAcc = Get-AzNetAppFilesAccount -ResourceGroupName $resourceGroup
266+
# check the names but the order does not appear to be guaranteed (perhaps because the names are randomly generated)
267+
Assert-AreEqual 2 $retrievedAcc.Length
268+
269+
Remove-AzNetAppFilesAccount -ResourceGroupName $resourceGroup -AccountName $accName1
270+
$retrievedAcc = Get-AzNetAppFilesAccount -ResourceGroupName $resourceGroup
271+
Assert-AreEqual 1 $retrievedAcc.Length
272+
}
273+
finally
274+
{
275+
# Cleanup
276+
Clean-ResourceGroup $resourceGroup
277+
}
278+
}
279+
280+
196281
<#
197282
.SYNOPSIS
198283
Test Account Pipeline operations (uses command aliases)

src/NetAppFiles/NetAppFiles.Test/ScenarioTests/NetAppFilesTestRunner.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ protected NetAppFilesTestRunner(ITestOutputHelper output)
3636
{
3737
helper.RMProfileModule,
3838
helper.RMNetworkModule,
39-
helper.GetRMModulePath("Az.NetAppFiles.psd1")
39+
helper.GetRMModulePath("Az.NetAppFiles.psd1"),
40+
helper.GetRMModulePath("Az.ManagedServiceIdentity.psd1")
4041
})
4142
.WithNewRecordMatcherArguments(
4243
userAgentsToIgnore: new Dictionary<string, string>
@@ -49,7 +50,8 @@ protected NetAppFilesTestRunner(ITestOutputHelper output)
4950
{"Microsoft.Features", null},
5051
{"Microsoft.Authorization", null},
5152
{"Microsoft.Network", null},
52-
{"Microsoft.Compute", null}
53+
{"Microsoft.Compute", null},
54+
{"Microsoft.ManagedServiceIdentity", null}
5355
}
5456
)
5557
.Build();

src/NetAppFiles/NetAppFiles.Test/ScenarioTests/VolumeGroup.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ public VolumeGroupTests(Xunit.Abstractions.ITestOutputHelper output) : base(outp
2222
{
2323
}
2424

25-
[Fact(Skip = "Doesn't work at the moment")]
26-
//[Fact]
25+
//[Fact(Skip = "Doesn't work at the moment")]
26+
[Fact]
2727
[Trait(Category.AcceptanceType, Category.CheckIn)]
2828
public void TestVolumeGroupCrud()
2929
{

src/NetAppFiles/NetAppFiles.Test/ScenarioTests/VolumeGroupTests.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ function Test-VolumeGroupCrud
4949
$resourceLocation = "northeurope"
5050
$vnetName = "vnetnortheurope-anf"
5151
$subnetId = "/subscriptions/$subsId/resourceGroups/$fixedResourceGroup/providers/Microsoft.Network/virtualNetworks/$vnetName/subnets/$subnetName"
52-
$proximityPlacementGroup = "/subscriptions/69a75bda-882e-44d5-8431-63421204132a/resourceGroups/sdk-net-test-qa2/providers/Microsoft.Compute/proximityPlacementGroups/sdk_test_northeurope_ppg"
52+
$proximityPlacementGroup = "/subscriptions/$subsId/resourceGroups/$fixedResourceGroup/providers/Microsoft.Compute/proximityPlacementGroups/sdk_test_northeurope_ppg"
5353

5454
# create the list of protocol types
5555
$protocolTypes = New-Object string[] 1

0 commit comments

Comments
 (0)