diff --git a/src/Network/Network/Generated/LoadBalancer/NewAzureRMLoadBalancerCommand.cs b/src/Network/Network/Generated/LoadBalancer/NewAzureRMLoadBalancerCommand.cs index 561411672ea1..b7a24f747cf7 100644 --- a/src/Network/Network/Generated/LoadBalancer/NewAzureRMLoadBalancerCommand.cs +++ b/src/Network/Network/Generated/LoadBalancer/NewAzureRMLoadBalancerCommand.cs @@ -247,6 +247,29 @@ public override void Execute() } } + List resourceIdsRequiringAuthToken = new List(); + Dictionary> auxAuthHeader = null; + + // Get aux token for each gateway lb references + foreach (FrontendIPConfiguration frontend in vLoadBalancerModel.FrontendIPConfigurations) + { + if (frontend.GatewayLoadBalancer != null) + { + //Get the aux header for the remote vnet + resourceIdsRequiringAuthToken.Add(frontend.GatewayLoadBalancer.Id); + } + } + + if (resourceIdsRequiringAuthToken.Count > 0) + { + var auxHeaderDictionary = GetAuxilaryAuthHeaderFromResourceIds(resourceIdsRequiringAuthToken); + if (auxHeaderDictionary != null && auxHeaderDictionary.Count > 0) + { + auxAuthHeader = new Dictionary>(auxHeaderDictionary); + } + } + + ConfirmAction( Force.IsPresent, string.Format(Properties.Resources.OverwritingResource, Name), @@ -254,7 +277,7 @@ public override void Execute() Name, () => { - this.NetworkClient.NetworkManagementClient.LoadBalancers.CreateOrUpdate(this.ResourceGroupName, this.Name, vLoadBalancerModel); + this.NetworkClient.NetworkManagementClient.LoadBalancers.CreateOrUpdateWithHttpMessagesAsync(this.ResourceGroupName, this.Name, vLoadBalancerModel, auxAuthHeader).GetAwaiter().GetResult(); var getLoadBalancer = this.NetworkClient.NetworkManagementClient.LoadBalancers.Get(this.ResourceGroupName, this.Name); var psLoadBalancer = NetworkResourceManagerProfile.Mapper.Map(getLoadBalancer); psLoadBalancer.ResourceGroupName = this.ResourceGroupName; diff --git a/src/Network/Network/Generated/LoadBalancer/SetAzureRMLoadBalancerCommand.cs b/src/Network/Network/Generated/LoadBalancer/SetAzureRMLoadBalancerCommand.cs index 34249f0da10f..09ee74527b3b 100644 --- a/src/Network/Network/Generated/LoadBalancer/SetAzureRMLoadBalancerCommand.cs +++ b/src/Network/Network/Generated/LoadBalancer/SetAzureRMLoadBalancerCommand.cs @@ -128,8 +128,30 @@ public override void Execute() var vLoadBalancerModel = NetworkResourceManagerProfile.Mapper.Map(this.LoadBalancer); vLoadBalancerModel.Tags = TagsConversionHelper.CreateTagDictionary(this.LoadBalancer.Tag, validate: true); + List resourceIds = new List(); + Dictionary> auxAuthHeader = null; + + // Get aux token for each gateway lb references + foreach (FrontendIPConfiguration frontend in vLoadBalancerModel.FrontendIPConfigurations) + { + if (frontend.GatewayLoadBalancer != null) + { + //Get the aux header for the remote vnet + resourceIds.Add(frontend.GatewayLoadBalancer.Id); + } + } + + if (resourceIds.Count > 0) + { + var auxHeaderDictionary = GetAuxilaryAuthHeaderFromResourceIds(resourceIds); + if (auxHeaderDictionary != null && auxHeaderDictionary.Count > 0) + { + auxAuthHeader = new Dictionary>(auxHeaderDictionary); + } + } + // Execute the PUT LoadBalancer call - this.NetworkClient.NetworkManagementClient.LoadBalancers.CreateOrUpdate(this.LoadBalancer.ResourceGroupName, this.LoadBalancer.Name, vLoadBalancerModel); + this.NetworkClient.NetworkManagementClient.LoadBalancers.CreateOrUpdateWithHttpMessagesAsync(this.LoadBalancer.ResourceGroupName, this.LoadBalancer.Name, vLoadBalancerModel, auxAuthHeader).GetAwaiter().GetResult(); var getLoadBalancer = this.NetworkClient.NetworkManagementClient.LoadBalancers.Get(this.LoadBalancer.ResourceGroupName, this.LoadBalancer.Name); var psLoadBalancer = NetworkResourceManagerProfile.Mapper.Map(getLoadBalancer); diff --git a/src/Network/Network/NetworkInterface/NewAzureNetworkInterfaceCommand.cs b/src/Network/Network/NetworkInterface/NewAzureNetworkInterfaceCommand.cs index 13d6f1635c30..0c37e683e3b9 100644 --- a/src/Network/Network/NetworkInterface/NewAzureNetworkInterfaceCommand.cs +++ b/src/Network/Network/NetworkInterface/NewAzureNetworkInterfaceCommand.cs @@ -437,13 +437,35 @@ private PSNetworkInterface CreateNetworkInterface() networkInterface.NetworkSecurityGroup.Id = this.NetworkSecurityGroupId; } + List resourceIdsRequiringAuthToken = new List(); + Dictionary> auxAuthHeader = null; + + // Get aux token for each gateway lb references + foreach (var ipConfiguration in networkInterface.IpConfigurations) + { + if (ipConfiguration.GatewayLoadBalancer != null) + { + //Get the aux header for the remote vnet + resourceIdsRequiringAuthToken.Add(ipConfiguration.GatewayLoadBalancer.Id); + } + } + + if (resourceIdsRequiringAuthToken.Count > 0) + { + var auxHeaderDictionary = GetAuxilaryAuthHeaderFromResourceIds(resourceIdsRequiringAuthToken); + if (auxHeaderDictionary != null && auxHeaderDictionary.Count > 0) + { + auxAuthHeader = new Dictionary>(auxHeaderDictionary); + } + } + var networkInterfaceModel = NetworkResourceManagerProfile.Mapper.Map(networkInterface); this.NullifyApplicationSecurityGroupIfAbsent(networkInterfaceModel); networkInterfaceModel.Tags = TagsConversionHelper.CreateTagDictionary(this.Tag, validate: true); - this.NetworkInterfaceClient.CreateOrUpdate(this.ResourceGroupName, this.Name, networkInterfaceModel); + this.NetworkInterfaceClient.CreateOrUpdateWithHttpMessagesAsync(this.ResourceGroupName, this.Name, networkInterfaceModel, auxAuthHeader).GetAwaiter().GetResult(); var getNetworkInterface = this.GetNetworkInterface(this.ResourceGroupName, this.Name); diff --git a/src/Network/Network/NetworkInterface/SetAzureNetworkInterfaceCommand.cs b/src/Network/Network/NetworkInterface/SetAzureNetworkInterfaceCommand.cs index c6dba2802b74..b10e3e7b3def 100644 --- a/src/Network/Network/NetworkInterface/SetAzureNetworkInterfaceCommand.cs +++ b/src/Network/Network/NetworkInterface/SetAzureNetworkInterfaceCommand.cs @@ -17,6 +17,7 @@ using Microsoft.Azure.Commands.ResourceManager.Common.Tags; using Microsoft.Azure.Management.Network; using System; +using System.Collections.Generic; using System.Management.Automation; using MNM = Microsoft.Azure.Management.Network.Models; @@ -43,14 +44,32 @@ public override void Execute() throw new ArgumentException(Microsoft.Azure.Commands.Network.Properties.Resources.ResourceNotFound); } - // Verify if PublicIpAddress is empty + List resourceIdsRequiringAuthToken = new List(); + Dictionary> auxAuthHeader = null; + foreach (var ipconfig in NetworkInterface.IpConfigurations) { + // Verify if PublicIpAddress is empty if (ipconfig.PublicIpAddress != null && string.IsNullOrEmpty(ipconfig.PublicIpAddress.Id)) { ipconfig.PublicIpAddress = null; } + + if (ipconfig.GatewayLoadBalancer != null) + { + //Get the aux header for the remote vnet + resourceIdsRequiringAuthToken.Add(ipconfig.GatewayLoadBalancer.Id); + } + } + + if (resourceIdsRequiringAuthToken.Count > 0) + { + var auxHeaderDictionary = GetAuxilaryAuthHeaderFromResourceIds(resourceIdsRequiringAuthToken); + if (auxHeaderDictionary != null && auxHeaderDictionary.Count > 0) + { + auxAuthHeader = new Dictionary>(auxHeaderDictionary); + } } // Map to the sdk object @@ -60,7 +79,7 @@ public override void Execute() networkInterfaceModel.Tags = TagsConversionHelper.CreateTagDictionary(this.NetworkInterface.Tag, validate: true); - this.NetworkInterfaceClient.CreateOrUpdate(this.NetworkInterface.ResourceGroupName, this.NetworkInterface.Name, networkInterfaceModel); + this.NetworkInterfaceClient.CreateOrUpdateWithHttpMessagesAsync(this.NetworkInterface.ResourceGroupName, this.NetworkInterface.Name, networkInterfaceModel, auxAuthHeader).GetAwaiter().GetResult(); var getNetworkInterface = this.GetNetworkInterface(this.NetworkInterface.ResourceGroupName, this.NetworkInterface.Name); WriteObject(getNetworkInterface);