@@ -193,6 +193,91 @@ function Test-AccountCrud
193
193
}
194
194
}
195
195
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
+
196
281
<#
197
282
. SYNOPSIS
198
283
Test Account Pipeline operations (uses command aliases)
0 commit comments