public FileStreamWrapper(IAppDataFileProvider fileProvider, string path, FileMode mode, FileAccess access, FileShare share) : this(fileProvider, ShouldCreateFileStream(fileProvider, access, FileOptions.None) ? new FileStream(path, mode, access, share) : null) { }
public FileStreamWrapper(IAppDataFileProvider fileProvider, string path, FileMode mode, FileAccess access, FileShare share, int bufferSize, FileOptions options) : this(fileProvider, ShouldCreateFileStream(fileProvider, access, options) ? new FileStream(path, mode, access, share, bufferSize, options) : null) { }
public EventLogBookmarkBufferedSinkTest() { _appDataFileProvider = new ProtectedAppDataFileProvider(_testDir); if (!EventLog.SourceExists(_logSource)) { EventLog.CreateEventSource(_logSource, LogName); } }
public AppDataController(string appDataDirDirectory, TimeSpan interval, IAppDataFileProvider appDataFileProvider) : base(nameof(AppDataController), (int)interval.TotalMilliseconds, true, NullLogger.Instance) { _appDataDirectory = appDataDirDirectory; _appDataFileProvider = appDataFileProvider; // execute this detection on start-up ExecuteInternal(); }
public AWSBufferedSink(string id, string sessionName, IAppDataFileProvider appDataFileProvider, ILogger logger, IMetrics metrics, IBookmarkManager bookmarkManager, NetworkStatus networkStatus, AWSBufferedSinkOptions options) { Id = id; _logger = logger; _metrics = metrics; _bookmarkManager = bookmarkManager; _networkStatus = networkStatus; _bufferIntervalMs = options.BufferIntervalMs; _format = options.Format; _maxSecondaryQueueBatches = options.QueueMaxBatches; var secondaryQueue = CreateSecondaryQueue(options, sessionName, appDataFileProvider, logger); _queue = new AsyncBatchQueue <Envelope <T> >(options.QueueSizeItems, new long[] { options.MaxBatchSize, options.MaxBatchBytes }, new Func <Envelope <T>, long>[] { r => 1, GetRecordSize }, secondaryQueue); _maxAttempts = options.MaxAttempts; _jittingFactor = options.JittingFactor; _backoffFactor = options.BackoffFactor; _recoveryFactor = options.RecoveryFactor; _minRateAdjustmentFactor = options.MinRateAdjustmentFactor; _uploadNetworkPriority = options.UploadNetworkPriority; if (options.TextDecoration is not null) { _textDecorationEvaluator = new TextDecorationEvaluator(options.TextDecoration, ResolveRecordVariables); } if (options.TextDecorationEx is not null) { _textDecorationEvaluator = new TextDecorationExEvaluator(options.TextDecorationEx, EvaluateVariable, ResolveRecordVariable, logger); } if (options.ObjectDecoration is not null) { _objectDecorationEvaluator = new ObjectDecorationEvaluator(options.ObjectDecoration, ResolveRecordVariables); } if (options.ObjectDecorationEx is not null) { _objectDecorationEvaluator = new ObjectDecorationExEvaluator(options.ObjectDecorationEx, EvaluateVariable, ResolveRecordVariable, logger); } }
public AsyncCloudWatchLogsSink(string id, string sessionName, string logGroup, string logStream, IAmazonCloudWatchLogs cloudWatchLogsClient, IAppDataFileProvider appDataFileProvider, ILogger logger, IMetrics metrics, IBookmarkManager bookmarkManager, NetworkStatus networkStatus, AWSBufferedSinkOptions options) : base(id, sessionName, appDataFileProvider, logger, metrics, bookmarkManager, networkStatus, options) { Id = id; _logGroup = logGroup; _logStream = logStream; _cloudWatchLogsClient = cloudWatchLogsClient; // Set throttle at 5 requests per second _throttle = new AdaptiveThrottle(new TokenBucket(1, 5), _backoffFactor, _recoveryFactor, _minRateAdjustmentFactor); }
private static bool ShouldCreateFileStream(IAppDataFileProvider fileProvider, FileAccess fileAccess, FileOptions options) { if (fileProvider.IsWriteEnabled) { return(true); } if (fileAccess.HasFlag(FileAccess.Write)) { return(false); } if (options.HasFlag(FileOptions.DeleteOnClose)) { return(false); } return(true); }
public PackageInstaller(IPlugInContext context, IAppDataFileProvider appDataFileProvider, ISet <string> allowedPublishers, bool skipSignatureVerification) { _context = context; _logger = context.Logger; _allowedPublishers = allowedPublishers; _skipSignatureVerification = skipSignatureVerification; _logger = context.Logger; _metrics = context.Metrics; _metrics?.InitializeCounters(string.Empty, MetricsConstants.CATEGORY_PLUGIN, CounterTypeEnum.Increment, new Dictionary <string, MetricValue> { { $"{UpdateMetricsConstants.Prefix}{UpdateMetricsConstants.PackagesDownloaded}", MetricValue.ZeroCount }, { $"{UpdateMetricsConstants.Prefix}{UpdateMetricsConstants.PackageSignaturesValid}", MetricValue.ZeroCount }, { $"{UpdateMetricsConstants.Prefix}{UpdateMetricsConstants.PackageSignaturesInvalid}", MetricValue.ZeroCount }, { $"{UpdateMetricsConstants.Prefix}{UpdateMetricsConstants.PowershellExecutions}", MetricValue.ZeroCount } }); _appDataFileProvider = appDataFileProvider; }
public FilePersistentQueue(int capacity, string directory, ISerializer <T> serializer, IAppDataFileProvider fileProvider, ILogger logger) { _logger = logger; _serializer = serializer; _fileProvider = fileProvider; Capacity = capacity; if (Capacity > MAX_CAPACITY) { throw new ArgumentException($"The maximum capacity is {MAX_CAPACITY}"); } QueueDirectory = directory; fileProvider.CreateDirectory(QueueDirectory); _indexFilePath = Path.Combine(QueueDirectory, "Index"); if (!LoadIndex()) { DiscoverIndex(); } }
public FileDownloader(IAppDataFileProvider appDataFileProvider) { Guard.ArgumentNotNull(appDataFileProvider, nameof(appDataFileProvider)); _appDataFileProvider = appDataFileProvider; }
public FilePersistenceQueueTest() { _dataFileProvider = new ProtectedAppDataFileProvider(_appDataDir); }
private FileStreamWrapper(IAppDataFileProvider fileProvider, FileStream stream) { _fileProvider = fileProvider; _stream = stream; }
private ISimpleQueue <List <Envelope <T> > > CreateSecondaryQueue(AWSBufferedSinkOptions options, string sessionName, IAppDataFileProvider appDataFileProvider, ILogger logger) { if (options.SecondaryQueueType is null || options.QueueMaxBatches < 1) { return(null); } if (options.SecondaryQueueType.Equals(ConfigConstants.QUEUE_TYPE_MEMORY, StringComparison.OrdinalIgnoreCase)) { return(new InMemoryQueue <List <Envelope <T> > >(options.QueueMaxBatches)); } if (options.SecondaryQueueType.Equals(ConfigConstants.QUEUE_TYPE_FILE, StringComparison.OrdinalIgnoreCase)) { var queuePath = Path.Combine(Utility.GetSessionQueuesDirectoryRelativePath(sessionName), Id); return(new FilePersistentQueue <List <Envelope <T> > >(options.QueueMaxBatches, queuePath, GetPersistentQueueSerializer(), appDataFileProvider, logger)); } return(null); }
public FileBookmarkManagerTest() { Directory.CreateDirectory(Path.Combine(_testDir, _bookmarkDirName)); _appDataFileProvider = new ProtectedAppDataFileProvider(_testDir); }
public S3Downloader(IPlugInContext context, IAppDataFileProvider appDataFileProvider) { Guard.ArgumentNotNull(appDataFileProvider, nameof(appDataFileProvider)); _s3Client = AWSUtilities.CreateAWSClient <AmazonS3Client>(context); _appDataFileProvider = appDataFileProvider; }