private QPool CreatePool(CreateConfiguration config, QarnotSDK.Connection connect, CancellationToken ct) { QarnotSDK.QPool pool = new QarnotSDK.QPool(connect, config.Name, config.Profile, config.InstanceCount, config.Shortname, config.TasksDefaultWaitForPoolResourcesSynchronization); pool.SetTags(config.Tags.ToArray()); pool.Resources = this.Tools.CreateResources(config.Resources, connect, ct); foreach (var item in this.Tools.CreateConstants(config.Constants)) { pool.SetConstant(item.Key, item.Value); } foreach (var item in this.Tools.CreateConstraints(config.Constraints)) { pool.SetConstraint(item.Key, item.Value); } foreach (var item in this.Tools.CreateLabels(config.Labels)) { pool.SetLabel(item.Key, item.Value); } pool.IsElastic = config.IsElastic; pool.ElasticMinimumTotalNodes = config.ElasticMinimumTotalNodes == default(int) ? pool.ElasticMinimumTotalNodes : config.ElasticMinimumTotalNodes; pool.ElasticMaximumTotalNodes = config.ElasticMaximumTotalNodes == default(int) ? pool.ElasticMaximumTotalNodes : config.ElasticMaximumTotalNodes; pool.ElasticMinimumIdlingNodes = config.ElasticMinimumIdlingNodes == default(int) ? pool.ElasticMinimumIdlingNodes : config.ElasticMinimumIdlingNodes; pool.ElasticResizePeriod = config.ElasticResizePeriod == default(int) ? pool.ElasticResizePeriod : config.ElasticResizePeriod; pool.ElasticResizeFactor = config.ElasticResizeFactor == default(int) ? pool.ElasticResizeFactor : config.ElasticResizeFactor; pool.ElasticMinimumIdlingTime = config.ElasticMinimumIdlingTime == default(int) ? pool.ElasticMinimumIdlingTime : config.ElasticMinimumIdlingTime; CLILogs.Info("create pool"); return(pool); }
private async Task <QTask> CreateRangeTaskAsync(CreateConfiguration config, QarnotSDK.Connection connect, CancellationToken ct = default(CancellationToken)) { AdvancedRanges range = new AdvancedRanges(config.Range); if (!string.IsNullOrEmpty(config.JobUuidOrShortname)) { QarnotSDK.QJob job; if (Guid.TryParse(config.JobUuidOrShortname, out var jobUuid)) { job = await connect.RetrieveJobByUuidAsync(config.JobUuidOrShortname, ct); } else { job = await connect.RetrieveJobByShortnameAsync(config.JobUuidOrShortname, ct); } return(new QarnotSDK.QTask(connect, config.Name, job, range, config.Shortname)); } else if (!string.IsNullOrEmpty(config.PoolUuidOrShortname)) { QarnotSDK.QPool pool; if (Guid.TryParse(config.PoolUuidOrShortname, out var poolUuid)) { pool = new QarnotSDK.QPool(connect, poolUuid); } else { pool = await connect.RetrievePoolByShortnameAsync(config.PoolUuidOrShortname, ct); } return(new QarnotSDK.QTask(connect, config.Name, pool, range, config.Shortname, config.WaitForPoolResourcesSynchronization)); } return(new QarnotSDK.QTask(connect, config.Name, config.Profile, range, config.Shortname)); }
public async override Task <CommandValues.GenericInfoCommandValue> Create(IConfiguration iconfig, QarnotSDK.Connection connect, CancellationToken ct) { CreateConfiguration config = iconfig as CreateConfiguration; QarnotSDK.QPool pool = this.CreatePool(config, connect, ct); await this.LaunchPoolAsync(pool, ct); return(this.PrintPoolInformation(pool)); }
private async Task <QTask> CreateInstanceTaskAsync(CreateConfiguration config, QarnotSDK.Connection connect, CancellationToken ct = default(CancellationToken)) { if (!string.IsNullOrEmpty(config.JobUuid)) { QarnotSDK.QJob job = await connect.RetrieveJobByUuidAsync(config.JobUuid, ct); return(new QarnotSDK.QTask(connect, config.Name, job, config.InstanceCount, config.Shortname)); } else if (!string.IsNullOrEmpty(config.PoolUuid)) { QarnotSDK.QPool pool = new QarnotSDK.QPool(connect, new Guid(config.PoolUuid)); return(new QarnotSDK.QTask(connect, config.Name, pool, config.InstanceCount, config.Shortname, config.WaitForPoolResourcesSynchronization)); } return(new QarnotSDK.QTask(connect, config.Name, config.Profile, config.InstanceCount, config.Shortname)); }
private QPool CreatePool(CreateConfiguration config, QarnotSDK.Connection connect, CancellationToken ct) { QarnotSDK.QPool pool = new QarnotSDK.QPool(connect, config.Name, config.Profile, config.InstanceCount, config.Shortname, config.TasksDefaultWaitForPoolResourcesSynchronization); pool.SetTags(config.Tags.ToArray()); pool.Resources = this.Tools.CreateResources(config.Resources, connect, ct); foreach (var item in this.Tools.CreateConstants(config.Constants)) { pool.SetConstant(item.Key, item.Value); } foreach (var item in this.Tools.CreateConstraints(config.Constraints)) { pool.SetConstraint(item.Key, item.Value); } foreach (var item in this.Tools.CreateLabels(config.Labels)) { pool.SetLabel(item.Key, item.Value); } pool.IsElastic = config.IsElastic; pool.ElasticMinimumTotalSlots = config.ElasticMinimumTotalSlots == default(int) ? pool.ElasticMinimumTotalSlots : config.ElasticMinimumTotalSlots; pool.ElasticMaximumTotalSlots = config.ElasticMaximumTotalSlots == default(int) ? pool.ElasticMaximumTotalSlots : config.ElasticMaximumTotalSlots; pool.ElasticMinimumIdlingSlots = config.ElasticMinimumIdlingSlots == default(int) ? pool.ElasticMinimumIdlingSlots : config.ElasticMinimumIdlingSlots; pool.ElasticResizePeriod = config.ElasticResizePeriod == default(int) ? pool.ElasticResizePeriod : config.ElasticResizePeriod; pool.ElasticResizeFactor = config.ElasticResizeFactor == default(int) ? pool.ElasticResizeFactor : config.ElasticResizeFactor; pool.ElasticMinimumIdlingTime = config.ElasticMinimumIdlingTime == default(int) ? pool.ElasticMinimumIdlingTime : config.ElasticMinimumIdlingTime; if (config.ExportApiAndStorageCredentialsInEnvironment.HasValue) { pool.Privileges.ExportApiAndStorageCredentialsInEnvironment = config.ExportApiAndStorageCredentialsInEnvironment.Value; } if (config.DefaultResourcesCacheTTLSec.HasValue) { pool.DefaultResourcesCacheTTLSec = config.DefaultResourcesCacheTTLSec.Value; } CLILogs.Info("create pool"); return(pool); }