Ejemplo n.º 1
0
        protected override async Task <Unit> SendImplementation(SendDockerRunParamsRequest request, CancellationToken cancellation)
        {
            var collection = await _collectionFactory.Get <SendDockerRunParamsRequest>(cancellation);

            await collection.InsertOneAsync(request, GetInsertOneOptions.Value, cancellation);

            return(Unit.Value);
        }
        protected override Task <Unit> SendImplementation(SendDockerRunParamsRequest request, CancellationToken cancellation)
        {
            _logger.LogDebug("ProcessLogEntryRequest registered", Array.Empty <object>());

            _reporter.RegisterRequest(request);

            return(Unit.Task);
        }
Ejemplo n.º 3
0
 public void RegisterRequest(SendDockerRunParamsRequest request)
 {
     if (_requests.ContainsKey(request.ContainerName))
     {
         _requests[request.ContainerName] += 1;
     }
     else
     {
         _requests[request.ContainerName] = 1;
     }
 }
        protected override Task <Unit> SendImplementation(SendDockerRunParamsRequest request, CancellationToken cancellation)
        {
            var properties = new Dictionary <string, string>
            {
                [nameof(request.ContainerName)] = request.ContainerName,
                [nameof(request.Created)]       = request.Created.ToString(),
                [nameof(request.EventDate)]     = request.EventDate.ToString(),
                [nameof(request.ImageName)]     = request.ImageName,
                [nameof(request.ImageTag)]      = request.ImageTag,
                [nameof(request.InboundPort)]   = request.InboundPort,
                [nameof(request.OutboundPort)]  = request.OutboundPort,
                [nameof(request.ServiceName)]   = request.ServiceName
            };

            _reporter.Report(properties);

            return(Unit.Task);
        }
        public async Task <Unit> Handle(ProcessDockerLogRequest request, CancellationToken cancellationToken)
        {
            var validateExportedRunParamsRequest = ValidateExportedRunParamsRequest.FromBase(request.ExtractedParams);
            ValidateExportedRunParamsResponse validateExportedRunParamsResponse =
                await Mediator.Send(validateExportedRunParamsRequest, cancellationToken);

            if (!validateExportedRunParamsResponse.IsValid)
            {
                return(Unit.Value);
            }

            if (!await ShouldProcessDockerLog(validateExportedRunParamsRequest, cancellationToken))
            {
                return(Unit.Value);
            }

            var sendDockerRunParamsRequest = SendDockerRunParamsRequest.FromBase(request.ExtractedParams);

            return(await Mediator.Send(sendDockerRunParamsRequest, cancellationToken));
        }
        protected override async Task <Unit> SendImplementation(SendDockerRunParamsRequest request, CancellationToken cancellation)
        {
            await using var connection = _connectionFactory.CreateConnection();

            var command = new CommandDefinition(
                InsertLogEntryQuery(),
                new
            {
                request.ServiceName,
                request.ContainerName,
                request.ImageName,
                request.ImageTag,
                request.InboundPort,
                request.OutboundPort,
                request.EventDate
            },
                cancellationToken: cancellation);

            await connection.ExecuteAsync(command);

            return(Unit.Value);
        }
        protected override async Task <Unit> SendImplementation(SendDockerRunParamsRequest request, CancellationToken cancellation)
        {
            var attachmentFields = new object[4]
            {
                new { title = DateTitle, value = $"`{request.EventDate}`" },
                new { title = ContainerNameTitle, value = $"`{request.ContainerName}`" },
                new { title = PortsTitle, value = $"`{request.InboundPort}` : `{request.OutboundPort}`" },
                new { title = ImageTitle, value = $"`{request.ImageName}`: `{request.ImageTag}`" }
            };

            var content =
                new
            {
                attachments = new object[1]
                {
                    new
                    {
                        mrkdwn_in = new object[1] {
                            MarkdownInOption
                        },
                        color   = ColorValue,
                        pretext = $"*Service:* {request.ServiceName}",
                        text    = $"_{Message}_",
                        fields  = attachmentFields
                    },
                }
            };

            using var stream = _streamManager.GetStream();

            await JsonSerializer.SerializeAsync(stream, content, typeof(object), null, cancellation);

            await _reporter.Send(stream, cancellation);

            return(Unit.Value);
        }