private PSVirtualNetworkPeering UpdateVirtualNetworkPeering(PSVirtualNetworkPeering existingPeering) { if (!this.IsVirtualNetworkPeeringPresent(existingPeering.ResourceGroupName, existingPeering.VirtualNetworkName, existingPeering.Name)) { throw new AzPSArgumentException(Microsoft.Azure.Commands.Network.Properties.Resources.ResourceNotFound, nameof(existingPeering.Name)); } // Map to the sdk object var vnetPeeringModel = NetworkResourceManagerProfile.Mapper.Map <MNM.VirtualNetworkPeering>(existingPeering); //Get the remote VNet Id and then get the token for the resource Id if tis in a different tenant var remoteVirtualNetworkId = existingPeering.RemoteVirtualNetwork.Id; Dictionary <string, List <string> > auxAuthHeader = null; if (remoteVirtualNetworkId != null) { List <string> resourceIds = new List <string>(); resourceIds.Add(remoteVirtualNetworkId); var auxHeaderDictionary = GetAuxilaryAuthHeaderFromResourceIds(resourceIds); if (auxHeaderDictionary != null && auxHeaderDictionary.Count > 0) { auxAuthHeader = new Dictionary <string, List <string> >(auxHeaderDictionary); } } // Create/Update call with 'sync' param set to true this.VirtualNetworkPeeringClient.CreateOrUpdateWithHttpMessagesAsync(existingPeering.ResourceGroupName, existingPeering.VirtualNetworkName, existingPeering.Name, vnetPeeringModel, true.ToString(), auxAuthHeader).GetAwaiter().GetResult(); var getVirtualNetworkPeering = this.GetVirtualNetworkPeering(existingPeering.ResourceGroupName, existingPeering.VirtualNetworkName, existingPeering.Name); return(getVirtualNetworkPeering); }
private PSVirtualNetworkPeering AddVirtualNetworkPeering() { var vnetPeering = new PSVirtualNetworkPeering(); vnetPeering.Name = this.Name; if (!string.IsNullOrEmpty(this.RemoteVirtualNetworkId)) { vnetPeering.RemoteVirtualNetwork = new PSResourceId(); vnetPeering.RemoteVirtualNetwork.Id = this.RemoteVirtualNetworkId; } vnetPeering.AllowVirtualNetworkAccess = !this.BlockVirtualNetworkAccess.IsPresent; vnetPeering.AllowGatewayTransit = this.AllowGatewayTransit; vnetPeering.AllowForwardedTraffic = this.AllowForwardedTraffic; vnetPeering.UseRemoteGateways = this.UseRemoteGateways; // Map to the sdk object var vnetPeeringModel = NetworkResourceManagerProfile.Mapper.Map <MNM.VirtualNetworkPeering>(vnetPeering); // Execute the Create VirtualNetwork call this.VirtualNetworkPeeringClient.CreateOrUpdate(this.VirtualNetwork.ResourceGroupName, this.VirtualNetwork.Name, this.Name, vnetPeeringModel); var getVirtualNetworkPeering = this.GetVirtualNetworkPeering(this.VirtualNetwork.ResourceGroupName, this.VirtualNetwork.Name, this.Name); return(getVirtualNetworkPeering); }
private PSVirtualNetworkPeering AddVirtualNetworkPeering() { var vnetPeering = new PSVirtualNetworkPeering(); vnetPeering.Name = this.Name; Dictionary <string, List <string> > auxAuthHeader = null; if (!string.IsNullOrEmpty(this.RemoteVirtualNetworkId)) { vnetPeering.RemoteVirtualNetwork = new PSResourceId(); vnetPeering.RemoteVirtualNetwork.Id = this.RemoteVirtualNetworkId; //Get the aux header for the remote vnet List <string> resourceIds = new List <string>(); resourceIds.Add(this.RemoteVirtualNetworkId); var auxHeaderDictionary = GetAuxilaryAuthHeaderFromResourceIds(resourceIds); if (auxHeaderDictionary != null && auxHeaderDictionary.Count > 0) { auxAuthHeader = new Dictionary <string, List <string> >(auxHeaderDictionary); } } vnetPeering.AllowVirtualNetworkAccess = !this.BlockVirtualNetworkAccess.IsPresent; vnetPeering.AllowGatewayTransit = this.AllowGatewayTransit; vnetPeering.AllowForwardedTraffic = this.AllowForwardedTraffic; vnetPeering.UseRemoteGateways = this.UseRemoteGateways; // Map to the sdk object var vnetPeeringModel = NetworkResourceManagerProfile.Mapper.Map <MNM.VirtualNetworkPeering>(vnetPeering); // Execute the Create VirtualNetwork call this.VirtualNetworkPeeringClient.CreateOrUpdateWithHttpMessagesAsync(this.VirtualNetwork.ResourceGroupName, this.VirtualNetwork.Name, this.Name, vnetPeeringModel, null, auxAuthHeader).GetAwaiter().GetResult(); var getVirtualNetworkPeering = this.GetVirtualNetworkPeering(this.VirtualNetwork.ResourceGroupName, this.VirtualNetwork.Name, this.Name); return(getVirtualNetworkPeering); }
public override void Execute() { base.Execute(); PSVirtualNetworkPeering existingPeering = null; if (this.ParameterSetName == FieldsParameterSetName) { existingPeering = this.GetVirtualNetworkPeering(this.ResourceGroupName, this.VirtualNetworkName, this.Name); } else { // Piping scenario existingPeering = this.VirtualNetworkPeering; } var updatedPeering = UpdateVirtualNetworkPeering(existingPeering); WriteObject(updatedPeering); }