예제 #1
0
        /// <summary>
        /// Unpacks the target logset and sets the root log directory. Contains logic to copy files locally if target is on a remote server.
        /// </summary>
        public static void ExtractLogFiles(LogsharkRequest request)
        {
            // Purge temp directory of any data left over from aborted runs.
            PurgeTempDirectory();

            var availableArtifactProcessors = ArtifactProcessorLoader.LoadAllArtifactProcessors();
            var extractionWhitelist         = BuildExtractionWhitelist(availableArtifactProcessors);
            var extractor = new LogsetExtractor(request, extractionWhitelist);

            extractor.Process();
        }
예제 #2
0
        protected ExtractionResult ExtractLogset(LogsharkRequestTarget target, string runId)
        {
            string runTempDirectory = GetRunTempDirectory(runId);

            ISet <Regex> extractionWhitelist = BuildExtractionWhitelist();

            string logsetLocation = PrepareLogsetLocation(target, runTempDirectory, extractionWhitelist);

            var extractor = new LogsetExtractor(extractionWhitelist);

            return(extractor.Extract(logsetLocation, runTempDirectory));
        }
        private ExtractionResult ExtractLogset(LogsharkRequestTarget target)
        {
            var runTempDirectory = GetRunTempDirectory();

            var extractionWhitelist = BuildExtractionWhitelist();

            var logsetLocation = PrepareLogsetLocation(target, runTempDirectory, extractionWhitelist);

            var extractor = new LogsetExtractor(extractionWhitelist);

            return(extractor.Extract(logsetLocation, runTempDirectory));
        }
예제 #4
0
        /// <summary>
        /// Performs any teardown tasks.
        /// </summary>
        public static void TearDown(LogsharkRequest request)
        {
            // Drop logset if user didn't want to retain it, assuming they didn't piggyback on an existing processed logset.
            if (request.DropMongoDBPostRun && !request.RunContext.UtilizedExistingProcessedLogset)
            {
                try
                {
                    Log.InfoFormat("Dropping Mongo database {0}..", request.RunContext.MongoDatabaseName);
                    MongoAdminUtil.DropDatabase(request.Configuration.MongoConnectionInfo.GetClient(), request.RunContext.MongoDatabaseName);

                    // Remove metadata record for this run from master metadata DB.
                    LogsetMetadataWriter metadataWriter = new LogsetMetadataWriter(request);
                    metadataWriter.DeleteMasterMetadataRecord();
                }
                catch (Exception ex)
                {
                    Log.ErrorFormat("Failed to clean up DB {0}: {1}", request.RunContext.MongoDatabaseName, ex.Message);
                }
            }

            LogsetExtractor.CleanUpRun(request.RunId);
        }
예제 #5
0
 /// <summary>
 /// Cleans out all contents of the application temp directory.
 /// </summary>
 public static void PurgeTempDirectory()
 {
     // Purge any "temp" files left over from previous runs.
     LogsetExtractor.CleanUpAll();
 }
        /// <summary>
        /// Unpacks the target logset and sets the root log directory. Contains logic to copy files locally if target is on a remote server.
        /// </summary>
        public static void ExtractLogFiles(LogsharkRequest request)
        {
            var extractor = new LogsetExtractor(request);

            extractor.Process();
        }