public async Task CreatePoolAsync( string poolId, string virtualMachineSize, int?targetDedicated, string autoScaleFormula, bool communicationEnabled, string subnetId, CloudServiceConfigurationOptions cloudServiceConfigurationOptions, VirtualMachineConfigurationOptions virtualMachineConfigurationOptions, int maxTasksPerComputeNode, TimeSpan?timeout, StartTaskOptions startTask) { await this.Service.CreatePoolAsync( poolId, virtualMachineSize, targetDedicated, autoScaleFormula, communicationEnabled, subnetId, cloudServiceConfigurationOptions, virtualMachineConfigurationOptions, maxTasksPerComputeNode, timeout, startTask); }
/// <summary> /// Creates a pool. /// </summary> /// <returns></returns> public async Task CreatePoolAsync( string poolId, string virtualMachineSize, int?targetDedicated, string autoScaleFormula, bool communicationEnabled, string subnetId, CloudServiceConfigurationOptions cloudServiceConfigurationOptions, VirtualMachineConfigurationOptions virtualMachineConfigurationOptions, int maxTasksPerComputeNode, TimeSpan?timeout, StartTaskOptions startTask) { CloudPool unboundPool; if (cloudServiceConfigurationOptions != null) { unboundPool = this.Client.PoolOperations.CreatePool( poolId, virtualMachineSize: virtualMachineSize, cloudServiceConfiguration: new CloudServiceConfiguration(cloudServiceConfigurationOptions.OSFamily, cloudServiceConfigurationOptions.OSVersion), targetDedicated: targetDedicated); } else if (virtualMachineConfigurationOptions != null) { unboundPool = this.Client.PoolOperations.CreatePool( poolId, virtualMachineSize: virtualMachineSize, virtualMachineConfiguration: new VirtualMachineConfiguration( new ImageReference( publisher: virtualMachineConfigurationOptions.Publisher, offer: virtualMachineConfigurationOptions.Offer, sku: virtualMachineConfigurationOptions.SkuId, version: virtualMachineConfigurationOptions.Version), virtualMachineConfigurationOptions.NodeAgentSkuId, virtualMachineConfigurationOptions.EnableWindowsAutomaticUpdates.HasValue ? new WindowsConfiguration(virtualMachineConfigurationOptions.EnableWindowsAutomaticUpdates) : null), targetDedicated: targetDedicated); } else { throw new ArgumentException("Must set cloudServiceConfiguration or virtualMachineConfiguration"); } unboundPool.InterComputeNodeCommunicationEnabled = communicationEnabled; unboundPool.ResizeTimeout = timeout; unboundPool.MaxTasksPerComputeNode = maxTasksPerComputeNode; if (!string.IsNullOrEmpty(subnetId)) { unboundPool.NetworkConfiguration = new NetworkConfiguration { SubnetId = subnetId }; } if (!string.IsNullOrEmpty(autoScaleFormula)) { unboundPool.AutoScaleEnabled = true; unboundPool.AutoScaleFormula = autoScaleFormula; } if (startTask != null) { unboundPool.StartTask = new StartTask { CommandLine = startTask.CommandLine, RunElevated = startTask.RunElevated, ResourceFiles = startTask.ResourceFiles.ConvertAll(f => new ResourceFile(f.BlobSource, f.FilePath)), WaitForSuccess = true, }; } await unboundPool.CommitAsync(); }