public override void Execute() { base.Execute(); var peering = this.ExpressRouteCircuit.Peerings.SingleOrDefault( resource => string.Equals(resource.Name, "AzurePrivatePeering", System.StringComparison.CurrentCultureIgnoreCase)); if (peering == null) { throw new ArgumentException(Properties.Resources.ExpressRoutePrivatePeeringNotFound); } var circuitconnection = peering.Connections.SingleOrDefault( resource => string.Equals(resource.Name, Name, System.StringComparison.CurrentCultureIgnoreCase)); if (circuitconnection != null) { throw new ArgumentException(string.Format(Properties.Resources.ExpressRouteCircuitConnectionAlreadyAdded, Name)); } circuitconnection = new PSExpressRouteCircuitConnection(); circuitconnection.Name = this.Name; circuitconnection.ExpressRouteCircuitPeering = new PSResourceId(); circuitconnection.ExpressRouteCircuitPeering.Id = peering.Id; circuitconnection.PeerExpressRouteCircuitPeering = new PSResourceId(); circuitconnection.PeerExpressRouteCircuitPeering.Id = this.PeerExpressRouteCircuitPeering; if (!string.IsNullOrWhiteSpace(this.AuthorizationKey)) { circuitconnection.AuthorizationKey = this.AuthorizationKey; } if (this.AddressPrefixType == IPv6) { // Create new PSExpressRouteIPv6AddressPrefix() var expressRouteIPv6AddressPrefix = new PSExpressRouteCircuitConnectionIPv6ConnectionConfig(); expressRouteIPv6AddressPrefix.AddressPrefix = AddressPrefix; circuitconnection.IPv6CircuitConnectionConfig = expressRouteIPv6AddressPrefix; } else { // For IPv4 circuitconnection.AddressPrefix = this.AddressPrefix; } peering.Connections.Add(circuitconnection); WriteObject(this.ExpressRouteCircuit); }
public override void Execute() { base.Execute(); var peering = this.ExpressRouteCircuit.Peerings.SingleOrDefault( resource => string.Equals(resource.Name, "AzurePrivatePeering", System.StringComparison.CurrentCultureIgnoreCase)); if (peering == null) { throw new ArgumentException(Properties.Resources.ExpressRoutePrivatePeeringNotFound); } var circuitconnection = peering.Connections.SingleOrDefault( resource => string.Equals(resource.Name, Name, StringComparison.CurrentCultureIgnoreCase)); if (null == circuitconnection) { throw new ArgumentException(string.Format(Properties.Resources.ExpressRouteCircuitConnectionNotFound, Name)); } circuitconnection.Name = this.Name; if (null != peering.Id) { circuitconnection.ExpressRouteCircuitPeering.Id = peering.Id; } if (null != this.PeerExpressRouteCircuitPeering) { circuitconnection.PeerExpressRouteCircuitPeering.Id = this.PeerExpressRouteCircuitPeering; } if (!string.IsNullOrWhiteSpace(this.AuthorizationKey)) { circuitconnection.AuthorizationKey = this.AuthorizationKey; } if (this.AddressPrefix != null) { if (AddressTypeUtils.IsIpv6(this.AddressPrefixType)) { if (circuitconnection.IPv6CircuitConnectionConfig != null) { circuitconnection.IPv6CircuitConnectionConfig.AddressPrefix = this.AddressPrefix; } else { var ipv6AddressPrefix = new PSExpressRouteCircuitConnectionIPv6ConnectionConfig(); ipv6AddressPrefix.AddressPrefix = this.AddressPrefix; circuitconnection.IPv6CircuitConnectionConfig = ipv6AddressPrefix; } } else { circuitconnection.AddressPrefix = this.AddressPrefix; } } WriteObject(this.ExpressRouteCircuit); } // end of Execute()