/// <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)); }
public LogsetParsingRequest(RunInitializationResult initializationResult, bool forceParse) { Target = initializationResult.Target; LogsetHash = initializationResult.LogsetHash; ArtifactProcessor = initializationResult.ArtifactProcessor; CollectionsToParse = initializationResult.CollectionsRequested; ForceParse = forceParse; CreationTimestamp = DateTime.UtcNow; }
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; }
private ISet <string> GetExecutedPlugins(RunInitializationResult runInitializationResult) { ISet <string> executedPlugins = new SortedSet <string>(); foreach (Type pluginType in runInitializationResult.PluginTypesToExecute) { executedPlugins.Add(pluginType.Name); } return(executedPlugins); }
private string GetExecutedPluginsString(RunInitializationResult runInitializationResult) { ICollection <string> executedPlugins = GetExecutedPlugins(runInitializationResult); if (!executedPlugins.Any()) { return(null); } return(String.Join(",", executedPlugins)); }
/// <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)); }
/// <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()); }
/// <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)); }