Esempio n. 1
0
 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));
 });
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        private async Task AssertThatNoJobsHaveBeenRun(NomadApi api)
        {
            var result = await api.GetJobsAsync(null);

            result.Should().BeEmpty();
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        public async Task <Evaluation> RegisterTestJobAndPollUntilEvaluationCompletesSuccessfully(NomadApi api, Job job)
        {
            var evaluation = await RegisterTestJobAndPollUntilEvaluationCompletes(api, job);

            evaluation.BlockedEval.Should().BeNullOrEmpty();
            return(evaluation);
        }