private void AppendDetailsToJob(BackgrounderJob job, BsonDocument endEvent) { DateTime endTime = BsonDocumentHelper.GetDateTime("ts", endEvent); var eventsInJobRange = MongoQueryHelper.GetEventsInRange(backgrounderJavaCollection, job.WorkerId, job.BackgrounderId, job.StartTime, endTime).ToList(); // Append all errors associated with job. job.Errors = CollectErrorsForJob(job, eventsInJobRange); // Append details for certain job types of interest. if (job.JobType.Equals("refresh_extracts") || job.JobType.Equals("increment_extracts")) { BackgrounderExtractJobDetail extractJobDetail = new BackgrounderExtractJobDetail(job, GetVqlSessionServiceEvents(eventsInJobRange)); if (!String.IsNullOrEmpty(extractJobDetail.VizqlSessionId)) { job.BackgrounderJobDetail = extractJobDetail; } } else if (job.JobType.Equals("single_subscription_notify")) { List <BsonDocument> eventList = new List <BsonDocument>(GetVqlSessionServiceEvents(eventsInJobRange)); eventList.AddRange(GetSubscriptionRunnerEvents(eventsInJobRange)); BackgrounderSubscriptionJobDetail subscriptionJobDetail = new BackgrounderSubscriptionJobDetail(job, eventList); if (!String.IsNullOrEmpty(subscriptionJobDetail.VizqlSessionId)) { job.BackgrounderJobDetail = subscriptionJobDetail; } } }
public void ExtractDetails() { var startEvent1 = GetStartEvent(1, "refresh_extracts"); // Extract refresh with details startEvent1.Args = "[TestyTest, blah, Datasource]"; var startEvent2 = GetStartEvent(2, "refresh_extracts"); // Extract refresh without details var startEvent3 = GetStartEvent(3, "increment_extracts"); // Incremental refresh var startEvent4 = GetStartEvent(4, "some_other_job"); // Some other job type var endEvent1 = GetEndEvent(1); var endEvent2 = GetEndEvent(2); var endEvent3 = GetEndEvent(3); var endEvent4 = GetEndEvent(4); var detail1 = GetExtractJobDetail(1); var detail2 = new BackgrounderExtractJobDetail() { BackgrounderJobId = 2, ResourceType = "testArgument" }; var detail3 = GetExtractJobDetail(3); var detail4 = GetExtractJobDetail(4); _persister.AddStartEvent(startEvent1); _persister.AddStartEvent(startEvent2); _persister.AddStartEvent(startEvent3); _persister.AddStartEvent(startEvent4); _persister.AddExtractJobDetails(detail1); _persister.AddExtractJobDetails(detail3); _persister.AddExtractJobDetails(detail4); _persister.AddEndEvent(endEvent1); _persister.AddEndEvent(endEvent2); _persister.AddEndEvent(endEvent3); _persister.AddEndEvent(endEvent4); var jobWriter = _writerFactory.GetWriterByName <BackgrounderJob>("BackgrounderJobs"); jobWriter.ReceivedObjects.Count.Should().Be(4); var extractJobDetailWriter = _writerFactory.GetWriterByName <BackgrounderExtractJobDetail>("BackgrounderExtractJobDetails"); extractJobDetailWriter.ReceivedObjects.Count.Should().Be(3); var actualDetail1 = extractJobDetailWriter.ReceivedObjects[0] as BackgrounderExtractJobDetail; var actualDetail2 = extractJobDetailWriter.ReceivedObjects[1] as BackgrounderExtractJobDetail; var actualDetail3 = extractJobDetailWriter.ReceivedObjects[2] as BackgrounderExtractJobDetail; detail1.ResourceName = "TestyTest"; detail1.ResourceType = "Datasource"; actualDetail1.Should().BeEquivalentTo(detail1); actualDetail2.Should().BeEquivalentTo(detail2); actualDetail3.Should().BeEquivalentTo(detail3); }
public void AddExtractJobDetails(BackgrounderExtractJobDetail extractJobDetail) { if (_events.ContainsKey(extractJobDetail.BackgrounderJobId)) { _events[extractJobDetail.BackgrounderJobId].ExtractJobDetails = extractJobDetail; } else { _events.Add(extractJobDetail.BackgrounderJobId, new BackgrounderEvent { ExtractJobDetails = extractJobDetail }); } }