public override void ExecuteCmdlet() { base.ExecuteCmdlet(); if (!this.IsVirtualNetworkGatewayPresent(this.ResourceGroupName, this.Name)) { throw new ArgumentException(Microsoft.Azure.Commands.Network.Properties.Resources.ResourceNotFound); } var vnetGateway = new PSVirtualNetworkGateway(); vnetGateway.Name = this.Name; vnetGateway.Location = this.Location; vnetGateway.GatewaySize = this.GatewaySize; // Map to the sdk object var vnetGatewayModel = Mapper.Map<MNM.VirtualNetworkGateway>(vnetGateway); vnetGatewayModel.Type = Microsoft.Azure.Commands.Network.Properties.Resources.VirtualNetworkGatewayType; vnetGatewayModel.Tags = TagsConversionHelper.CreateTagDictionary(this.Tag, validate: true); // Execute the Create VirtualNetworkGateway call this.VirtualNetworkGatewayClient.CreateOrUpdate(this.ResourceGroupName, this.Name, vnetGatewayModel); var getVirtualNetworkGateway = this.GetVirtualNetworkGateway(this.ResourceGroupName, this.Name); WriteObject(getVirtualNetworkGateway); }
public static void NormalizeChildResourcesId(PSVirtualNetworkGateway virtualNetworkGateway) { // Normalize FrontendIpconfig if (virtualNetworkGateway.IpConfigurations != null) { foreach (var ipConfig in virtualNetworkGateway.IpConfigurations) { ipConfig.Id = string.Empty; } } }
private PSVirtualNetworkGateway CreateVirtualNetworkGateway() { var vnetGateway = new PSVirtualNetworkGateway(); vnetGateway.Name = this.Name; vnetGateway.ResourceGroupName = this.ResourceGroupName; vnetGateway.Location = this.Location; if (this.IpConfigurations != null) { vnetGateway.IpConfigurations = new List<PSVirtualNetworkGatewayIpConfiguration>(); vnetGateway.IpConfigurations = this.IpConfigurations; } vnetGateway.GatewaySize = this.GatewaySize; vnetGateway.GatewayType = this.GatewayType; vnetGateway.EnableBgp = this.EnableBgp; // Map to the sdk object var vnetGatewayModel = Mapper.Map<MNM.VirtualNetworkGateway>(vnetGateway); vnetGatewayModel.Type = Microsoft.Azure.Commands.Network.Properties.Resources.VirtualNetworkGatewayType; vnetGatewayModel.Tags = TagsConversionHelper.CreateTagDictionary(this.Tag, validate: true); // Execute the Create VirtualNetwork call this.VirtualNetworkGatewayClient.CreateOrUpdate(this.ResourceGroupName, this.Name, vnetGatewayModel); var getVirtualNetworkGateway = this.GetVirtualNetworkGateway(this.ResourceGroupName, this.Name); return getVirtualNetworkGateway; }
private PSVirtualNetworkGateway CreateVirtualNetworkGateway() { var vnetGateway = new PSVirtualNetworkGateway(); vnetGateway.Name = this.Name; vnetGateway.ResourceGroupName = this.ResourceGroupName; vnetGateway.Location = this.Location; if (this.IpConfigurations != null) { vnetGateway.IpConfigurations = new List<PSVirtualNetworkGatewayIpConfiguration>(); vnetGateway.IpConfigurations = this.IpConfigurations; } vnetGateway.GatewayType = this.GatewayType; vnetGateway.VpnType = this.VpnType; vnetGateway.EnableBgp = this.EnableBgp; if (this.GatewayDefaultSite != null) { vnetGateway.GatewayDefaultSite = new PSResourceId(); vnetGateway.GatewayDefaultSite.Id = this.GatewayDefaultSite.Id; } else { vnetGateway.GatewayDefaultSite = null; } if (this.GatewaySku != null) { vnetGateway.Sku = new PSVirtualNetworkGatewaySku(); vnetGateway.Sku.Tier = this.GatewaySku; vnetGateway.Sku.Name = this.GatewaySku; } else { vnetGateway.Sku = null; } if (this.VpnClientAddressPool != null || this.VpnClientRootCertificates != null || this.VpnClientRevokedCertificates != null) { vnetGateway.VpnClientConfiguration = new PSVpnClientConfiguration(); if (this.VpnClientAddressPool != null) { // Make sure passed Virtual Network gateway type is RouteBased if P2S VpnClientAddressPool is specified. if (this.VpnType == null || !this.VpnType.Equals(MNM.VpnType.RouteBased)) { throw new ArgumentException("Virtual Network Gateway VpnType should be :{0} when P2S VpnClientAddressPool is specified."); } vnetGateway.VpnClientConfiguration.VpnClientAddressPool = new PSAddressSpace(); vnetGateway.VpnClientConfiguration.VpnClientAddressPool.AddressPrefixes = this.VpnClientAddressPool; } if (this.VpnClientRootCertificates != null) { vnetGateway.VpnClientConfiguration.VpnClientRootCertificates = this.VpnClientRootCertificates; } if (this.VpnClientRevokedCertificates != null) { vnetGateway.VpnClientConfiguration.VpnClientRevokedCertificates = this.VpnClientRevokedCertificates; } } else { vnetGateway.VpnClientConfiguration = null; } // Map to the sdk object var vnetGatewayModel = Mapper.Map<MNM.VirtualNetworkGateway>(vnetGateway); vnetGatewayModel.Tags = TagsConversionHelper.CreateTagDictionary(this.Tag, validate: true); // Execute the Create VirtualNetwork call this.VirtualNetworkGatewayClient.CreateOrUpdate(this.ResourceGroupName, this.Name, vnetGatewayModel); var getVirtualNetworkGateway = this.GetVirtualNetworkGateway(this.ResourceGroupName, this.Name); return getVirtualNetworkGateway; }
private PSVirtualNetworkGateway CreateVirtualNetworkGateway() { var vnetGateway = new PSVirtualNetworkGateway(); vnetGateway.Name = this.Name; vnetGateway.ResourceGroupName = this.ResourceGroupName; vnetGateway.Location = this.Location; if (this.GatewaySku != null) { vnetGateway.Sku = new PSVirtualNetworkGatewaySku(); vnetGateway.Sku.Tier = this.GatewaySku; vnetGateway.Sku.Name = this.GatewaySku; } else { // If gateway sku param value is not passed, set gateway sku to Standard if VpnType is RouteBased and Basic if VpnType is PolicyBased if (this.VpnType != null && this.VpnType.Equals(MNM.VpnType.RouteBased)) { vnetGateway.Sku = new PSVirtualNetworkGatewaySku(); vnetGateway.Sku.Tier = MNM.VirtualNetworkGatewaySkuTier.Standard; vnetGateway.Sku.Name = MNM.VirtualNetworkGatewaySkuTier.Standard; } else { vnetGateway.Sku = new PSVirtualNetworkGatewaySku(); vnetGateway.Sku.Tier = MNM.VirtualNetworkGatewaySkuTier.Basic; vnetGateway.Sku.Name = MNM.VirtualNetworkGatewaySkuTier.Basic; } } if (this.EnableActiveActiveFeature.IsPresent && !vnetGateway.Sku.Tier.Equals(MNM.VirtualNetworkGatewaySkuTier.HighPerformance)) { throw new ArgumentException("Virtual Network Gateway Sku should be " + MNM.VirtualNetworkGatewaySkuTier.HighPerformance + " when Active-Active feature flag is set to True."); } if (this.EnableActiveActiveFeature.IsPresent && !this.VpnType.Equals(MNM.VpnType.RouteBased)) { throw new ArgumentException("Virtual Network Gateway VpnType should be " + MNM.VpnType.RouteBased + " when Active-Active feature flag is set to True."); } if (this.EnableActiveActiveFeature.IsPresent && this.IpConfigurations.Count != 2) { throw new ArgumentException("Virtual Network Gateway should have 2 Gateway IpConfigurations specified when Active-Active feature flag is True."); } if (!this.EnableActiveActiveFeature.IsPresent && this.IpConfigurations.Count == 2) { throw new ArgumentException("Virtual Network Gateway should have Active-Active feature flag set to True as there are 2 Gateway IpConfigurations specified. OR there should be only one Gateway IpConfiguration specified."); } if (this.IpConfigurations != null) { vnetGateway.IpConfigurations = this.IpConfigurations; } if (!string.IsNullOrEmpty(GatewaySku) && GatewaySku.Equals( MNM.VirtualNetworkGatewaySkuTier.UltraPerformance, StringComparison.InvariantCultureIgnoreCase) && !string.IsNullOrEmpty(GatewayType) && !GatewayType.Equals( MNM.VirtualNetworkGatewayType.ExpressRoute.ToString(), StringComparison.InvariantCultureIgnoreCase)) { throw new ArgumentException("Virtual Network Gateway Need to be Express Route when the sku is UltraPerformance."); } vnetGateway.GatewayType = this.GatewayType; vnetGateway.VpnType = this.VpnType; vnetGateway.EnableBgp = this.EnableBgp; vnetGateway.ActiveActive = this.EnableActiveActiveFeature.IsPresent; if (this.GatewayDefaultSite != null) { vnetGateway.GatewayDefaultSite = new PSResourceId(); vnetGateway.GatewayDefaultSite.Id = this.GatewayDefaultSite.Id; } else { vnetGateway.GatewayDefaultSite = null; } if (this.VpnClientAddressPool != null || this.VpnClientRootCertificates != null || this.VpnClientRevokedCertificates != null) { vnetGateway.VpnClientConfiguration = new PSVpnClientConfiguration(); if (this.VpnClientAddressPool != null) { // Make sure passed Virtual Network gateway type is RouteBased if P2S VpnClientAddressPool is specified. if (this.VpnType == null || !this.VpnType.Equals(MNM.VpnType.RouteBased)) { throw new ArgumentException("Virtual Network Gateway VpnType should be :" + MNM.VpnType.RouteBased + " when P2S VpnClientAddressPool is specified."); } vnetGateway.VpnClientConfiguration.VpnClientAddressPool = new PSAddressSpace(); vnetGateway.VpnClientConfiguration.VpnClientAddressPool.AddressPrefixes = this.VpnClientAddressPool; } if (this.VpnClientRootCertificates != null) { vnetGateway.VpnClientConfiguration.VpnClientRootCertificates = this.VpnClientRootCertificates; } if (this.VpnClientRevokedCertificates != null) { vnetGateway.VpnClientConfiguration.VpnClientRevokedCertificates = this.VpnClientRevokedCertificates; } } else { vnetGateway.VpnClientConfiguration = null; } if (this.Asn > 0 || this.PeerWeight > 0) { vnetGateway.BgpSettings = new PSBgpSettings(); vnetGateway.BgpSettings.BgpPeeringAddress = null; // We block modifying the gateway's BgpPeeringAddress (CA) if (this.Asn > 0) { vnetGateway.BgpSettings.Asn = this.Asn; } if (this.PeerWeight > 0) { vnetGateway.BgpSettings.PeerWeight = this.PeerWeight; } else if (this.PeerWeight < 0) { throw new ArgumentException("PeerWeight must be a positive integer"); } } // Map to the sdk object var vnetGatewayModel = Mapper.Map<MNM.VirtualNetworkGateway>(vnetGateway); vnetGatewayModel.Tags = TagsConversionHelper.CreateTagDictionary(this.Tag, validate: true); // Execute the Create VirtualNetwork call this.VirtualNetworkGatewayClient.CreateOrUpdate(this.ResourceGroupName, this.Name, vnetGatewayModel); var getVirtualNetworkGateway = this.GetVirtualNetworkGateway(this.ResourceGroupName, this.Name); return getVirtualNetworkGateway; }