Skip to content

Commit 00abc4f

Browse files
author
Maddie Clayton
authored
Merge pull request Azure#6051 from maddieclayton/NetworkTests
KeyVault Network tests
2 parents c219007 + 1879b3e commit 00abc4f

File tree

7 files changed

+2442
-5
lines changed

7 files changed

+2442
-5
lines changed

TestMappings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,8 @@
117117
".\\src\\ResourceManager\\RecoveryServices.Backup\\Commands.RecoveryServices.Backup.Test\\bin\\Debug\\Microsoft.Azure.Commands.RecoveryServices.Backup.Test.dll",
118118
".\\src\\ResourceManager\\ServiceFabric\\Commands.ServiceFabric.Test\\bin\\Debug\\Microsoft.Azure.Commands.ServiceFabric.Test.dll",
119119
".\\src\\ResourceManager\\Sql\\Commands.Sql.Test\\bin\\Debug\\Microsoft.Azure.Commands.Sql.Test.dll",
120-
".\\src\\ResourceManager\\Dns\\Commands.Dns.Test\\bin\\Debug\\Microsoft.Azure.Commands.Dns.Test.dll"
120+
".\\src\\ResourceManager\\Dns\\Commands.Dns.Test\\bin\\Debug\\Microsoft.Azure.Commands.Dns.Test.dll",
121+
".\\src\\ResourceManager\\KeyVault\\Commands.KeyVault.Test\\bin\\Debug\\Microsoft.Azure.Commands.KeyVault.Test.dll"
121122
],
122123
"src/ResourceManager/NotificationHubs /": [
123124
".\\src\\ResourceManager\\NotificationHubs\\Commands.NotificationHubs.Test\\bin\\Debug\\Microsoft.Azure.Commands.NotificationHubs.Test.dll"

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,13 @@
8181
<Reference Include="Microsoft.Azure.Management.KeyVault">
8282
<HintPath>..\..\..\packages\Microsoft.Azure.Management.KeyVault.2.4.1-alpha\lib\net452\Microsoft.Azure.Management.KeyVault.dll</HintPath>
8383
</Reference>
84+
<Reference Include="Microsoft.Azure.Management.Network">
85+
<HintPath>..\..\..\packages\Microsoft.Azure.Management.Network.17.0.0-preview\lib\net452\Microsoft.Azure.Management.Network.dll</HintPath>
86+
</Reference>
87+
<Reference Include="Microsoft.Azure.Management.ResourceManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
88+
<SpecificVersion>False</SpecificVersion>
89+
<HintPath>..\..\..\packages\Microsoft.Azure.Management.ResourceManager.1.6.0-preview\lib\net452\Microsoft.Azure.Management.ResourceManager.dll</HintPath>
90+
</Reference>
8491
<Reference Include="Microsoft.Azure.ResourceManager, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
8592
<SpecificVersion>False</SpecificVersion>
8693
<HintPath>..\..\..\packages\Microsoft.Azure.Management.Resources.2.20.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll</HintPath>
@@ -309,6 +316,9 @@
309316
<None Include="SessionRecords\Microsoft.Azure.Commands.KeyVault.Test.ScenarioTests.KeyVaultManagementTests\TestSetRemoveAccessPolicyByUPN.json">
310317
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
311318
</None>
319+
<None Include="SessionRecords\Microsoft.Azure.Commands.KeyVault.Test.ScenarioTests.KeyVaultManagementTests\TestNetworkSet.json">
320+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
321+
</None>
312322
</ItemGroup>
313323
<ItemGroup>
314324
<ProjectReference Include="..\..\..\Common\Commands.Common.Authentication.Abstractions\Commands.Common.Authentication.Abstractions.csproj">

src/ResourceManager/KeyVault/Commands.KeyVault.Test/ScenarioTests/KeyVaultManagementController.cs

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,13 @@
2929
using System.IO;
3030
using System.Linq;
3131
using LegacyTest = Microsoft.Azure.Test;
32+
using LegacyRMClient = Microsoft.Azure.Management.Resources;
33+
using RM = Microsoft.Azure.Management.ResourceManager;
3234

3335
namespace Microsoft.Azure.Commands.KeyVault.Test
3436
{
3537
using Common.Authentication.Abstractions;
38+
using Management.Network;
3639
using Microsoft.Rest.ClientRuntime.Azure.TestFramework;
3740

3841
using TestBase = Microsoft.Azure.Test.TestBase;
@@ -47,10 +50,12 @@ public class KeyVaultManagementController
4750
private const string DomainKey = "Domain";
4851
private const string SubscriptionIdKey = "SubscriptionId";
4952

50-
public ResourceManagementClient ResourceManagementClient { get; private set; }
53+
public LegacyRMClient.ResourceManagementClient ResourceManagementClient { get; private set; }
5154

5255
public Management.Internal.Resources.ResourceManagementClient NewResourceManagementClient { get; private set; }
5356

57+
public RM.ResourceManagementClient ResourceClient { get; private set; }
58+
5459
public SubscriptionClient SubscriptionClient { get; private set; }
5560

5661
public KeyVaultManagementClient KeyVaultManagementClient { get; private set; }
@@ -61,6 +66,8 @@ public class KeyVaultManagementController
6166

6267
public GraphRbacManagementClient GraphClient { get; private set; }
6368

69+
public NetworkManagementClient NetworkManagementClient { get; private set; }
70+
6471
public string UserDomain { get; private set; }
6572

6673
public static KeyVaultManagementController NewInstance
@@ -132,7 +139,8 @@ public void RunPsTestWorkflow(
132139
"Scripts\\ControlPlane\\" + callingClassName + ".ps1",
133140
helper.RMProfileModule,
134141
helper.RMResourceModule,
135-
helper.GetRMModulePath("AzureRM.KeyVault.psd1"));
142+
helper.GetRMModulePath("AzureRM.KeyVault.psd1"),
143+
helper.RMNetworkModule);
136144

137145
try
138146
{
@@ -160,13 +168,17 @@ private void SetupManagementClients(MockContext context)
160168
{
161169
ResourceManagementClient = GetResourceManagementClient();
162170
NewResourceManagementClient = GetResourceManagementClient(context);
171+
ResourceClient = GetResourceClient(context);
172+
NetworkManagementClient = GetNetworkManagementClient(context);
163173
SubscriptionClient = GetSubscriptionClient();
164174
GalleryClient = GetGalleryClient();
165175
AuthorizationManagementClient = GetAuthorizationManagementClient();
166176
GraphClient = GetGraphClient(context);
167177
KeyVaultManagementClient = GetKeyVaultManagementClient(context);
168178
helper.SetupManagementClients(ResourceManagementClient,
169179
NewResourceManagementClient,
180+
ResourceClient,
181+
NetworkManagementClient,
170182
SubscriptionClient,
171183
KeyVaultManagementClient,
172184
AuthorizationManagementClient,
@@ -175,22 +187,31 @@ private void SetupManagementClients(MockContext context)
175187
);
176188
}
177189

190+
private NetworkManagementClient GetNetworkManagementClient(MockContext context)
191+
{
192+
return context.GetServiceClient<NetworkManagementClient>(TestEnvironmentFactory.GetTestEnvironment());
193+
}
178194

179195
private AuthorizationManagementClient GetAuthorizationManagementClient()
180196
{
181197
return LegacyTest.TestBase.GetServiceClient<AuthorizationManagementClient>(this.csmTestFactory);
182198
}
183199

184-
private ResourceManagementClient GetResourceManagementClient()
200+
private LegacyRMClient.ResourceManagementClient GetResourceManagementClient()
185201
{
186-
return LegacyTest.TestBase.GetServiceClient<ResourceManagementClient>(this.csmTestFactory);
202+
return LegacyTest.TestBase.GetServiceClient<LegacyRMClient.ResourceManagementClient>(this.csmTestFactory);
187203
}
188204

189205
private Management.Internal.Resources.ResourceManagementClient GetResourceManagementClient(MockContext context)
190206
{
191207
return context.GetServiceClient<Management.Internal.Resources.ResourceManagementClient>(TestEnvironmentFactory.GetTestEnvironment());
192208
}
193209

210+
private RM.ResourceManagementClient GetResourceClient(MockContext context)
211+
{
212+
return context.GetServiceClient<RM.ResourceManagementClient>(TestEnvironmentFactory.GetTestEnvironment());
213+
}
214+
194215
private KeyVaultManagementClient GetKeyVaultManagementClient(MockContext context)
195216
{
196217
return context.GetServiceClient<KeyVaultManagementClient>(TestEnvironmentFactory.GetTestEnvironment());

src/ResourceManager/KeyVault/Commands.KeyVault.Test/ScenarioTests/KeyVaultManagementTests.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -630,6 +630,19 @@ public void TestCreateDeleteVaultWithPiping()
630630

631631
#endregion
632632

633+
[Fact]
634+
[Trait(Category.AcceptanceType, Category.CheckIn)]
635+
public void TestNetworkSet()
636+
{
637+
KeyVaultManagementController.NewInstance.RunPsTestWorkflow(
638+
() => { return new[] { "Test-NetworkRuleSet" }; },
639+
(env) => Initialize(),
640+
null,
641+
TestUtilities.GetCallingClass(),
642+
TestUtilities.GetCurrentMethodName()
643+
);
644+
}
645+
633646
#region Helper Methods
634647
private string GetUser(TestEnvironment environment)
635648
{

src/ResourceManager/KeyVault/Commands.KeyVault.Test/Scripts/ControlPlane/KeyVaultManagementTests.ps1

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -808,4 +808,49 @@ function Compare-Vaults
808808
CheckVaultAccessPolicy $vault1 $vault2.AccessPolicies[0].PermissionsToKeys $vault2.AccessPolicies[0].PermissionsToSecrets $vault2.AccessPolicies[0].PermissionsToCertificates $vault2.AccessPolicies[0].PermissionsToStorage
809809
Assert-AreEqual $vault1.AccessPolicies[0].ObjectId $vault2.AccessPolicies[0].ObjectId
810810
}
811+
}
812+
813+
function Test-NetworkRuleSet
814+
{
815+
$resourceGroupName = getAssetName
816+
$resourceGroupLocation = Get-Location "Microsoft.Resources" "resourceGroups" "westus"
817+
$vaultName = getAssetName
818+
$vaultLocation = Get-Location "Microsoft.KeyVault" "vaults" "westus"
819+
$virtualNetworkName = getAssetName
820+
$virtualNetworkLocation = Get-Location "Microsoft.Network" "virtualNetworks" "westus"
821+
822+
try
823+
{
824+
$rg = New-AzureRmResourceGroup -Name $resourceGroupName -Location $resourceGroupLocation
825+
$vault = New-AzureRmKeyVault -VaultName $vaultName -ResourceGroupName $resourceGroupName -Location $vaultLocation
826+
827+
$frontendSubnet = New-AzureRmVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "10.0.1.0/24" -ServiceEndpoint Microsoft.KeyVault
828+
$virtualNetwork = New-AzureRmVirtualNetwork -Name $virtualNetworkName -ResourceGroupName $resourceGroupName -Location $virtualNetworkLocation -AddressPrefix "10.0.0.0/16" -Subnet $frontendSubnet
829+
830+
$myNetworkResId = (Get-AzureRmVirtualNetwork -Name $virtualNetworkName -ResourceGroupName $resourceGroupName).Subnets[0].Id
831+
Add-AzureRmKeyVaultNetworkRule -VaultName $vaultName -IpAddressRange "10.0.1.0/24" -VirtualNetworkResourceId $myNetworkResId
832+
$vault = Get-AzureRmKeyVault -ResourceGroupName $resourceGroupName -Name $vaultName
833+
Assert-AreEqual $vault.NetworkAcls.IpAddressRanges.Count 1
834+
Assert-AreEqual $vault.NetworkAcls.IpAddressRanges[0] "10.0.1.0/24"
835+
Assert-AreEqual $vault.NetworkAcls.VirtualNetworkResourceIds.Count 1
836+
Assert-AreEqual $vault.NetworkAcls.VirtualNetworkResourceIds[0] $myNetworkResId
837+
Assert-AreEqual $vault.NetworkAcls.Bypass.toString() "AzureServices"
838+
Assert-AreEqual $vault.NetworkAcls.DefaultAction.toString() "Allow"
839+
840+
$networkRule = Update-AzureRmKeyVaultNetworkRuleSet -VaultName $vaultName -ResourceGroupName $resourceGroupName -Bypass None -DefaultAction Deny -PassThru
841+
Assert-AreEqual $networkRule.NetworkAcls.Bypass.toString() "None"
842+
Assert-AreEqual $networkRule.NetworkAcls.DefaultAction.toString() "Deny"
843+
$vault = Get-AzureRmKeyVault -ResourceGroupName $resourceGroupName -Name $vaultName
844+
Assert-AreEqual $vault.NetworkAcls.Bypass.toString() "None"
845+
Assert-AreEqual $vault.NetworkAcls.DefaultAction.toString() "Deny"
846+
847+
Remove-AzureRmKeyVaultNetworkRule -VaultName $vaultName -ResourceGroupName $resourceGroupName -IpAddressRange "10.0.1.0/24" -VirtualNetworkResourceId $myNetworkResId
848+
$vault = Get-AzureRmKeyVault -ResourceGroupName $resourceGroupName -Name $vaultName
849+
Assert-AreEqual $vault.NetworkAcls.IpAddressRanges.Count 0
850+
Assert-AreEqual $vault.NetworkAcls.VirtualNetworkResourceIds.Count 0
851+
}
852+
finally
853+
{
854+
Remove-AzureRmResourceGroup -Name $resourceGroupName -Force
855+
}
811856
}

src/ResourceManager/KeyVault/Commands.KeyVault.Test/SessionRecords/Microsoft.Azure.Commands.KeyVault.Test.ScenarioTests.KeyVaultManagementTests/TestNetworkSet.json

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

src/ResourceManager/KeyVault/KeyVault.sln

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Resources", "..\Re
3636
EndProject
3737
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Resources.Rest", "..\Resources\Commands.ResourceManager\Cmdlets\Commands.Resources.Rest.csproj", "{8058D403-06E3-4BED-8924-D166CE303961}"
3838
EndProject
39+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Network", "..\Network\Commands.Network\Commands.Network.csproj", "{98CFD96B-A6BC-4F15-AE2C-603FC2B58981}"
40+
EndProject
3941
Global
4042
GlobalSection(SolutionConfigurationPlatforms) = preSolution
4143
Debug|Any CPU = Debug|Any CPU
@@ -106,6 +108,10 @@ Global
106108
{8058D403-06E3-4BED-8924-D166CE303961}.Debug|Any CPU.Build.0 = Debug|Any CPU
107109
{8058D403-06E3-4BED-8924-D166CE303961}.Release|Any CPU.ActiveCfg = Release|Any CPU
108110
{8058D403-06E3-4BED-8924-D166CE303961}.Release|Any CPU.Build.0 = Release|Any CPU
111+
{98CFD96B-A6BC-4F15-AE2C-603FC2B58981}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
112+
{98CFD96B-A6BC-4F15-AE2C-603FC2B58981}.Debug|Any CPU.Build.0 = Debug|Any CPU
113+
{98CFD96B-A6BC-4F15-AE2C-603FC2B58981}.Release|Any CPU.ActiveCfg = Release|Any CPU
114+
{98CFD96B-A6BC-4F15-AE2C-603FC2B58981}.Release|Any CPU.Build.0 = Release|Any CPU
109115
EndGlobalSection
110116
GlobalSection(SolutionProperties) = preSolution
111117
HideSolutionNode = FALSE

0 commit comments

Comments
 (0)