private void PrintInformationFiles(string path, APIConnectionInformation connectionInformation) { string lines = $"Configuration on the file '{path}'"; CLILogs.Info(lines); CLILogs.Info(connectionInformation.ToString()); }
public virtual async Task <CommandValues.GenericInfoCommandValue> ExecuteAsync(QTask task, IConfiguration iconfig = null, CancellationToken ct = default(CancellationToken)) { CLILogs.Debug("Command Task : Wait"); var config = iconfig as StdConfiguration; bool end = false; while (end == false) { if (config.Stdout) { var stdmessage = await task.FreshStdoutAsync(ct); if (!string.IsNullOrEmpty(stdmessage)) { CLILogs.Info("Stdout:" + Environment.NewLine + stdmessage.Replace("\\n", Environment.NewLine)); } } if (config.Stderr) { var stdmessage = await task.FreshStderrAsync(ct); if (!string.IsNullOrEmpty(stdmessage)) { CLILogs.Info("Stderr:" + Environment.NewLine + stdmessage.Replace("\\n", Environment.NewLine)); } } end = await task.WaitAsync(taskTimeoutSeconds : 2, ct : ct); } var info = new CommandValues.GenericInfoCommandValue(); info.Uuid = task.Uuid.ToString(); info.Message = "Task Wait end status : " + task.State; return(info); }
public Connection CreateConnection(IConfiguration config) { if (config == null) { throw new ArgumentNullException(); } string apiUri = config?.ApiConnection?.ApiUri == null ? "https://api.qarnot.com" : config?.ApiConnection?.ApiUri; HttpClientHandler client = getClientHandler(config); var enableSanitization = !(config?.ApiConnection?.DisableBucketPathsSanitization ?? false); if (enableSanitization) { CLILogs.Info("Bucket path sanitization is enabled (default). Use --no-sanitize-bucket-paths argument to disable."); } return(new Connection( apiUri, config?.ApiConnection?.StorageUri, config?.ApiConnection?.Token, client, forceStoragePathStyle: config?.ApiConnection?.ForcePathStyle ?? false, sanitizeBucketPaths: enableSanitization, showBucketWarnings: false) // the cli will display custom warnings { StorageAccessKey = config?.ApiConnection?.AccountEmail, S3HttpClientFactory = config?.ApiConnection?.StorageUnsafeSsl ?? false ? new UnsafeS3HttpClientFactory() : null }); }
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> CreateTask(CreateConfiguration config, QarnotSDK.Connection connect, CancellationToken ct) { QarnotSDK.QTask task = null; if (config.InstanceCount > 0) { task = await this.CreateInstanceTaskAsync(config, connect); } else { task = await this.CreateRangeTaskAsync(config, connect); } task.SetTags(config.Tags.ToArray()); task.Resources = this.Tools.CreateResources(config.Resources, connect, ct); task.Results = this.Tools.CreateResult(config.Result, connect, ct); this.Tools.CreateConstants(config.Constants).ToList().ForEach(item => task.SetConstant(item.Key, item.Value)); foreach (var item in this.Tools.CreateConstraints(config.Constraints)) { task.SetConstraint(item.Key, item.Value); } foreach (var item in this.Tools.CreateLabels(config.Labels)) { task.SetLabel(item.Key, item.Value); } task.SetTaskDependencies(config.Dependents.Select(id => new Guid(id)).ToArray()); task.ResultsWhitelist = config.Whitelist; task.ResultsBlacklist = config.Blacklist; if (config.MaxRetriesPerInstance.HasValue) { task.MaxRetriesPerInstance = config.MaxRetriesPerInstance.Value; } if (config.ExportApiAndStorageCredentialsInEnvironment.HasValue) { task.Privileges.ExportApiAndStorageCredentialsInEnvironment = config.ExportApiAndStorageCredentialsInEnvironment.Value; } if (config.DefaultResourcesCacheTTLSec.HasValue) { task.DefaultResourcesCacheTTLSec = config.DefaultResourcesCacheTTLSec.Value; } CLILogs.Info("create task"); return(task); }
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); }
private async Task <QJob> CreateJobAsync(CreateConfiguration config, QarnotSDK.Connection connect, CancellationToken ct) { CLILogs.Info("create job"); QPool pool = null; if (!string.IsNullOrEmpty(config.PoolUuidOrShortname)) { pool = await connect.RetrievePoolByUuidAsync(config.PoolUuidOrShortname, ct); } QJob job = new QJob(connect, config.Name, pool, config.Shortname, config.IsDependents); if (config.MaximumWallTime.HasValue && config.MaximumWallTime.Value != default(TimeSpan)) { job.MaximumWallTime = config.MaximumWallTime.Value; } return(job); }
private async Task <QTask> CreateTask(CreateConfiguration config, QarnotSDK.Connection connect, CancellationToken ct) { QarnotSDK.QTask task = null; if (config.InstanceCount > 0) { task = await this.CreateInstanceTaskAsync(config, connect); } else { task = await this.CreateRangeTaskAsync(config, connect); } task.SetTags(config.Tags.ToArray()); task.Resources = this.Tools.CreateResources(config.Resources, connect, ct); task.Results = this.Tools.CreateResult(config.Result, connect, ct); this.Tools.CreateConstants(config.Constants).ToList().ForEach(item => task.SetConstant(item.Key, item.Value)); foreach (var item in this.Tools.CreateConstraints(config.Constraints)) { task.SetConstraint(item.Key, item.Value); } foreach (var item in this.Tools.CreateLabels(config.Labels)) { task.SetLabel(item.Key, item.Value); } task.SetTaskDependencies(config.Dependents.Select(id => new Guid(id)).ToArray()); task.ResultsWhitelist = config.Whitelist; task.ResultsBlacklist = config.Blacklist; CLILogs.Info("create task"); return(task); }
private void ShowConfiguration(APIConnectionInformation info) { string information = "connection information:" + Environment.NewLine; CLILogs.Info(information + info.ToString()); }