Beispiel #1
0
        protected override void Initialize(LogsetParsingRequest request)
        {
            IMongoDatabase database      = mongoConnectionInfo.GetDatabase(request.LogsetHash);
            IParserFactory parserFactory = request.ArtifactProcessor.GetParserFactory(request.Target);

            var metadata = new LogProcessingMetadata(request);

            metadataWriter.Write(metadata, request.LogsetHash);

            CreateMongoDbCollections(request.CollectionsToParse, database, parserFactory);
        }
Beispiel #2
0
        protected override void Finalize(LogsetParsingRequest request, LogsetParsingResult result)
        {
            var metadata = new LogProcessingMetadata(request)
            {
                ProcessedSuccessfully = true,
                ProcessedSize         = result.ParsedDataVolumeBytes,
                FailedFileParses      = result.FailedFileParses
            };

            metadataWriter.Write(metadata, request.LogsetHash);
            metadataWriter.WriteMasterMetadataRecord(metadata);
        }
        public RunInitializationResult Initialize(RunInitializationRequest request)
        {
            if (request.Target.Type != LogsetTarget.Hash)
            {
                throw new ArgumentException("Request target must be a logset hash!", "request");
            }

            var metadataReader = new MongoLogProcessingMetadataWriter(mongoConnectionInfo);
            LogProcessingMetadata logsetMetadata = metadataReader.Read(request.Target);

            if (logsetMetadata == null)
            {
                throw new InvalidTargetHashException(String.Format("No logset exists that matches logset hash '{0}'. Aborting..", request.Target));
            }

            var artifactProcessorLoader          = new HashArtifactProcessorLoader();
            IArtifactProcessor artifactProcessor = artifactProcessorLoader.LoadArtifactProcessor(logsetMetadata.ArtifactProcessorType);

            var         pluginLoader     = new PluginLoader(request.ArtifactProcessorOptions);
            ISet <Type> pluginsToExecute = pluginLoader.LoadPlugins(request.RequestedPlugins, artifactProcessor);

            return(new RunInitializationResult(request.Target, artifactProcessor, logsetMetadata.CollectionsParsed, request.Target, pluginsToExecute));
        }
Beispiel #4
0
        protected bool IsHeartbeatExpired(LogProcessingMetadata metadata)
        {
            TimeSpan timeSinceLastHeartbeat = DateTime.UtcNow - metadata.ProcessingHeartbeat;

            return(timeSinceLastHeartbeat.TotalSeconds >= MongoProcessingHeartbeatExpirationTime);
        }