Esempio n. 1
0
        /// <summary>
        /// Execute plugins requested by the user against an initialized logset.
        /// </summary>
        private PluginExecutionResult ExecutePlugins(LogsharkRequest request, RunInitializationResult initializationResult)
        {
            PublishingOptions publishingOptions = BuildPublishingOptions(request, initializationResult);
            var pluginExecutionRequest          = new PluginExecutionRequest(initializationResult, publishingOptions, request.PluginCustomArguments, request.RunId, request.PostgresDatabaseName);

            var pluginExecutor = new PluginExecutor(request.Configuration);

            return(pluginExecutor.ExecutePlugins(pluginExecutionRequest));
        }
Esempio n. 2
0
 public LogsetParsingRequest(RunInitializationResult initializationResult, bool forceParse)
 {
     Target             = initializationResult.Target;
     LogsetHash         = initializationResult.LogsetHash;
     ArtifactProcessor  = initializationResult.ArtifactProcessor;
     CollectionsToParse = initializationResult.CollectionsRequested;
     ForceParse         = forceParse;
     CreationTimestamp  = DateTime.UtcNow;
 }
Esempio n. 3
0
 public PluginExecutionRequest(RunInitializationResult initializationResult, PublishingOptions publishingOptions, IDictionary <string, object> pluginArguments, string runId, string postgresDatabaseName)
 {
     LogsetHash           = initializationResult.LogsetHash;
     MongoDatabaseName    = initializationResult.LogsetHash;
     PluginArguments      = pluginArguments;
     PluginsToExecute     = initializationResult.PluginTypesToExecute;
     PostgresDatabaseName = postgresDatabaseName;
     PublishingOptions    = publishingOptions;
     RunId = runId;
 }
Esempio n. 4
0
        private ISet <string> GetExecutedPlugins(RunInitializationResult runInitializationResult)
        {
            ISet <string> executedPlugins = new SortedSet <string>();

            foreach (Type pluginType in runInitializationResult.PluginTypesToExecute)
            {
                executedPlugins.Add(pluginType.Name);
            }

            return(executedPlugins);
        }
Esempio n. 5
0
        private string GetExecutedPluginsString(RunInitializationResult runInitializationResult)
        {
            ICollection <string> executedPlugins = GetExecutedPlugins(runInitializationResult);

            if (!executedPlugins.Any())
            {
                return(null);
            }

            return(String.Join(",", executedPlugins));
        }
Esempio n. 6
0
        /// <summary>
        /// Takes action to process a logset based on the current status of the Logset.
        /// </summary>
        private LogsetParsingResult ProcessLogset(LogsharkRequest request, RunInitializationResult runInitializationResult)
        {
            var statusChecker = new LogsetProcessingStatusChecker(request.Configuration.MongoConnectionInfo);
            LogsetProcessingStatus existingProcessedLogsetStatus = statusChecker.GetStatus(runInitializationResult.LogsetHash, runInitializationResult.CollectionsRequested);

            Func <LogsetParsingRequest, LogsetParsingResult> parseLogset = logsetParsingRequest => ParseLogset(logsetParsingRequest, request.Configuration);
            Action <string> dropLogset = logsetHash => MongoAdminHelper.DropDatabase(request.Configuration.MongoConnectionInfo.GetClient(), logsetHash);

            var parsingRequest = new LogsetParsingRequest(runInitializationResult, request.ForceParse);
            ILogsetProcessingStrategy processingStrategy = LogsetProcessingStrategyFactory.GetLogsetProcessingStrategy(request.Target, parseLogset, dropLogset, request.Configuration);

            return(processingStrategy.ProcessLogset(parsingRequest, existingProcessedLogsetStatus));
        }
Esempio n. 7
0
        /// <summary>
        /// Builds the project description that will be used for any published workbooks.
        /// </summary>
        private string BuildProjectDescription(LogsharkRequest request, RunInitializationResult initializationResult)
        {
            if (!String.IsNullOrWhiteSpace(request.ProjectDescription))
            {
                return(request.ProjectDescription);
            }

            var sb = new StringBuilder();

            sb.AppendFormat("Generated from logset <b>'{0}'</b> on {1} by {2}.<br>", request.Target, DateTime.Now.ToString("M/d/yy"), Environment.UserName);
            sb.Append("<br>");
            sb.AppendFormat(" Logset Hash: <b>{0}</b><br>", initializationResult.LogsetHash);
            sb.AppendFormat(" Postgres DB: <b>{0}</b><br>", request.PostgresDatabaseName);
            sb.AppendFormat(" Plugins Run: <b>{0}</b>", String.Join(", ", initializationResult.PluginTypesToExecute.Select(pluginType => pluginType.Name)));

            return(sb.ToString());
        }
Esempio n. 8
0
 /// <summary>
 /// Builds a PublishingOptions object in accordance with the user's request.
 /// </summary>
 private PublishingOptions BuildPublishingOptions(LogsharkRequest request, RunInitializationResult initializationResult)
 {
     return(new PublishingOptions(request.PublishWorkbooks, request.ProjectName, BuildProjectDescription(request, initializationResult), request.WorkbookTags));
 }