Exemplo n.º 1
0
        public async Task <ActionResult <JobStatusResponse> > SubmitJob([FromBody] JobSubmitRequest request)
        {
            _eventTracker.TrackInfo("SubmitJob", "Submitting a new job", request);
            if (User.Identity.Name == null)
            {
                _eventTracker.TrackInfo("SubmitJob", "Unauthorized attempt to list all jobs");
                return(Unauthorized());
            }

            if (request.Attributes == null)
            {
                request.Attributes = new Dictionary <string, Dictionary <string, string> >();
            }

            var jobSubmit = new JobSubmit
            {
                JobName    = request.JobName,
                TopicQuery = request.TopicQuery,
                SelectedAcquirersIdentifiers = request.SelectedAcquirers,
                SelectedAnalysersIdentifiers = request.SelectedAnalysers,
            };

            var jobStatus = await _jobManagementService.SubmitJob(jobSubmit, request.Attributes);

            var response = new JobStatusResponse
            {
                JobId  = jobStatus.JobId,
                Status = jobStatus.Status,
            };

            _eventTracker.TrackInfo("SubmitJob", "New job submitted", response);
            return(Ok(response));
        }
Exemplo n.º 2
0
        public async Task InvokeCommand(JobSubmitRequest request)
        {
            var contentJson   = JsonConvert.SerializeObject(request);
            var stringContent = new StringContent(contentJson, Encoding.UTF8, "application/json");

            using (var r = await _httpClient.PostAsync(_jobInvokerOptions.JobSubmitUri, stringContent))
            {
                if (!r.IsSuccessStatusCode)
                {
                    var err = await r.Content.ReadAsStringAsync();

                    _logger.LogError("Error on jms side: {error}", err);
                }
            }
        }
Exemplo n.º 3
0
        public async Task <ActionResult <JobResponse> > SubmitJob()
        {
            var body = await new System.IO.StreamReader(this.Request.Body).ReadToEndAsync();
            JobSubmitRequest jobSubmitRequest = JsonConvert.DeserializeObject <JobSubmitRequest>(body);

            if (jobSubmitRequest == null)
            {
                return(BadRequest("Invalid body"));
            }
            if (jobSubmitRequest?.SelectedDataAnalysers?.Any() == false)
            {
                return(BadRequest("No analysers were selected"));
            }
            if (jobSubmitRequest?.SelectedDataAcquirers?.Any() == false)
            {
                return(BadRequest("No analysers were selected"));
            }

            var jobId = Guid.NewGuid();
            var jobConfigUpdateNotification = JobConfigUpdateCommand.NewJob(
                jobId,
                jobSubmitRequest.JobName,
                jobSubmitRequest.SelectedDataAnalysers,
                jobSubmitRequest.SelectedDataAcquirers,
                jobSubmitRequest.TopicQuery,
                jobSubmitRequest.Language,
                jobSubmitRequest.Attributes
                );

            var configUpdateResult = await _subscribedComponentManager
                                     .StartJobAsync(jobConfigUpdateNotification);

            if (configUpdateResult.HasError)
            {
                return(BadRequest($"Job submit failed, error: {configUpdateResult.Error}"));
            }

            var jobSubmitResponse = new JobResponse(
                configUpdateResult.JobId,
                configUpdateResult.Status);

            return(Ok(jobSubmitResponse));
        }