public BackgrounderSubscriptionJobDetail(BackgrounderJob backgrounderJob, IList <BsonDocument> subscriptionJobEvents) { BackgrounderJobId = backgrounderJob.JobId; foreach (var subscriptionJobEvent in subscriptionJobEvents) { string className = BsonDocumentHelper.GetString("class", subscriptionJobEvent); string message = BsonDocumentHelper.GetString("message", subscriptionJobEvent); if (className.Equals(BackgrounderConstants.VqlSessionServiceClass)) { if (message.StartsWith("Created session id:")) { VizqlSessionId = message.Split(':')[1]; } } if (className.Equals(BackgrounderConstants.SubscriptionRunnerClass) || className.Equals(BackgrounderConstants.EmailHelperClass)) { if (message.StartsWith("Sending email from")) { var chunks = message.Replace("Sending email from", "").Replace(" to ", " ").Replace(" from server ", " ").Trim().Split(' '); SenderEmail = chunks[0]; RecipientEmail = chunks[1]; SmtpServer = chunks[2]; } if (message.StartsWith("Starting subscription")) { SubscriptionName = message.Split('"')[1]; } } } }
public BackgrounderExtractJobDetail(BackgrounderJob backgrounderJob, IEnumerable <BsonDocument> vqlSessionServiceEvents) { BackgrounderJobId = backgrounderJob.JobId; BackgrounderJobEventHash = backgrounderJob.EventHash; ParseBackgroundJobArgs(backgrounderJob.Args); foreach (var vqlSessionServiceEvent in vqlSessionServiceEvents) { string message = BsonDocumentHelper.GetString("message", vqlSessionServiceEvent); if (message.StartsWith("Created session id:")) { string sessionPrefix = message.Split(':')[1]; string sessionSuffix = GetSessionSuffix(vqlSessionServiceEvent); VizqlSessionId = sessionPrefix + "-" + sessionSuffix; } if (message.StartsWith("Storing to repository:")) { var messageChunks = message.Replace("Storing to repository:", "").Split(' ').ToList(); foreach (var chunk in messageChunks) { if (chunk.Contains("/extract")) { ExtractUrl = chunk.Split('/')[0]; } if (chunk.Contains("repoExtractId:")) { ExtractId = chunk.Split(':')[1]; } if (chunk.Contains("(guid={")) { ExtractGuid = chunk.Replace("(guid={", "").Replace("})", ""); } if (chunk.Contains("size:")) { TwbSize = Int64.Parse(chunk.Split(':')[1]); } } TotalSize = Int64.Parse(messageChunks.Last()); ExtractSize = TotalSize - TwbSize; } } }
public BackgrounderExtractJobDetail(BackgrounderJob backgrounderJob, IEnumerable <BsonDocument> vqlSessionServiceEvents) { BackgrounderJobId = backgrounderJob.JobId; BackgrounderJobEventHash = backgrounderJob.EventHash; ParseBackgroundJobArgs(backgrounderJob.Args); foreach (var vqlSessionServiceEvent in vqlSessionServiceEvents) { string message = BsonDocumentHelper.GetString("message", vqlSessionServiceEvent); if (message.StartsWith("Created session id:")) { string sessionPrefix = message.Split(':')[1]; string sessionSuffix = GetSessionSuffix(vqlSessionServiceEvent); VizqlSessionId = sessionPrefix + "-" + sessionSuffix; } else if (message.StartsWith("Storing")) { IDictionary <string, string> extractDetails = vqlSessionExtractDetailsRegex.MatchNamedCaptures(message); if (extractDetails.ContainsKey("extract_url")) { ExtractUrl = extractDetails["extract_url"]; } if (extractDetails.ContainsKey("extract_id")) { ExtractId = extractDetails["extract_id"]; } if (extractDetails.ContainsKey("extract_guid")) { ExtractGuid = extractDetails["extract_guid"]; } if (extractDetails.ContainsKey("twb_size")) { TwbSize = Int64.Parse(extractDetails["twb_size"]); } if (extractDetails.ContainsKey("extract_size")) { ExtractSize = Int64.Parse(extractDetails["extract_size"]); } if (extractDetails.ContainsKey("total_size")) { TotalSize = Int64.Parse(extractDetails["total_size"]); } } } }