Пример #1
0
        public async Task ShouldReturnAllManagerNodesInfoWhenGetNodesCalled()
        {
            //Given
            var spec = new NodeUpdateParameters();

            spec.Role = "manager";
            _swarmClient.GetNodes().Returns(x => {
                return(Task.FromResult <IEnumerable <NodeListResponse> >(new [] { _any.Create <NodeListResponse>(),
                                                                                  _any.Build <NodeListResponse>().With(t => t.Spec, spec).Create() }));
            });
            var nodeService    = new NodeService(_swarmClient, _loggerFactory);
            var nodeController = new NodeController(nodeService);

            //When
            var response = await nodeController.GetNode(null, SwarmRole.Manager);

            var jsonResult = response as JsonResult;
            var value      = jsonResult?.Value as IEnumerable <NodeListResponse>;

            //Then
            Assert.NotNull(jsonResult);
            Assert.NotNull(value);
            Assert.Equal(200, jsonResult.StatusCode);
            Assert.Equal(1, value.Count());
        }
Пример #2
0
        async Task ISwarmOperations.UpdateNodeAsync(string id, ulong version, NodeUpdateParameters parameters, CancellationToken cancellationToken)
        {
            if (string.IsNullOrEmpty(id))
            {
                throw new ArgumentNullException(nameof(id));
            }
            var query = new EnumerableQueryString("version", new[] { version.ToString() });
            var body  = new JsonRequestContent <NodeUpdateParameters>(parameters ?? throw new ArgumentNullException(nameof(parameters)), this._client.JsonSerializer);

            await this._client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Post, $"nodes/{id}/update", query, body, cancellationToken);
        }
Пример #3
0
        public async Task updateNodeAsync(String hostname, String role, String availability,
                                          ulong version, KeyValuePair <String, String> label)
        {
            NodeUpdateParameters         parameters = new NodeUpdateParameters();
            IDictionary <String, String> dictionary = new Dictionary <String, String>();

            dictionary.Add(label);
            parameters.Labels       = dictionary;
            parameters.Role         = role;
            parameters.Availability = availability;
            await this.client.Swarm.UpdateNodeAsync(hostname, version, parameters);
        }