public ContainersMonitoringService Create(string name, ContainersGroupConfiguration configuration) { return(servicesCache.GetOrAdd(name, (x) => { logger.LogInformation(LogEventId.MONITORING_SERVICE_FACTORY_CREATED, "Creating containers monitoring service for group {GroupName}", name); return new ContainersMonitoringService(CreateLogger(name), name, configuration, dockerClientFactory, globalCancellation, commandsExecutorFactory, eventsBus); })); }
protected Dictionary <string, IDictionary <string, bool> > ComposeFilter(ContainersGroupConfiguration configuration) { var output = new Dictionary <string, IDictionary <string, bool> >(); var namesFilter = new Dictionary <string, bool>(); foreach (var name in configuration.Containers) { namesFilter.Add(name, true); } output.Add("name", namesFilter); logger.LogInformation(LogEventId.MONITORING_SERVICE_FILTER_CREATED, "Created filter for group {Group}: {Filter}", groupName, output); return(output); }
public ContainersMonitoringService(ILogger logger, string groupName, ContainersGroupConfiguration configuration, DockerClientFactory dockerClientFactory, GlobalCancellationToken globalCancellation, CommandsExecutorFactory commandsExecutorFactory, EventsBus eventsBus) { this.logger = logger; this.groupName = groupName; this.configuration = configuration; this.dockerClientFactory = dockerClientFactory; this.globalCancellation = globalCancellation; this.commandsExecutorFactory = commandsExecutorFactory; this.eventsBus = eventsBus; this.listParameters = new ContainersListParameters() { All = true, Filters = ComposeFilter(configuration) }; }