Example #1
0
        public async Task <IActionResult> CreateSecretAsync(SecretParameters secretDto)
        {
            try
            {
                var validator = new SecretValidator();
                validator.Validate(secretDto);
                var secretSpec = new Docker.DotNet.Models.SecretSpec();
                var bytes      = Encoding.UTF8.GetBytes(secretDto.Content).ToList();
                secretSpec.Data   = bytes;
                secretSpec.Name   = secretDto.Name;
                secretSpec.Labels = secretDto.Labels;
                var secretCreateResponse = await _swarmClient.CreateSecret(secretSpec);

                return(Created($"/api/secret/{secretDto.Name}", secretCreateResponse));
            }
            catch (ArgumentException ex)
            {
                var errorMessage = "Cannot create secret.";
                _logger.LogError(ex, errorMessage);
                return(BadRequest(ex.Message));
            }
            catch (Exception ex)
            {
                return(CreateErrorResponse(ex, "Cannot create secret."));
            }
        }
Example #2
0
        public async Task ShouldCreateNewSecretWhenCreateSecretCalled()
        {
            //Given
            const string secretName = "test-secret";

            _swarmClient.CreateSecret(Arg.Any <SecretSpec>()).Returns(x => _any.Create <SecretCreateResponse>());
            var secretService    = new SecretService(_swarmClient, _loggerFactory);
            var secretController = new SecretController(secretService);

            //When
            var response = await secretController.CreateSecret(new SwarmApi.Dtos.SecretParameters {
                Content = _any.Create <string>(),
                Name    = secretName
            });

            var result = response as CreatedResult;

            //Then
            Assert.NotNull(result);
            Assert.Equal($"/api/secret/{secretName}", result.Location);
        }