Skip to content

Commit 55954ef

Browse files
authored
Merge pull request #4061 from kunalcha/dev
Key Vault: Powershell cmdlets for Managed Key Vault Storage Accounts …
2 parents e86316c + 0e05bbb commit 55954ef

File tree

96 files changed

+5814
-9113
lines changed

Some content is hidden

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

96 files changed

+5814
-9113
lines changed

src/ResourceManager/KeyVault/AzureRM.KeyVault.psd1

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,15 @@ CmdletsToExport = 'Add-AzureKeyVaultCertificate',
100100
'Get-AzureKeyVaultCertificatePolicy',
101101
'New-AzureKeyVaultCertificateAdministratorDetails',
102102
'New-AzureKeyVaultCertificateOrganizationDetails',
103-
'Backup-AzureKeyVaultSecret', 'Restore-AzureKeyVaultSecret'
104-
103+
'Backup-AzureKeyVaultSecret', 'Restore-AzureKeyVaultSecret',
104+
'Get-AzureKeyVaultManagedStorageAccount',
105+
'Add-AzureKeyVaultManagedStorageAccount',
106+
'Remove-AzureKeyVaultManagedStorageAccount',
107+
'Update-AzureKeyVaultManagedStorageAccount',
108+
'Update-AzureKeyVaultManagedStorageAccountKey',
109+
'Get-AzureKeyVaultManagedStorageSasDefinition',
110+
'Set-AzureKeyVaultManagedStorageSasDefinition',
111+
'Remove-AzureKeyVaultManagedStorageSasDefinition'
105112
# Variables to export from this module
106113
# VariablesToExport = @()
107114

src/ResourceManager/KeyVault/Commands.KeyVault.Test/Commands.KeyVault.Test.csproj

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,11 @@
6666
<HintPath>..\..\..\packages\Microsoft.Azure.Graph.RBAC.3.4.0-preview\lib\net452\Microsoft.Azure.Graph.RBAC.dll</HintPath>
6767
</Reference>
6868
<Reference Include="Microsoft.Azure.KeyVault, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
69-
<HintPath>..\..\..\packages\Microsoft.Azure.KeyVault.2.1.0-preview\lib\net45\Microsoft.Azure.KeyVault.dll</HintPath>
69+
<HintPath>..\..\..\packages\Microsoft.Azure.KeyVault.2.3.0-preview\lib\net452\Microsoft.Azure.KeyVault.dll</HintPath>
7070
<Private>True</Private>
7171
</Reference>
7272
<Reference Include="Microsoft.Azure.KeyVault.WebKey, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
73-
<HintPath>..\..\..\packages\Microsoft.Azure.KeyVault.WebKey.2.0.4\lib\net45\Microsoft.Azure.KeyVault.WebKey.dll</HintPath>
73+
<HintPath>..\..\..\packages\Microsoft.Azure.KeyVault.WebKey.2.0.6\lib\net452\Microsoft.Azure.KeyVault.WebKey.dll</HintPath>
7474
<Private>True</Private>
7575
</Reference>
7676
<Reference Include="Microsoft.Azure.Management.Authorization">
@@ -81,7 +81,7 @@
8181
<HintPath>..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll</HintPath>
8282
</Reference>
8383
<Reference Include="Microsoft.Azure.Management.KeyVault, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
84-
<HintPath>..\..\..\packages\Microsoft.Azure.Management.KeyVault.2.2.0-preview\lib\net452\Microsoft.Azure.Management.KeyVault.dll</HintPath>
84+
<HintPath>..\..\..\packages\Microsoft.Azure.Management.KeyVault.2.3.0-preview\lib\net452\Microsoft.Azure.Management.KeyVault.dll</HintPath>
8585
<Private>True</Private>
8686
</Reference>
8787
<Reference Include="Microsoft.Azure.ResourceManager, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
@@ -106,11 +106,12 @@
106106
<HintPath>..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.28.3\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll</HintPath>
107107
</Reference>
108108
<Reference Include="Microsoft.Rest.ClientRuntime, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
109-
<HintPath>..\..\..\packages\Microsoft.Rest.ClientRuntime.2.3.6\lib\net45\Microsoft.Rest.ClientRuntime.dll</HintPath>
109+
<HintPath>..\..\..\packages\Microsoft.Rest.ClientRuntime.2.3.8\lib\net452\Microsoft.Rest.ClientRuntime.dll</HintPath>
110110
<Private>True</Private>
111111
</Reference>
112112
<Reference Include="Microsoft.Rest.ClientRuntime.Azure, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
113-
<HintPath>..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.3.3.5\lib\net45\Microsoft.Rest.ClientRuntime.Azure.dll</HintPath>
113+
<HintPath>..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.3.3.7\lib\net452\Microsoft.Rest.ClientRuntime.Azure.dll</HintPath>
114+
<Private>True</Private>
114115
</Reference>
115116
<Reference Include="Microsoft.Rest.ClientRuntime.Azure.Authentication, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
116117
<HintPath>..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.2.9-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll</HintPath>
@@ -219,6 +220,7 @@
219220
<None Include="Scripts\RunUITests.ps1" />
220221
<None Include="Scripts\VaultCertificateTests.ps1" />
221222
<None Include="Scripts\VaultKeyTests.ps1" />
223+
<None Include="Scripts\VaultManagedStorageAccountTests.ps1" />
222224
<None Include="Scripts\VaultManagementTests.ps1" />
223225
<None Include="Scripts\VaultSecretTests.ps1" />
224226
<None Include="Scripts\VaultUITests.ps1" />

src/ResourceManager/KeyVault/Commands.KeyVault.Test/Scripts/Common.ps1

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
$global:createdKeys = @()
1616
$global:createdSecrets = @()
1717
$global:createdCertificates = @()
18+
$global:createdManagedStorageAccounts = @()
1819

1920
$invocationPath = Split-Path $MyInvocation.MyCommand.Definition;
2021

@@ -73,6 +74,33 @@ function Get-CertificateName([string]$suffix)
7374
return 'pshtc-' + $global:testns + '-' + $suffix
7475
}
7576

77+
<#
78+
.SYNOPSIS
79+
Get test key vault managed storage account name
80+
#>
81+
function Get-ManagedStorageAccountName([string]$suffix)
82+
{
83+
return 'pshtmsa' + $global:testns + $suffix
84+
}
85+
86+
<#
87+
.SYNOPSIS
88+
Get test key vault managed storage sas definition name
89+
#>
90+
function Get-ManagedStorageSasDefinitionName([string]$suffix)
91+
{
92+
return 'pshtmsas' + $global:testns + $suffix
93+
}
94+
95+
<#
96+
.SYNOPSIS
97+
Get Storage resource id for managed storage account tests.
98+
#>
99+
function Get-KeyVaultManagedStorageResourceId
100+
{
101+
return $global:storageResourceId
102+
}
103+
76104
<#
77105
.SYNOPSIS
78106
Get key file path to be imported
@@ -230,6 +258,20 @@ function Cleanup-OldSecrets
230258
}
231259
}
232260

261+
<#
262+
.SYNOPSIS
263+
Remove all old managed storage accounts starting with the given prefix.
264+
#>
265+
function Cleanup-OldManagedStorageAccounts
266+
{
267+
Write-Host "Cleaning up old managed storage accounts..."
268+
269+
$keyVault = Get-KeyVault
270+
$managedStorageAccountPattern = Get-ManagedStorageAccountName '*'
271+
Get-AzureKeyVaultManagedStorageAccount $keyVault |
272+
Where-Object {$_.AccountName -like $managedStorageAccountPattern} |
273+
Remove-AzureKeyVaultManagedStorageAccount -Force -Confirm:$false
274+
}
233275

234276
<#
235277
.SYNOPSIS
@@ -242,6 +284,17 @@ function Initialize-CertificateTest
242284
Get-AzureKeyVaultCertificate $keyVault | Where-Object {$_.Name -like $certificatePattern} | Remove-AzureKeyVaultCertificate -Force
243285
}
244286

287+
<#
288+
.SYNOPSIS
289+
Removes all managed storage accounts starting with the prefix
290+
#>
291+
function Initialize-ManagedStorageAccountTest
292+
{
293+
$keyVault = Get-KeyVault
294+
$managedStorageAccountPattern = Get-ManagedStorageAccountName '*'
295+
Get-AzureKeyVaultManagedStorageAccount $keyVault | Where-Object {$_.AccountName -like $managedStorageAccountPattern} | Remove-AzureKeyVaultManagedStorageAccount -Force
296+
}
297+
245298
<#
246299
.SYNOPSIS
247300
Removes all created keys.
@@ -399,6 +452,30 @@ function Wait-ForDeletedSecret ([string] $vault, [string] $secretName)
399452
return $secret
400453
}
401454

455+
<#
456+
.SYNOPSIS
457+
Removes all managed storage accounts.
458+
#>
459+
function Cleanup-SingleManagedStorageAccountTest
460+
{
461+
$global:createdManagedStorageAccounts | % {
462+
if ($_ -ne $null)
463+
{
464+
try
465+
{
466+
$keyVault = Get-KeyVault
467+
Write-Debug "Removing managed storage account with name $_ in vault $keyVault"
468+
$catch = Remove-AzureKeyVaultManagedStorageAccount $keyVault $_ -Force -Confirm:$false
469+
}
470+
catch
471+
{
472+
}
473+
}
474+
}
475+
476+
$global:createdManagedStorageAccounts.Clear()
477+
}
478+
402479
<#
403480
.SYNOPSIS
404481
Run a key test, with cleanup.
@@ -439,6 +516,18 @@ function Run-CertificateTest ([ScriptBlock] $test, [string] $testName)
439516
}
440517
}
441518

519+
function Run-ManagedStorageAccountTest ([ScriptBlock] $test, [string] $testName)
520+
{
521+
try
522+
{
523+
Run-Test $test $testName *>> "$testName.debug_log"
524+
}
525+
finally
526+
{
527+
Cleanup-SingleManagedStorageAccountTest *>> "$testName.debug_log"
528+
}
529+
}
530+
442531
function Run-VaultTest ([ScriptBlock] $test, [string] $testName)
443532
{
444533
try

0 commit comments

Comments
 (0)