Skip to content

Commit 7e90069

Browse files
authored
Pass AuxilaryAuthHeader for referenced resourceIds during Put Connection. (#27349)
1 parent 67ef552 commit 7e90069

9 files changed

+367
-1189
lines changed

src/Network/Network/ChangeLog.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
--->
2020

2121
## Upcoming Release
22+
* Updated VirtualNetworkGatewayConnection cmdlets to pass AuxilaryAuthHeader for referenced resourceIds i.e. LocalNetworkGateway2, VirtualNetworkGateway2. This is needed in case referenced resourceIds are in different AAD Tenant.
23+
- `New-AzVirtualNetworkGatewayConnection`
24+
- `Set-AzVirtualNetworkGatewayConnection`
2225

2326
## Version 7.15.0
2427
* Updated cmdlet `AddAzureVirtualNetworkPeering` to add support for subnet peering

src/Network/Network/Cortex/VpnServerConfigurationPolicyGroup/NewAzureRmVpnServerConfigurationPolicyGroupCommand.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public class NewAzureRmVpnServerConfigurationPolicyGroupCommand : VpnServerConfi
8383

8484
[Parameter(
8585
Mandatory = true,
86-
HelpMessage = "The Priority of the policy group.",
86+
HelpMessage = "The Priority of the policy group. Priority should be in consecutive orders.",
8787
ValueFromPipelineByPropertyName = true)]
8888
public int Priority { get; set; }
8989

src/Network/Network/Cortex/VpnServerConfigurationPolicyGroup/UpdateAzureRmVpnServerConfigurationPolicyGroupCommand.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public class UpdateAzureRmVpnServerConfigurationPolicyGroupCommand : VpnServerCo
8383

8484
[Parameter(
8585
Mandatory = false,
86-
HelpMessage = "The Priority of the policy group.",
86+
HelpMessage = "The Priority of the policy group. Priority should be in consecutive orders.",
8787
ValueFromPipelineByPropertyName = true)]
8888
public int Priority { get; set; }
8989

src/Network/Network/VirtualNetworkGatewayConnection/NewAzureVirtualNetworkGatewayConnectionCommand.cs

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -229,13 +229,32 @@ public override void Execute()
229229

230230
private PSVirtualNetworkGatewayConnection CreateVirtualNetworkGatewayConnection()
231231
{
232+
Dictionary<string, List<string>> auxAuthHeader = null;
233+
List<string> resourceIds = new List<string>();
232234
var vnetGatewayConnection = new PSVirtualNetworkGatewayConnection();
233235
vnetGatewayConnection.Name = this.Name;
234236
vnetGatewayConnection.ResourceGroupName = this.ResourceGroupName;
235237
vnetGatewayConnection.Location = this.Location;
236238
vnetGatewayConnection.VirtualNetworkGateway1 = this.VirtualNetworkGateway1;
237-
vnetGatewayConnection.VirtualNetworkGateway2 = this.VirtualNetworkGateway2;
238-
vnetGatewayConnection.LocalNetworkGateway2 = this.LocalNetworkGateway2;
239+
240+
// Get the aux header for the LNG2/VNG2
241+
if (this.VirtualNetworkGateway2 != null)
242+
{
243+
vnetGatewayConnection.VirtualNetworkGateway2 = this.VirtualNetworkGateway2;
244+
resourceIds.Add(this.VirtualNetworkGateway2.Id);
245+
}
246+
247+
if (this.LocalNetworkGateway2 != null)
248+
{
249+
vnetGatewayConnection.LocalNetworkGateway2 = this.LocalNetworkGateway2;
250+
resourceIds.Add(this.LocalNetworkGateway2.Id);
251+
}
252+
var auxHeaderDictionary = GetAuxilaryAuthHeaderFromResourceIds(resourceIds);
253+
if (auxHeaderDictionary != null && auxHeaderDictionary.Count > 0)
254+
{
255+
auxAuthHeader = new Dictionary<string, List<string>>(auxHeaderDictionary);
256+
}
257+
239258
vnetGatewayConnection.ConnectionType = this.ConnectionType;
240259
vnetGatewayConnection.RoutingWeight = this.RoutingWeight;
241260
vnetGatewayConnection.DpdTimeoutSeconds = this.DpdTimeoutInSeconds;
@@ -322,7 +341,7 @@ private PSVirtualNetworkGatewayConnection CreateVirtualNetworkGatewayConnection(
322341
vnetGatewayConnectionModel.Tags = TagsConversionHelper.CreateTagDictionary(this.Tag, validate: true);
323342

324343
// Execute the Create VirtualNetworkConnection call
325-
this.VirtualNetworkGatewayConnectionClient.CreateOrUpdate(this.ResourceGroupName, this.Name, vnetGatewayConnectionModel);
344+
this.VirtualNetworkGatewayConnectionClient.CreateOrUpdateWithHttpMessagesAsync(this.ResourceGroupName, this.Name, vnetGatewayConnectionModel, auxAuthHeader).GetAwaiter().GetResult();
326345

327346
var getVirtualNetworkGatewayConnection = this.GetVirtualNetworkGatewayConnection(this.ResourceGroupName, this.Name);
328347

src/Network/Network/VirtualNetworkGatewayConnection/UpdateAzureVirtualNetworkGatewayConnectionCommand.cs

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -225,16 +225,34 @@ public override void Execute()
225225
}
226226
}
227227

228+
Dictionary<string, List<string>> auxAuthHeader = null;
229+
List<string> resourceIds = new List<string>();
230+
231+
// Get the aux header for the LNG2/VNG2
232+
if (this.VirtualNetworkGatewayConnection.VirtualNetworkGateway2 != null)
233+
{
234+
resourceIds.Add(this.VirtualNetworkGatewayConnection.VirtualNetworkGateway2.Id);
235+
}
236+
237+
if (this.VirtualNetworkGatewayConnection.LocalNetworkGateway2 != null)
238+
{
239+
resourceIds.Add(this.VirtualNetworkGatewayConnection.LocalNetworkGateway2.Id);
240+
}
241+
var auxHeaderDictionary = GetAuxilaryAuthHeaderFromResourceIds(resourceIds);
242+
if (auxHeaderDictionary != null && auxHeaderDictionary.Count > 0)
243+
{
244+
auxAuthHeader = new Dictionary<string, List<string>>(auxHeaderDictionary);
245+
}
246+
228247
var vnetGatewayConnectionModel = NetworkResourceManagerProfile.Mapper.Map<MNM.VirtualNetworkGatewayConnection>(this.VirtualNetworkGatewayConnection);
229248

230249
vnetGatewayConnectionModel.Tags =
231250
ParameterSetName.Equals(VirtualNetworkGatewayParameterSets.UpdateResourceWithTags) ?
232251
TagsConversionHelper.CreateTagDictionary(this.Tag, validate: true) :
233252
TagsConversionHelper.CreateTagDictionary(this.VirtualNetworkGatewayConnection.Tag, validate: true);
234253

235-
this.VirtualNetworkGatewayConnectionClient.CreateOrUpdate(
236-
this.VirtualNetworkGatewayConnection.ResourceGroupName,
237-
this.VirtualNetworkGatewayConnection.Name, vnetGatewayConnectionModel);
254+
this.VirtualNetworkGatewayConnectionClient.CreateOrUpdateWithHttpMessagesAsync(this.VirtualNetworkGatewayConnection.ResourceGroupName, this.VirtualNetworkGatewayConnection.Name, vnetGatewayConnectionModel, auxAuthHeader).GetAwaiter().GetResult();
255+
238256
var getvnetGatewayConnection = this.GetVirtualNetworkGatewayConnection(this.VirtualNetworkGatewayConnection.ResourceGroupName, this.VirtualNetworkGatewayConnection.Name);
239257
WriteObject(getvnetGatewayConnection);
240258
});

0 commit comments

Comments
 (0)