コード例 #1
0
        /// <summary>
        ///  Expected return error code:
        ///     200 no error
        ///     400 bad parameter
        ///     500 server error
        /// </summary>
        internal async Task <Stream> MonitorEventAsync(ContainerEventsConfig eventsConfig)
        {
            var requestPath = "events";
            var queryString = QueryParameterHelper.BuildQueryString(eventsConfig);

            var response = await this.client.MakeRequestForHttpResponseAsync(
                HttpMethod.Get,
                requestPath,
                queryString,
                null,
                null,
                Timeout.InfiniteTimeSpan).ConfigureAwait(false);

            if (response.StatusCode != HttpStatusCode.OK)
            {
                var statusCode = response.StatusCode;

                response.Dispose();

                throw new ContainerApiException(statusCode, null);
            }

            try
            {
                return(await response.Content.ReadAsStreamAsync().ConfigureAwait(false));
            }
            catch (Exception)
            {
                response.Dispose();
                throw;
            }
        }
コード例 #2
0
        /// <summary>
        ///  Expected return error code:
        ///     200 No error
        ///     500 server error
        /// </summary>
        internal async Task <IList <NetworkListResponse> > ListNetworksAsync(
            NetworksListConfig listConfig,
            TimeSpan timeout)
        {
            var requestPath = "networks";
            var queryString = QueryParameterHelper.BuildQueryString(listConfig);

            var response = await this.client.MakeRequestAsync(
                HttpMethod.Get,
                requestPath,
                queryString,
                null,
                timeout).ConfigureAwait(false);

            if (response.StatusCode != HttpStatusCode.OK)
            {
                throw new ContainerApiException(response.StatusCode, response.Body);
            }

            return(ContainerServiceClient.JsonSerializer.DeserializeObject <NetworkListResponse[]>(response.Body));
        }
コード例 #3
0
        /// <summary>
        ///  Expected return error code:
        ///     200 No error
        ///     500 server error
        /// </summary>
        internal async Task <ContainersPruneResponse> PruneContainersAsync(
            ContainersPruneConfig pruneConfig,
            TimeSpan timeout)
        {
            var requestPath = "containers/prune";
            var queryString = QueryParameterHelper.BuildQueryString(pruneConfig);

            var response = await this.client.MakeRequestAsync(
                HttpMethod.Post,
                requestPath,
                queryString,
                null,
                timeout).ConfigureAwait(false);

            if (response.StatusCode != HttpStatusCode.OK)
            {
                throw new ContainerApiException(response.StatusCode, response.Body);
            }

            return(ContainerServiceClient.JsonSerializer.DeserializeObject <ContainersPruneResponse>(response.Body));
        }