From e0d784a5d82504908e9f41d901b5c17ffd95f8a8 Mon Sep 17 00:00:00 2001 From: matyang222 Date: Mon, 7 Jun 2021 12:22:55 -0700 Subject: [PATCH 1/3] fix --- .../NewAzureRMLoadBalancerCommand.cs | 20 ++++++++++++++++++- .../SetAzureRMLoadBalancerCommand.cs | 20 ++++++++++++++++++- .../NewAzureNetworkInterfaceCommand.cs | 20 ++++++++++++++++++- .../SetAzureNetworkInterfaceCommand.cs | 19 ++++++++++++++++-- 4 files changed, 74 insertions(+), 5 deletions(-) diff --git a/src/Network/Network/Generated/LoadBalancer/NewAzureRMLoadBalancerCommand.cs b/src/Network/Network/Generated/LoadBalancer/NewAzureRMLoadBalancerCommand.cs index 561411672ea1..4bc7ed3cf955 100644 --- a/src/Network/Network/Generated/LoadBalancer/NewAzureRMLoadBalancerCommand.cs +++ b/src/Network/Network/Generated/LoadBalancer/NewAzureRMLoadBalancerCommand.cs @@ -247,6 +247,24 @@ public override void Execute() } } + 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); + var auxHeaderDictionary = GetAuxilaryAuthHeaderFromResourceIds(resourceIds); + if (auxHeaderDictionary != null && auxHeaderDictionary.Count > 0) + { + auxAuthHeader = new Dictionary>(auxHeaderDictionary); + } + } + } + ConfirmAction( Force.IsPresent, string.Format(Properties.Resources.OverwritingResource, Name), @@ -254,7 +272,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); 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..29dc903f5166 100644 --- a/src/Network/Network/Generated/LoadBalancer/SetAzureRMLoadBalancerCommand.cs +++ b/src/Network/Network/Generated/LoadBalancer/SetAzureRMLoadBalancerCommand.cs @@ -128,8 +128,26 @@ 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); + 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); 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..6d16472ee4dc 100644 --- a/src/Network/Network/NetworkInterface/NewAzureNetworkInterfaceCommand.cs +++ b/src/Network/Network/NetworkInterface/NewAzureNetworkInterfaceCommand.cs @@ -437,13 +437,31 @@ private PSNetworkInterface CreateNetworkInterface() networkInterface.NetworkSecurityGroup.Id = this.NetworkSecurityGroupId; } + List resourceIds = 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 + resourceIds.Add(ipConfiguration.GatewayLoadBalancer.Id); + var auxHeaderDictionary = GetAuxilaryAuthHeaderFromResourceIds(resourceIds); + 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); 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..726939ae51af 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,28 @@ public override void Execute() throw new ArgumentException(Microsoft.Azure.Commands.Network.Properties.Resources.ResourceNotFound); } - // Verify if PublicIpAddress is empty + List resourceIds = 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 + resourceIds.Add(ipconfig.GatewayLoadBalancer.Id); + var auxHeaderDictionary = GetAuxilaryAuthHeaderFromResourceIds(resourceIds); + if (auxHeaderDictionary != null && auxHeaderDictionary.Count > 0) + { + auxAuthHeader = new Dictionary>(auxHeaderDictionary); + } + } } // Map to the sdk object @@ -60,7 +75,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); var getNetworkInterface = this.GetNetworkInterface(this.NetworkInterface.ResourceGroupName, this.NetworkInterface.Name); WriteObject(getNetworkInterface); From bddd9d847cf764689f3b63e4984c1695a44ab98d Mon Sep 17 00:00:00 2001 From: matyang222 Date: Mon, 7 Jun 2021 12:37:02 -0700 Subject: [PATCH 2/3] name fix --- .../NewAzureRMLoadBalancerCommand.cs | 19 ++++++++++++------- .../SetAzureRMLoadBalancerCommand.cs | 14 +++++++++----- .../NewAzureNetworkInterfaceCommand.cs | 18 +++++++++++------- .../SetAzureNetworkInterfaceCommand.cs | 18 +++++++++++------- 4 files changed, 43 insertions(+), 26 deletions(-) diff --git a/src/Network/Network/Generated/LoadBalancer/NewAzureRMLoadBalancerCommand.cs b/src/Network/Network/Generated/LoadBalancer/NewAzureRMLoadBalancerCommand.cs index 4bc7ed3cf955..d5a41a147f9b 100644 --- a/src/Network/Network/Generated/LoadBalancer/NewAzureRMLoadBalancerCommand.cs +++ b/src/Network/Network/Generated/LoadBalancer/NewAzureRMLoadBalancerCommand.cs @@ -247,7 +247,7 @@ public override void Execute() } } - List resourceIds = new List(); + List resourceIdsRequiringAuthToken = new List(); Dictionary> auxAuthHeader = null; // Get aux token for each gateway lb references @@ -256,15 +256,20 @@ public override void Execute() if (frontend.GatewayLoadBalancer != null) { //Get the aux header for the remote vnet - resourceIds.Add(frontend.GatewayLoadBalancer.Id); - var auxHeaderDictionary = GetAuxilaryAuthHeaderFromResourceIds(resourceIds); - if (auxHeaderDictionary != null && auxHeaderDictionary.Count > 0) - { - auxAuthHeader = new Dictionary>(auxHeaderDictionary); - } + 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), diff --git a/src/Network/Network/Generated/LoadBalancer/SetAzureRMLoadBalancerCommand.cs b/src/Network/Network/Generated/LoadBalancer/SetAzureRMLoadBalancerCommand.cs index 29dc903f5166..0c19c39f548b 100644 --- a/src/Network/Network/Generated/LoadBalancer/SetAzureRMLoadBalancerCommand.cs +++ b/src/Network/Network/Generated/LoadBalancer/SetAzureRMLoadBalancerCommand.cs @@ -138,11 +138,15 @@ public override void Execute() { //Get the aux header for the remote vnet resourceIds.Add(frontend.GatewayLoadBalancer.Id); - var auxHeaderDictionary = GetAuxilaryAuthHeaderFromResourceIds(resourceIds); - if (auxHeaderDictionary != null && auxHeaderDictionary.Count > 0) - { - auxAuthHeader = new Dictionary>(auxHeaderDictionary); - } + } + } + + if (resourceIds.Count > 0) + { + var auxHeaderDictionary = GetAuxilaryAuthHeaderFromResourceIds(resourceIds); + if (auxHeaderDictionary != null && auxHeaderDictionary.Count > 0) + { + auxAuthHeader = new Dictionary>(auxHeaderDictionary); } } diff --git a/src/Network/Network/NetworkInterface/NewAzureNetworkInterfaceCommand.cs b/src/Network/Network/NetworkInterface/NewAzureNetworkInterfaceCommand.cs index 6d16472ee4dc..64cbeeedbb17 100644 --- a/src/Network/Network/NetworkInterface/NewAzureNetworkInterfaceCommand.cs +++ b/src/Network/Network/NetworkInterface/NewAzureNetworkInterfaceCommand.cs @@ -437,7 +437,7 @@ private PSNetworkInterface CreateNetworkInterface() networkInterface.NetworkSecurityGroup.Id = this.NetworkSecurityGroupId; } - List resourceIds = new List(); + List resourceIdsRequiringAuthToken = new List(); Dictionary> auxAuthHeader = null; // Get aux token for each gateway lb references @@ -446,12 +446,16 @@ private PSNetworkInterface CreateNetworkInterface() if (ipConfiguration.GatewayLoadBalancer != null) { //Get the aux header for the remote vnet - resourceIds.Add(ipConfiguration.GatewayLoadBalancer.Id); - var auxHeaderDictionary = GetAuxilaryAuthHeaderFromResourceIds(resourceIds); - if (auxHeaderDictionary != null && auxHeaderDictionary.Count > 0) - { - auxAuthHeader = new Dictionary>(auxHeaderDictionary); - } + resourceIdsRequiringAuthToken.Add(ipConfiguration.GatewayLoadBalancer.Id); + } + } + + if (resourceIdsRequiringAuthToken.Count > 0) + { + var auxHeaderDictionary = GetAuxilaryAuthHeaderFromResourceIds(resourceIdsRequiringAuthToken); + if (auxHeaderDictionary != null && auxHeaderDictionary.Count > 0) + { + auxAuthHeader = new Dictionary>(auxHeaderDictionary); } } diff --git a/src/Network/Network/NetworkInterface/SetAzureNetworkInterfaceCommand.cs b/src/Network/Network/NetworkInterface/SetAzureNetworkInterfaceCommand.cs index 726939ae51af..1915efb3f7b9 100644 --- a/src/Network/Network/NetworkInterface/SetAzureNetworkInterfaceCommand.cs +++ b/src/Network/Network/NetworkInterface/SetAzureNetworkInterfaceCommand.cs @@ -44,7 +44,7 @@ public override void Execute() throw new ArgumentException(Microsoft.Azure.Commands.Network.Properties.Resources.ResourceNotFound); } - List resourceIds = new List(); + List resourceIdsRequiringAuthToken = new List(); Dictionary> auxAuthHeader = null; foreach (var ipconfig in NetworkInterface.IpConfigurations) @@ -59,12 +59,16 @@ public override void Execute() if (ipconfig.GatewayLoadBalancer != null) { //Get the aux header for the remote vnet - resourceIds.Add(ipconfig.GatewayLoadBalancer.Id); - var auxHeaderDictionary = GetAuxilaryAuthHeaderFromResourceIds(resourceIds); - if (auxHeaderDictionary != null && auxHeaderDictionary.Count > 0) - { - auxAuthHeader = new Dictionary>(auxHeaderDictionary); - } + resourceIdsRequiringAuthToken.Add(ipconfig.GatewayLoadBalancer.Id); + } + } + + if (resourceIdsRequiringAuthToken.Count > 0) + { + var auxHeaderDictionary = GetAuxilaryAuthHeaderFromResourceIds(resourceIdsRequiringAuthToken); + if (auxHeaderDictionary != null && auxHeaderDictionary.Count > 0) + { + auxAuthHeader = new Dictionary>(auxHeaderDictionary); } } From f87ccd44324764abc0f140eacf6dbc1456365f19 Mon Sep 17 00:00:00 2001 From: matyang222 Date: Tue, 8 Jun 2021 12:45:32 -0700 Subject: [PATCH 3/3] put await next to create update --- .../Generated/LoadBalancer/NewAzureRMLoadBalancerCommand.cs | 2 +- .../Generated/LoadBalancer/SetAzureRMLoadBalancerCommand.cs | 2 +- .../Network/NetworkInterface/NewAzureNetworkInterfaceCommand.cs | 2 +- .../Network/NetworkInterface/SetAzureNetworkInterfaceCommand.cs | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Network/Network/Generated/LoadBalancer/NewAzureRMLoadBalancerCommand.cs b/src/Network/Network/Generated/LoadBalancer/NewAzureRMLoadBalancerCommand.cs index d5a41a147f9b..b7a24f747cf7 100644 --- a/src/Network/Network/Generated/LoadBalancer/NewAzureRMLoadBalancerCommand.cs +++ b/src/Network/Network/Generated/LoadBalancer/NewAzureRMLoadBalancerCommand.cs @@ -277,7 +277,7 @@ public override void Execute() Name, () => { - this.NetworkClient.NetworkManagementClient.LoadBalancers.CreateOrUpdateWithHttpMessagesAsync(this.ResourceGroupName, this.Name, vLoadBalancerModel, auxAuthHeader); + 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 0c19c39f548b..09ee74527b3b 100644 --- a/src/Network/Network/Generated/LoadBalancer/SetAzureRMLoadBalancerCommand.cs +++ b/src/Network/Network/Generated/LoadBalancer/SetAzureRMLoadBalancerCommand.cs @@ -151,7 +151,7 @@ public override void Execute() } // Execute the PUT LoadBalancer call - this.NetworkClient.NetworkManagementClient.LoadBalancers.CreateOrUpdateWithHttpMessagesAsync(this.LoadBalancer.ResourceGroupName, this.LoadBalancer.Name, vLoadBalancerModel, auxAuthHeader); + 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 64cbeeedbb17..0c37e683e3b9 100644 --- a/src/Network/Network/NetworkInterface/NewAzureNetworkInterfaceCommand.cs +++ b/src/Network/Network/NetworkInterface/NewAzureNetworkInterfaceCommand.cs @@ -465,7 +465,7 @@ private PSNetworkInterface CreateNetworkInterface() networkInterfaceModel.Tags = TagsConversionHelper.CreateTagDictionary(this.Tag, validate: true); - this.NetworkInterfaceClient.CreateOrUpdateWithHttpMessagesAsync(this.ResourceGroupName, this.Name, networkInterfaceModel, auxAuthHeader); + 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 1915efb3f7b9..b10e3e7b3def 100644 --- a/src/Network/Network/NetworkInterface/SetAzureNetworkInterfaceCommand.cs +++ b/src/Network/Network/NetworkInterface/SetAzureNetworkInterfaceCommand.cs @@ -79,7 +79,7 @@ public override void Execute() networkInterfaceModel.Tags = TagsConversionHelper.CreateTagDictionary(this.NetworkInterface.Tag, validate: true); - this.NetworkInterfaceClient.CreateOrUpdateWithHttpMessagesAsync(this.NetworkInterface.ResourceGroupName, this.NetworkInterface.Name, networkInterfaceModel, auxAuthHeader); + 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);