1
+ # ----------------------------------------------------------------------------------
2
+ #
3
+ # Copyright Microsoft Corporation
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ # Unless required by applicable law or agreed to in writing, software
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ # See the License for the specific language governing permissions and
12
+ # limitations under the License.
13
+ # ----------------------------------------------------------------------------------
14
+
15
+ <#
16
+ . SYNOPSIS
17
+ CortexCRUD
18
+ #>
19
+ function Test-CortexCRUD
20
+ {
21
+ # Setup
22
+ $rgName = Get-ResourceName
23
+ $rglocation = Get-ProviderLocation " Microsoft.Network/VirtualWans"
24
+
25
+ $virtualWanName = Get-ResourceName
26
+ $virtualHubName = Get-ResourceName
27
+ $vpnSiteName = Get-ResourceName
28
+ $vpnGatewayName = Get-ResourceName
29
+ $remoteVirtualNetworkName = Get-ResourceName
30
+ $vpnConnectionName = Get-ResourceName
31
+ $hubVnetConnectionName = Get-ResourceName
32
+
33
+ $storeName = ' blob' + $rgName
34
+
35
+ try
36
+ {
37
+ # Create the resource group
38
+ $resourceGroup = New-AzureRmResourceGroup - Name $rgName - Location $rglocation
39
+
40
+ # Create the Virtual Wan
41
+ $createdVirtualWan = New-AzureRmVirtualWan - ResourceGroupName $rgName - Name $virtualWanName - Location $rglocation - AllowVnetToVnetTraffic - AllowBranchToBranchTraffic
42
+ $createdVirtualWan = Update-AzureRmVirtualWan - ResourceGroupName $rgName - Name $virtualWanName - AllowVnetToVnetTraffic $false - AllowBranchToBranchTraffic $false
43
+ $virtualWan = Get-AzureRmVirtualWan - ResourceGroupName $rgName - Name $virtualWanName
44
+ Assert-AreEqual $rgName $virtualWan.ResourceGroupName
45
+ Assert-AreEqual $virtualWanName $virtualWan.Name
46
+ Assert-AreEqual $false $virtualWan.AllowVnetToVnetTraffic
47
+ Assert-AreEqual $false $virtualWan.AllowBranchToBranchTraffic
48
+
49
+ # Create the Virtual Hub
50
+ $createdVirtualHub = New-AzureRmVirtualHub - ResourceGroupName $rgName - Name $virtualHubName - Location $rglocation - AddressPrefix " 192.168.1.0/24" - VirtualWan $virtualWan
51
+ $virtualHub = Get-AzureRmVirtualHub - ResourceGroupName $rgName - Name $virtualHubName
52
+ Assert-AreEqual $rgName $virtualHub.ResourceGroupName
53
+ Assert-AreEqual $virtualHubName $virtualHub.Name
54
+ Assert-AreEqual " 192.168.1.0/24" $virtualHub.AddressPrefix
55
+
56
+ # Update the Virtual Hub
57
+ $route1 = New-AzureRmVirtualHubRoute - AddressPrefix @ (" 10.0.0.0/16" , " 11.0.0.0/16" ) - NextHopIpAddress " 12.0.0.5"
58
+ $route2 = New-AzureRmVirtualHubRoute - AddressPrefix @ (" 13.0.0.0/16" ) - NextHopIpAddress " 14.0.0.5"
59
+ $routeTable = New-AzureRmVirtualHubRouteTable - Route @ ($route1 , $route2 )
60
+ Update-AzureRmVirtualHub - ResourceGroupName $rgName - Name $virtualHubName - RouteTable $routeTable
61
+ $virtualHub = Get-AzureRmVirtualHub - ResourceGroupName $rgName - Name $virtualHubName
62
+ Assert-AreEqual $rgName $virtualHub.ResourceGroupName
63
+ Assert-AreEqual $virtualHubName $virtualHub.Name
64
+ $routes = $virtualHub.RouteTable.Routes
65
+ Assert-AreEqual 2 @ ($routes ).Count
66
+
67
+ # Create the VpnSite
68
+ $vpnSiteAddressSpaces = New-Object string[] 1
69
+ $vpnSiteAddressSpaces [0 ] = " 192.168.2.0/24"
70
+ $createdVpnSite = New-AzureRmVpnSite - ResourceGroupName $rgName - Name $vpnSiteName - Location $rglocation - VirtualWan $virtualWan - IpAddress " 1.2.3.4" - AddressSpace $vpnSiteAddressSpaces - DeviceModel " SomeDevice" - DeviceVendor " SomeDeviceVendor" - LinkSpeedInMbps 10
71
+ $createdVpnSite = Update-AzureRmVpnSite - ResourceGroupName $rgName - Name $vpnSiteName - IpAddress " 2.3.4.5"
72
+ $vpnSite = Get-AzureRmVpnSite - ResourceGroupName $rgName - Name $vpnSiteName
73
+ Assert-AreEqual $rgName $vpnSite.ResourceGroupName
74
+ Assert-AreEqual $vpnSiteName $vpnSite.Name
75
+ Assert-AreEqual " 2.3.4.5" $vpnSite.IpAddress
76
+
77
+ # Create the VpnGateway
78
+ $createdVpnGateway = New-AzureRmVpnGateway - ResourceGroupName $rgName - Name $vpnGatewayName - VirtualHub $virtualHub - VpnGatewayScaleUnit 3
79
+ $createdVpnGateway = Update-AzureRmVpnGateway - ResourceGroupName $rgName - Name $vpnGatewayName - VpnGatewayScaleUnit 4
80
+ $vpnGateway = Get-AzureRmVpnGateway - ResourceGroupName $rgName - Name $vpnGatewayName
81
+ Assert-AreEqual $rgName $vpnGateway.ResourceGroupName
82
+ Assert-AreEqual $vpnGatewayName $vpnGateway.Name
83
+ Assert-AreEqual 4 $vpnGateway.VpnGatewayScaleUnit
84
+
85
+ # Create the VpnConnection
86
+ $createdVpnConnection = New-AzureRmVpnConnection - ResourceGroupName $rgName - ParentResourceName $vpnGatewayName - Name $vpnConnectionName - VpnSite $vpnSite - ConnectionBandwidth 20
87
+ $createdVpnConnection = Update-AzureRmVpnConnection - ResourceGroupName $rgName - ParentResourceName $vpnGatewayName - Name $vpnConnectionName - ConnectionBandwidth 30
88
+ $vpnConnection = Get-AzureRmVpnConnection - ResourceGroupName $rgName - ParentResourceName $vpnGatewayName - Name $vpnConnectionName
89
+ Assert-AreEqual $vpnConnectionName $vpnConnection.Name
90
+ Assert-AreEqual 30 $vpnConnection.ConnectionBandwidth
91
+
92
+ # Create a HubVirtualNetworkConnection
93
+ $remoteVirtualNetwork = New-AzureRmVirtualNetwork - ResourceGroupName $rgName - Name $remoteVirtualNetworkName - Location $rglocation - AddressPrefix " 10.0.1.0/24"
94
+ $createdHubVnetConnection = New-AzureRmVirtualHubVnetConnection - ResourceGroupName $rgName - VirtualHubName $virtualHubName - Name $hubVnetConnectionName - RemoteVirtualNetwork $remoteVirtualNetwork
95
+ $hubVnetConnection = Get-AzureRmVirtualHubVnetConnection - ResourceGroupName $rgName - VirtualHubName $virtualHubName - Name $hubVnetConnectionName
96
+ Assert-AreEqual $hubVnetConnectionName $hubVnetConnection.Name
97
+
98
+ # Download config
99
+ $storetype = ' Standard_GRS'
100
+ $containerName = ' cont' + $rgName
101
+ New-AzureRmStorageAccount - ResourceGroupName $rgName - Name $storeName - Location $rglocation - Type $storetype
102
+ $key = Get-AzureRmStorageAccountKey - ResourceGroupName $rgName - Name $storeName
103
+ $context = New-AzureStorageContext - StorageAccountName $storeName - StorageAccountKey $key [0 ].Value
104
+ New-AzureStorageContainer - Name $containerName - Context $context
105
+ $container = Get-AzureStorageContainer - Name $containerName - Context $context
106
+ New-Item - Name EmptyFile.txt - ItemType File - Force
107
+ Set-AzureStorageBlobContent - File " EmptyFile.txt" - Container $containerName - Blob " emptyfile.txt" - Context $context
108
+ $now = get-date
109
+ $blobSasUrl = New-AzureStorageBlobSASToken - Container $containerName - Blob emptyfile.txt - Context $context - Permission " rwd" - StartTime $now.AddHours (-1 ) - ExpiryTime $now.AddDays (1 ) - FullUri
110
+
111
+ $vpnSitesForConfig = New-Object Microsoft.Azure.Commands.Network.Models.PSVpnSite[] 1
112
+ $vpnSitesForConfig [0 ] = $vpnSite
113
+ Get-AzureRmVirtualWanVpnConfiguration - VirtualWan $virtualWan - StorageSasUrl $blobSasUrl - VpnSite $vpnSitesForConfig
114
+ }
115
+ finally
116
+ {
117
+ Remove-AzureRmVirtualHubVnetConnection - ResourceGroupName $rgName - ParentResourceName $virtualHubName - Name $hubVnetConnectionName - Force
118
+ Assert-ThrowsContains { Get-AzureRmVirtualHubVnetConnection - ResourceGroupName $rgName - VirtualHubName $virtualHubName - Name $hubVnetConnectionName } " NotFound" ;
119
+
120
+ Remove-AzureRmVpnConnection - ResourceGroupName $rgName - ParentResourceName $vpnGatewayName - Name $vpnConnectionName - Force
121
+ Assert-ThrowsContains { Get-AzureRmVpnConnection - ResourceGroupName $rgName - ParentResourceName $vpnGatewayName - Name $vpnConnectionName } " NotFound" ;
122
+
123
+ Remove-AzureRmVpnGateway - ResourceGroupName $rgName - Name $vpnGatewayName - Force
124
+ Assert-ThrowsContains { Get-AzureRmVpnGateway - ResourceGroupName $rgName - Name $vpnGatewayName } " NotFound" ;
125
+
126
+ Remove-AzureRmVpnSite - ResourceGroupName $rgName - Name $vpnSiteName - Force
127
+ Assert-ThrowsContains { Get-AzureRmVpnSite - ResourceGroupName $rgName - Name $vpnSiteName } " NotFound" ;
128
+
129
+ Remove-AzureRmVirtualHub - ResourceGroupName $rgName - Name $virtualHubName - Force
130
+ Assert-ThrowsContains { Get-AzureRmVirtualHub - ResourceGroupName $rgName - Name $virtualHubName } " NotFound" ;
131
+
132
+ Remove-AzureRmVirtualWan - ResourceGroupName $rgName - Name $virtualWanName - Force
133
+ Assert-ThrowsContains { Get-AzureRmVirtualWan - ResourceGroupName $rgName - Name $virtualWanName } " NotFound" ;
134
+
135
+ Clean - ResourceGroup $rgname
136
+ }
137
+ }
0 commit comments