public void AddIpConfigurtaionToPSVirtualHub(CNM.PSVirtualHub virtualHubModel, string resourceGroupName, string routerName) { var ipConfigModels = this.NetworkClient.NetworkManagementClient.VirtualHubIpConfiguration.List(resourceGroupName, routerName); var ipConfigList = ListNextLink <HubIpConfiguration> .GetAllResourcesByPollingNextLink(ipConfigModels, this.NetworkClient.NetworkManagementClient.VirtualHubIpConfiguration.ListNext); HubIpConfiguration ipConfigModel = null; if (ipConfigList.Count > 0) { ipConfigModel = ipConfigList[0]; } var ipconfig = NetworkResourceManagerProfile.Mapper.Map <CNM.PSHubIpConfiguration>(ipConfigModel); virtualHubModel.IpConfigurations = new List <CNM.PSHubIpConfiguration>(); virtualHubModel.IpConfigurations.Add(ipconfig); }
public override void Execute() { base.Execute(); var present = true; try { this.NetworkClient.NetworkManagementClient.VirtualHubs.Get(this.ResourceGroupName, this.Name); } catch (Exception ex) { if (ex is Microsoft.Azure.Management.Network.Models.ErrorException || ex is Rest.Azure.CloudException) { // Resource is not present present = false; } else { throw; } } if (present) { throw new PSArgumentException(string.Format(Properties.Resources.ResourceAlreadyPresentInResourceGroup, this.Name, this.ResourceGroupName)); } ConfirmAction( Properties.Resources.CreatingResourceMessage, Name, () => { WriteVerbose(String.Format(Properties.Resources.CreatingLongRunningOperationMessage, this.ResourceGroupName, this.Name)); PSVirtualHub virtualHub = new PSVirtualHub { ResourceGroupName = this.ResourceGroupName, Name = this.Name, Location = this.Location }; virtualHub.RouteTables = new List <PSVirtualHubRouteTable>(); string ipConfigName = "ipconfig1"; HubIpConfiguration ipconfig = new HubIpConfiguration { Subnet = new Subnet() { Id = this.HostedSubnet } }; var virtualHubModel = NetworkResourceManagerProfile.Mapper.Map <MNM.VirtualHub>(virtualHub); virtualHubModel.Tags = TagsConversionHelper.CreateTagDictionary(this.Tag, validate: true); virtualHubModel.Sku = "Standard"; this.NetworkClient.NetworkManagementClient.VirtualHubs.CreateOrUpdate(this.ResourceGroupName, this.Name, virtualHubModel); this.NetworkClient.NetworkManagementClient.VirtualHubIpConfiguration.CreateOrUpdate(this.ResourceGroupName, this.Name, ipConfigName, ipconfig); virtualHubModel = this.NetworkClient.NetworkManagementClient.VirtualHubs.Get(this.ResourceGroupName, this.Name); virtualHub = NetworkResourceManagerProfile.Mapper.Map <PSVirtualHub>(virtualHubModel); virtualHub.ResourceGroupName = this.ResourceGroupName; AddIpConfigurtaionToPSVirtualHub(virtualHub, this.ResourceGroupName, this.Name, ipConfigName); var virtualRouter = new PSVirtualRouter(virtualHub); virtualRouter.Tag = TagsConversionHelper.CreateTagHashtable(virtualHubModel.Tags); WriteObject(virtualRouter, true); }); }
/// <summary> /// Creates a VirtualHubIpConfiguration resource if it doesn't exist else /// updates the existing VirtualHubIpConfiguration. /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='resourceGroupName'> /// The resource group name of the VirtualHub. /// </param> /// <param name='virtualHubName'> /// The name of the VirtualHub. /// </param> /// <param name='ipConfigName'> /// The name of the ipconfig. /// </param> /// <param name='parameters'> /// Hub Ip Configuration parameters. /// </param> public static HubIpConfiguration CreateOrUpdate(this IVirtualHubIpConfigurationOperations operations, string resourceGroupName, string virtualHubName, string ipConfigName, HubIpConfiguration parameters) { return(operations.CreateOrUpdateAsync(resourceGroupName, virtualHubName, ipConfigName, parameters).GetAwaiter().GetResult()); }
/// <summary> /// Creates a VirtualHubIpConfiguration resource if it doesn't exist else /// updates the existing VirtualHubIpConfiguration. /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='resourceGroupName'> /// The resource group name of the VirtualHub. /// </param> /// <param name='virtualHubName'> /// The name of the VirtualHub. /// </param> /// <param name='ipConfigName'> /// The name of the ipconfig. /// </param> /// <param name='parameters'> /// Hub Ip Configuration parameters. /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <HubIpConfiguration> BeginCreateOrUpdateAsync(this IVirtualHubIpConfigurationOperations operations, string resourceGroupName, string virtualHubName, string ipConfigName, HubIpConfiguration parameters, CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.BeginCreateOrUpdateWithHttpMessagesAsync(resourceGroupName, virtualHubName, ipConfigName, parameters, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }