public async Task Create_ShallReturnAJob()
        {
            var mockClient = new Mock <IJobsClient>();
            var mockLogger = new Mock <ILogger <ClaraJobsApi> >();

            JobId.TryParse(Guid.NewGuid().ToString("N"), out JobId jobId);
            PayloadId.TryParse(Guid.NewGuid().ToString("N"), out PayloadId payloadId);
            PipelineId.TryParse(Guid.NewGuid().ToString("N"), out PipelineId pipelineId);

            mockClient.Setup(p => p.CreateJob(It.IsAny <PipelineId>(), It.IsAny <string>(), It.IsAny <JobPriority>(), It.IsAny <Dictionary <string, string> >()))
            .ReturnsAsync(new JobInfo
            {
                Name       = "bla bla job",
                JobId      = jobId,
                PayloadId  = payloadId,
                PipelineId = pipelineId
            });

            var service = new ClaraJobsApi(mockClient.Object, mockLogger.Object);

            var metadata = new JobMetadataBuilder();

            metadata.AddSourceName("TestSource");
            var job = await service.Create(pipelineId.ToString(), "bla bla", JobPriority.Higher, metadata);

            Assert.Equal(jobId.ToString(), job.JobId);
            Assert.Equal(payloadId.ToString(), job.PayloadId);

            mockClient.Verify(
                p => p.CreateJob(It.IsAny <PipelineId>(), It.IsAny <string>(), JobPriority.Higher, metadata),
                Times.Exactly(1));

            mockLogger.VerifyLogging(LogLevel.Information, Times.Once());
            mockLogger.VerifyLogging(LogLevel.Error, Times.Never());
        }
Example #2
0
        private async Task CreateJob(InferenceRequest request)
        {
            var metadata = new JobMetadataBuilder();

            metadata.AddSourceName($"{request.TransactionId}");

            var job = await _jobsApi.Create(request.Algorithm.PipelineId, request.JobName, request.ClaraJobPriority, metadata);

            request.JobId     = job.JobId;
            request.PayloadId = job.PayloadId;
        }
Example #3
0
        private async Task CreateJob(InferenceJob job)
        {
            Guard.Against.Null(job, nameof(job));

            var metadata = new JobMetadataBuilder();

            metadata.AddSourceName(job.Source);

            using var scope = _serviceScopeFactory.CreateScope();
            var jobsApi    = scope.ServiceProvider.GetRequiredService <IJobs>();
            var createdJob = await jobsApi.Create(job.PipelineId, job.JobName, job.Priority, metadata);

            job.JobId     = createdJob.JobId;
            job.PayloadId = createdJob.PayloadId;
            _logger.Log(LogLevel.Information, $"New JobId={job.JobId}, PayloadId={job.PayloadId}.");
        }