Exemplo n.º 1
0
        public Task CreateImageAsync(ImagesCreateParameters parameters, Stream imageStream, AuthConfig authConfig, IProgress <JSONMessage> progress, CancellationToken cancellationToken = default(CancellationToken))
        {
            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            HttpMethod           httpMethod = HttpMethod.Get;
            BinaryRequestContent content    = null;

            if (imageStream != null)
            {
                content            = new BinaryRequestContent(imageStream, TarContentType);
                httpMethod         = HttpMethod.Post;
                parameters.FromSrc = ImportFromBodySource;
            }

            IQueryString queryParameters = new QueryString <ImagesCreateParameters>(parameters);

            return(StreamUtil.MonitorStreamForMessagesAsync(
                       this._client.MakeRequestForStreamAsync(this._client.NoErrorHandlers, httpMethod, "images/create", queryParameters, content, RegistryAuthHeaders(authConfig), cancellationToken),
                       this._client,
                       cancellationToken,
                       progress));
        }
Exemplo n.º 2
0
        public Task CreateImageAsync(ImagesCreateParameters parameters, Stream imageStream, AuthConfig authConfig, IDictionary <string, string> headers, IProgress <JSONMessage> progress, CancellationToken cancellationToken = default(CancellationToken))
        {
            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            HttpMethod           httpMethod = HttpMethod.Post;
            BinaryRequestContent content    = null;

            if (imageStream != null)
            {
                content            = new BinaryRequestContent(imageStream, TarContentType);
                parameters.FromSrc = ImportFromBodySource;
            }

            IQueryString queryParameters = new QueryString <ImagesCreateParameters>(parameters);

            Dictionary <string, string> customHeaders = RegistryAuthHeaders(authConfig);

            if (headers != null)
            {
                foreach (string key in headers.Keys)
                {
                    customHeaders[key] = headers[key];
                }
            }

            return(StreamUtil.MonitorResponseForMessagesAsync(
                       this._client.MakeRequestForRawResponseAsync(httpMethod,
                                                                   "images/create", queryParameters, content, customHeaders, cancellationToken),
                       this._client,
                       cancellationToken,
                       progress));
        }
        public Task LoadImageFromTarballAsync(Stream stream, CancellationToken cancellationToken)
        {
            if (stream == null)
            {
                throw new ArgumentNullException(nameof(stream));
            }

            BinaryRequestContent data = new BinaryRequestContent(stream, "application/x-tar");

            return(this.Client.MakeRequestAsync(new[] { ImageOperations.NoSuchImageHandler }, HttpMethod.Post, "images/load", null, data, null, cancellationToken));
        }
Exemplo n.º 4
0
        public Task <Stream> LoadImageFromTarball(Stream stream, ImageLoadParameters parameters = null, CancellationToken cancellationToken = default(CancellationToken))
        {
            if (stream == null)
            {
                throw new ArgumentNullException(nameof(stream));
            }

            IQueryString    queryParameters = new QueryString <ImageLoadParameters>(parameters ?? new ImageLoadParameters());
            IRequestContent data            = new BinaryRequestContent(stream, "application/x-tar");

            return(this._client.MakeRequestForStreamAsync(new[] { ImageOperations.NoSuchImageHandler }, HttpMethod.Post, "images/load", queryParameters, data, cancellationToken));
        }
Exemplo n.º 5
0
        public Task <Stream> BuildImageFromDockerfileAsync(Stream contents, ImageBuildParameters parameters, CancellationToken cancellationToken = default(CancellationToken))
        {
            if (contents == null)
            {
                throw new ArgumentNullException(nameof(contents));
            }

            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            var          data            = new BinaryRequestContent(contents, "application/tar");
            IQueryString queryParameters = new QueryString <ImageBuildParameters>(parameters);

            return(this._client.MakeRequestForStreamAsync(this._client.NoErrorHandlers, HttpMethod.Post, "build", queryParameters, data, cancellationToken));
        }
        public Task CreatePluginAsync(PluginCreateParameters parameters, Stream plugin, CancellationToken cancellationToken = default(CancellationToken))
        {
            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            if (plugin == null)
            {
                throw new ArgumentNullException(nameof(plugin));
            }

            var query = new QueryString <PluginCreateParameters>(parameters);
            var data  = new BinaryRequestContent(plugin, TarContentType);

            return(this._client.MakeRequestAsync(this._client.NoErrorHandlers, HttpMethod.Post, $"plugins/create", query, data, cancellationToken));
        }
Exemplo n.º 7
0
        public Task ExtractArchiveToContainerAsync(string id, ContainerPathStatParameters parameters, Stream stream, CancellationToken cancellationToken)
        {
            if (string.IsNullOrEmpty(id))
            {
                throw new ArgumentNullException(nameof(id));
            }

            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            IQueryString queryParameters = new QueryString <ContainerPathStatParameters>(parameters);

            var data = new BinaryRequestContent(stream, "application/x-tar");

            return(this._client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Put, $"containers/{id}/archive", queryParameters, data, null, cancellationToken));
        }
Exemplo n.º 8
0
        public Task <Stream> BuildImageFromDockerfileAsync(Stream contents, BuildImageFromDockerfileParameters parameters, CancellationToken cancellationToken)
        {
            if (contents == null)
            {
                throw new ArgumentNullException("contents");
            }

            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

            BinaryRequestContent data            = new BinaryRequestContent(contents, "application/tar");
            const string         path            = "build";
            IQueryString         queryParameters = new QueryString <BuildImageFromDockerfileParameters>(parameters);

            return(this.Client.MakeRequestForStreamAsync(this.Client.NoErrorHandlers, HttpMethod.Post, path, queryParameters, data, cancellationToken));
        }
Exemplo n.º 9
0
        public Task ExtractArchiveToContainerAsync(string id, ExtractArchiveToContainerParameters parameters, Stream stream, CancellationToken cancellationToken)
        {
            if (string.IsNullOrEmpty(id))
            {
                throw new ArgumentNullException("id");
            }

            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

            IQueryString queryParameters = new QueryString <ExtractArchiveToContainerParameters>(parameters);

            BinaryRequestContent data = new BinaryRequestContent(stream, "application/x-tar");

            string path = string.Format(CultureInfo.InvariantCulture, "containers/{0}/archive", id);

            return(this.Client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Put, path, queryParameters, data, null, cancellationToken));
        }
Exemplo n.º 10
0
        public Task BuildImageFromDockerfileAsync(ImageBuildParameters parameters, Stream contents, IEnumerable <AuthConfig> authConfigs, IDictionary <string, string> headers, IProgress <JSONMessage> progress, CancellationToken cancellationToken = default)
        {
            if (contents == null)
            {
                throw new ArgumentNullException(nameof(contents));
            }

            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            HttpMethod httpMethod = HttpMethod.Post;

            var data = new BinaryRequestContent(contents, TarContentType);

            IQueryString queryParameters = new QueryString <ImageBuildParameters>(parameters);

            Dictionary <string, string> customHeaders = RegistryConfigHeaders(authConfigs);

            if (headers != null)
            {
                foreach (string key in headers.Keys)
                {
                    customHeaders[key] = headers[key];
                }
            }

            return(StreamUtil.MonitorResponseForMessagesAsync(
                       this._client.MakeRequestForRawResponseAsync(
                           httpMethod,
                           "build",
                           queryParameters,
                           data,
                           customHeaders,
                           cancellationToken),
                       this._client,
                       cancellationToken,
                       progress
                       ));
        }
Exemplo n.º 11
0
        public Task LoadImageAsync(ImageLoadParameters parameters, Stream imageStream, IProgress <JSONMessage> progress, CancellationToken cancellationToken = default(CancellationToken))
        {
            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            if (imageStream == null)
            {
                throw new ArgumentNullException(nameof(imageStream));
            }

            BinaryRequestContent content = new BinaryRequestContent(imageStream, TarContentType);

            IQueryString queryParameters = new QueryString <ImageLoadParameters>(parameters);

            return(StreamUtil.MonitorStreamForMessagesAsync(
                       this._client.MakeRequestForStreamAsync(this._client.NoErrorHandlers, HttpMethod.Post, "images/load", queryParameters, content, cancellationToken),
                       this._client,
                       cancellationToken,
                       progress));
        }
        public Task<Stream> BuildImageFromDockerfileAsync(Stream contents, BuildImageFromDockerfileParameters parameters, CancellationToken cancellationToken)
        {
            if (contents == null)
            {
                throw new ArgumentNullException("contents");
            }

            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

            BinaryRequestContent data = new BinaryRequestContent(contents, "application/tar");
            const string path = "build";
            IQueryString queryParameters = new QueryString<BuildImageFromDockerfileParameters>(parameters);
            return this.Client.MakeRequestForStreamAsync(this.Client.NoErrorHandlers, HttpMethod.Post, path, queryParameters, data, cancellationToken);
        }
        public Task LoadImageFromTarballAsync(Stream stream, CancellationToken cancellationToken)
        {
            if (stream == null)
            {
                throw new ArgumentNullException("stream");
            }

            BinaryRequestContent data = new BinaryRequestContent(stream, "application/x-tar");
            const string path = "images/load";
            return this.Client.MakeRequestAsync(new[] {ImageOperations.NoSuchImageHandler}, HttpMethod.Post, path, null, data, null, cancellationToken);
        }
Exemplo n.º 14
0
        public Task ExtractArchiveToContainerAsync(string id, ExtractArchiveToContainerParameters parameters, Stream stream, CancellationToken cancellationToken)
        {
            if (string.IsNullOrEmpty(id))
            {
                throw new ArgumentNullException("id");
            }

            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

            IQueryString queryParameters = new QueryString<ExtractArchiveToContainerParameters>(parameters);

            BinaryRequestContent data = new BinaryRequestContent(stream, "application/x-tar");

            string path = string.Format(CultureInfo.InvariantCulture, "containers/{0}/archive", id);

            return this.Client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Put, path, queryParameters, data, null, cancellationToken);
        }