public override void Execute() { base.Execute(); Dictionary <string, List <string> > auxAuthHeader = null; if (ParameterSetName.Contains(CortexParameterSetNames.ByVirtualHubObject)) { this.ResourceGroupName = this.ParentObject.ResourceGroupName; this.ParentResourceName = this.ParentObject.Name; } else if (ParameterSetName.Contains(CortexParameterSetNames.ByVirtualHubResourceId)) { var parsedResourceId = new ResourceIdentifier(this.ParentResourceId); this.ResourceGroupName = parsedResourceId.ResourceGroupName; this.ParentResourceName = parsedResourceId.ResourceName; } if (this.IsHubVnetConnectionPresent(this.ResourceGroupName, this.ParentResourceName, this.Name)) { throw new PSArgumentException(string.Format(Properties.Resources.ChildResourceAlreadyPresentInResourceGroup, this.Name, this.ResourceGroupName, this.ParentResourceName)); } var hubVnetConnection = new MNM.HubVirtualNetworkConnection(enableInternetSecurity: true); hubVnetConnection.Name = this.Name; if (this.EnableInternetSecurityFlag.HasValue && this.EnableInternetSecurityFlag.Value == false) { hubVnetConnection.EnableInternetSecurity = false; } //// Resolve the remote virtual network //// Let's not try to resolve this since this can be in other RG/Sub/Location if (ParameterSetName.Contains(CortexParameterSetNames.ByRemoteVirtualNetworkObject)) { hubVnetConnection.RemoteVirtualNetwork = new MNM.SubResource(this.RemoteVirtualNetwork.Id); } else if (ParameterSetName.Contains(CortexParameterSetNames.ByRemoteVirtualNetworkResourceId)) { hubVnetConnection.RemoteVirtualNetwork = new MNM.SubResource(this.RemoteVirtualNetworkId); } List <string> resourceIds = new List <string>(); resourceIds.Add(hubVnetConnection.RemoteVirtualNetwork.Id); var auxHeaderDictionary = GetAuxilaryAuthHeaderFromResourceIds(resourceIds); if (auxHeaderDictionary != null && auxHeaderDictionary.Count > 0) { auxAuthHeader = new Dictionary <string, List <string> >(auxHeaderDictionary); } ConfirmAction( Properties.Resources.CreatingResourceMessage, this.Name, () => { WriteVerbose(String.Format(Properties.Resources.CreatingLongRunningOperationMessage, this.ResourceGroupName, this.Name)); WriteObject(this.CreateOrUpdateHubVirtualNetworkConnection(this.ResourceGroupName, this.ParentResourceName, this.Name, hubVnetConnection, auxAuthHeader)); }); }
public PSHubVirtualNetworkConnection CreateOrUpdateHubVirtualNetworkConnection(string resourceGroupName, string virtualHubName, string connectionName, MNM.HubVirtualNetworkConnection hubVirtualNetworkConnectionParameters, Dictionary <string, List <string> > customHeaders = null) { MNM.HubVirtualNetworkConnection hubVnetConnCreated; if (customHeaders == null) { hubVnetConnCreated = this.HubVirtualNetworkConnectionsClient.CreateOrUpdate(resourceGroupName, virtualHubName, connectionName, hubVirtualNetworkConnectionParameters); } else { // Execute the create call and pass the custom headers. using (var _result = this.HubVirtualNetworkConnectionsClient.CreateOrUpdateWithHttpMessagesAsync(resourceGroupName, connectionName, virtualHubName, hubVirtualNetworkConnectionParameters, customHeaders).GetAwaiter().GetResult()) { hubVnetConnCreated = _result.Body; } } return(this.ToPsHubVirtualNetworkConnection(hubVnetConnCreated)); }