public Task <Evaluation> PollForEvaluationCompletion(NomadApi api, string evalId) => Policy .HandleResult <Evaluation>(eval => eval.Status != "complete") .WaitAndRetryAsync(100, i => TimeSpan.FromSeconds(0.1)) .ExecuteAsync(async() => { return(await api.GetEvaluationAsync(evalId)); });
public NomadApi CreateNomadApi() { var builder = new UriBuilder { Host = "127.0.0.1", Port = _configuration.Ports.Http, Scheme = _configuration.Tls.Http ? "https" : "http", Path = "/v1" }; var api = new NomadApi(new NomadApiConfiguration { BaseUrl = builder.ToString() }); return(api); }
private async Task AssertThatNoJobsHaveBeenRun(NomadApi api) { var result = await api.GetJobsAsync(null); result.Should().BeEmpty(); }
public async Task <Evaluation> RegisterTestJobAndPollUntilEvaluationCompletes(NomadApi api, Job job) { var result = await api.RegisterJobAsync(new RegisterJobRequest { Job = job }); result.EvalID.Should().NotBe("0"); var evaluation = await PollForEvaluationCompletion(api, result.EvalID); evaluation.ID.Should().Be(result.EvalID); evaluation.NextEval.Should().BeNullOrEmpty(); return(evaluation); }
public async Task <Evaluation> RegisterTestJobAndPollUntilEvaluationCompletesSuccessfully(NomadApi api, Job job) { var evaluation = await RegisterTestJobAndPollUntilEvaluationCompletes(api, job); evaluation.BlockedEval.Should().BeNullOrEmpty(); return(evaluation); }