public CreatePool ( |
||
parameters | The parameters to use when creating the pool. | |
리턴 | void |
public void CreatePool(NewPoolParameters parameters)
{
if (parameters == null)
{
throw new ArgumentNullException("parameters");
}
PoolOperations poolOperations = parameters.Context.BatchOMClient.PoolOperations;
CloudPool pool = poolOperations.CreatePool();
pool.Id = parameters.PoolId;
pool.VirtualMachineSize = parameters.VirtualMachineSize;
pool.DisplayName = parameters.DisplayName;
pool.ResizeTimeout = parameters.ResizeTimeout;
pool.MaxTasksPerComputeNode = parameters.MaxTasksPerComputeNode;
pool.InterComputeNodeCommunicationEnabled = parameters.InterComputeNodeCommunicationEnabled;
if (!string.IsNullOrEmpty(parameters.AutoScaleFormula))
{
pool.AutoScaleEnabled = true;
pool.AutoScaleEvaluationInterval = parameters.AutoScaleEvaluationInterval;
pool.AutoScaleFormula = parameters.AutoScaleFormula;
}
else if (parameters.TargetDedicated.HasValue)
{
pool.TargetDedicated = parameters.TargetDedicated;
}
if (parameters.TaskSchedulingPolicy != null)
{
pool.TaskSchedulingPolicy = parameters.TaskSchedulingPolicy.omObject;
}
if (parameters.StartTask != null)
{
Utils.Utils.StartTaskSyncCollections(parameters.StartTask);
pool.StartTask = parameters.StartTask.omObject;
}
if (parameters.Metadata != null)
{
pool.Metadata = new List<MetadataItem>();
foreach (DictionaryEntry m in parameters.Metadata)
{
pool.Metadata.Add(new MetadataItem(m.Key.ToString(), m.Value.ToString()));
}
}
if (parameters.CertificateReferences != null)
{
pool.CertificateReferences = new List<CertificateReference>();
foreach (PSCertificateReference c in parameters.CertificateReferences)
{
pool.CertificateReferences.Add(c.omObject);
}
}
if (parameters.ApplicationPackageReferences != null)
{
pool.ApplicationPackageReferences = parameters.ApplicationPackageReferences.ToList().ConvertAll(apr => apr.omObject);
}
if (parameters.CloudServiceConfiguration != null)
{
pool.CloudServiceConfiguration = parameters.CloudServiceConfiguration.omObject;
}
if (parameters.VirtualMachineConfiguration != null)
{
pool.VirtualMachineConfiguration = parameters.VirtualMachineConfiguration.omObject;
}
if (parameters.NetworkConfiguration != null)
{
pool.NetworkConfiguration = parameters.NetworkConfiguration.omObject;
}
WriteVerbose(string.Format(Resources.CreatingPool, parameters.PoolId));
pool.Commit(parameters.AdditionalBehaviors);
}
/// <summary> /// Creates a test pool for use in Scenario tests. /// </summary> public static void CreateTestPool(BatchController controller, BatchAccountContext context, string poolId, int targetDedicated, CertificateReference certReference = null, StartTask startTask = null) { BatchClient client = new BatchClient(controller.BatchManagementClient, controller.ResourceManagementClient); PSCertificateReference[] certReferences = null; if (certReference != null) { certReferences = new PSCertificateReference[] { new PSCertificateReference(certReference) }; } PSStartTask psStartTask = null; if (startTask != null) { psStartTask = new PSStartTask(startTask); } PSCloudServiceConfiguration paasConfiguration = new PSCloudServiceConfiguration("4", "*"); NewPoolParameters parameters = new NewPoolParameters(context, poolId) { VirtualMachineSize = "small", CloudServiceConfiguration = paasConfiguration, TargetDedicated = targetDedicated, CertificateReferences = certReferences, StartTask = psStartTask, InterComputeNodeCommunicationEnabled = true }; client.CreatePool(parameters); }