TestCases/SVT/VirtualNetwork/VirtualNetworkResource.ps1
Set-StrictMode -Version Latest class VirtualNetworkResource:TestResource{ VirtualNetworkResource([TestCase] $testcase, [TestSettings] $testsettings):Base($testcase, $testsettings){ } #Setting the properties as required by this resource type. [void]SetDerivedResourceProps(){ $this.ResourceName = "azsktestvnet" #Else set the default resource name $this.ResourceType = "Microsoft.Network/virtualNetworks" } #Checks and deploys the VNet if it does not exist. [void] InitializeResource( ){ if(!$this.IfResourceExists()){ $this.DeployVNet() } } #Deploy the VNet [void]DeployVNet() { try { $Vnet = New-AzureRmVirtualNetwork -Name $this.ResourceName -ResourceGroupName $this.ResourceGroupName ` -Location "Southeast Asia" -AddressPrefix "192.168.0.0/16" $this.ProvisioningState = $Vnet.ProvisioningState if($Vnet.ProvisioningState -eq "Succeeded") { [CommonHelper]::Log("Resource "+$this.ResourceName + " is successfully deployed", [MessageType]::Information) } else { [CommonHelper]::Log("Error while deploying the Virtual Network: " + $this.ResourceName, [MessageType]::Error) } } catch{ [CommonHelper]::Log("Error while deploying the Virtual Network: " + $this.ResourceName, [MessageType]::Error) } } [Void]AddVnetPeer() { try { $VnetPeer = Get-AzureRmVirtualNetwork -Name azsktestvnet-02 -ResourceGroupName $this.ResourceGroupName if($null -eq $VnetPeer) { $VnetPeer = New-AzureRmVirtualNetwork -Name 'azsktestvnet-02' -ResourceGroupName $this.ResourceGroupName ` -Location "Southeast Asia" -AddressPrefix '192.169.0.0/16' -Force } Add-AzureRmVirtualNetworkPeering -Name 'azsknetPeering' -VirtualNetwork (Get-AzureRmVirtualNetwork -Name $this.ResourceName ` -ResourceGroupName $this.ResourceGroupName) -RemoteVirtualNetworkId $VnetPeer.Id -AllowForwardedTraffic -AllowGatewayTransit } catch{ [CommonHelper]::Log("Error while deploying the Virtual Network: " + $this.ResourceName, [MessageType]::Error) } } [Void]ResetConfigurationBase() { $vnetPeerings = Get-AzureRmVirtualNetworkPeering -VirtualNetworkName $this.ResourceName -ResourceGroupName $this.ResourceGroupName if($null -ne $vnetPeerings -and ($vnetPeerings|Measure-Object).count -gt 0) { $vnetPeerings | ForEach-Object{ Remove-AzureRmVirtualNetworkPeering -Name $_.Name -ResourceGroupName $this.ResourceGroupName -VirtualNetworkName $this.ResourceName ` -Force } } } } |