Beispiel #1
0
        public async Task ShouldReturnClusterIdWhenInitClusterCalled()
        {
            //Given
            const string clusterId = "1234";

            _swarmClient.InitCluster(Arg.Any <SwarmInitParameters>()).Returns(Task.FromResult(clusterId));
            var swarmService      = new SwarmApi.Services.SwarmService(_swarmClient, _loggerFactory);
            var serviceController = new SwarmController(swarmService);

            //When
            var response = await serviceController.InitCluster(new SwarmApi.Dtos.ClusterInitParameters {
                AdvertiseAddress = "192.168.0.101",
                ListenAddress    = "192.168.0.101"
            });

            var result  = response as JsonResult;
            var content = result.Value;

            //Then
            Assert.NotNull(result);
            string id = content.GetType().GetProperty("Id").GetValue(content, null).ToString();

            Assert.Equal(200, result.StatusCode);
            Assert.Equal(clusterId, id);
        }
Beispiel #2
0
        public async Task <IActionResult> InitSwarmAsync(ClusterInitParameters clusterInit)
        {
            try
            {
                var validator = new ClusterInitParameterValidator();
                validator.Validate(clusterInit);
                var parameters = Mapper.Map <SwarmInitParameters>(clusterInit);
                var nodeId     = await _swarmClient.InitCluster(parameters);

                return(Json(new { Id = nodeId }));
            }
            catch (ArgumentException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (Exception ex)
            {
                return(CreateErrorResponse(ex, "Cannot initialize swarm cluster."));
            }
        }