Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }