public void TestExistingDictionarySubItem() { var main = new MainParameterization { TokenProvider = new TokenProviderParameterization { Tokens = new Dictionary <string, TokenParameterization>() { { "mine", new TokenParameterization { Token = "abc" } } } } }; var before = main.TokenProvider !.Tokens["mine"].Token; var newToken = before + before; ParameterOverrideHelper.InplaceOverride( main, $"tokenProvider.tokens.mine.token={newToken}"); Assert.Equal(newToken, main.TokenProvider !.Tokens["mine"].Token); }
public void TestExistingArraySubItem() { var main = new MainParameterization { Jobs = new Dictionary <string, JobParameterization>() { { "myJob", new JobParameterization { Current = new SourceParameterization { Scripts = new [] { new SourceFileParametrization { FilePath = "to-be-overriden" } } } } } } }; var before = main.Jobs["myJob"].Current !.Scripts ![0].FilePath;
public LogParameterTelemetryInput(string sessionId, MainParameterization parameters) { SessionId = sessionId; SendErrorOptIn = parameters.SendErrorOptIn; FailIfDataLoss = parameters.FailIfDataLoss; TokenProvider = ExtractTokenProvider(parameters.TokenProvider); Jobs = parameters.Jobs.Values.Select(j => new JobInfo(j)).ToArray(); }
public void TestSingleProperty() { var main = new MainParameterization(); var before = main.SendErrorOptIn; var value = (!before).ToString().ToLower(); ParameterOverrideHelper.InplaceOverride(main, $"sendErrorOptIn={value}"); Assert.Equal(!before, main.SendErrorOptIn); }
private async Task <bool> ProcessJobAsync( MainParameterization parameters, IKustoManagementGatewayFactory kustoGatewayFactory, IFileGateway localFileGateway, string jobName, JobParameterization job) { _tracer.WriteLine(false, $"Job '{jobName}':"); _tracer.WriteLine(false, ""); try { _tracer.WriteLine(true, "Current DB Provider... "); var currentDbProvider = CreateDatabaseProvider(job.Current, kustoGatewayFactory, localFileGateway); _tracer.WriteLine(true, "Target DB Provider... "); var targetDbProvider = CreateDatabaseProvider(job.Target, kustoGatewayFactory, localFileGateway); var currentDbTask = RetrieveDatabaseAsync(currentDbProvider, "current"); var targetDbTask = RetrieveDatabaseAsync(targetDbProvider, "target"); await Task.WhenAll(currentDbTask, targetDbTask); var currentDb = await currentDbTask; var targetDb = await targetDbTask; _tracer.WriteLine(false, "Compute Delta..."); var delta = currentDb.ComputeDelta(targetDb); var actions = new CommandCollection(job.Action !.UsePluralForms, delta); var jobSuccess = ReportOnDeltaCommands(parameters, actions); var actionProviders = CreateActionProvider( job.Action !, kustoGatewayFactory, localFileGateway, job.Current?.Adx); _tracer.WriteLine(false, "Processing delta commands..."); foreach (var actionProvider in actionProviders) { await actionProvider.ProcessDeltaCommandsAsync( parameters.FailIfDataLoss, actions); } _tracer.WriteLine(false, "Delta processed / Job completed"); _tracer.WriteLine(false, ""); return(jobSuccess); } catch (DeltaException ex) { throw new DeltaException($"Issue in running job '{jobName}'", ex); } }
public void TestSinglePropertyWrongName() { var main = new MainParameterization(); try { ParameterOverrideHelper.InplaceOverride(main, "myPropertyOrTheHighWay=42"); Assert.True(false, "Shouldn't reach this point"); } catch (DeltaException) { } }
public void TestSinglePropertyWrongType() { var main = new MainParameterization(); try { ParameterOverrideHelper.InplaceOverride(main, "sendTelemetryOptIn=42"); Assert.True(false, "Shouldn't reach this point"); } catch (DeltaException) { } }
public async Task LogParameterTelemetryAsync(MainParameterization parameters) { if (_doApiCalls) { var tokenSource = new CancellationTokenSource(TIMEOUT); var ct = tokenSource.Token; _tracer.WriteLine(true, "LogParameterTelemetryAsync - Start"); try { var output = await PostAsync <LogParameterTelemetryOutput>( "/logparametertelemetry", new LogParameterTelemetryInput(_sessionId, parameters), ct); _tracer.WriteLine(true, "LogParameterTelemetryAsync - End"); } catch { _tracer.WriteLine(true, "LogParameterTelemetryAsync - Failed"); } } }
public void TestExistingPropertyPath() { var main = new MainParameterization { TokenProvider = new TokenProviderParameterization { Login = new ServicePrincipalLoginParameterization { TenantId = "42", ClientId = "15", Secret = "My secret" } } }; var before = main.TokenProvider !.Login !.TenantId; var newTenantId = before + before; ParameterOverrideHelper.InplaceOverride( main, $"tokenProvider.login.tenantId={newTenantId}"); Assert.Equal(newTenantId, main.TokenProvider !.Login !.TenantId); }
private bool ReportOnDeltaCommands( MainParameterization parameters, CommandCollection deltaCommands) { var success = true; _tracer.WriteLine(false, $"{deltaCommands.AllCommands.Count()} commands in delta"); if (deltaCommands.DataLossCommands.Any()) { _tracer.WriteLine(false, "Delta contains drop commands:"); foreach (var command in deltaCommands.DataLossCommands) { _tracer.WriteLine(false, " " + command.ToScript()); } _tracer.WriteLine(false, ""); if (parameters.FailIfDataLoss) { _tracer.WriteErrorLine("Drop commands forces failure"); success = false; } } return(success); }