From 5ee8318249a2a432d69e134ba11819165418a54b Mon Sep 17 00:00:00 2001 From: campersau Date: Mon, 2 Mar 2026 09:40:59 +0100 Subject: [PATCH 01/11] Fix some nullable annotations in *Operations --- .../Endpoints/ContainerOperations.cs | 2 +- .../Endpoints/IConfigsOperations.cs | 8 ++-- .../Endpoints/IContainerOperations.cs | 2 +- .../Endpoints/IImageOperations.cs | 36 ++++++++-------- .../Endpoints/INetworkOperations.cs | 16 +++---- .../Endpoints/IPluginOperations.cs | 22 +++++----- .../Endpoints/ISecretsOperations.cs | 8 ++-- .../Endpoints/ISwarmOperations.cs | 36 ++++++++-------- .../Endpoints/ISystemOperations.cs | 10 ++--- .../Endpoints/ITasksOperations.cs | 6 +-- .../Endpoints/IVolumeOperations.cs | 12 +++--- .../Endpoints/ImageOperations.cs | 42 +++++++++---------- .../Endpoints/NetworkOperations.cs | 8 ++-- .../Endpoints/PluginOperations.cs | 28 ++++++------- .../Endpoints/SwarmOperations.cs | 8 ++-- .../Endpoints/SystemOperations.cs | 10 ++--- .../Endpoints/TasksOperations.cs | 5 ++- .../Endpoints/VolumeOperations.cs | 2 +- 18 files changed, 131 insertions(+), 130 deletions(-) diff --git a/src/Docker.DotNet/Endpoints/ContainerOperations.cs b/src/Docker.DotNet/Endpoints/ContainerOperations.cs index c9eda1e7..f79f5d5b 100644 --- a/src/Docker.DotNet/Endpoints/ContainerOperations.cs +++ b/src/Docker.DotNet/Endpoints/ContainerOperations.cs @@ -415,7 +415,7 @@ public Task ExtractArchiveToContainerAsync(string id, CopyToContainerParameters return _client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Put, $"containers/{id}/archive", queryParameters, data, cancellationToken); } - public async Task PruneContainersAsync(ContainersPruneParameters? parameters, CancellationToken cancellationToken) + public async Task PruneContainersAsync(ContainersPruneParameters? parameters = null, CancellationToken cancellationToken = default) { var queryParameters = parameters == null ? null : new QueryString(parameters); return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "containers/prune", queryParameters, cancellationToken).ConfigureAwait(false); diff --git a/src/Docker.DotNet/Endpoints/IConfigsOperations.cs b/src/Docker.DotNet/Endpoints/IConfigsOperations.cs index fdd8a52f..7ba42039 100644 --- a/src/Docker.DotNet/Endpoints/IConfigsOperations.cs +++ b/src/Docker.DotNet/Endpoints/IConfigsOperations.cs @@ -9,7 +9,7 @@ public interface IConfigOperations /// 200 - No error. /// 500 - Server error. /// - Task> ListConfigsAsync(CancellationToken cancellationToken = default(CancellationToken)); + Task> ListConfigsAsync(CancellationToken cancellationToken = default); /// /// Create a configs @@ -20,7 +20,7 @@ public interface IConfigOperations /// 409 - Name conflicts with an existing object. /// 500 - Server error. /// - Task CreateConfigAsync(SwarmCreateConfigParameters body, CancellationToken cancellationToken = default(CancellationToken)); + Task CreateConfigAsync(SwarmCreateConfigParameters body, CancellationToken cancellationToken = default); /// /// Inspect a configs @@ -32,7 +32,7 @@ public interface IConfigOperations /// 500 - Server error. /// /// ID of the config. - Task InspectConfigAsync(string id, CancellationToken cancellationToken = default(CancellationToken)); + Task InspectConfigAsync(string id, CancellationToken cancellationToken = default); /// /// Remove a configs @@ -43,5 +43,5 @@ public interface IConfigOperations /// 500 - Server error. /// /// ID of the config. - Task RemoveConfigAsync(string id, CancellationToken cancellationToken = default(CancellationToken)); + Task RemoveConfigAsync(string id, CancellationToken cancellationToken = default); } \ No newline at end of file diff --git a/src/Docker.DotNet/Endpoints/IContainerOperations.cs b/src/Docker.DotNet/Endpoints/IContainerOperations.cs index 7f4e2be2..20fa7e88 100644 --- a/src/Docker.DotNet/Endpoints/IContainerOperations.cs +++ b/src/Docker.DotNet/Endpoints/IContainerOperations.cs @@ -381,7 +381,7 @@ public interface IContainerOperations /// One or more of the inputs was . /// The input is invalid or the daemon experienced an error. /// The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. - Task PruneContainersAsync(ContainersPruneParameters parameters = null, CancellationToken cancellationToken = default); + Task PruneContainersAsync(ContainersPruneParameters? parameters = null, CancellationToken cancellationToken = default); /// /// Changes configuration options of a container without recreating it. diff --git a/src/Docker.DotNet/Endpoints/IImageOperations.cs b/src/Docker.DotNet/Endpoints/IImageOperations.cs index 8315d1a3..3ad6afbb 100644 --- a/src/Docker.DotNet/Endpoints/IImageOperations.cs +++ b/src/Docker.DotNet/Endpoints/IImageOperations.cs @@ -13,7 +13,7 @@ public interface IImageOperations /// One or more of the inputs was . /// The input is invalid or the daemon experienced an error. /// The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. - Task> ListImagesAsync(ImagesListParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task> ListImagesAsync(ImagesListParameters parameters, CancellationToken cancellationToken = default); /// /// Builds an image from a tar archive that contains a Dockerfile. @@ -42,7 +42,7 @@ public interface IImageOperations /// One or more of the inputs was . /// The input is invalid or the daemon experienced an error. /// The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. - Task BuildImageFromDockerfileAsync(ImageBuildParameters parameters, Stream contents, IEnumerable authConfigs, IDictionary headers, IProgress progress, CancellationToken cancellationToken = default(CancellationToken)); + Task BuildImageFromDockerfileAsync(ImageBuildParameters parameters, Stream contents, IEnumerable authConfigs, IDictionary headers, IProgress progress, CancellationToken cancellationToken = default); /// /// Builds an image from a tar archive that contains a Dockerfile. @@ -66,7 +66,7 @@ public interface IImageOperations /// The input is invalid or the daemon experienced an error. /// The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. [Obsolete("This method does not wait for build to complete. Use new BuildImageFromDockerfileAsync(contents, parameters, authConfigs, headers, progress, cancellationToken, instead.)", false)] - Task BuildImageFromDockerfileAsync(Stream contents, ImageBuildParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task BuildImageFromDockerfileAsync(Stream contents, ImageBuildParameters parameters, CancellationToken cancellationToken = default); /// /// Creates an image by either pulling it from a registry or importing it. @@ -82,7 +82,7 @@ public interface IImageOperations /// current auth status, the input is invalid, or the daemon experienced an error. /// /// The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. - Task CreateImageAsync(ImagesCreateParameters parameters, AuthConfig authConfig, IProgress progress, CancellationToken cancellationToken = default(CancellationToken)); + Task CreateImageAsync(ImagesCreateParameters parameters, AuthConfig authConfig, IProgress progress, CancellationToken cancellationToken = default); /// /// Creates an image by either pulling it from a registry or importing it. @@ -99,7 +99,7 @@ public interface IImageOperations /// current auth status, the input is invalid, or the daemon experienced an error. /// /// The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. - Task CreateImageAsync(ImagesCreateParameters parameters, AuthConfig authConfig, IDictionary headers, IProgress progress, CancellationToken cancellationToken = default(CancellationToken)); + Task CreateImageAsync(ImagesCreateParameters parameters, AuthConfig authConfig, IDictionary headers, IProgress progress, CancellationToken cancellationToken = default); /// /// Creates an image by importing it from a stream. @@ -116,7 +116,7 @@ public interface IImageOperations /// current auth status, the input is invalid, or the daemon experienced an error. /// /// The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. - Task CreateImageAsync(ImagesCreateParameters parameters, Stream imageStream, AuthConfig authConfig, IProgress progress, CancellationToken cancellationToken = default(CancellationToken)); + Task CreateImageAsync(ImagesCreateParameters parameters, Stream imageStream, AuthConfig authConfig, IProgress progress, CancellationToken cancellationToken = default); /// /// Creates an image by importing it from a stream. @@ -134,7 +134,7 @@ public interface IImageOperations /// current auth status, the input is invalid, or the daemon experienced an error. /// /// The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. - Task CreateImageAsync(ImagesCreateParameters parameters, Stream imageStream, AuthConfig authConfig, IDictionary headers, IProgress progress, CancellationToken cancellationToken = default(CancellationToken)); + Task CreateImageAsync(ImagesCreateParameters parameters, Stream imageStream, AuthConfig authConfig, IDictionary headers, IProgress progress, CancellationToken cancellationToken = default); /// /// Retrieves low-level information about an image. @@ -148,7 +148,7 @@ public interface IImageOperations /// No such image was found. /// The input is invalid or the daemon experienced an error. /// The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. - Task InspectImageAsync(string name, CancellationToken cancellationToken = default(CancellationToken)); + Task InspectImageAsync(string name, CancellationToken cancellationToken = default); /// /// Gets the "history" (parent layers) of an image. @@ -162,7 +162,7 @@ public interface IImageOperations /// No such image was found. /// The input is invalid or the daemon experienced an error. /// The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. - Task> GetImageHistoryAsync(string name, CancellationToken cancellationToken = default(CancellationToken)); + Task> GetImageHistoryAsync(string name, CancellationToken cancellationToken = default); /// /// Pushes an image to a registry. @@ -184,7 +184,7 @@ public interface IImageOperations /// No such image was found. /// The input is invalid or the daemon experienced an error. /// The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. - Task PushImageAsync(string name, ImagePushParameters parameters, AuthConfig authConfig, IProgress progress, CancellationToken cancellationToken = default(CancellationToken)); + Task PushImageAsync(string name, ImagePushParameters parameters, AuthConfig authConfig, IProgress progress, CancellationToken cancellationToken = default); /// /// Tags an image so that it becomes part of a registry. @@ -200,7 +200,7 @@ public interface IImageOperations /// No such image was found. /// There was a conflict, or the input is invalid, or the daemon experienced an error. /// The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. - Task TagImageAsync(string name, ImageTagParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task TagImageAsync(string name, ImageTagParameters parameters, CancellationToken cancellationToken = default); /// /// Removes an image, along with any untagged parent images that were referenced by that image. @@ -219,7 +219,7 @@ public interface IImageOperations /// No such image was found. /// There was a conflict, or the input is invalid, or the daemon experienced an error. /// The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. - Task>> DeleteImageAsync(string name, ImageDeleteParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task>> DeleteImageAsync(string name, ImageDeleteParameters parameters, CancellationToken cancellationToken = default); /// /// Searchs for an image on Docker Hub. @@ -232,7 +232,7 @@ public interface IImageOperations /// One or more of the inputs was . /// There was a conflict, or the input is invalid, or the daemon experienced an error. /// The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. - Task> SearchImagesAsync(ImagesSearchParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task> SearchImagesAsync(ImagesSearchParameters parameters, CancellationToken cancellationToken = default); /// /// Deletes unused images. @@ -245,7 +245,7 @@ public interface IImageOperations /// One or more of the inputs was . /// There was a conflict, or the input is invalid, or the daemon experienced an error. /// The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. - Task PruneImagesAsync(ImagesPruneParameters parameters = null, CancellationToken cancellationToken = default(CancellationToken)); + Task PruneImagesAsync(ImagesPruneParameters? parameters = null, CancellationToken cancellationToken = default); /// /// Create a new image from a container. @@ -259,7 +259,7 @@ public interface IImageOperations /// There was a conflict, or the input is invalid, or the daemon experienced an error. /// No such container was found. /// The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. - Task CommitContainerChangesAsync(CommitContainerChangesParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task CommitContainerChangesAsync(CommitContainerChangesParameters parameters, CancellationToken cancellationToken = default); /// /// Exports an image and its associated metadata as a tarball. @@ -275,7 +275,7 @@ public interface IImageOperations /// There was a conflict, or the input is invalid, or the daemon experienced an error. /// No such image was found. /// The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. - Task SaveImageAsync(string name, CancellationToken cancellationToken = default(CancellationToken)); + Task SaveImageAsync(string name, CancellationToken cancellationToken = default); /// /// Exports multiple images and their associated metadata to a single tarball. @@ -296,7 +296,7 @@ public interface IImageOperations /// There was a conflict, or the input is invalid, or the daemon experienced an error. /// No such image was found. /// The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. - Task SaveImagesAsync(string[] names, CancellationToken cancellationToken = default(CancellationToken)); + Task SaveImagesAsync(string[] names, CancellationToken cancellationToken = default); /// /// Loads a set of images and tags into a Docker repository. @@ -311,5 +311,5 @@ public interface IImageOperations /// One or more of the inputs was . /// There was a conflict, or the input is invalid, or the daemon experienced an error. /// The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. - Task LoadImageAsync(ImageLoadParameters parameters, Stream imageStream, IProgress progress, CancellationToken cancellationToken = default(CancellationToken)); + Task LoadImageAsync(ImageLoadParameters parameters, Stream imageStream, IProgress progress, CancellationToken cancellationToken = default); } \ No newline at end of file diff --git a/src/Docker.DotNet/Endpoints/INetworkOperations.cs b/src/Docker.DotNet/Endpoints/INetworkOperations.cs index ce6aa34a..d804eae2 100644 --- a/src/Docker.DotNet/Endpoints/INetworkOperations.cs +++ b/src/Docker.DotNet/Endpoints/INetworkOperations.cs @@ -11,7 +11,7 @@ public interface INetworkOperations /// 200 - No error. /// 500 - Server error. /// - Task> ListNetworksAsync(NetworksListParameters parameters = null, CancellationToken cancellationToken = default(CancellationToken)); + Task> ListNetworksAsync(NetworksListParameters? parameters = null, CancellationToken cancellationToken = default); /// /// Inspect a network. @@ -23,7 +23,7 @@ public interface INetworkOperations /// 404 - Network not found. /// /// Network ID or name. - Task InspectNetworkAsync(string id, CancellationToken cancellationToken = default(CancellationToken)); + Task InspectNetworkAsync(string id, CancellationToken cancellationToken = default); /// /// Remove a network. @@ -36,7 +36,7 @@ public interface INetworkOperations /// 500 - Server error. /// /// Network ID or name. - Task DeleteNetworkAsync(string id, CancellationToken cancellationToken = default(CancellationToken)); + Task DeleteNetworkAsync(string id, CancellationToken cancellationToken = default); /// /// Create a network. @@ -49,7 +49,7 @@ public interface INetworkOperations /// 404 - Plugin not found. /// 500 - Server error. /// - Task CreateNetworkAsync(NetworksCreateParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task CreateNetworkAsync(NetworksCreateParameters parameters, CancellationToken cancellationToken = default); /// /// Connect a container to a network. @@ -63,7 +63,7 @@ public interface INetworkOperations /// 500 - Server error. /// /// Network ID or name. - Task ConnectNetworkAsync(string id, NetworkConnectParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task ConnectNetworkAsync(string id, NetworkConnectParameters parameters, CancellationToken cancellationToken = default); /// /// Disconnect a container from a network. @@ -77,7 +77,7 @@ public interface INetworkOperations /// 404 - Network or container not found. /// 500 - Server error. /// - Task DisconnectNetworkAsync(string id, NetworkDisconnectParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task DisconnectNetworkAsync(string id, NetworkDisconnectParameters parameters, CancellationToken cancellationToken = default); /// /// Delete unused networks. @@ -94,7 +94,7 @@ public interface INetworkOperations /// 500 - Server error. /// [Obsolete("Use INetworkOperations.PruneNetworksAsync")] - Task DeleteUnusedNetworksAsync(NetworksDeleteUnusedParameters parameters = null, CancellationToken cancellationToken = default(CancellationToken)); + Task DeleteUnusedNetworksAsync(NetworksDeleteUnusedParameters? parameters = null, CancellationToken cancellationToken = default); /// /// Delete unused networks. @@ -110,5 +110,5 @@ public interface INetworkOperations /// 404 - Network or container not found. /// 500 - Server error. /// - Task PruneNetworksAsync(NetworksDeleteUnusedParameters parameters = null, CancellationToken cancellationToken = default(CancellationToken)); + Task PruneNetworksAsync(NetworksDeleteUnusedParameters? parameters = null, CancellationToken cancellationToken = default); } \ No newline at end of file diff --git a/src/Docker.DotNet/Endpoints/IPluginOperations.cs b/src/Docker.DotNet/Endpoints/IPluginOperations.cs index ad2ba744..9d289299 100644 --- a/src/Docker.DotNet/Endpoints/IPluginOperations.cs +++ b/src/Docker.DotNet/Endpoints/IPluginOperations.cs @@ -15,7 +15,7 @@ public interface IPluginOperations /// 200 - No error. /// 500 - Server error. /// - Task> ListPluginsAsync(PluginListParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task> ListPluginsAsync(PluginListParameters parameters, CancellationToken cancellationToken = default); /// /// Get plugin privileges. @@ -28,7 +28,7 @@ public interface IPluginOperations /// 200 - No error. /// 500 - Server error. /// - Task> GetPrivilegesAsync(PluginGetPrivilegeParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task> GetPrivilegesAsync(PluginGetPrivilegeParameters parameters, CancellationToken cancellationToken = default); /// /// Install a plugin. @@ -43,7 +43,7 @@ public interface IPluginOperations /// 204 - No error. /// 500 - Server error. /// - Task InstallPluginAsync(PluginInstallParameters parameters, IProgress progress, CancellationToken cancellationToken = default(CancellationToken)); + Task InstallPluginAsync(PluginInstallParameters parameters, IProgress progress, CancellationToken cancellationToken = default); /// /// Inspect a plugin. @@ -58,7 +58,7 @@ public interface IPluginOperations /// 500 - Server error. /// /// The name of the plugin. The `:latest` tag is optional, and is the default if omitted. - Task InspectPluginAsync(string name, CancellationToken cancellationToken = default(CancellationToken)); + Task InspectPluginAsync(string name, CancellationToken cancellationToken = default); /// /// Remove a plugin. @@ -73,7 +73,7 @@ public interface IPluginOperations /// 500 - Server error. /// /// The name of the plugin. The `:latest` tag is optional, and is the default if omitted. - Task RemovePluginAsync(string name, PluginRemoveParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task RemovePluginAsync(string name, PluginRemoveParameters parameters, CancellationToken cancellationToken = default); /// /// Enable a plugin. @@ -88,7 +88,7 @@ public interface IPluginOperations /// 500 - Server error. /// /// The name of the plugin. The `:latest` tag is optional, and is the default if omitted. - Task EnablePluginAsync(string name, PluginEnableParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task EnablePluginAsync(string name, PluginEnableParameters parameters, CancellationToken cancellationToken = default); /// /// Disable a plugin. @@ -103,7 +103,7 @@ public interface IPluginOperations /// 500 - Server error. /// /// The name of the plugin. The `:latest` tag is optional, and is the default if omitted. - Task DisablePluginAsync(string name, PluginDisableParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task DisablePluginAsync(string name, PluginDisableParameters parameters, CancellationToken cancellationToken = default); /// /// Upgrade a plugin. @@ -118,7 +118,7 @@ public interface IPluginOperations /// 500 - Server error. /// /// The name of the plugin. The `:latest` tag is optional, and is the default if omitted. - Task UpgradePluginAsync(string name, PluginUpgradeParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task UpgradePluginAsync(string name, PluginUpgradeParameters parameters, CancellationToken cancellationToken = default); /// /// Create a plugin. @@ -131,7 +131,7 @@ public interface IPluginOperations /// 200 - No error. /// 500 - Server error. /// - Task CreatePluginAsync(PluginCreateParameters parameters, Stream plugin, CancellationToken cancellationToken = default(CancellationToken)); + Task CreatePluginAsync(PluginCreateParameters parameters, Stream plugin, CancellationToken cancellationToken = default); /// /// Push a plugin. @@ -148,7 +148,7 @@ public interface IPluginOperations /// 500 - Server error. /// /// The name of the plugin. The `:latest` tag is optional, and is the default if omitted. - Task PushPluginAsync(string name, CancellationToken cancellationToken = default(CancellationToken)); + Task PushPluginAsync(string name, CancellationToken cancellationToken = default); /// /// Configure a plugin. @@ -163,5 +163,5 @@ public interface IPluginOperations /// 500 - Server error. /// /// The name of the plugin. The `:latest` tag is optional, and is the default if omitted. - Task ConfigurePluginAsync(string name, PluginConfigureParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task ConfigurePluginAsync(string name, PluginConfigureParameters parameters, CancellationToken cancellationToken = default); } \ No newline at end of file diff --git a/src/Docker.DotNet/Endpoints/ISecretsOperations.cs b/src/Docker.DotNet/Endpoints/ISecretsOperations.cs index 7dcb8bec..e2290a24 100644 --- a/src/Docker.DotNet/Endpoints/ISecretsOperations.cs +++ b/src/Docker.DotNet/Endpoints/ISecretsOperations.cs @@ -9,7 +9,7 @@ public interface ISecretsOperations /// 200 - No error. /// 500 - Server error. /// - Task> ListAsync(CancellationToken cancellationToken = default(CancellationToken)); + Task> ListAsync(CancellationToken cancellationToken = default); /// /// Create a secret @@ -20,7 +20,7 @@ public interface ISecretsOperations /// 409 - Name conflicts with an existing object. /// 500 - Server error. /// - Task CreateAsync(SwarmSecretSpec body, CancellationToken cancellationToken = default(CancellationToken)); + Task CreateAsync(SwarmSecretSpec body, CancellationToken cancellationToken = default); /// /// Inspect a secret @@ -32,7 +32,7 @@ public interface ISecretsOperations /// 500 - Server error. /// /// ID of the secret. - Task InspectAsync(string id, CancellationToken cancellationToken = default(CancellationToken)); + Task InspectAsync(string id, CancellationToken cancellationToken = default); /// /// Delete a secret @@ -43,5 +43,5 @@ public interface ISecretsOperations /// 500 - Server error. /// /// ID of the secret. - Task DeleteAsync(string id, CancellationToken cancellationToken = default(CancellationToken)); + Task DeleteAsync(string id, CancellationToken cancellationToken = default); } \ No newline at end of file diff --git a/src/Docker.DotNet/Endpoints/ISwarmOperations.cs b/src/Docker.DotNet/Endpoints/ISwarmOperations.cs index 4d2b5a8c..a230979c 100644 --- a/src/Docker.DotNet/Endpoints/ISwarmOperations.cs +++ b/src/Docker.DotNet/Endpoints/ISwarmOperations.cs @@ -12,7 +12,7 @@ public interface ISwarmOperations /// 500 - Server Error. /// 503 - Node is not part of a swarm. /// - Task GetSwarmUnlockKeyAsync(CancellationToken cancellationToken = default(CancellationToken)); + Task GetSwarmUnlockKeyAsync(CancellationToken cancellationToken = default); /// /// Initialize a new swarm. @@ -25,7 +25,7 @@ public interface ISwarmOperations /// /// The join parameters. /// The node id. - Task InitSwarmAsync(SwarmInitParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task InitSwarmAsync(SwarmInitParameters parameters, CancellationToken cancellationToken = default); /// /// Inspect swarm. @@ -36,7 +36,7 @@ public interface ISwarmOperations /// 500 - Server Error. /// 503 - Node is not part of a swarm. /// - Task InspectSwarmAsync(CancellationToken cancellationToken = default(CancellationToken)); + Task InspectSwarmAsync(CancellationToken cancellationToken = default); /// /// Join an existing swarm. @@ -47,7 +47,7 @@ public interface ISwarmOperations /// 503 - Node is already part of a swarm. /// /// The join parameters. - Task JoinSwarmAsync(SwarmJoinParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task JoinSwarmAsync(SwarmJoinParameters parameters, CancellationToken cancellationToken = default); /// /// Leave a swarm. @@ -58,7 +58,7 @@ public interface ISwarmOperations /// 503 - Node not part of a swarm. /// /// The leave parameters. - Task LeaveSwarmAsync(SwarmLeaveParameters parameters = null, CancellationToken cancellationToken = default(CancellationToken)); + Task LeaveSwarmAsync(SwarmLeaveParameters? parameters = null, CancellationToken cancellationToken = default); /// /// Unlock a locked manager. @@ -69,7 +69,7 @@ public interface ISwarmOperations /// 503 - Node is not part of a swarm. /// /// The swarm's unlock key. - Task UnlockSwarmAsync(SwarmUnlockParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task UnlockSwarmAsync(SwarmUnlockParameters parameters, CancellationToken cancellationToken = default); /// /// Update a swarm. @@ -81,7 +81,7 @@ public interface ISwarmOperations /// 503 - Node is not part of a swarm. /// /// The update parameters. - Task UpdateSwarmAsync(SwarmUpdateParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task UpdateSwarmAsync(SwarmUpdateParameters parameters, CancellationToken cancellationToken = default); #endregion Swarm @@ -98,7 +98,7 @@ public interface ISwarmOperations /// 500 - Server error. /// 503 - Node is not part of a swarm. /// - Task CreateServiceAsync(ServiceCreateParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task CreateServiceAsync(ServiceCreateParameters parameters, CancellationToken cancellationToken = default); /// /// Inspect a service. @@ -111,7 +111,7 @@ public interface ISwarmOperations /// /// ID or name of service. /// The service spec. - Task InspectServiceAsync(string id, CancellationToken cancellationToken = default(CancellationToken)); + Task InspectServiceAsync(string id, CancellationToken cancellationToken = default); /// /// List services with optional serviceFilters. @@ -121,7 +121,7 @@ public interface ISwarmOperations /// 500 - Server error. /// 503 - Node is not part of a swarm. /// - Task> ListServicesAsync(ServiceListParameters parameters = null, CancellationToken cancellationToken = default(CancellationToken)); + Task> ListServicesAsync(ServiceListParameters? parameters = null, CancellationToken cancellationToken = default); /// /// Update a service. @@ -135,7 +135,7 @@ public interface ISwarmOperations /// /// ID or name of service. /// The service spec. - Task UpdateServiceAsync(string id, ServiceUpdateParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task UpdateServiceAsync(string id, ServiceUpdateParameters parameters, CancellationToken cancellationToken = default); /// /// Delete a service. @@ -147,7 +147,7 @@ public interface ISwarmOperations /// 503 - Node is not part of a swarm. /// /// ID or name of service. - Task RemoveServiceAsync(string id, CancellationToken cancellationToken = default(CancellationToken)); + Task RemoveServiceAsync(string id, CancellationToken cancellationToken = default); /// /// Gets stdout and stderr logs from services. @@ -167,7 +167,7 @@ public interface ISwarmOperations /// 500 - Server error. /// 503 - Node is not part of a swarm. /// - Task GetServiceLogsAsync(string id, ServiceLogsParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task GetServiceLogsAsync(string id, ServiceLogsParameters parameters, CancellationToken cancellationToken = default); /// /// Gets stdout and stderr logs from services. @@ -183,7 +183,7 @@ public interface ISwarmOperations /// /// This method is only suited for services with the json-file or journald logging driver. /// - Task GetServiceLogsAsync(string id, bool tty, ServiceLogsParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task GetServiceLogsAsync(string id, bool tty, ServiceLogsParameters parameters, CancellationToken cancellationToken = default); #endregion Services @@ -198,7 +198,7 @@ public interface ISwarmOperations /// 503 - Node is not part of a swarm. /// /// - Task> ListNodesAsync(CancellationToken cancellationToken = default(CancellationToken)); + Task> ListNodesAsync(CancellationToken cancellationToken = default); /// /// Inspect a node. @@ -209,7 +209,7 @@ public interface ISwarmOperations /// 500 - Server error. /// 503 - Node is not part of a swarm. /// - Task InspectNodeAsync(string id, CancellationToken cancellationToken = default(CancellationToken)); + Task InspectNodeAsync(string id, CancellationToken cancellationToken = default); /// /// Delete a node. @@ -220,7 +220,7 @@ public interface ISwarmOperations /// 500 - Server error. /// 503 - Node is not part of a swarm. /// - Task RemoveNodeAsync(string id, bool force, CancellationToken cancellationToken = default(CancellationToken)); + Task RemoveNodeAsync(string id, bool force, CancellationToken cancellationToken = default); /// /// Update node. @@ -234,7 +234,7 @@ public interface ISwarmOperations /// ID or name of the node. /// Current version of the node object. /// Parameters to update. - Task UpdateNodeAsync(string id, ulong version, NodeUpdateParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task UpdateNodeAsync(string id, ulong version, NodeUpdateParameters parameters, CancellationToken cancellationToken = default); #endregion } \ No newline at end of file diff --git a/src/Docker.DotNet/Endpoints/ISystemOperations.cs b/src/Docker.DotNet/Endpoints/ISystemOperations.cs index 94a2fdec..86f01dfe 100644 --- a/src/Docker.DotNet/Endpoints/ISystemOperations.cs +++ b/src/Docker.DotNet/Endpoints/ISystemOperations.cs @@ -12,7 +12,7 @@ public interface ISystemOperations /// 204 - No error. /// 500 - Server error. /// - Task AuthenticateAsync(AuthConfig authConfig, CancellationToken cancellationToken = default(CancellationToken)); + Task AuthenticateAsync(AuthConfig authConfig, CancellationToken cancellationToken = default); /// /// Get version. @@ -25,7 +25,7 @@ public interface ISystemOperations /// 200 - No error. /// 500 - Server error. /// - Task GetVersionAsync(CancellationToken cancellationToken = default(CancellationToken)); + Task GetVersionAsync(CancellationToken cancellationToken = default); /// /// Ping. @@ -36,7 +36,7 @@ public interface ISystemOperations /// 200 - No error. /// 500 - Server error. /// - Task PingAsync(CancellationToken cancellationToken = default(CancellationToken)); + Task PingAsync(CancellationToken cancellationToken = default); /// /// Get system information. @@ -47,7 +47,7 @@ public interface ISystemOperations /// 200 - No error. /// 500 - Server error. /// - Task GetSystemInfoAsync(CancellationToken cancellationToken = default(CancellationToken)); + Task GetSystemInfoAsync(CancellationToken cancellationToken = default); [Obsolete("Use 'Task MonitorEventsAsync(ContainerEventsParameters parameters, CancellationToken cancellationToken, IProgress progress)'")] Task MonitorEventsAsync(ContainerEventsParameters parameters, CancellationToken cancellationToken); @@ -73,5 +73,5 @@ public interface ISystemOperations /// 200 - No error. /// 500 - Server error. /// - Task MonitorEventsAsync(ContainerEventsParameters parameters, IProgress progress, CancellationToken cancellationToken = default(CancellationToken)); + Task MonitorEventsAsync(ContainerEventsParameters parameters, IProgress progress, CancellationToken cancellationToken = default); } \ No newline at end of file diff --git a/src/Docker.DotNet/Endpoints/ITasksOperations.cs b/src/Docker.DotNet/Endpoints/ITasksOperations.cs index 3b5926ae..a47e0578 100644 --- a/src/Docker.DotNet/Endpoints/ITasksOperations.cs +++ b/src/Docker.DotNet/Endpoints/ITasksOperations.cs @@ -14,7 +14,7 @@ public interface ITasksOperations /// 200 - No error. /// 500 - Server error. /// - Task> ListAsync(CancellationToken cancellationToken = default(CancellationToken)); + Task> ListAsync(CancellationToken cancellationToken = default); /// /// List tasks @@ -25,7 +25,7 @@ public interface ITasksOperations /// 200 - No error. /// 500 - Server error. /// - Task> ListAsync(TasksListParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task> ListAsync(TasksListParameters parameters, CancellationToken cancellationToken = default); /// /// Inspect a task @@ -38,5 +38,5 @@ public interface ITasksOperations /// 500 - Server error. /// /// ID of the task. - Task InspectAsync(string id, CancellationToken cancellationToken = default(CancellationToken)); + Task InspectAsync(string id, CancellationToken cancellationToken = default); } \ No newline at end of file diff --git a/src/Docker.DotNet/Endpoints/IVolumeOperations.cs b/src/Docker.DotNet/Endpoints/IVolumeOperations.cs index 47ef9201..b6da37df 100644 --- a/src/Docker.DotNet/Endpoints/IVolumeOperations.cs +++ b/src/Docker.DotNet/Endpoints/IVolumeOperations.cs @@ -9,7 +9,7 @@ public interface IVolumeOperations /// 200 - No error. /// 500 - Server error. /// - Task ListAsync(CancellationToken cancellationToken = default(CancellationToken)); + Task ListAsync(CancellationToken cancellationToken = default); /// /// List volumes @@ -18,7 +18,7 @@ public interface IVolumeOperations /// 200 - No error. /// 500 - Server error. /// - Task ListAsync(VolumesListParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task ListAsync(VolumesListParameters parameters, CancellationToken cancellationToken = default); /// /// Create a volume. @@ -28,7 +28,7 @@ public interface IVolumeOperations /// 500 - Server error. /// /// Volume parameters to create. - Task CreateAsync(VolumesCreateParameters parameters, CancellationToken cancellationToken = default(CancellationToken)); + Task CreateAsync(VolumesCreateParameters parameters, CancellationToken cancellationToken = default); /// /// Inspect a volume. @@ -39,7 +39,7 @@ public interface IVolumeOperations /// 500 - Server error. /// /// Volume name or ID. - Task InspectAsync(string name, CancellationToken cancellationToken = default(CancellationToken)); + Task InspectAsync(string name, CancellationToken cancellationToken = default); /// /// Remove a volume. @@ -54,7 +54,7 @@ public interface IVolumeOperations /// /// Volume name or ID. /// Force the removal of the volume. - Task RemoveAsync(string name, bool? force = null, CancellationToken cancellationToken = default(CancellationToken)); + Task RemoveAsync(string name, bool? force = null, CancellationToken cancellationToken = default); /// /// Delete unused volumes. @@ -65,5 +65,5 @@ public interface IVolumeOperations /// 200 - No error. /// 500 - Server error. /// - Task PruneAsync(VolumesPruneParameters parameters = null, CancellationToken cancellationToken = default(CancellationToken)); + Task PruneAsync(VolumesPruneParameters? parameters = null, CancellationToken cancellationToken = default); } \ No newline at end of file diff --git a/src/Docker.DotNet/Endpoints/ImageOperations.cs b/src/Docker.DotNet/Endpoints/ImageOperations.cs index f6d6abe6..e2a86ef0 100644 --- a/src/Docker.DotNet/Endpoints/ImageOperations.cs +++ b/src/Docker.DotNet/Endpoints/ImageOperations.cs @@ -25,7 +25,7 @@ internal ImageOperations(DockerClient client) _client = client; } - public async Task> ListImagesAsync(ImagesListParameters parameters, CancellationToken cancellationToken = default(CancellationToken)) + public async Task> ListImagesAsync(ImagesListParameters parameters, CancellationToken cancellationToken = default) { if (parameters == null) { @@ -36,7 +36,7 @@ internal ImageOperations(DockerClient client) return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "images/json", queryParameters, cancellationToken).ConfigureAwait(false); } - public async Task BuildImageFromDockerfileAsync(Stream contents, ImageBuildParameters parameters, CancellationToken cancellationToken = default(CancellationToken)) + public async Task BuildImageFromDockerfileAsync(Stream contents, ImageBuildParameters parameters, CancellationToken cancellationToken = default) { if (contents == null) { @@ -90,22 +90,22 @@ public Task BuildImageFromDockerfileAsync(ImageBuildParameters parameters, Strea cancellationToken); } - public Task CreateImageAsync(ImagesCreateParameters parameters, AuthConfig authConfig, IProgress progress, CancellationToken cancellationToken = default(CancellationToken)) + public Task CreateImageAsync(ImagesCreateParameters parameters, AuthConfig authConfig, IProgress progress, CancellationToken cancellationToken = default) { return CreateImageAsync(parameters, null, authConfig, progress, cancellationToken); } - public Task CreateImageAsync(ImagesCreateParameters parameters, AuthConfig authConfig, IDictionary headers, IProgress progress, CancellationToken cancellationToken = default(CancellationToken)) + public Task CreateImageAsync(ImagesCreateParameters parameters, AuthConfig authConfig, IDictionary headers, IProgress progress, CancellationToken cancellationToken = default) { return CreateImageAsync(parameters, null, authConfig, headers, progress, cancellationToken); } - public Task CreateImageAsync(ImagesCreateParameters parameters, Stream imageStream, AuthConfig authConfig, IProgress progress, CancellationToken cancellationToken = default(CancellationToken)) + public Task CreateImageAsync(ImagesCreateParameters parameters, Stream? imageStream, AuthConfig authConfig, IProgress progress, CancellationToken cancellationToken = default) { return CreateImageAsync(parameters, imageStream, authConfig, null, progress, cancellationToken); } - public Task CreateImageAsync(ImagesCreateParameters parameters, Stream imageStream, AuthConfig authConfig, IDictionary headers, IProgress progress, CancellationToken cancellationToken = default(CancellationToken)) + public Task CreateImageAsync(ImagesCreateParameters parameters, Stream? imageStream, AuthConfig authConfig, IDictionary? headers, IProgress progress, CancellationToken cancellationToken = default) { if (parameters == null) { @@ -113,7 +113,7 @@ public Task BuildImageFromDockerfileAsync(ImageBuildParameters parameters, Strea } HttpMethod httpMethod = HttpMethod.Post; - BinaryRequestContent content = null; + BinaryRequestContent? content = null; if (imageStream != null) { content = new BinaryRequestContent(imageStream, TarContentType); @@ -124,9 +124,9 @@ public Task BuildImageFromDockerfileAsync(ImageBuildParameters parameters, Strea Dictionary customHeaders = RegistryAuthHeaders(authConfig); - if(headers != null) + if (headers != null) { - foreach(var key in headers.Keys) + foreach (var key in headers.Keys) { customHeaders[key] = headers[key]; } @@ -138,7 +138,7 @@ public Task BuildImageFromDockerfileAsync(ImageBuildParameters parameters, Strea cancellationToken); } - public async Task InspectImageAsync(string name, CancellationToken cancellationToken = default(CancellationToken)) + public async Task InspectImageAsync(string name, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(name)) { @@ -148,7 +148,7 @@ public Task BuildImageFromDockerfileAsync(ImageBuildParameters parameters, Strea return await _client.MakeRequestAsync(new[] { NoSuchImageHandler }, HttpMethod.Get, $"images/{name}/json", cancellationToken).ConfigureAwait(false); } - public async Task> GetImageHistoryAsync(string name, CancellationToken cancellationToken = default(CancellationToken)) + public async Task> GetImageHistoryAsync(string name, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(name)) { @@ -158,7 +158,7 @@ public Task BuildImageFromDockerfileAsync(ImageBuildParameters parameters, Strea return await _client.MakeRequestAsync(new[] { NoSuchImageHandler }, HttpMethod.Get, $"images/{name}/history", cancellationToken).ConfigureAwait(false); } - public Task PushImageAsync(string name, ImagePushParameters parameters, AuthConfig authConfig, IProgress progress, CancellationToken cancellationToken = default(CancellationToken)) + public Task PushImageAsync(string name, ImagePushParameters parameters, AuthConfig authConfig, IProgress progress, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(name)) { @@ -178,7 +178,7 @@ public Task BuildImageFromDockerfileAsync(ImageBuildParameters parameters, Strea cancellationToken); } - public Task TagImageAsync(string name, ImageTagParameters parameters, CancellationToken cancellationToken = default(CancellationToken)) + public Task TagImageAsync(string name, ImageTagParameters parameters, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(name)) { @@ -194,7 +194,7 @@ public Task BuildImageFromDockerfileAsync(ImageBuildParameters parameters, Strea return _client.MakeRequestAsync(new[] { NoSuchImageHandler }, HttpMethod.Post, $"images/{name}/tag", queryParameters, cancellationToken); } - public async Task>> DeleteImageAsync(string name, ImageDeleteParameters parameters, CancellationToken cancellationToken = default(CancellationToken)) + public async Task>> DeleteImageAsync(string name, ImageDeleteParameters parameters, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(name)) { @@ -210,7 +210,7 @@ public Task BuildImageFromDockerfileAsync(ImageBuildParameters parameters, Strea return await _client.MakeRequestAsync[]>(new[] { NoSuchImageHandler }, HttpMethod.Delete, $"images/{name}", queryParameters, cancellationToken).ConfigureAwait(false); } - public async Task> SearchImagesAsync(ImagesSearchParameters parameters, CancellationToken cancellationToken = default(CancellationToken)) + public async Task> SearchImagesAsync(ImagesSearchParameters parameters, CancellationToken cancellationToken = default) { if (parameters == null) { @@ -221,13 +221,13 @@ public Task BuildImageFromDockerfileAsync(ImageBuildParameters parameters, Strea return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "images/search", queryParameters, cancellationToken).ConfigureAwait(false); } - public async Task PruneImagesAsync(ImagesPruneParameters parameters, CancellationToken cancellationToken) + public async Task PruneImagesAsync(ImagesPruneParameters? parameters = null, CancellationToken cancellationToken = default) { var queryParameters = parameters == null ? null : new QueryString(parameters); return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "images/prune", queryParameters, cancellationToken).ConfigureAwait(false); } - public async Task CommitContainerChangesAsync(CommitContainerChangesParameters parameters, CancellationToken cancellationToken = default(CancellationToken)) + public async Task CommitContainerChangesAsync(CommitContainerChangesParameters parameters, CancellationToken cancellationToken = default) { if (parameters == null) { @@ -240,14 +240,14 @@ public async Task PruneImagesAsync(ImagesPruneParameters pa return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "commit", queryParameters, data, cancellationToken).ConfigureAwait(false); } - public Task SaveImageAsync(string name, CancellationToken cancellationToken = default(CancellationToken)) + public Task SaveImageAsync(string name, CancellationToken cancellationToken = default) { return SaveImagesAsync(new[] { name }, cancellationToken); } - public async Task SaveImagesAsync(string[] names, CancellationToken cancellationToken = default(CancellationToken)) + public async Task SaveImagesAsync(string[] names, CancellationToken cancellationToken = default) { - EnumerableQueryString queryString = null; + EnumerableQueryString? queryString = null; if (names?.Length > 0) { @@ -258,7 +258,7 @@ public async Task PruneImagesAsync(ImagesPruneParameters pa .ConfigureAwait(false); } - public Task LoadImageAsync(ImageLoadParameters parameters, Stream imageStream, IProgress progress, CancellationToken cancellationToken = default(CancellationToken)) + public Task LoadImageAsync(ImageLoadParameters parameters, Stream imageStream, IProgress progress, CancellationToken cancellationToken = default) { if (parameters == null) { diff --git a/src/Docker.DotNet/Endpoints/NetworkOperations.cs b/src/Docker.DotNet/Endpoints/NetworkOperations.cs index 01be4630..918fb907 100644 --- a/src/Docker.DotNet/Endpoints/NetworkOperations.cs +++ b/src/Docker.DotNet/Endpoints/NetworkOperations.cs @@ -17,7 +17,7 @@ internal NetworkOperations(DockerClient client) _client = client; } - async Task> INetworkOperations.ListNetworksAsync(NetworksListParameters parameters, CancellationToken cancellationToken) + async Task> INetworkOperations.ListNetworksAsync(NetworksListParameters? parameters, CancellationToken cancellationToken) { var queryParameters = parameters == null ? null : new QueryString(parameters); return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "networks", queryParameters, cancellationToken).ConfigureAwait(false); @@ -86,14 +86,14 @@ Task INetworkOperations.DisconnectNetworkAsync(string id, NetworkDisconnectParam return _client.MakeRequestAsync(new[] { NoSuchNetworkHandler }, HttpMethod.Post, $"networks/{id}/disconnect", null, data, cancellationToken); } - Task INetworkOperations.DeleteUnusedNetworksAsync(NetworksDeleteUnusedParameters parameters, CancellationToken cancellationToken) + Task INetworkOperations.DeleteUnusedNetworksAsync(NetworksDeleteUnusedParameters? parameters, CancellationToken cancellationToken) { return ((INetworkOperations)this).PruneNetworksAsync(parameters, cancellationToken); } - async Task INetworkOperations.PruneNetworksAsync(NetworksDeleteUnusedParameters parameters, CancellationToken cancellationToken) + async Task INetworkOperations.PruneNetworksAsync(NetworksDeleteUnusedParameters? parameters, CancellationToken cancellationToken) { var queryParameters = parameters == null ? null : new QueryString(parameters); - return await _client.MakeRequestAsync(null, HttpMethod.Post, "networks/prune", queryParameters, cancellationToken); + return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "networks/prune", queryParameters, cancellationToken); } } \ No newline at end of file diff --git a/src/Docker.DotNet/Endpoints/PluginOperations.cs b/src/Docker.DotNet/Endpoints/PluginOperations.cs index 5b3cdb64..fc82060f 100644 --- a/src/Docker.DotNet/Endpoints/PluginOperations.cs +++ b/src/Docker.DotNet/Endpoints/PluginOperations.cs @@ -19,13 +19,13 @@ internal PluginOperations(DockerClient client) _client = client; } - public async Task> ListPluginsAsync(PluginListParameters parameters, CancellationToken cancellationToken = default(CancellationToken)) + public async Task> ListPluginsAsync(PluginListParameters parameters, CancellationToken cancellationToken = default) { - IQueryString queryParameters = parameters == null ? null : new QueryString(parameters); + var queryParameters = parameters == null ? null : new QueryString(parameters); return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "plugins", queryParameters, cancellationToken).ConfigureAwait(false); } - public async Task> GetPrivilegesAsync(PluginGetPrivilegeParameters parameters, CancellationToken cancellationToken = default(CancellationToken)) + public async Task> GetPrivilegesAsync(PluginGetPrivilegeParameters parameters, CancellationToken cancellationToken = default) { if (parameters == null) { @@ -36,7 +36,7 @@ internal PluginOperations(DockerClient client) return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "plugins/privileges", query, cancellationToken).ConfigureAwait(false); } - public Task InstallPluginAsync(PluginInstallParameters parameters, IProgress progress, CancellationToken cancellationToken = default(CancellationToken)) + public Task InstallPluginAsync(PluginInstallParameters parameters, IProgress progress, CancellationToken cancellationToken = default) { if (parameters == null) { @@ -68,40 +68,40 @@ public async Task InspectPluginAsync(string name, CancellationToken canc return await _client.MakeRequestAsync(new[] { NoSuchPluginHandler }, HttpMethod.Get, $"plugins/{name}/json", cancellationToken); } - public Task RemovePluginAsync(string name, PluginRemoveParameters parameters, CancellationToken cancellationToken = default(CancellationToken)) + public Task RemovePluginAsync(string name, PluginRemoveParameters parameters, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException(nameof(name)); } - IQueryString queryParameters = parameters == null ? null : new QueryString(parameters); + var queryParameters = parameters == null ? null : new QueryString(parameters); return _client.MakeRequestAsync(new[] { NoSuchPluginHandler }, HttpMethod.Delete, $"plugins/{name}", queryParameters, cancellationToken); } - public Task EnablePluginAsync(string name, PluginEnableParameters parameters, CancellationToken cancellationToken = default(CancellationToken)) + public Task EnablePluginAsync(string name, PluginEnableParameters parameters, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException(nameof(name)); } - IQueryString queryParameters = parameters == null ? null : new QueryString(parameters); + var queryParameters = parameters == null ? null : new QueryString(parameters); return _client.MakeRequestAsync(new[] { NoSuchPluginHandler }, HttpMethod.Post, $"plugins/{name}/enable", queryParameters, cancellationToken); } - public Task DisablePluginAsync(string name, PluginDisableParameters parameters, CancellationToken cancellationToken = default(CancellationToken)) + public Task DisablePluginAsync(string name, PluginDisableParameters parameters, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException(nameof(name)); } - IQueryString queryParameters = parameters == null ? null : new QueryString(parameters); + var queryParameters = parameters == null ? null : new QueryString(parameters); return _client.MakeRequestAsync(new[] { NoSuchPluginHandler }, HttpMethod.Post, $"plugins/{name}/disable", queryParameters, cancellationToken); } - public Task UpgradePluginAsync(string name, PluginUpgradeParameters parameters, CancellationToken cancellationToken = default(CancellationToken)) + public Task UpgradePluginAsync(string name, PluginUpgradeParameters parameters, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(name)) { @@ -123,7 +123,7 @@ public async Task InspectPluginAsync(string name, CancellationToken canc return _client.MakeRequestAsync(new[] { NoSuchPluginHandler }, HttpMethod.Post, $"plugins/{name}/upgrade", query, data, cancellationToken); } - public Task CreatePluginAsync(PluginCreateParameters parameters, Stream plugin, CancellationToken cancellationToken = default(CancellationToken)) + public Task CreatePluginAsync(PluginCreateParameters parameters, Stream plugin, CancellationToken cancellationToken = default) { if (parameters == null) { @@ -140,7 +140,7 @@ public async Task InspectPluginAsync(string name, CancellationToken canc return _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, $"plugins/create", query, data, cancellationToken); } - public Task PushPluginAsync(string name, CancellationToken cancellationToken = default(CancellationToken)) + public Task PushPluginAsync(string name, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(name)) { @@ -150,7 +150,7 @@ public async Task InspectPluginAsync(string name, CancellationToken canc return _client.MakeRequestAsync(new[] { NoSuchPluginHandler }, HttpMethod.Post, $"plugins/{name}/push", cancellationToken); } - public Task ConfigurePluginAsync(string name, PluginConfigureParameters parameters, CancellationToken cancellationToken = default(CancellationToken)) + public Task ConfigurePluginAsync(string name, PluginConfigureParameters parameters, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(name)) { diff --git a/src/Docker.DotNet/Endpoints/SwarmOperations.cs b/src/Docker.DotNet/Endpoints/SwarmOperations.cs index 075d9558..763855bc 100644 --- a/src/Docker.DotNet/Endpoints/SwarmOperations.cs +++ b/src/Docker.DotNet/Endpoints/SwarmOperations.cs @@ -87,7 +87,7 @@ await _client.MakeRequestAsync( cancellationToken).ConfigureAwait(false); } - async Task ISwarmOperations.LeaveSwarmAsync(SwarmLeaveParameters parameters, CancellationToken cancellationToken) + async Task ISwarmOperations.LeaveSwarmAsync(SwarmLeaveParameters? parameters, CancellationToken cancellationToken) { var query = parameters == null ? null : new QueryString(parameters); await _client.MakeRequestAsync( @@ -108,7 +108,7 @@ await _client.MakeRequestAsync( cancellationToken).ConfigureAwait(false); } - async Task> ISwarmOperations.ListServicesAsync(ServiceListParameters parameters, CancellationToken cancellationToken) + async Task> ISwarmOperations.ListServicesAsync(ServiceListParameters? parameters, CancellationToken cancellationToken) { var queryParameters = parameters != null ? new QueryString(parameters) : null; return await _client @@ -139,7 +139,7 @@ async Task ISwarmOperations.UpdateServiceAsync(string id, return await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Post, $"services/{id}/update", query, body, RegistryAuthHeaders(parameters.RegistryAuth), cancellationToken).ConfigureAwait(false); } - public async Task GetServiceLogsAsync(string id, ServiceLogsParameters parameters, CancellationToken cancellationToken = default(CancellationToken)) + public async Task GetServiceLogsAsync(string id, ServiceLogsParameters parameters, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { @@ -157,7 +157,7 @@ async Task ISwarmOperations.UpdateServiceAsync(string id, .ConfigureAwait(false); } - public async Task GetServiceLogsAsync(string id, bool tty, ServiceLogsParameters parameters, CancellationToken cancellationToken = default(CancellationToken)) + public async Task GetServiceLogsAsync(string id, bool tty, ServiceLogsParameters parameters, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { diff --git a/src/Docker.DotNet/Endpoints/SystemOperations.cs b/src/Docker.DotNet/Endpoints/SystemOperations.cs index 6aab066f..af58eae4 100644 --- a/src/Docker.DotNet/Endpoints/SystemOperations.cs +++ b/src/Docker.DotNet/Endpoints/SystemOperations.cs @@ -9,7 +9,7 @@ internal SystemOperations(DockerClient client) _client = client; } - public Task AuthenticateAsync(AuthConfig authConfig, CancellationToken cancellationToken = default(CancellationToken)) + public Task AuthenticateAsync(AuthConfig authConfig, CancellationToken cancellationToken = default) { if (authConfig == null) { @@ -20,17 +20,17 @@ internal SystemOperations(DockerClient client) return _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "auth", null, data, cancellationToken); } - public async Task GetVersionAsync(CancellationToken cancellationToken = default(CancellationToken)) + public async Task GetVersionAsync(CancellationToken cancellationToken = default) { return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "version", cancellationToken).ConfigureAwait(false); } - public Task PingAsync(CancellationToken cancellationToken = default(CancellationToken)) + public Task PingAsync(CancellationToken cancellationToken = default) { return _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "_ping", cancellationToken); } - public async Task GetSystemInfoAsync(CancellationToken cancellationToken = default(CancellationToken)) + public async Task GetSystemInfoAsync(CancellationToken cancellationToken = default) { return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "info", cancellationToken).ConfigureAwait(false); } @@ -48,7 +48,7 @@ public async Task MonitorEventsAsync(ContainerEventsParameters parameter .ConfigureAwait(false); } - public Task MonitorEventsAsync(ContainerEventsParameters parameters, IProgress progress, CancellationToken cancellationToken = default(CancellationToken)) + public Task MonitorEventsAsync(ContainerEventsParameters parameters, IProgress progress, CancellationToken cancellationToken = default) { if (parameters == null) { diff --git a/src/Docker.DotNet/Endpoints/TasksOperations.cs b/src/Docker.DotNet/Endpoints/TasksOperations.cs index f97f83da..a8cf23f1 100644 --- a/src/Docker.DotNet/Endpoints/TasksOperations.cs +++ b/src/Docker.DotNet/Endpoints/TasksOperations.cs @@ -16,8 +16,9 @@ Task> ITasksOperations.ListAsync(CancellationToken cancellat async Task> ITasksOperations.ListAsync(TasksListParameters parameters, CancellationToken cancellationToken) { - IQueryString query = null; - if (parameters != null) { + IQueryString? query = null; + if (parameters != null) + { query = new QueryString(parameters); } diff --git a/src/Docker.DotNet/Endpoints/VolumeOperations.cs b/src/Docker.DotNet/Endpoints/VolumeOperations.cs index 6ff17330..ab1543f8 100644 --- a/src/Docker.DotNet/Endpoints/VolumeOperations.cs +++ b/src/Docker.DotNet/Endpoints/VolumeOperations.cs @@ -51,7 +51,7 @@ Task IVolumeOperations.RemoveAsync(string name, bool? force, CancellationToken c return _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Delete, $"volumes/{name}", cancellationToken); } - async Task IVolumeOperations.PruneAsync(VolumesPruneParameters parameters, CancellationToken cancellationToken) + async Task IVolumeOperations.PruneAsync(VolumesPruneParameters? parameters, CancellationToken cancellationToken) { var queryParameters = parameters == null ? null : new QueryString(parameters); return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "volumes/prune", queryParameters, cancellationToken); From 209db9791720dc9d97d094b6f46e3226a2221e14 Mon Sep 17 00:00:00 2001 From: campersau Date: Tue, 3 Mar 2026 09:43:20 +0100 Subject: [PATCH 02/11] Use CancellationToken cancellationToken = default in all *Operations Also fix obsolete messages --- src/Docker.DotNet/Endpoints/ContainerOperations.cs | 6 +++--- src/Docker.DotNet/Endpoints/IContainerOperations.cs | 6 +++--- src/Docker.DotNet/Endpoints/ISystemOperations.cs | 4 ++-- src/Docker.DotNet/Endpoints/PluginOperations.cs | 2 +- src/Docker.DotNet/Endpoints/SystemOperations.cs | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Docker.DotNet/Endpoints/ContainerOperations.cs b/src/Docker.DotNet/Endpoints/ContainerOperations.cs index f79f5d5b..ca3ba065 100644 --- a/src/Docker.DotNet/Endpoints/ContainerOperations.cs +++ b/src/Docker.DotNet/Endpoints/ContainerOperations.cs @@ -138,7 +138,7 @@ public async Task> InspectChangesAsync( return await _client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Get, $"containers/{id}/changes", cancellationToken).ConfigureAwait(false); } - public async Task ExportContainerAsync(string id, CancellationToken cancellationToken) + public async Task ExportContainerAsync(string id, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { @@ -149,7 +149,7 @@ public async Task ExportContainerAsync(string id, CancellationToken canc .ConfigureAwait(false); } - public async Task GetContainerStatsAsync(string id, ContainerStatsParameters parameters, CancellationToken cancellationToken) + public async Task GetContainerStatsAsync(string id, ContainerStatsParameters parameters, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { @@ -276,7 +276,7 @@ public Task KillContainerAsync(string id, ContainerKillParameters parameters, Ca return _client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Post, $"containers/{id}/kill", queryParameters, cancellationToken); } - public Task RenameContainerAsync(string id, ContainerRenameParameters parameters, CancellationToken cancellationToken) + public Task RenameContainerAsync(string id, ContainerRenameParameters parameters, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { diff --git a/src/Docker.DotNet/Endpoints/IContainerOperations.cs b/src/Docker.DotNet/Endpoints/IContainerOperations.cs index 20fa7e88..7c002239 100644 --- a/src/Docker.DotNet/Endpoints/IContainerOperations.cs +++ b/src/Docker.DotNet/Endpoints/IContainerOperations.cs @@ -148,8 +148,8 @@ public interface IContainerOperations /// One or more of the inputs was . /// The input is invalid or the daemon experienced an error. /// The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. - [Obsolete("Use 'Task GetContainerStatsAsync(string id, ContainerStatsParameters parameters, CancellationToken cancellationToken, IProgress progress)'")] - Task GetContainerStatsAsync(string id, ContainerStatsParameters parameters, CancellationToken cancellationToken); + [Obsolete("Use 'Task GetContainerStatsAsync(string id, ContainerStatsParameters parameters, IProgress progress, CancellationToken cancellationToken)'")] + Task GetContainerStatsAsync(string id, ContainerStatsParameters parameters, CancellationToken cancellationToken = default); /// /// Retrieves a live, raw stream of the container's resource usage statistics. @@ -257,7 +257,7 @@ public interface IContainerOperations /// One or more of the inputs was . /// The name is already in use, the input is invalid, or the daemon experienced an error. /// The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. - Task RenameContainerAsync(string id, ContainerRenameParameters parameters, CancellationToken cancellationToken); + Task RenameContainerAsync(string id, ContainerRenameParameters parameters, CancellationToken cancellationToken = default); /// /// Suspends a container. diff --git a/src/Docker.DotNet/Endpoints/ISystemOperations.cs b/src/Docker.DotNet/Endpoints/ISystemOperations.cs index 86f01dfe..8ee5811e 100644 --- a/src/Docker.DotNet/Endpoints/ISystemOperations.cs +++ b/src/Docker.DotNet/Endpoints/ISystemOperations.cs @@ -49,8 +49,8 @@ public interface ISystemOperations /// Task GetSystemInfoAsync(CancellationToken cancellationToken = default); - [Obsolete("Use 'Task MonitorEventsAsync(ContainerEventsParameters parameters, CancellationToken cancellationToken, IProgress progress)'")] - Task MonitorEventsAsync(ContainerEventsParameters parameters, CancellationToken cancellationToken); + [Obsolete("Use 'Task MonitorEventsAsync(ContainerEventsParameters parameters, IProgress progress, CancellationToken cancellationToken)'")] + Task MonitorEventsAsync(ContainerEventsParameters parameters, CancellationToken cancellationToken = default); /// /// Monitor events. diff --git a/src/Docker.DotNet/Endpoints/PluginOperations.cs b/src/Docker.DotNet/Endpoints/PluginOperations.cs index fc82060f..be9b36ef 100644 --- a/src/Docker.DotNet/Endpoints/PluginOperations.cs +++ b/src/Docker.DotNet/Endpoints/PluginOperations.cs @@ -58,7 +58,7 @@ public Task InstallPluginAsync(PluginInstallParameters parameters, IProgress InspectPluginAsync(string name, CancellationToken cancellationToken) + public async Task InspectPluginAsync(string name, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(name)) { diff --git a/src/Docker.DotNet/Endpoints/SystemOperations.cs b/src/Docker.DotNet/Endpoints/SystemOperations.cs index af58eae4..c5515380 100644 --- a/src/Docker.DotNet/Endpoints/SystemOperations.cs +++ b/src/Docker.DotNet/Endpoints/SystemOperations.cs @@ -35,7 +35,7 @@ public async Task GetSystemInfoAsync(CancellationToken cance return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "info", cancellationToken).ConfigureAwait(false); } - public async Task MonitorEventsAsync(ContainerEventsParameters parameters, CancellationToken cancellationToken) + public async Task MonitorEventsAsync(ContainerEventsParameters parameters, CancellationToken cancellationToken = default) { if (parameters == null) { From c26a57170e8c4e7021a3349e824749e5ffc2e6c2 Mon Sep 17 00:00:00 2001 From: campersau Date: Tue, 3 Mar 2026 13:55:23 +0100 Subject: [PATCH 03/11] Don't implement interfaces explicitly for consistency --- .../Endpoints/ConfigsOperations.cs | 8 ++--- .../Endpoints/NetworkOperations.cs | 16 +++++----- .../Endpoints/SecretsOperations.cs | 8 ++--- .../Endpoints/SwarmOperations.cs | 32 +++++++++---------- .../Endpoints/TasksOperations.cs | 8 ++--- .../Endpoints/VolumeOperations.cs | 12 +++---- 6 files changed, 42 insertions(+), 42 deletions(-) diff --git a/src/Docker.DotNet/Endpoints/ConfigsOperations.cs b/src/Docker.DotNet/Endpoints/ConfigsOperations.cs index e1af40e7..a98d6779 100644 --- a/src/Docker.DotNet/Endpoints/ConfigsOperations.cs +++ b/src/Docker.DotNet/Endpoints/ConfigsOperations.cs @@ -9,12 +9,12 @@ internal ConfigOperations(DockerClient client) _client = client; } - async Task> IConfigOperations.ListConfigsAsync(CancellationToken cancellationToken) + public async Task> ListConfigsAsync(CancellationToken cancellationToken = default) { return await _client.MakeRequestAsync>(_client.NoErrorHandlers, HttpMethod.Get, "configs", cancellationToken).ConfigureAwait(false); } - async Task IConfigOperations.CreateConfigAsync(SwarmCreateConfigParameters body, CancellationToken cancellationToken) + public async Task CreateConfigAsync(SwarmCreateConfigParameters body, CancellationToken cancellationToken = default) { if (body == null) { @@ -25,7 +25,7 @@ async Task IConfigOperations.CreateConfigAsync(SwarmC return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "configs/create", null, data, cancellationToken).ConfigureAwait(false); } - async Task IConfigOperations.InspectConfigAsync(string id, CancellationToken cancellationToken) + public async Task InspectConfigAsync(string id, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { @@ -35,7 +35,7 @@ async Task IConfigOperations.InspectConfigAsync(string id, Cancella return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, $"configs/{id}", cancellationToken).ConfigureAwait(false); } - Task IConfigOperations.RemoveConfigAsync(string id, CancellationToken cancellationToken) + public Task RemoveConfigAsync(string id, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { diff --git a/src/Docker.DotNet/Endpoints/NetworkOperations.cs b/src/Docker.DotNet/Endpoints/NetworkOperations.cs index 918fb907..92608815 100644 --- a/src/Docker.DotNet/Endpoints/NetworkOperations.cs +++ b/src/Docker.DotNet/Endpoints/NetworkOperations.cs @@ -17,13 +17,13 @@ internal NetworkOperations(DockerClient client) _client = client; } - async Task> INetworkOperations.ListNetworksAsync(NetworksListParameters? parameters, CancellationToken cancellationToken) + public async Task> ListNetworksAsync(NetworksListParameters? parameters = null, CancellationToken cancellationToken = default) { var queryParameters = parameters == null ? null : new QueryString(parameters); return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "networks", queryParameters, cancellationToken).ConfigureAwait(false); } - async Task INetworkOperations.InspectNetworkAsync(string id, CancellationToken cancellationToken) + public async Task InspectNetworkAsync(string id, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { @@ -33,7 +33,7 @@ async Task INetworkOperations.InspectNetworkAsync(string id, Ca return await _client.MakeRequestAsync(new[] { NoSuchNetworkHandler }, HttpMethod.Get, $"networks/{id}", cancellationToken).ConfigureAwait(false); } - Task INetworkOperations.DeleteNetworkAsync(string id, CancellationToken cancellationToken) + public Task DeleteNetworkAsync(string id, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { @@ -43,7 +43,7 @@ Task INetworkOperations.DeleteNetworkAsync(string id, CancellationToken cancella return _client.MakeRequestAsync(new[] { NoSuchNetworkHandler }, HttpMethod.Delete, $"networks/{id}", cancellationToken); } - async Task INetworkOperations.CreateNetworkAsync(NetworksCreateParameters parameters, CancellationToken cancellationToken) + public async Task CreateNetworkAsync(NetworksCreateParameters parameters, CancellationToken cancellationToken = default) { if (parameters == null) { @@ -54,7 +54,7 @@ async Task INetworkOperations.CreateNetworkAsync(Network return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "networks/create", null, data, cancellationToken).ConfigureAwait(false); } - Task INetworkOperations.ConnectNetworkAsync(string id, NetworkConnectParameters parameters, CancellationToken cancellationToken) + public Task ConnectNetworkAsync(string id, NetworkConnectParameters parameters, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { @@ -70,7 +70,7 @@ Task INetworkOperations.ConnectNetworkAsync(string id, NetworkConnectParameters return _client.MakeRequestAsync(new[] { NoSuchNetworkHandler }, HttpMethod.Post, $"networks/{id}/connect", null, data, cancellationToken); } - Task INetworkOperations.DisconnectNetworkAsync(string id, NetworkDisconnectParameters parameters, CancellationToken cancellationToken) + public Task DisconnectNetworkAsync(string id, NetworkDisconnectParameters parameters, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { @@ -86,12 +86,12 @@ Task INetworkOperations.DisconnectNetworkAsync(string id, NetworkDisconnectParam return _client.MakeRequestAsync(new[] { NoSuchNetworkHandler }, HttpMethod.Post, $"networks/{id}/disconnect", null, data, cancellationToken); } - Task INetworkOperations.DeleteUnusedNetworksAsync(NetworksDeleteUnusedParameters? parameters, CancellationToken cancellationToken) + public Task DeleteUnusedNetworksAsync(NetworksDeleteUnusedParameters? parameters = null, CancellationToken cancellationToken = default) { return ((INetworkOperations)this).PruneNetworksAsync(parameters, cancellationToken); } - async Task INetworkOperations.PruneNetworksAsync(NetworksDeleteUnusedParameters? parameters, CancellationToken cancellationToken) + public async Task PruneNetworksAsync(NetworksDeleteUnusedParameters? parameters = null, CancellationToken cancellationToken = default) { var queryParameters = parameters == null ? null : new QueryString(parameters); return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "networks/prune", queryParameters, cancellationToken); diff --git a/src/Docker.DotNet/Endpoints/SecretsOperations.cs b/src/Docker.DotNet/Endpoints/SecretsOperations.cs index f9862bcc..66350236 100644 --- a/src/Docker.DotNet/Endpoints/SecretsOperations.cs +++ b/src/Docker.DotNet/Endpoints/SecretsOperations.cs @@ -9,12 +9,12 @@ internal SecretsOperations(DockerClient client) _client = client; } - async Task> ISecretsOperations.ListAsync(CancellationToken cancellationToken) + public async Task> ListAsync(CancellationToken cancellationToken = default) { return await _client.MakeRequestAsync>(_client.NoErrorHandlers, HttpMethod.Get, "secrets", cancellationToken).ConfigureAwait(false); } - async Task ISecretsOperations.CreateAsync(SwarmSecretSpec body, CancellationToken cancellationToken) + public async Task CreateAsync(SwarmSecretSpec body, CancellationToken cancellationToken) { if (body == null) { @@ -25,7 +25,7 @@ async Task ISecretsOperations.CreateAsync(SwarmSecretSpec return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "secrets/create", null, data, cancellationToken).ConfigureAwait(false); } - async Task ISecretsOperations.InspectAsync(string id, CancellationToken cancellationToken) + public async Task InspectAsync(string id, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { @@ -35,7 +35,7 @@ async Task ISecretsOperations.InspectAsync(string id, CancellationToken return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, $"secrets/{id}", cancellationToken).ConfigureAwait(false); } - Task ISecretsOperations.DeleteAsync(string id, CancellationToken cancellationToken) + public Task DeleteAsync(string id, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { diff --git a/src/Docker.DotNet/Endpoints/SwarmOperations.cs b/src/Docker.DotNet/Endpoints/SwarmOperations.cs index 763855bc..78c2ff69 100644 --- a/src/Docker.DotNet/Endpoints/SwarmOperations.cs +++ b/src/Docker.DotNet/Endpoints/SwarmOperations.cs @@ -18,7 +18,7 @@ internal SwarmOperations(DockerClient client) _client = client; } - async Task ISwarmOperations.CreateServiceAsync(ServiceCreateParameters parameters, CancellationToken cancellationToken) + public async Task CreateServiceAsync(ServiceCreateParameters parameters, CancellationToken cancellationToken = default) { if (parameters == null) throw new ArgumentNullException(nameof(parameters)); @@ -26,12 +26,12 @@ async Task ISwarmOperations.CreateServiceAsync(ServiceCre return await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Post, "services/create", null, data, RegistryAuthHeaders(parameters.RegistryAuth), cancellationToken).ConfigureAwait(false); } - async Task ISwarmOperations.GetSwarmUnlockKeyAsync(CancellationToken cancellationToken) + public async Task GetSwarmUnlockKeyAsync(CancellationToken cancellationToken = default) { return await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Get, "swarm/unlockkey", cancellationToken).ConfigureAwait(false); } - async Task ISwarmOperations.InitSwarmAsync(SwarmInitParameters parameters, CancellationToken cancellationToken) + public async Task InitSwarmAsync(SwarmInitParameters parameters, CancellationToken cancellationToken = default) { var data = new JsonRequestContent(parameters, DockerClient.JsonSerializer); return await _client.MakeRequestAsync( @@ -53,19 +53,19 @@ async Task ISwarmOperations.InitSwarmAsync(SwarmInitParameters parameter cancellationToken).ConfigureAwait(false); } - async Task ISwarmOperations.InspectServiceAsync(string id, CancellationToken cancellationToken) + public async Task InspectServiceAsync(string id, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) throw new ArgumentNullException(nameof(id)); return await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Get, $"services/{id}", cancellationToken).ConfigureAwait(false); } - async Task ISwarmOperations.InspectSwarmAsync(CancellationToken cancellationToken) + public async Task InspectSwarmAsync(CancellationToken cancellationToken = default) { return await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Get, "swarm", cancellationToken).ConfigureAwait(false); } - async Task ISwarmOperations.JoinSwarmAsync(SwarmJoinParameters parameters, CancellationToken cancellationToken) + public async Task JoinSwarmAsync(SwarmJoinParameters parameters, CancellationToken cancellationToken = default) { var data = new JsonRequestContent(parameters, DockerClient.JsonSerializer); await _client.MakeRequestAsync( @@ -87,7 +87,7 @@ await _client.MakeRequestAsync( cancellationToken).ConfigureAwait(false); } - async Task ISwarmOperations.LeaveSwarmAsync(SwarmLeaveParameters? parameters, CancellationToken cancellationToken) + public async Task LeaveSwarmAsync(SwarmLeaveParameters? parameters = null, CancellationToken cancellationToken = default) { var query = parameters == null ? null : new QueryString(parameters); await _client.MakeRequestAsync( @@ -108,7 +108,7 @@ await _client.MakeRequestAsync( cancellationToken).ConfigureAwait(false); } - async Task> ISwarmOperations.ListServicesAsync(ServiceListParameters? parameters, CancellationToken cancellationToken) + public async Task> ListServicesAsync(ServiceListParameters? parameters = null, CancellationToken cancellationToken = default) { var queryParameters = parameters != null ? new QueryString(parameters) : null; return await _client @@ -116,20 +116,20 @@ async Task> ISwarmOperations.ListServicesAsync(Service .ConfigureAwait(false); } - async Task ISwarmOperations.RemoveServiceAsync(string id, CancellationToken cancellationToken) + public async Task RemoveServiceAsync(string id, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) throw new ArgumentNullException(nameof(id)); await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Delete, $"services/{id}", cancellationToken).ConfigureAwait(false); } - async Task ISwarmOperations.UnlockSwarmAsync(SwarmUnlockParameters parameters, CancellationToken cancellationToken) + public async Task UnlockSwarmAsync(SwarmUnlockParameters parameters, CancellationToken cancellationToken = default) { var body = new JsonRequestContent(parameters, DockerClient.JsonSerializer); await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Post, "swarm/unlock", null, body, cancellationToken).ConfigureAwait(false); } - async Task ISwarmOperations.UpdateServiceAsync(string id, ServiceUpdateParameters parameters, CancellationToken cancellationToken) + public async Task UpdateServiceAsync(string id, ServiceUpdateParameters parameters, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) throw new ArgumentNullException(nameof(id)); if (parameters == null) throw new ArgumentNullException(nameof(parameters)); @@ -176,7 +176,7 @@ public async Task GetServiceLogsAsync(string id, bool tty, Se return new MultiplexedStream(response, !tty); } - async Task ISwarmOperations.UpdateSwarmAsync(SwarmUpdateParameters parameters, CancellationToken cancellationToken) + public async Task UpdateSwarmAsync(SwarmUpdateParameters parameters, CancellationToken cancellationToken = default) { var query = new QueryString(parameters); var body = new JsonRequestContent(parameters.Spec, DockerClient.JsonSerializer); @@ -215,18 +215,18 @@ private IDictionary RegistryAuthHeaders(AuthConfig authConfig) }; } - async Task> ISwarmOperations.ListNodesAsync(CancellationToken cancellationToken) + public async Task> ListNodesAsync(CancellationToken cancellationToken = default) { return await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Get, "nodes", cancellationToken).ConfigureAwait(false); } - async Task ISwarmOperations.InspectNodeAsync(string id, CancellationToken cancellationToken) + public async Task InspectNodeAsync(string id, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) throw new ArgumentNullException(nameof(id)); return await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Get, $"nodes/{id}", cancellationToken).ConfigureAwait(false); } - async Task ISwarmOperations.RemoveNodeAsync(string id, bool force, CancellationToken cancellationToken) + public async Task RemoveNodeAsync(string id, bool force, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) throw new ArgumentNullException(nameof(id)); var parameters = new NodeRemoveParameters { Force = force }; @@ -234,7 +234,7 @@ async Task ISwarmOperations.RemoveNodeAsync(string id, bool force, CancellationT await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Delete, $"nodes/{id}", query, cancellationToken).ConfigureAwait(false); } - async Task ISwarmOperations.UpdateNodeAsync(string id, ulong version, NodeUpdateParameters parameters, CancellationToken cancellationToken) + public async Task UpdateNodeAsync(string id, ulong version, NodeUpdateParameters parameters, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) throw new ArgumentNullException(nameof(id)); var query = new EnumerableQueryString("version", new[] { version.ToString() }); diff --git a/src/Docker.DotNet/Endpoints/TasksOperations.cs b/src/Docker.DotNet/Endpoints/TasksOperations.cs index a8cf23f1..10202c9b 100644 --- a/src/Docker.DotNet/Endpoints/TasksOperations.cs +++ b/src/Docker.DotNet/Endpoints/TasksOperations.cs @@ -9,12 +9,12 @@ internal TasksOperations(DockerClient client) _client = client; } - Task> ITasksOperations.ListAsync(CancellationToken cancellationToken) + public Task> ListAsync(CancellationToken cancellationToken = default) { - return ((ITasksOperations)this).ListAsync(null, cancellationToken); + return ListAsync(null, cancellationToken); } - async Task> ITasksOperations.ListAsync(TasksListParameters parameters, CancellationToken cancellationToken) + public async Task> ListAsync(TasksListParameters parameters, CancellationToken cancellationToken = default) { IQueryString? query = null; if (parameters != null) @@ -25,7 +25,7 @@ async Task> ITasksOperations.ListAsync(TasksListParameters p return await _client.MakeRequestAsync>(_client.NoErrorHandlers, HttpMethod.Get, "tasks", query, cancellationToken).ConfigureAwait(false); } - async Task ITasksOperations.InspectAsync(string id, CancellationToken cancellationToken) + public async Task InspectAsync(string id, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { diff --git a/src/Docker.DotNet/Endpoints/VolumeOperations.cs b/src/Docker.DotNet/Endpoints/VolumeOperations.cs index ab1543f8..44e8091c 100644 --- a/src/Docker.DotNet/Endpoints/VolumeOperations.cs +++ b/src/Docker.DotNet/Endpoints/VolumeOperations.cs @@ -9,18 +9,18 @@ internal VolumeOperations(DockerClient client) _client = client; } - async Task IVolumeOperations.ListAsync(CancellationToken cancellationToken) + public async Task ListAsync(CancellationToken cancellationToken = default) { return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "volumes", cancellationToken).ConfigureAwait(false); } - async Task IVolumeOperations.ListAsync(VolumesListParameters parameters, CancellationToken cancellationToken) + public async Task ListAsync(VolumesListParameters parameters, CancellationToken cancellationToken = default) { var queryParameters = parameters == null ? null : new QueryString(parameters); return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "volumes", queryParameters, null, cancellationToken).ConfigureAwait(false); } - async Task IVolumeOperations.CreateAsync(VolumesCreateParameters parameters, CancellationToken cancellationToken) + public async Task CreateAsync(VolumesCreateParameters parameters, CancellationToken cancellationToken = default) { if (parameters == null) { @@ -31,7 +31,7 @@ async Task IVolumeOperations.CreateAsync(VolumesCreateParameters return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "volumes/create", null, data, cancellationToken); } - async Task IVolumeOperations.InspectAsync(string name, CancellationToken cancellationToken) + public async Task InspectAsync(string name, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(name)) { @@ -41,7 +41,7 @@ async Task IVolumeOperations.InspectAsync(string name, Cancellat return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, $"volumes/{name}", cancellationToken).ConfigureAwait(false); } - Task IVolumeOperations.RemoveAsync(string name, bool? force, CancellationToken cancellationToken) + public Task RemoveAsync(string name, bool? force = null, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(name)) { @@ -51,7 +51,7 @@ Task IVolumeOperations.RemoveAsync(string name, bool? force, CancellationToken c return _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Delete, $"volumes/{name}", cancellationToken); } - async Task IVolumeOperations.PruneAsync(VolumesPruneParameters? parameters, CancellationToken cancellationToken) + public async Task PruneAsync(VolumesPruneParameters? parameters = null, CancellationToken cancellationToken = default) { var queryParameters = parameters == null ? null : new QueryString(parameters); return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "volumes/prune", queryParameters, cancellationToken); From fd53f8b7a4e27330079336565343d723fed08fd8 Mon Sep 17 00:00:00 2001 From: campersau Date: Tue, 3 Mar 2026 14:24:30 +0100 Subject: [PATCH 04/11] Make parameters nullable if they can be by their implementation --- src/Docker.DotNet/Endpoints/ContainerOperations.cs | 3 +-- src/Docker.DotNet/Endpoints/ExecOperations.cs | 2 +- src/Docker.DotNet/Endpoints/IContainerOperations.cs | 2 +- src/Docker.DotNet/Endpoints/IImageOperations.cs | 6 +++--- src/Docker.DotNet/Endpoints/IPluginOperations.cs | 8 ++++---- src/Docker.DotNet/Endpoints/ISwarmOperations.cs | 2 +- src/Docker.DotNet/Endpoints/ITasksOperations.cs | 2 +- src/Docker.DotNet/Endpoints/IVolumeOperations.cs | 2 +- src/Docker.DotNet/Endpoints/ImageOperations.cs | 12 ++++++------ src/Docker.DotNet/Endpoints/PluginOperations.cs | 8 ++++---- src/Docker.DotNet/Endpoints/SwarmOperations.cs | 4 ++-- src/Docker.DotNet/Endpoints/SystemOperations.cs | 1 + src/Docker.DotNet/Endpoints/TasksOperations.cs | 2 +- src/Docker.DotNet/Endpoints/VolumeOperations.cs | 2 +- 14 files changed, 28 insertions(+), 28 deletions(-) diff --git a/src/Docker.DotNet/Endpoints/ContainerOperations.cs b/src/Docker.DotNet/Endpoints/ContainerOperations.cs index ca3ba065..38d890ea 100644 --- a/src/Docker.DotNet/Endpoints/ContainerOperations.cs +++ b/src/Docker.DotNet/Endpoints/ContainerOperations.cs @@ -208,7 +208,7 @@ public Task ResizeContainerTtyAsync(string id, ContainerResizeParameters paramet return _client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Post, $"containers/{id}/resize", queryParameters, cancellationToken); } - public async Task StartContainerAsync(string id, ContainerStartParameters? parameters, CancellationToken cancellationToken = default) + public async Task StartContainerAsync(string id, ContainerStartParameters? parameters = null, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { @@ -253,7 +253,6 @@ public Task RestartContainerAsync(string id, ContainerRestartParameters paramete throw new ArgumentNullException(nameof(parameters)); } - IQueryString queryParameters = new QueryString(parameters); // since specified wait timespan can be greater than HttpClient's default, we set the // client timeout to infinite and provide a cancellation token. diff --git a/src/Docker.DotNet/Endpoints/ExecOperations.cs b/src/Docker.DotNet/Endpoints/ExecOperations.cs index 221ff6e2..593849dc 100644 --- a/src/Docker.DotNet/Endpoints/ExecOperations.cs +++ b/src/Docker.DotNet/Endpoints/ExecOperations.cs @@ -58,6 +58,6 @@ public async Task StartContainerExecAsync(string id, Containe var response = await _client.MakeRequestForHijackedStreamAsync([NoSuchContainerHandler], HttpMethod.Post, $"exec/{id}/start", null, data, null, cancellationToken) .ConfigureAwait(false); - return new MultiplexedStream(response, !parameters.TTY); + return new MultiplexedStream(response, parameters.TTY); } } \ No newline at end of file diff --git a/src/Docker.DotNet/Endpoints/IContainerOperations.cs b/src/Docker.DotNet/Endpoints/IContainerOperations.cs index 7c002239..0c941d91 100644 --- a/src/Docker.DotNet/Endpoints/IContainerOperations.cs +++ b/src/Docker.DotNet/Endpoints/IContainerOperations.cs @@ -196,7 +196,7 @@ public interface IContainerOperations /// One or more of the inputs was . /// The input is invalid or the daemon experienced an error. /// The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. - Task StartContainerAsync(string id, ContainerStartParameters parameters, CancellationToken cancellationToken = default); + Task StartContainerAsync(string id, ContainerStartParameters? parameters = null, CancellationToken cancellationToken = default); /// /// Stops a container. diff --git a/src/Docker.DotNet/Endpoints/IImageOperations.cs b/src/Docker.DotNet/Endpoints/IImageOperations.cs index 3ad6afbb..c7dcb5bf 100644 --- a/src/Docker.DotNet/Endpoints/IImageOperations.cs +++ b/src/Docker.DotNet/Endpoints/IImageOperations.cs @@ -42,7 +42,7 @@ public interface IImageOperations /// One or more of the inputs was . /// The input is invalid or the daemon experienced an error. /// The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. - Task BuildImageFromDockerfileAsync(ImageBuildParameters parameters, Stream contents, IEnumerable authConfigs, IDictionary headers, IProgress progress, CancellationToken cancellationToken = default); + Task BuildImageFromDockerfileAsync(ImageBuildParameters parameters, Stream contents, IEnumerable? authConfigs, IDictionary? headers, IProgress progress, CancellationToken cancellationToken = default); /// /// Builds an image from a tar archive that contains a Dockerfile. @@ -99,7 +99,7 @@ public interface IImageOperations /// current auth status, the input is invalid, or the daemon experienced an error. /// /// The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. - Task CreateImageAsync(ImagesCreateParameters parameters, AuthConfig authConfig, IDictionary headers, IProgress progress, CancellationToken cancellationToken = default); + Task CreateImageAsync(ImagesCreateParameters parameters, AuthConfig authConfig, IDictionary? headers, IProgress progress, CancellationToken cancellationToken = default); /// /// Creates an image by importing it from a stream. @@ -134,7 +134,7 @@ public interface IImageOperations /// current auth status, the input is invalid, or the daemon experienced an error. /// /// The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. - Task CreateImageAsync(ImagesCreateParameters parameters, Stream imageStream, AuthConfig authConfig, IDictionary headers, IProgress progress, CancellationToken cancellationToken = default); + Task CreateImageAsync(ImagesCreateParameters parameters, Stream? imageStream, AuthConfig authConfig, IDictionary? headers, IProgress progress, CancellationToken cancellationToken = default); /// /// Retrieves low-level information about an image. diff --git a/src/Docker.DotNet/Endpoints/IPluginOperations.cs b/src/Docker.DotNet/Endpoints/IPluginOperations.cs index 9d289299..03ea9357 100644 --- a/src/Docker.DotNet/Endpoints/IPluginOperations.cs +++ b/src/Docker.DotNet/Endpoints/IPluginOperations.cs @@ -15,7 +15,7 @@ public interface IPluginOperations /// 200 - No error. /// 500 - Server error. /// - Task> ListPluginsAsync(PluginListParameters parameters, CancellationToken cancellationToken = default); + Task> ListPluginsAsync(PluginListParameters? parameters = null, CancellationToken cancellationToken = default); /// /// Get plugin privileges. @@ -73,7 +73,7 @@ public interface IPluginOperations /// 500 - Server error. /// /// The name of the plugin. The `:latest` tag is optional, and is the default if omitted. - Task RemovePluginAsync(string name, PluginRemoveParameters parameters, CancellationToken cancellationToken = default); + Task RemovePluginAsync(string name, PluginRemoveParameters? parameters = null, CancellationToken cancellationToken = default); /// /// Enable a plugin. @@ -88,7 +88,7 @@ public interface IPluginOperations /// 500 - Server error. /// /// The name of the plugin. The `:latest` tag is optional, and is the default if omitted. - Task EnablePluginAsync(string name, PluginEnableParameters parameters, CancellationToken cancellationToken = default); + Task EnablePluginAsync(string name, PluginEnableParameters? parameters = null, CancellationToken cancellationToken = default); /// /// Disable a plugin. @@ -103,7 +103,7 @@ public interface IPluginOperations /// 500 - Server error. /// /// The name of the plugin. The `:latest` tag is optional, and is the default if omitted. - Task DisablePluginAsync(string name, PluginDisableParameters parameters, CancellationToken cancellationToken = default); + Task DisablePluginAsync(string name, PluginDisableParameters? parameters = null, CancellationToken cancellationToken = default); /// /// Upgrade a plugin. diff --git a/src/Docker.DotNet/Endpoints/ISwarmOperations.cs b/src/Docker.DotNet/Endpoints/ISwarmOperations.cs index a230979c..1648e5ee 100644 --- a/src/Docker.DotNet/Endpoints/ISwarmOperations.cs +++ b/src/Docker.DotNet/Endpoints/ISwarmOperations.cs @@ -220,7 +220,7 @@ public interface ISwarmOperations /// 500 - Server error. /// 503 - Node is not part of a swarm. /// - Task RemoveNodeAsync(string id, bool force, CancellationToken cancellationToken = default); + Task RemoveNodeAsync(string id, bool? force = null, CancellationToken cancellationToken = default); /// /// Update node. diff --git a/src/Docker.DotNet/Endpoints/ITasksOperations.cs b/src/Docker.DotNet/Endpoints/ITasksOperations.cs index a47e0578..8b488585 100644 --- a/src/Docker.DotNet/Endpoints/ITasksOperations.cs +++ b/src/Docker.DotNet/Endpoints/ITasksOperations.cs @@ -25,7 +25,7 @@ public interface ITasksOperations /// 200 - No error. /// 500 - Server error. /// - Task> ListAsync(TasksListParameters parameters, CancellationToken cancellationToken = default); + Task> ListAsync(TasksListParameters? parameters = null, CancellationToken cancellationToken = default); /// /// Inspect a task diff --git a/src/Docker.DotNet/Endpoints/IVolumeOperations.cs b/src/Docker.DotNet/Endpoints/IVolumeOperations.cs index b6da37df..c87b458e 100644 --- a/src/Docker.DotNet/Endpoints/IVolumeOperations.cs +++ b/src/Docker.DotNet/Endpoints/IVolumeOperations.cs @@ -18,7 +18,7 @@ public interface IVolumeOperations /// 200 - No error. /// 500 - Server error. /// - Task ListAsync(VolumesListParameters parameters, CancellationToken cancellationToken = default); + Task ListAsync(VolumesListParameters? parameters = null, CancellationToken cancellationToken = default); /// /// Create a volume. diff --git a/src/Docker.DotNet/Endpoints/ImageOperations.cs b/src/Docker.DotNet/Endpoints/ImageOperations.cs index e2a86ef0..e28828b8 100644 --- a/src/Docker.DotNet/Endpoints/ImageOperations.cs +++ b/src/Docker.DotNet/Endpoints/ImageOperations.cs @@ -56,7 +56,7 @@ public async Task BuildImageFromDockerfileAsync(Stream contents, ImageBu .ConfigureAwait(false); } - public Task BuildImageFromDockerfileAsync(ImageBuildParameters parameters, Stream contents, IEnumerable authConfigs, IDictionary headers, IProgress progress, CancellationToken cancellationToken = default) + public Task BuildImageFromDockerfileAsync(ImageBuildParameters parameters, Stream contents, IEnumerable? authConfigs, IDictionary? headers, IProgress progress, CancellationToken cancellationToken = default) { if (contents == null) { @@ -92,15 +92,15 @@ public Task BuildImageFromDockerfileAsync(ImageBuildParameters parameters, Strea public Task CreateImageAsync(ImagesCreateParameters parameters, AuthConfig authConfig, IProgress progress, CancellationToken cancellationToken = default) { - return CreateImageAsync(parameters, null, authConfig, progress, cancellationToken); + return CreateImageAsync(parameters, null, authConfig, null, progress, cancellationToken); } - public Task CreateImageAsync(ImagesCreateParameters parameters, AuthConfig authConfig, IDictionary headers, IProgress progress, CancellationToken cancellationToken = default) + public Task CreateImageAsync(ImagesCreateParameters parameters, AuthConfig authConfig, IDictionary? headers, IProgress progress, CancellationToken cancellationToken = default) { return CreateImageAsync(parameters, null, authConfig, headers, progress, cancellationToken); } - public Task CreateImageAsync(ImagesCreateParameters parameters, Stream? imageStream, AuthConfig authConfig, IProgress progress, CancellationToken cancellationToken = default) + public Task CreateImageAsync(ImagesCreateParameters parameters, Stream imageStream, AuthConfig authConfig, IProgress progress, CancellationToken cancellationToken = default) { return CreateImageAsync(parameters, imageStream, authConfig, null, progress, cancellationToken); } @@ -280,7 +280,7 @@ public Task LoadImageAsync(ImageLoadParameters parameters, Stream imageStream, I cancellationToken); } - private Dictionary RegistryAuthHeaders(AuthConfig authConfig) + private static Dictionary RegistryAuthHeaders(AuthConfig authConfig) { return new Dictionary { @@ -295,7 +295,7 @@ private Dictionary RegistryAuthHeaders(AuthConfig authConfig) }; } - private Dictionary RegistryConfigHeaders(IEnumerable? authConfig) + private static Dictionary RegistryConfigHeaders(IEnumerable? authConfig) { var configDictionary = (authConfig ?? Array.Empty()).ToDictionary(e => e.ServerAddress, e => e); return new Dictionary diff --git a/src/Docker.DotNet/Endpoints/PluginOperations.cs b/src/Docker.DotNet/Endpoints/PluginOperations.cs index be9b36ef..97760834 100644 --- a/src/Docker.DotNet/Endpoints/PluginOperations.cs +++ b/src/Docker.DotNet/Endpoints/PluginOperations.cs @@ -19,7 +19,7 @@ internal PluginOperations(DockerClient client) _client = client; } - public async Task> ListPluginsAsync(PluginListParameters parameters, CancellationToken cancellationToken = default) + public async Task> ListPluginsAsync(PluginListParameters? parameters = null, CancellationToken cancellationToken = default) { var queryParameters = parameters == null ? null : new QueryString(parameters); return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "plugins", queryParameters, cancellationToken).ConfigureAwait(false); @@ -68,7 +68,7 @@ public async Task InspectPluginAsync(string name, CancellationToken canc return await _client.MakeRequestAsync(new[] { NoSuchPluginHandler }, HttpMethod.Get, $"plugins/{name}/json", cancellationToken); } - public Task RemovePluginAsync(string name, PluginRemoveParameters parameters, CancellationToken cancellationToken = default) + public Task RemovePluginAsync(string name, PluginRemoveParameters? parameters = null, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(name)) { @@ -79,7 +79,7 @@ public Task RemovePluginAsync(string name, PluginRemoveParameters parameters, Ca return _client.MakeRequestAsync(new[] { NoSuchPluginHandler }, HttpMethod.Delete, $"plugins/{name}", queryParameters, cancellationToken); } - public Task EnablePluginAsync(string name, PluginEnableParameters parameters, CancellationToken cancellationToken = default) + public Task EnablePluginAsync(string name, PluginEnableParameters? parameters = null, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(name)) { @@ -90,7 +90,7 @@ public Task EnablePluginAsync(string name, PluginEnableParameters parameters, Ca return _client.MakeRequestAsync(new[] { NoSuchPluginHandler }, HttpMethod.Post, $"plugins/{name}/enable", queryParameters, cancellationToken); } - public Task DisablePluginAsync(string name, PluginDisableParameters parameters, CancellationToken cancellationToken = default) + public Task DisablePluginAsync(string name, PluginDisableParameters? parameters = null, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(name)) { diff --git a/src/Docker.DotNet/Endpoints/SwarmOperations.cs b/src/Docker.DotNet/Endpoints/SwarmOperations.cs index 78c2ff69..0f612f03 100644 --- a/src/Docker.DotNet/Endpoints/SwarmOperations.cs +++ b/src/Docker.DotNet/Endpoints/SwarmOperations.cs @@ -199,7 +199,7 @@ await _client.MakeRequestAsync( cancellationToken).ConfigureAwait(false); } - private IDictionary RegistryAuthHeaders(AuthConfig authConfig) + private static Dictionary RegistryAuthHeaders(AuthConfig? authConfig) { if (authConfig == null) { @@ -226,7 +226,7 @@ public async Task InspectNodeAsync(string id, CancellationToke return await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Get, $"nodes/{id}", cancellationToken).ConfigureAwait(false); } - public async Task RemoveNodeAsync(string id, bool force, CancellationToken cancellationToken = default) + public async Task RemoveNodeAsync(string id, bool? force = null, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) throw new ArgumentNullException(nameof(id)); var parameters = new NodeRemoveParameters { Force = force }; diff --git a/src/Docker.DotNet/Endpoints/SystemOperations.cs b/src/Docker.DotNet/Endpoints/SystemOperations.cs index c5515380..3b1c0d92 100644 --- a/src/Docker.DotNet/Endpoints/SystemOperations.cs +++ b/src/Docker.DotNet/Endpoints/SystemOperations.cs @@ -15,6 +15,7 @@ public Task AuthenticateAsync(AuthConfig authConfig, CancellationToken cancellat { throw new ArgumentNullException(nameof(authConfig)); } + var data = new JsonRequestContent(authConfig, DockerClient.JsonSerializer); return _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "auth", null, data, cancellationToken); diff --git a/src/Docker.DotNet/Endpoints/TasksOperations.cs b/src/Docker.DotNet/Endpoints/TasksOperations.cs index 10202c9b..18a10c32 100644 --- a/src/Docker.DotNet/Endpoints/TasksOperations.cs +++ b/src/Docker.DotNet/Endpoints/TasksOperations.cs @@ -14,7 +14,7 @@ public Task> ListAsync(CancellationToken cancellationToken = return ListAsync(null, cancellationToken); } - public async Task> ListAsync(TasksListParameters parameters, CancellationToken cancellationToken = default) + public async Task> ListAsync(TasksListParameters? parameters = null, CancellationToken cancellationToken = default) { IQueryString? query = null; if (parameters != null) diff --git a/src/Docker.DotNet/Endpoints/VolumeOperations.cs b/src/Docker.DotNet/Endpoints/VolumeOperations.cs index 44e8091c..b7e1b6e3 100644 --- a/src/Docker.DotNet/Endpoints/VolumeOperations.cs +++ b/src/Docker.DotNet/Endpoints/VolumeOperations.cs @@ -14,7 +14,7 @@ public async Task ListAsync(CancellationToken cancellationT return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "volumes", cancellationToken).ConfigureAwait(false); } - public async Task ListAsync(VolumesListParameters parameters, CancellationToken cancellationToken = default) + public async Task ListAsync(VolumesListParameters? parameters = null, CancellationToken cancellationToken = default) { var queryParameters = parameters == null ? null : new QueryString(parameters); return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "volumes", queryParameters, null, cancellationToken).ConfigureAwait(false); From 9881e088e4d6f99dab856cca4180a8cd60e256f1 Mon Sep 17 00:00:00 2001 From: campersau Date: Tue, 3 Mar 2026 14:39:41 +0100 Subject: [PATCH 05/11] Make code consistent --- .../Endpoints/ContainerOperations.cs | 29 +++++++++---------- .../Endpoints/ImageOperations.cs | 20 ++++++------- .../Endpoints/PluginOperations.cs | 14 ++++----- .../Endpoints/SwarmOperations.cs | 26 ++++++++--------- .../Endpoints/SystemOperations.cs | 4 +-- .../Endpoints/TasksOperations.cs | 9 ++---- .../Endpoints/VolumeOperations.cs | 4 +-- 7 files changed, 50 insertions(+), 56 deletions(-) diff --git a/src/Docker.DotNet/Endpoints/ContainerOperations.cs b/src/Docker.DotNet/Endpoints/ContainerOperations.cs index 38d890ea..6998cd3d 100644 --- a/src/Docker.DotNet/Endpoints/ContainerOperations.cs +++ b/src/Docker.DotNet/Endpoints/ContainerOperations.cs @@ -32,26 +32,25 @@ public async Task> ListContainersAsync(ContainersLi throw new ArgumentNullException(nameof(parameters)); } - IQueryString queryParameters = new QueryString(parameters); + var queryParameters = new QueryString(parameters); return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "containers/json", queryParameters, cancellationToken).ConfigureAwait(false); } public async Task CreateContainerAsync(CreateContainerParameters parameters, CancellationToken cancellationToken = default) { - IQueryString? qs = null; - if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } + IQueryString? queryParameters = null; if (!string.IsNullOrEmpty(parameters.Name)) { - qs = new QueryString(parameters); + queryParameters = new QueryString(parameters); } var data = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - return await _client.MakeRequestAsync(new[] { NoSuchImageHandler }, HttpMethod.Post, "containers/create", qs, data, cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync(new[] { NoSuchImageHandler }, HttpMethod.Post, "containers/create", queryParameters, data, cancellationToken).ConfigureAwait(false); } public async Task InspectContainerAsync(string id, CancellationToken cancellationToken = default) @@ -76,8 +75,8 @@ public async Task InspectContainerAsync(string id, Con throw new ArgumentNullException(nameof(parameters)); } - IQueryString queryString = new QueryString(parameters); - return await _client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Get, $"containers/{id}/json", queryString, cancellationToken).ConfigureAwait(false); + var queryParameters = new QueryString(parameters); + return await _client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Get, $"containers/{id}/json", queryParameters, cancellationToken).ConfigureAwait(false); } public async Task ListProcessesAsync(string id, ContainerListProcessesParameters parameters, CancellationToken cancellationToken = default) @@ -92,7 +91,7 @@ public async Task ListProcessesAsync(string id, Cont throw new ArgumentNullException(nameof(parameters)); } - IQueryString queryParameters = new QueryString(parameters); + var queryParameters = new QueryString(parameters); return await _client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Get, $"containers/{id}/top", queryParameters, cancellationToken).ConfigureAwait(false); } @@ -161,7 +160,7 @@ public async Task GetContainerStatsAsync(string id, ContainerStatsParame throw new ArgumentNullException(nameof(parameters)); } - IQueryString queryParameters = new QueryString(parameters); + var queryParameters = new QueryString(parameters); return await _client.MakeRequestForStreamAsync(new[] { NoSuchContainerHandler }, HttpMethod.Get, $"containers/{id}/stats", queryParameters, null, null, cancellationToken) .ConfigureAwait(false); @@ -184,7 +183,7 @@ public Task GetContainerStatsAsync(string id, ContainerStatsParameters parameter throw new ArgumentNullException(nameof(progress)); } - IQueryString queryParameters = new QueryString(parameters); + var queryParameters = new QueryString(parameters); return StreamUtil.MonitorStreamForMessagesAsync( _client.MakeRequestForStreamAsync(new[] { NoSuchContainerHandler }, HttpMethod.Get, $"containers/{id}/stats", queryParameters, null, null, cancellationToken), @@ -253,7 +252,7 @@ public Task RestartContainerAsync(string id, ContainerRestartParameters paramete throw new ArgumentNullException(nameof(parameters)); } - IQueryString queryParameters = new QueryString(parameters); + var queryParameters = new QueryString(parameters); // since specified wait timespan can be greater than HttpClient's default, we set the // client timeout to infinite and provide a cancellation token. return _client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Post, $"containers/{id}/restart", queryParameters, null, null, TimeSpan.FromMilliseconds(Timeout.Infinite), cancellationToken); @@ -271,7 +270,7 @@ public Task KillContainerAsync(string id, ContainerKillParameters parameters, Ca throw new ArgumentNullException(nameof(parameters)); } - IQueryString queryParameters = new QueryString(parameters); + var queryParameters = new QueryString(parameters); return _client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Post, $"containers/{id}/kill", queryParameters, cancellationToken); } @@ -351,7 +350,7 @@ public Task RemoveContainerAsync(string id, ContainerRemoveParameters parameters throw new ArgumentNullException(nameof(parameters)); } - IQueryString queryParameters = new QueryString(parameters); + var queryParameters = new QueryString(parameters); return _client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Delete, $"containers/{id}", queryParameters, cancellationToken); } @@ -369,7 +368,7 @@ public async Task GetArchiveFromContainerAsync(string Stream? stream; - IQueryString queryParameters = new QueryString(parameters); + var queryParameters = new QueryString(parameters); var response = await _client.MakeRequestForStreamedResponseAsync(new[] { NoSuchContainerHandler }, statOnly ? HttpMethod.Head : HttpMethod.Get, $"containers/{id}/archive", queryParameters, cancellationToken); @@ -408,7 +407,7 @@ public Task ExtractArchiveToContainerAsync(string id, CopyToContainerParameters throw new ArgumentNullException(nameof(parameters)); } - IQueryString queryParameters = new QueryString(parameters); + var queryParameters = new QueryString(parameters); var data = new BinaryRequestContent(stream, "application/x-tar"); return _client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Put, $"containers/{id}/archive", queryParameters, data, cancellationToken); diff --git a/src/Docker.DotNet/Endpoints/ImageOperations.cs b/src/Docker.DotNet/Endpoints/ImageOperations.cs index e28828b8..24a13f60 100644 --- a/src/Docker.DotNet/Endpoints/ImageOperations.cs +++ b/src/Docker.DotNet/Endpoints/ImageOperations.cs @@ -32,7 +32,7 @@ public async Task> ListImagesAsync(ImagesListParameter throw new ArgumentNullException(nameof(parameters)); } - IQueryString queryParameters = new QueryString(parameters); + var queryParameters = new QueryString(parameters); return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "images/json", queryParameters, cancellationToken).ConfigureAwait(false); } @@ -48,7 +48,7 @@ public async Task BuildImageFromDockerfileAsync(Stream contents, ImageBu throw new ArgumentNullException(nameof(parameters)); } - IQueryString queryParameters = new QueryString(parameters); + var queryParameters = new QueryString(parameters); var data = new BinaryRequestContent(contents, TarContentType); @@ -72,7 +72,7 @@ public Task BuildImageFromDockerfileAsync(ImageBuildParameters parameters, Strea var data = new BinaryRequestContent(contents, TarContentType); - IQueryString queryParameters = new QueryString(parameters); + var queryParameters = new QueryString(parameters); Dictionary customHeaders = RegistryConfigHeaders(authConfigs); @@ -120,7 +120,7 @@ public Task CreateImageAsync(ImagesCreateParameters parameters, Stream? imageStr parameters.FromSrc = ImportFromBodySource; } - IQueryString queryParameters = new QueryString(parameters); + var queryParameters = new QueryString(parameters); Dictionary customHeaders = RegistryAuthHeaders(authConfig); @@ -170,7 +170,7 @@ public Task PushImageAsync(string name, ImagePushParameters parameters, AuthConf throw new ArgumentNullException(nameof(parameters)); } - IQueryString queryParameters = new QueryString(parameters); + var queryParameters = new QueryString(parameters); return StreamUtil.MonitorStreamForMessagesAsync( _client.MakeRequestForStreamAsync(_client.NoErrorHandlers, HttpMethod.Post, $"images/{name}/push", queryParameters, null, RegistryAuthHeaders(authConfig), cancellationToken), @@ -190,7 +190,7 @@ public Task TagImageAsync(string name, ImageTagParameters parameters, Cancellati throw new ArgumentNullException(nameof(parameters)); } - IQueryString queryParameters = new QueryString(parameters); + var queryParameters = new QueryString(parameters); return _client.MakeRequestAsync(new[] { NoSuchImageHandler }, HttpMethod.Post, $"images/{name}/tag", queryParameters, cancellationToken); } @@ -206,7 +206,7 @@ public async Task>> DeleteImageAsync(string na throw new ArgumentNullException(nameof(parameters)); } - IQueryString queryParameters = new QueryString(parameters); + var queryParameters = new QueryString(parameters); return await _client.MakeRequestAsync[]>(new[] { NoSuchImageHandler }, HttpMethod.Delete, $"images/{name}", queryParameters, cancellationToken).ConfigureAwait(false); } @@ -217,7 +217,7 @@ public async Task> SearchImagesAsync(ImagesSearchPara throw new ArgumentNullException(nameof(parameters)); } - IQueryString queryParameters = new QueryString(parameters); + var queryParameters = new QueryString(parameters); return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "images/search", queryParameters, cancellationToken).ConfigureAwait(false); } @@ -236,7 +236,7 @@ public async Task CommitContainerChangesAsync(Co var data = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - IQueryString queryParameters = new QueryString(parameters); + var queryParameters = new QueryString(parameters); return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "commit", queryParameters, data, cancellationToken).ConfigureAwait(false); } @@ -272,7 +272,7 @@ public Task LoadImageAsync(ImageLoadParameters parameters, Stream imageStream, I BinaryRequestContent content = new BinaryRequestContent(imageStream, TarContentType); - IQueryString queryParameters = new QueryString(parameters); + var queryParameters = new QueryString(parameters); return StreamUtil.MonitorStreamForMessagesAsync( _client.MakeRequestForStreamAsync(_client.NoErrorHandlers, HttpMethod.Post, "images/load", queryParameters, content, cancellationToken), diff --git a/src/Docker.DotNet/Endpoints/PluginOperations.cs b/src/Docker.DotNet/Endpoints/PluginOperations.cs index 97760834..976d86ab 100644 --- a/src/Docker.DotNet/Endpoints/PluginOperations.cs +++ b/src/Docker.DotNet/Endpoints/PluginOperations.cs @@ -32,8 +32,8 @@ public async Task> GetPrivilegesAsync(PluginGetPrivilegeP throw new ArgumentNullException(nameof(parameters)); } - var query = new QueryString(parameters); - return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "plugins/privileges", query, cancellationToken).ConfigureAwait(false); + var queryParameters = new QueryString(parameters); + return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "plugins/privileges", queryParameters, cancellationToken).ConfigureAwait(false); } public Task InstallPluginAsync(PluginInstallParameters parameters, IProgress progress, CancellationToken cancellationToken = default) @@ -50,7 +50,7 @@ public Task InstallPluginAsync(PluginInstallParameters parameters, IProgress>(parameters.Privileges, DockerClient.JsonSerializer); - IQueryString queryParameters = new QueryString(parameters); + var queryParameters = new QueryString(parameters); return StreamUtil.MonitorStreamForMessagesAsync( _client.MakeRequestForStreamAsync(_client.NoErrorHandlers, HttpMethod.Post, $"plugins/pull", queryParameters, data, null, cancellationToken), @@ -118,9 +118,9 @@ public Task UpgradePluginAsync(string name, PluginUpgradeParameters parameters, throw new ArgumentNullException(nameof(parameters.Privileges)); } - var query = new QueryString(parameters); + var queryParameters = new QueryString(parameters); var data = new JsonRequestContent>(parameters.Privileges, DockerClient.JsonSerializer); - return _client.MakeRequestAsync(new[] { NoSuchPluginHandler }, HttpMethod.Post, $"plugins/{name}/upgrade", query, data, cancellationToken); + return _client.MakeRequestAsync(new[] { NoSuchPluginHandler }, HttpMethod.Post, $"plugins/{name}/upgrade", queryParameters, data, cancellationToken); } public Task CreatePluginAsync(PluginCreateParameters parameters, Stream plugin, CancellationToken cancellationToken = default) @@ -135,9 +135,9 @@ public Task CreatePluginAsync(PluginCreateParameters parameters, Stream plugin, throw new ArgumentNullException(nameof(plugin)); } - var query = new QueryString(parameters); + var queryParameters = new QueryString(parameters); var data = new BinaryRequestContent(plugin, TarContentType); - return _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, $"plugins/create", query, data, cancellationToken); + return _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, $"plugins/create", queryParameters, data, cancellationToken); } public Task PushPluginAsync(string name, CancellationToken cancellationToken = default) diff --git a/src/Docker.DotNet/Endpoints/SwarmOperations.cs b/src/Docker.DotNet/Endpoints/SwarmOperations.cs index 0f612f03..342fad95 100644 --- a/src/Docker.DotNet/Endpoints/SwarmOperations.cs +++ b/src/Docker.DotNet/Endpoints/SwarmOperations.cs @@ -89,7 +89,7 @@ await _client.MakeRequestAsync( public async Task LeaveSwarmAsync(SwarmLeaveParameters? parameters = null, CancellationToken cancellationToken = default) { - var query = parameters == null ? null : new QueryString(parameters); + var queryParameters = parameters == null ? null : new QueryString(parameters); await _client.MakeRequestAsync( new ApiResponseErrorHandlingDelegate[] { @@ -104,13 +104,13 @@ await _client.MakeRequestAsync( }, HttpMethod.Post, "swarm/leave", - query, + queryParameters, cancellationToken).ConfigureAwait(false); } public async Task> ListServicesAsync(ServiceListParameters? parameters = null, CancellationToken cancellationToken = default) { - var queryParameters = parameters != null ? new QueryString(parameters) : null; + var queryParameters = parameters == null ? null : new QueryString(parameters); return await _client .MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Get, "services", queryParameters, cancellationToken) .ConfigureAwait(false); @@ -134,9 +134,9 @@ public async Task UpdateServiceAsync(string id, ServiceUp if (string.IsNullOrEmpty(id)) throw new ArgumentNullException(nameof(id)); if (parameters == null) throw new ArgumentNullException(nameof(parameters)); - var query = new QueryString(parameters); + var queryParameters = new QueryString(parameters); var body = new JsonRequestContent(parameters.Service, DockerClient.JsonSerializer); - return await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Post, $"services/{id}/update", query, body, RegistryAuthHeaders(parameters.RegistryAuth), cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Post, $"services/{id}/update", queryParameters, body, RegistryAuthHeaders(parameters.RegistryAuth), cancellationToken).ConfigureAwait(false); } public async Task GetServiceLogsAsync(string id, ServiceLogsParameters parameters, CancellationToken cancellationToken = default) @@ -151,7 +151,7 @@ public async Task GetServiceLogsAsync(string id, ServiceLogsParameters p throw new ArgumentNullException(nameof(parameters)); } - IQueryString queryParameters = new QueryString(parameters); + var queryParameters = new QueryString(parameters); return await _client.MakeRequestForStreamAsync(new[] { SwarmResponseHandler }, HttpMethod.Get, $"services/{id}/logs", queryParameters, cancellationToken) .ConfigureAwait(false); @@ -169,7 +169,7 @@ public async Task GetServiceLogsAsync(string id, bool tty, Se throw new ArgumentNullException(nameof(parameters)); } - IQueryString queryParameters = new QueryString(parameters); + var queryParameters = new QueryString(parameters); var response = await _client.MakeRequestForStreamAsync(new[] { SwarmResponseHandler }, HttpMethod.Get, $"services/{id}/logs", queryParameters, cancellationToken).ConfigureAwait(false); @@ -178,7 +178,7 @@ public async Task GetServiceLogsAsync(string id, bool tty, Se public async Task UpdateSwarmAsync(SwarmUpdateParameters parameters, CancellationToken cancellationToken = default) { - var query = new QueryString(parameters); + var queryParameters = new QueryString(parameters); var body = new JsonRequestContent(parameters.Spec, DockerClient.JsonSerializer); await _client.MakeRequestAsync( new ApiResponseErrorHandlingDelegate[] @@ -194,7 +194,7 @@ await _client.MakeRequestAsync( }, HttpMethod.Post, "swarm/update", - query, + queryParameters, body, cancellationToken).ConfigureAwait(false); } @@ -230,15 +230,15 @@ public async Task RemoveNodeAsync(string id, bool? force = null, CancellationTok { if (string.IsNullOrEmpty(id)) throw new ArgumentNullException(nameof(id)); var parameters = new NodeRemoveParameters { Force = force }; - var query = new QueryString(parameters); - await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Delete, $"nodes/{id}", query, cancellationToken).ConfigureAwait(false); + var queryParameters = new QueryString(parameters); + await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Delete, $"nodes/{id}", queryParameters, cancellationToken).ConfigureAwait(false); } public async Task UpdateNodeAsync(string id, ulong version, NodeUpdateParameters parameters, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) throw new ArgumentNullException(nameof(id)); - var query = new EnumerableQueryString("version", new[] { version.ToString() }); + var queryParameters = new EnumerableQueryString("version", new[] { version.ToString() }); var body = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Post, $"nodes/{id}/update", query, body, cancellationToken); + await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Post, $"nodes/{id}/update", queryParameters, body, cancellationToken); } } \ No newline at end of file diff --git a/src/Docker.DotNet/Endpoints/SystemOperations.cs b/src/Docker.DotNet/Endpoints/SystemOperations.cs index 3b1c0d92..7582660a 100644 --- a/src/Docker.DotNet/Endpoints/SystemOperations.cs +++ b/src/Docker.DotNet/Endpoints/SystemOperations.cs @@ -43,7 +43,7 @@ public async Task MonitorEventsAsync(ContainerEventsParameters parameter throw new ArgumentNullException(nameof(parameters)); } - IQueryString queryParameters = new QueryString(parameters); + var queryParameters = new QueryString(parameters); return await _client.MakeRequestForStreamAsync(_client.NoErrorHandlers, HttpMethod.Get, "events", queryParameters, cancellationToken) .ConfigureAwait(false); @@ -61,7 +61,7 @@ public Task MonitorEventsAsync(ContainerEventsParameters parameters, IProgress(parameters); + var queryParameters = new QueryString(parameters); return StreamUtil.MonitorStreamForMessagesAsync( _client.MakeRequestForStreamAsync(_client.NoErrorHandlers, HttpMethod.Get, "events", queryParameters, cancellationToken), diff --git a/src/Docker.DotNet/Endpoints/TasksOperations.cs b/src/Docker.DotNet/Endpoints/TasksOperations.cs index 18a10c32..21562043 100644 --- a/src/Docker.DotNet/Endpoints/TasksOperations.cs +++ b/src/Docker.DotNet/Endpoints/TasksOperations.cs @@ -16,13 +16,8 @@ public Task> ListAsync(CancellationToken cancellationToken = public async Task> ListAsync(TasksListParameters? parameters = null, CancellationToken cancellationToken = default) { - IQueryString? query = null; - if (parameters != null) - { - query = new QueryString(parameters); - } - - return await _client.MakeRequestAsync>(_client.NoErrorHandlers, HttpMethod.Get, "tasks", query, cancellationToken).ConfigureAwait(false); + var queryParameters = parameters == null ? null : new QueryString(parameters); + return await _client.MakeRequestAsync>(_client.NoErrorHandlers, HttpMethod.Get, "tasks", queryParameters, cancellationToken).ConfigureAwait(false); } public async Task InspectAsync(string id, CancellationToken cancellationToken = default) diff --git a/src/Docker.DotNet/Endpoints/VolumeOperations.cs b/src/Docker.DotNet/Endpoints/VolumeOperations.cs index b7e1b6e3..806a2153 100644 --- a/src/Docker.DotNet/Endpoints/VolumeOperations.cs +++ b/src/Docker.DotNet/Endpoints/VolumeOperations.cs @@ -9,9 +9,9 @@ internal VolumeOperations(DockerClient client) _client = client; } - public async Task ListAsync(CancellationToken cancellationToken = default) + public Task ListAsync(CancellationToken cancellationToken = default) { - return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "volumes", cancellationToken).ConfigureAwait(false); + return ListAsync(null, cancellationToken); } public async Task ListAsync(VolumesListParameters? parameters = null, CancellationToken cancellationToken = default) From e711d7309557821ace7913ef299f3e716081a556 Mon Sep 17 00:00:00 2001 From: campersau Date: Tue, 3 Mar 2026 14:46:37 +0100 Subject: [PATCH 06/11] Unify swarm response handler --- .../Endpoints/SwarmOperations.cs | 109 +++++------------- 1 file changed, 27 insertions(+), 82 deletions(-) diff --git a/src/Docker.DotNet/Endpoints/SwarmOperations.cs b/src/Docker.DotNet/Endpoints/SwarmOperations.cs index 342fad95..3921bbf4 100644 --- a/src/Docker.DotNet/Endpoints/SwarmOperations.cs +++ b/src/Docker.DotNet/Endpoints/SwarmOperations.cs @@ -2,7 +2,7 @@ namespace Docker.DotNet; internal class SwarmOperations : ISwarmOperations { - private static readonly ApiResponseErrorHandlingDelegate SwarmResponseHandler = (statusCode, responseBody) => + private static readonly ApiResponseErrorHandlingDelegate NotInSwarmResponseHandler = (statusCode, responseBody) => { if (statusCode == HttpStatusCode.ServiceUnavailable) { @@ -10,6 +10,14 @@ internal class SwarmOperations : ISwarmOperations throw new Exception("Node is not part of a swarm."); } }; + private static readonly ApiResponseErrorHandlingDelegate AlreadyInSwarmResponseHandler = (statusCode, responseBody) => + { + if (statusCode == HttpStatusCode.ServiceUnavailable) + { + // TODO: Make typed error. + throw new Exception("Node is already part of a swarm."); + } + }; private readonly DockerClient _client; @@ -23,96 +31,49 @@ public async Task CreateServiceAsync(ServiceCreateParamet if (parameters == null) throw new ArgumentNullException(nameof(parameters)); var data = new JsonRequestContent(parameters.Service, DockerClient.JsonSerializer); - return await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Post, "services/create", null, data, RegistryAuthHeaders(parameters.RegistryAuth), cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Post, "services/create", null, data, RegistryAuthHeaders(parameters.RegistryAuth), cancellationToken).ConfigureAwait(false); } public async Task GetSwarmUnlockKeyAsync(CancellationToken cancellationToken = default) { - return await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Get, "swarm/unlockkey", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Get, "swarm/unlockkey", cancellationToken).ConfigureAwait(false); } public async Task InitSwarmAsync(SwarmInitParameters parameters, CancellationToken cancellationToken = default) { var data = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - return await _client.MakeRequestAsync( - new ApiResponseErrorHandlingDelegate[] - { - (statusCode, responseBody) => - { - if (statusCode == HttpStatusCode.NotAcceptable) - { - // TODO: Make typed error. - throw new Exception("Node is already part of a swarm."); - } - } - }, - HttpMethod.Post, - "swarm/init", - null, - data, - cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync(new[] { AlreadyInSwarmResponseHandler }, HttpMethod.Post, "swarm/init", null, data, cancellationToken).ConfigureAwait(false); } public async Task InspectServiceAsync(string id, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) throw new ArgumentNullException(nameof(id)); - return await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Get, $"services/{id}", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Get, $"services/{id}", cancellationToken).ConfigureAwait(false); } public async Task InspectSwarmAsync(CancellationToken cancellationToken = default) { - return await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Get, "swarm", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Get, "swarm", cancellationToken).ConfigureAwait(false); } public async Task JoinSwarmAsync(SwarmJoinParameters parameters, CancellationToken cancellationToken = default) { var data = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - await _client.MakeRequestAsync( - new ApiResponseErrorHandlingDelegate[] - { - (statusCode, responseBody) => - { - if (statusCode == HttpStatusCode.ServiceUnavailable) - { - // TODO: Make typed error. - throw new Exception("Node is already part of a swarm."); - } - } - }, - HttpMethod.Post, - "swarm/join", - null, - data, - cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync(new[] { AlreadyInSwarmResponseHandler }, HttpMethod.Post, "swarm/join", null, data, cancellationToken).ConfigureAwait(false); } public async Task LeaveSwarmAsync(SwarmLeaveParameters? parameters = null, CancellationToken cancellationToken = default) { var queryParameters = parameters == null ? null : new QueryString(parameters); - await _client.MakeRequestAsync( - new ApiResponseErrorHandlingDelegate[] - { - (statusCode, responseBody) => - { - if (statusCode == HttpStatusCode.ServiceUnavailable) - { - // TODO: Make typed error. - throw new Exception("Node is not part of a swarm."); - } - } - }, - HttpMethod.Post, - "swarm/leave", - queryParameters, - cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Post, "swarm/leave", queryParameters, cancellationToken).ConfigureAwait(false); } public async Task> ListServicesAsync(ServiceListParameters? parameters = null, CancellationToken cancellationToken = default) { var queryParameters = parameters == null ? null : new QueryString(parameters); return await _client - .MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Get, "services", queryParameters, cancellationToken) + .MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Get, "services", queryParameters, cancellationToken) .ConfigureAwait(false); } @@ -120,13 +81,13 @@ public async Task RemoveServiceAsync(string id, CancellationToken cancellationTo { if (string.IsNullOrEmpty(id)) throw new ArgumentNullException(nameof(id)); - await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Delete, $"services/{id}", cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Delete, $"services/{id}", cancellationToken).ConfigureAwait(false); } public async Task UnlockSwarmAsync(SwarmUnlockParameters parameters, CancellationToken cancellationToken = default) { var body = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Post, "swarm/unlock", null, body, cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Post, "swarm/unlock", null, body, cancellationToken).ConfigureAwait(false); } public async Task UpdateServiceAsync(string id, ServiceUpdateParameters parameters, CancellationToken cancellationToken = default) @@ -136,7 +97,7 @@ public async Task UpdateServiceAsync(string id, ServiceUp var queryParameters = new QueryString(parameters); var body = new JsonRequestContent(parameters.Service, DockerClient.JsonSerializer); - return await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Post, $"services/{id}/update", queryParameters, body, RegistryAuthHeaders(parameters.RegistryAuth), cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Post, $"services/{id}/update", queryParameters, body, RegistryAuthHeaders(parameters.RegistryAuth), cancellationToken).ConfigureAwait(false); } public async Task GetServiceLogsAsync(string id, ServiceLogsParameters parameters, CancellationToken cancellationToken = default) @@ -153,7 +114,7 @@ public async Task GetServiceLogsAsync(string id, ServiceLogsParameters p var queryParameters = new QueryString(parameters); - return await _client.MakeRequestForStreamAsync(new[] { SwarmResponseHandler }, HttpMethod.Get, $"services/{id}/logs", queryParameters, cancellationToken) + return await _client.MakeRequestForStreamAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Get, $"services/{id}/logs", queryParameters, cancellationToken) .ConfigureAwait(false); } @@ -171,7 +132,7 @@ public async Task GetServiceLogsAsync(string id, bool tty, Se var queryParameters = new QueryString(parameters); - var response = await _client.MakeRequestForStreamAsync(new[] { SwarmResponseHandler }, HttpMethod.Get, $"services/{id}/logs", queryParameters, cancellationToken).ConfigureAwait(false); + var response = await _client.MakeRequestForStreamAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Get, $"services/{id}/logs", queryParameters, cancellationToken).ConfigureAwait(false); return new MultiplexedStream(response, !tty); } @@ -180,23 +141,7 @@ public async Task UpdateSwarmAsync(SwarmUpdateParameters parameters, Cancellatio { var queryParameters = new QueryString(parameters); var body = new JsonRequestContent(parameters.Spec, DockerClient.JsonSerializer); - await _client.MakeRequestAsync( - new ApiResponseErrorHandlingDelegate[] - { - (statusCode, responseBody) => - { - if (statusCode == HttpStatusCode.ServiceUnavailable) - { - // TODO: Make typed error. - throw new Exception("Node is not part of a swarm."); - } - } - }, - HttpMethod.Post, - "swarm/update", - queryParameters, - body, - cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Post, "swarm/update", queryParameters, body, cancellationToken).ConfigureAwait(false); } private static Dictionary RegistryAuthHeaders(AuthConfig? authConfig) @@ -217,13 +162,13 @@ private static Dictionary RegistryAuthHeaders(AuthConfig? authCo public async Task> ListNodesAsync(CancellationToken cancellationToken = default) { - return await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Get, "nodes", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Get, "nodes", cancellationToken).ConfigureAwait(false); } public async Task InspectNodeAsync(string id, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) throw new ArgumentNullException(nameof(id)); - return await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Get, $"nodes/{id}", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Get, $"nodes/{id}", cancellationToken).ConfigureAwait(false); } public async Task RemoveNodeAsync(string id, bool? force = null, CancellationToken cancellationToken = default) @@ -231,7 +176,7 @@ public async Task RemoveNodeAsync(string id, bool? force = null, CancellationTok if (string.IsNullOrEmpty(id)) throw new ArgumentNullException(nameof(id)); var parameters = new NodeRemoveParameters { Force = force }; var queryParameters = new QueryString(parameters); - await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Delete, $"nodes/{id}", queryParameters, cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Delete, $"nodes/{id}", queryParameters, cancellationToken).ConfigureAwait(false); } public async Task UpdateNodeAsync(string id, ulong version, NodeUpdateParameters parameters, CancellationToken cancellationToken = default) @@ -239,6 +184,6 @@ public async Task UpdateNodeAsync(string id, ulong version, NodeUpdateParameters if (string.IsNullOrEmpty(id)) throw new ArgumentNullException(nameof(id)); var queryParameters = new EnumerableQueryString("version", new[] { version.ToString() }); var body = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - await _client.MakeRequestAsync(new[] { SwarmResponseHandler }, HttpMethod.Post, $"nodes/{id}/update", queryParameters, body, cancellationToken); + await _client.MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Post, $"nodes/{id}/update", queryParameters, body, cancellationToken).ConfigureAwait(false); } } \ No newline at end of file From cc118ebd8432c9141142dc69de828a688bd115cc Mon Sep 17 00:00:00 2001 From: campersau Date: Tue, 3 Mar 2026 14:50:41 +0100 Subject: [PATCH 07/11] Use collection expression --- .../Endpoints/ContainerOperations.cs | 46 +++++++++---------- .../Endpoints/ImageOperations.cs | 12 ++--- .../Endpoints/NetworkOperations.cs | 8 ++-- .../Endpoints/PluginOperations.cs | 14 +++--- .../Endpoints/SwarmOperations.cs | 38 +++++++-------- 5 files changed, 59 insertions(+), 59 deletions(-) diff --git a/src/Docker.DotNet/Endpoints/ContainerOperations.cs b/src/Docker.DotNet/Endpoints/ContainerOperations.cs index 6998cd3d..af6067c4 100644 --- a/src/Docker.DotNet/Endpoints/ContainerOperations.cs +++ b/src/Docker.DotNet/Endpoints/ContainerOperations.cs @@ -50,7 +50,7 @@ public async Task CreateContainerAsync(CreateContainerP } var data = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - return await _client.MakeRequestAsync(new[] { NoSuchImageHandler }, HttpMethod.Post, "containers/create", queryParameters, data, cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync([NoSuchImageHandler], HttpMethod.Post, "containers/create", queryParameters, data, cancellationToken).ConfigureAwait(false); } public async Task InspectContainerAsync(string id, CancellationToken cancellationToken = default) @@ -60,7 +60,7 @@ public async Task InspectContainerAsync(string id, Can throw new ArgumentNullException(nameof(id)); } - return await _client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Get, $"containers/{id}/json", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Get, $"containers/{id}/json", cancellationToken).ConfigureAwait(false); } public async Task InspectContainerAsync(string id, ContainerInspectParameters parameters, CancellationToken cancellationToken = default) @@ -76,7 +76,7 @@ public async Task InspectContainerAsync(string id, Con } var queryParameters = new QueryString(parameters); - return await _client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Get, $"containers/{id}/json", queryParameters, cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Get, $"containers/{id}/json", queryParameters, cancellationToken).ConfigureAwait(false); } public async Task ListProcessesAsync(string id, ContainerListProcessesParameters parameters, CancellationToken cancellationToken = default) @@ -92,7 +92,7 @@ public async Task ListProcessesAsync(string id, Cont } var queryParameters = new QueryString(parameters); - return await _client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Get, $"containers/{id}/top", queryParameters, cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Get, $"containers/{id}/top", queryParameters, cancellationToken).ConfigureAwait(false); } public async Task GetContainerLogsAsync(string id, ContainerLogsParameters parameters, IProgress progress, CancellationToken cancellationToken = default) @@ -121,7 +121,7 @@ public async Task GetContainerLogsAsync(string id, ContainerL var containerInspectResponse = await InspectContainerAsync(id, cancellationToken) .ConfigureAwait(false); - var response = await _client.MakeRequestForStreamAsync(new[] { NoSuchContainerHandler }, HttpMethod.Get, $"containers/{id}/logs", queryParameters, null, null, cancellationToken) + var response = await _client.MakeRequestForStreamAsync([NoSuchContainerHandler], HttpMethod.Get, $"containers/{id}/logs", queryParameters, null, null, cancellationToken) .ConfigureAwait(false); return new MultiplexedStream(response, !containerInspectResponse.Config.Tty); @@ -134,7 +134,7 @@ public async Task> InspectChangesAsync( throw new ArgumentNullException(nameof(id)); } - return await _client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Get, $"containers/{id}/changes", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Get, $"containers/{id}/changes", cancellationToken).ConfigureAwait(false); } public async Task ExportContainerAsync(string id, CancellationToken cancellationToken = default) @@ -144,7 +144,7 @@ public async Task ExportContainerAsync(string id, CancellationToken canc throw new ArgumentNullException(nameof(id)); } - return await _client.MakeRequestForStreamAsync(new[] { NoSuchContainerHandler }, HttpMethod.Get, $"containers/{id}/export", cancellationToken) + return await _client.MakeRequestForStreamAsync([NoSuchContainerHandler], HttpMethod.Get, $"containers/{id}/export", cancellationToken) .ConfigureAwait(false); } @@ -162,7 +162,7 @@ public async Task GetContainerStatsAsync(string id, ContainerStatsParame var queryParameters = new QueryString(parameters); - return await _client.MakeRequestForStreamAsync(new[] { NoSuchContainerHandler }, HttpMethod.Get, $"containers/{id}/stats", queryParameters, null, null, cancellationToken) + return await _client.MakeRequestForStreamAsync([NoSuchContainerHandler], HttpMethod.Get, $"containers/{id}/stats", queryParameters, null, null, cancellationToken) .ConfigureAwait(false); } @@ -186,7 +186,7 @@ public Task GetContainerStatsAsync(string id, ContainerStatsParameters parameter var queryParameters = new QueryString(parameters); return StreamUtil.MonitorStreamForMessagesAsync( - _client.MakeRequestForStreamAsync(new[] { NoSuchContainerHandler }, HttpMethod.Get, $"containers/{id}/stats", queryParameters, null, null, cancellationToken), + _client.MakeRequestForStreamAsync([NoSuchContainerHandler], HttpMethod.Get, $"containers/{id}/stats", queryParameters, null, null, cancellationToken), progress, cancellationToken); } @@ -204,7 +204,7 @@ public Task ResizeContainerTtyAsync(string id, ContainerResizeParameters paramet } var queryParameters = new QueryString(parameters); - return _client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Post, $"containers/{id}/resize", queryParameters, cancellationToken); + return _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/resize", queryParameters, cancellationToken); } public async Task StartContainerAsync(string id, ContainerStartParameters? parameters = null, CancellationToken cancellationToken = default) @@ -216,7 +216,7 @@ public async Task StartContainerAsync(string id, ContainerStartParameters? var queryParameters = parameters == null ? null : new QueryString(parameters); bool? result = null; - await _client.MakeRequestAsync(new[] { NoSuchContainerHandler, (statusCode, _) => result = statusCode != HttpStatusCode.NotModified }, HttpMethod.Post, $"containers/{id}/start", queryParameters, cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync([NoSuchContainerHandler, (statusCode, _) => result = statusCode != HttpStatusCode.NotModified], HttpMethod.Post, $"containers/{id}/start", queryParameters, cancellationToken).ConfigureAwait(false); return result ?? throw new InvalidOperationException(); } @@ -236,7 +236,7 @@ public async Task StopContainerAsync(string id, ContainerStopParameters pa // since specified wait timespan can be greater than HttpClient's default, we set the // client timeout to infinite and provide a cancellation token. bool? result = null; - await _client.MakeRequestAsync(new[] { NoSuchContainerHandler, (statusCode, _) => result = statusCode != HttpStatusCode.NotModified }, HttpMethod.Post, $"containers/{id}/stop", queryParameters, null, null, TimeSpan.FromMilliseconds(Timeout.Infinite), cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync([NoSuchContainerHandler, (statusCode, _) => result = statusCode != HttpStatusCode.NotModified], HttpMethod.Post, $"containers/{id}/stop", queryParameters, null, null, TimeSpan.FromMilliseconds(Timeout.Infinite), cancellationToken).ConfigureAwait(false); return result ?? throw new InvalidOperationException(); } @@ -255,7 +255,7 @@ public Task RestartContainerAsync(string id, ContainerRestartParameters paramete var queryParameters = new QueryString(parameters); // since specified wait timespan can be greater than HttpClient's default, we set the // client timeout to infinite and provide a cancellation token. - return _client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Post, $"containers/{id}/restart", queryParameters, null, null, TimeSpan.FromMilliseconds(Timeout.Infinite), cancellationToken); + return _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/restart", queryParameters, null, null, TimeSpan.FromMilliseconds(Timeout.Infinite), cancellationToken); } public Task KillContainerAsync(string id, ContainerKillParameters parameters, CancellationToken cancellationToken = default) @@ -271,7 +271,7 @@ public Task KillContainerAsync(string id, ContainerKillParameters parameters, Ca } var queryParameters = new QueryString(parameters); - return _client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Post, $"containers/{id}/kill", queryParameters, cancellationToken); + return _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/kill", queryParameters, cancellationToken); } public Task RenameContainerAsync(string id, ContainerRenameParameters parameters, CancellationToken cancellationToken = default) @@ -282,7 +282,7 @@ public Task RenameContainerAsync(string id, ContainerRenameParameters parameters } var queryParameters = new QueryString(parameters); - return _client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Post, $"containers/{id}/rename", queryParameters, cancellationToken); + return _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/rename", queryParameters, cancellationToken); } public Task PauseContainerAsync(string id, CancellationToken cancellationToken = default) @@ -292,7 +292,7 @@ public Task PauseContainerAsync(string id, CancellationToken cancellationToken = throw new ArgumentNullException(nameof(id)); } - return _client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Post, $"containers/{id}/pause", cancellationToken); + return _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/pause", cancellationToken); } public Task UnpauseContainerAsync(string id, CancellationToken cancellationToken = default) @@ -302,7 +302,7 @@ public Task UnpauseContainerAsync(string id, CancellationToken cancellationToken throw new ArgumentNullException(nameof(id)); } - return _client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Post, $"containers/{id}/unpause", cancellationToken); + return _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/unpause", cancellationToken); } public async Task AttachContainerAsync(string id, ContainerAttachParameters parameters, CancellationToken cancellationToken = default) @@ -322,7 +322,7 @@ public async Task AttachContainerAsync(string id, ContainerAt var containerInspectResponse = await InspectContainerAsync(id, cancellationToken) .ConfigureAwait(false); - var response = await _client.MakeRequestForHijackedStreamAsync(new[] { NoSuchContainerHandler }, HttpMethod.Post, $"containers/{id}/attach", queryParameters, null, null, cancellationToken) + var response = await _client.MakeRequestForHijackedStreamAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/attach", queryParameters, null, null, cancellationToken) .ConfigureAwait(false); return new MultiplexedStream(response, !containerInspectResponse.Config.Tty); @@ -335,7 +335,7 @@ public async Task WaitContainerAsync(string id, Cancellat throw new ArgumentNullException(nameof(id)); } - return await _client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Post, $"containers/{id}/wait", null, null, null, Timeout.InfiniteTimeSpan, cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/wait", null, null, null, Timeout.InfiniteTimeSpan, cancellationToken).ConfigureAwait(false); } public Task RemoveContainerAsync(string id, ContainerRemoveParameters parameters, CancellationToken cancellationToken = default) @@ -351,7 +351,7 @@ public Task RemoveContainerAsync(string id, ContainerRemoveParameters parameters } var queryParameters = new QueryString(parameters); - return _client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Delete, $"containers/{id}", queryParameters, cancellationToken); + return _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Delete, $"containers/{id}", queryParameters, cancellationToken); } public async Task GetArchiveFromContainerAsync(string id, ContainerPathStatParameters parameters, bool statOnly, CancellationToken cancellationToken = default) @@ -370,7 +370,7 @@ public async Task GetArchiveFromContainerAsync(string var queryParameters = new QueryString(parameters); - var response = await _client.MakeRequestForStreamedResponseAsync(new[] { NoSuchContainerHandler }, statOnly ? HttpMethod.Head : HttpMethod.Get, $"containers/{id}/archive", queryParameters, cancellationToken); + var response = await _client.MakeRequestForStreamedResponseAsync([NoSuchContainerHandler], statOnly ? HttpMethod.Head : HttpMethod.Get, $"containers/{id}/archive", queryParameters, cancellationToken); var statHeader = response.Headers.GetValues("X-Docker-Container-Path-Stat").First(); @@ -410,7 +410,7 @@ public Task ExtractArchiveToContainerAsync(string id, CopyToContainerParameters var queryParameters = new QueryString(parameters); var data = new BinaryRequestContent(stream, "application/x-tar"); - return _client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Put, $"containers/{id}/archive", queryParameters, data, cancellationToken); + return _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Put, $"containers/{id}/archive", queryParameters, data, cancellationToken); } public async Task PruneContainersAsync(ContainersPruneParameters? parameters = null, CancellationToken cancellationToken = default) @@ -432,6 +432,6 @@ public async Task UpdateContainerAsync(string id, Conta } var data = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - return await _client.MakeRequestAsync(new[] { NoSuchContainerHandler }, HttpMethod.Post, $"containers/{id}/update", null, data, cancellationToken); + return await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/update", null, data, cancellationToken); } } \ No newline at end of file diff --git a/src/Docker.DotNet/Endpoints/ImageOperations.cs b/src/Docker.DotNet/Endpoints/ImageOperations.cs index 24a13f60..7c9cebd3 100644 --- a/src/Docker.DotNet/Endpoints/ImageOperations.cs +++ b/src/Docker.DotNet/Endpoints/ImageOperations.cs @@ -145,7 +145,7 @@ public async Task InspectImageAsync(string name, Cancellat throw new ArgumentNullException(nameof(name)); } - return await _client.MakeRequestAsync(new[] { NoSuchImageHandler }, HttpMethod.Get, $"images/{name}/json", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync([NoSuchImageHandler], HttpMethod.Get, $"images/{name}/json", cancellationToken).ConfigureAwait(false); } public async Task> GetImageHistoryAsync(string name, CancellationToken cancellationToken = default) @@ -155,7 +155,7 @@ public async Task> GetImageHistoryAsync(string name, throw new ArgumentNullException(nameof(name)); } - return await _client.MakeRequestAsync(new[] { NoSuchImageHandler }, HttpMethod.Get, $"images/{name}/history", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync([NoSuchImageHandler], HttpMethod.Get, $"images/{name}/history", cancellationToken).ConfigureAwait(false); } public Task PushImageAsync(string name, ImagePushParameters parameters, AuthConfig authConfig, IProgress progress, CancellationToken cancellationToken = default) @@ -191,7 +191,7 @@ public Task TagImageAsync(string name, ImageTagParameters parameters, Cancellati } var queryParameters = new QueryString(parameters); - return _client.MakeRequestAsync(new[] { NoSuchImageHandler }, HttpMethod.Post, $"images/{name}/tag", queryParameters, cancellationToken); + return _client.MakeRequestAsync([NoSuchImageHandler], HttpMethod.Post, $"images/{name}/tag", queryParameters, cancellationToken); } public async Task>> DeleteImageAsync(string name, ImageDeleteParameters parameters, CancellationToken cancellationToken = default) @@ -207,7 +207,7 @@ public async Task>> DeleteImageAsync(string na } var queryParameters = new QueryString(parameters); - return await _client.MakeRequestAsync[]>(new[] { NoSuchImageHandler }, HttpMethod.Delete, $"images/{name}", queryParameters, cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync[]>([NoSuchImageHandler], HttpMethod.Delete, $"images/{name}", queryParameters, cancellationToken).ConfigureAwait(false); } public async Task> SearchImagesAsync(ImagesSearchParameters parameters, CancellationToken cancellationToken = default) @@ -242,7 +242,7 @@ public async Task CommitContainerChangesAsync(Co public Task SaveImageAsync(string name, CancellationToken cancellationToken = default) { - return SaveImagesAsync(new[] { name }, cancellationToken); + return SaveImagesAsync([name], cancellationToken); } public async Task SaveImagesAsync(string[] names, CancellationToken cancellationToken = default) @@ -254,7 +254,7 @@ public async Task SaveImagesAsync(string[] names, CancellationToken canc queryString = new EnumerableQueryString("names", names); } - return await _client.MakeRequestForStreamAsync(new[] { NoSuchImageHandler }, HttpMethod.Get, "images/get", queryString, cancellationToken) + return await _client.MakeRequestForStreamAsync([NoSuchImageHandler], HttpMethod.Get, "images/get", queryString, cancellationToken) .ConfigureAwait(false); } diff --git a/src/Docker.DotNet/Endpoints/NetworkOperations.cs b/src/Docker.DotNet/Endpoints/NetworkOperations.cs index 92608815..4eb52618 100644 --- a/src/Docker.DotNet/Endpoints/NetworkOperations.cs +++ b/src/Docker.DotNet/Endpoints/NetworkOperations.cs @@ -30,7 +30,7 @@ public async Task InspectNetworkAsync(string id, CancellationTo throw new ArgumentNullException(nameof(id)); } - return await _client.MakeRequestAsync(new[] { NoSuchNetworkHandler }, HttpMethod.Get, $"networks/{id}", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync([NoSuchNetworkHandler], HttpMethod.Get, $"networks/{id}", cancellationToken).ConfigureAwait(false); } public Task DeleteNetworkAsync(string id, CancellationToken cancellationToken = default) @@ -40,7 +40,7 @@ public Task DeleteNetworkAsync(string id, CancellationToken cancellationToken = throw new ArgumentNullException(nameof(id)); } - return _client.MakeRequestAsync(new[] { NoSuchNetworkHandler }, HttpMethod.Delete, $"networks/{id}", cancellationToken); + return _client.MakeRequestAsync([NoSuchNetworkHandler], HttpMethod.Delete, $"networks/{id}", cancellationToken); } public async Task CreateNetworkAsync(NetworksCreateParameters parameters, CancellationToken cancellationToken = default) @@ -67,7 +67,7 @@ public Task ConnectNetworkAsync(string id, NetworkConnectParameters parameters, } var data = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - return _client.MakeRequestAsync(new[] { NoSuchNetworkHandler }, HttpMethod.Post, $"networks/{id}/connect", null, data, cancellationToken); + return _client.MakeRequestAsync([NoSuchNetworkHandler], HttpMethod.Post, $"networks/{id}/connect", null, data, cancellationToken); } public Task DisconnectNetworkAsync(string id, NetworkDisconnectParameters parameters, CancellationToken cancellationToken = default) @@ -83,7 +83,7 @@ public Task DisconnectNetworkAsync(string id, NetworkDisconnectParameters parame } var data = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - return _client.MakeRequestAsync(new[] { NoSuchNetworkHandler }, HttpMethod.Post, $"networks/{id}/disconnect", null, data, cancellationToken); + return _client.MakeRequestAsync([NoSuchNetworkHandler], HttpMethod.Post, $"networks/{id}/disconnect", null, data, cancellationToken); } public Task DeleteUnusedNetworksAsync(NetworksDeleteUnusedParameters? parameters = null, CancellationToken cancellationToken = default) diff --git a/src/Docker.DotNet/Endpoints/PluginOperations.cs b/src/Docker.DotNet/Endpoints/PluginOperations.cs index 976d86ab..39f7f771 100644 --- a/src/Docker.DotNet/Endpoints/PluginOperations.cs +++ b/src/Docker.DotNet/Endpoints/PluginOperations.cs @@ -65,7 +65,7 @@ public async Task InspectPluginAsync(string name, CancellationToken canc throw new ArgumentNullException(nameof(name)); } - return await _client.MakeRequestAsync(new[] { NoSuchPluginHandler }, HttpMethod.Get, $"plugins/{name}/json", cancellationToken); + return await _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Get, $"plugins/{name}/json", cancellationToken); } public Task RemovePluginAsync(string name, PluginRemoveParameters? parameters = null, CancellationToken cancellationToken = default) @@ -76,7 +76,7 @@ public Task RemovePluginAsync(string name, PluginRemoveParameters? parameters = } var queryParameters = parameters == null ? null : new QueryString(parameters); - return _client.MakeRequestAsync(new[] { NoSuchPluginHandler }, HttpMethod.Delete, $"plugins/{name}", queryParameters, cancellationToken); + return _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Delete, $"plugins/{name}", queryParameters, cancellationToken); } public Task EnablePluginAsync(string name, PluginEnableParameters? parameters = null, CancellationToken cancellationToken = default) @@ -87,7 +87,7 @@ public Task EnablePluginAsync(string name, PluginEnableParameters? parameters = } var queryParameters = parameters == null ? null : new QueryString(parameters); - return _client.MakeRequestAsync(new[] { NoSuchPluginHandler }, HttpMethod.Post, $"plugins/{name}/enable", queryParameters, cancellationToken); + return _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Post, $"plugins/{name}/enable", queryParameters, cancellationToken); } public Task DisablePluginAsync(string name, PluginDisableParameters? parameters = null, CancellationToken cancellationToken = default) @@ -98,7 +98,7 @@ public Task DisablePluginAsync(string name, PluginDisableParameters? parameters } var queryParameters = parameters == null ? null : new QueryString(parameters); - return _client.MakeRequestAsync(new[] { NoSuchPluginHandler }, HttpMethod.Post, $"plugins/{name}/disable", queryParameters, cancellationToken); + return _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Post, $"plugins/{name}/disable", queryParameters, cancellationToken); } public Task UpgradePluginAsync(string name, PluginUpgradeParameters parameters, CancellationToken cancellationToken = default) @@ -120,7 +120,7 @@ public Task UpgradePluginAsync(string name, PluginUpgradeParameters parameters, var queryParameters = new QueryString(parameters); var data = new JsonRequestContent>(parameters.Privileges, DockerClient.JsonSerializer); - return _client.MakeRequestAsync(new[] { NoSuchPluginHandler }, HttpMethod.Post, $"plugins/{name}/upgrade", queryParameters, data, cancellationToken); + return _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Post, $"plugins/{name}/upgrade", queryParameters, data, cancellationToken); } public Task CreatePluginAsync(PluginCreateParameters parameters, Stream plugin, CancellationToken cancellationToken = default) @@ -147,7 +147,7 @@ public Task PushPluginAsync(string name, CancellationToken cancellationToken = d throw new ArgumentNullException(nameof(name)); } - return _client.MakeRequestAsync(new[] { NoSuchPluginHandler }, HttpMethod.Post, $"plugins/{name}/push", cancellationToken); + return _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Post, $"plugins/{name}/push", cancellationToken); } public Task ConfigurePluginAsync(string name, PluginConfigureParameters parameters, CancellationToken cancellationToken = default) @@ -168,6 +168,6 @@ public Task ConfigurePluginAsync(string name, PluginConfigureParameters paramete } var body = new JsonRequestContent>(parameters.Args, DockerClient.JsonSerializer); - return _client.MakeRequestAsync(new[] { NoSuchPluginHandler }, HttpMethod.Post, $"plugins/{name}/set", null, body, cancellationToken); + return _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Post, $"plugins/{name}/set", null, body, cancellationToken); } } \ No newline at end of file diff --git a/src/Docker.DotNet/Endpoints/SwarmOperations.cs b/src/Docker.DotNet/Endpoints/SwarmOperations.cs index 3921bbf4..cbfe8b31 100644 --- a/src/Docker.DotNet/Endpoints/SwarmOperations.cs +++ b/src/Docker.DotNet/Endpoints/SwarmOperations.cs @@ -31,49 +31,49 @@ public async Task CreateServiceAsync(ServiceCreateParamet if (parameters == null) throw new ArgumentNullException(nameof(parameters)); var data = new JsonRequestContent(parameters.Service, DockerClient.JsonSerializer); - return await _client.MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Post, "services/create", null, data, RegistryAuthHeaders(parameters.RegistryAuth), cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Post, "services/create", null, data, RegistryAuthHeaders(parameters.RegistryAuth), cancellationToken).ConfigureAwait(false); } public async Task GetSwarmUnlockKeyAsync(CancellationToken cancellationToken = default) { - return await _client.MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Get, "swarm/unlockkey", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Get, "swarm/unlockkey", cancellationToken).ConfigureAwait(false); } public async Task InitSwarmAsync(SwarmInitParameters parameters, CancellationToken cancellationToken = default) { var data = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - return await _client.MakeRequestAsync(new[] { AlreadyInSwarmResponseHandler }, HttpMethod.Post, "swarm/init", null, data, cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync([AlreadyInSwarmResponseHandler], HttpMethod.Post, "swarm/init", null, data, cancellationToken).ConfigureAwait(false); } public async Task InspectServiceAsync(string id, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) throw new ArgumentNullException(nameof(id)); - return await _client.MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Get, $"services/{id}", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Get, $"services/{id}", cancellationToken).ConfigureAwait(false); } public async Task InspectSwarmAsync(CancellationToken cancellationToken = default) { - return await _client.MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Get, "swarm", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Get, "swarm", cancellationToken).ConfigureAwait(false); } public async Task JoinSwarmAsync(SwarmJoinParameters parameters, CancellationToken cancellationToken = default) { var data = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - await _client.MakeRequestAsync(new[] { AlreadyInSwarmResponseHandler }, HttpMethod.Post, "swarm/join", null, data, cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync([AlreadyInSwarmResponseHandler], HttpMethod.Post, "swarm/join", null, data, cancellationToken).ConfigureAwait(false); } public async Task LeaveSwarmAsync(SwarmLeaveParameters? parameters = null, CancellationToken cancellationToken = default) { var queryParameters = parameters == null ? null : new QueryString(parameters); - await _client.MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Post, "swarm/leave", queryParameters, cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Post, "swarm/leave", queryParameters, cancellationToken).ConfigureAwait(false); } public async Task> ListServicesAsync(ServiceListParameters? parameters = null, CancellationToken cancellationToken = default) { var queryParameters = parameters == null ? null : new QueryString(parameters); return await _client - .MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Get, "services", queryParameters, cancellationToken) + .MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Get, "services", queryParameters, cancellationToken) .ConfigureAwait(false); } @@ -81,13 +81,13 @@ public async Task RemoveServiceAsync(string id, CancellationToken cancellationTo { if (string.IsNullOrEmpty(id)) throw new ArgumentNullException(nameof(id)); - await _client.MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Delete, $"services/{id}", cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Delete, $"services/{id}", cancellationToken).ConfigureAwait(false); } public async Task UnlockSwarmAsync(SwarmUnlockParameters parameters, CancellationToken cancellationToken = default) { var body = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - await _client.MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Post, "swarm/unlock", null, body, cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Post, "swarm/unlock", null, body, cancellationToken).ConfigureAwait(false); } public async Task UpdateServiceAsync(string id, ServiceUpdateParameters parameters, CancellationToken cancellationToken = default) @@ -97,7 +97,7 @@ public async Task UpdateServiceAsync(string id, ServiceUp var queryParameters = new QueryString(parameters); var body = new JsonRequestContent(parameters.Service, DockerClient.JsonSerializer); - return await _client.MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Post, $"services/{id}/update", queryParameters, body, RegistryAuthHeaders(parameters.RegistryAuth), cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Post, $"services/{id}/update", queryParameters, body, RegistryAuthHeaders(parameters.RegistryAuth), cancellationToken).ConfigureAwait(false); } public async Task GetServiceLogsAsync(string id, ServiceLogsParameters parameters, CancellationToken cancellationToken = default) @@ -114,7 +114,7 @@ public async Task GetServiceLogsAsync(string id, ServiceLogsParameters p var queryParameters = new QueryString(parameters); - return await _client.MakeRequestForStreamAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Get, $"services/{id}/logs", queryParameters, cancellationToken) + return await _client.MakeRequestForStreamAsync([NotInSwarmResponseHandler], HttpMethod.Get, $"services/{id}/logs", queryParameters, cancellationToken) .ConfigureAwait(false); } @@ -132,7 +132,7 @@ public async Task GetServiceLogsAsync(string id, bool tty, Se var queryParameters = new QueryString(parameters); - var response = await _client.MakeRequestForStreamAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Get, $"services/{id}/logs", queryParameters, cancellationToken).ConfigureAwait(false); + var response = await _client.MakeRequestForStreamAsync([NotInSwarmResponseHandler], HttpMethod.Get, $"services/{id}/logs", queryParameters, cancellationToken).ConfigureAwait(false); return new MultiplexedStream(response, !tty); } @@ -141,7 +141,7 @@ public async Task UpdateSwarmAsync(SwarmUpdateParameters parameters, Cancellatio { var queryParameters = new QueryString(parameters); var body = new JsonRequestContent(parameters.Spec, DockerClient.JsonSerializer); - await _client.MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Post, "swarm/update", queryParameters, body, cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Post, "swarm/update", queryParameters, body, cancellationToken).ConfigureAwait(false); } private static Dictionary RegistryAuthHeaders(AuthConfig? authConfig) @@ -162,13 +162,13 @@ private static Dictionary RegistryAuthHeaders(AuthConfig? authCo public async Task> ListNodesAsync(CancellationToken cancellationToken = default) { - return await _client.MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Get, "nodes", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Get, "nodes", cancellationToken).ConfigureAwait(false); } public async Task InspectNodeAsync(string id, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) throw new ArgumentNullException(nameof(id)); - return await _client.MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Get, $"nodes/{id}", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Get, $"nodes/{id}", cancellationToken).ConfigureAwait(false); } public async Task RemoveNodeAsync(string id, bool? force = null, CancellationToken cancellationToken = default) @@ -176,14 +176,14 @@ public async Task RemoveNodeAsync(string id, bool? force = null, CancellationTok if (string.IsNullOrEmpty(id)) throw new ArgumentNullException(nameof(id)); var parameters = new NodeRemoveParameters { Force = force }; var queryParameters = new QueryString(parameters); - await _client.MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Delete, $"nodes/{id}", queryParameters, cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Delete, $"nodes/{id}", queryParameters, cancellationToken).ConfigureAwait(false); } public async Task UpdateNodeAsync(string id, ulong version, NodeUpdateParameters parameters, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) throw new ArgumentNullException(nameof(id)); - var queryParameters = new EnumerableQueryString("version", new[] { version.ToString() }); + var queryParameters = new EnumerableQueryString("version", [version.ToString()]); var body = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - await _client.MakeRequestAsync(new[] { NotInSwarmResponseHandler }, HttpMethod.Post, $"nodes/{id}/update", queryParameters, body, cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Post, $"nodes/{id}/update", queryParameters, body, cancellationToken).ConfigureAwait(false); } } \ No newline at end of file From 8303a523f40b5fb789ac90d6f14b8c50de3216c4 Mon Sep 17 00:00:00 2001 From: campersau Date: Tue, 3 Mar 2026 14:59:05 +0100 Subject: [PATCH 08/11] Consistent async await. Use Timeout.InfiniteTimeSpan --- .../Endpoints/ConfigsOperations.cs | 4 +-- .../Endpoints/ContainerOperations.cs | 34 +++++++++---------- .../Endpoints/ImageOperations.cs | 4 +-- .../Endpoints/NetworkOperations.cs | 14 ++++---- .../Endpoints/PluginOperations.cs | 28 +++++++-------- .../Endpoints/SecretsOperations.cs | 4 +-- .../Endpoints/SystemOperations.cs | 8 ++--- .../Endpoints/VolumeOperations.cs | 6 ++-- 8 files changed, 51 insertions(+), 51 deletions(-) diff --git a/src/Docker.DotNet/Endpoints/ConfigsOperations.cs b/src/Docker.DotNet/Endpoints/ConfigsOperations.cs index a98d6779..d1efd449 100644 --- a/src/Docker.DotNet/Endpoints/ConfigsOperations.cs +++ b/src/Docker.DotNet/Endpoints/ConfigsOperations.cs @@ -35,13 +35,13 @@ public async Task InspectConfigAsync(string id, CancellationToken c return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, $"configs/{id}", cancellationToken).ConfigureAwait(false); } - public Task RemoveConfigAsync(string id, CancellationToken cancellationToken = default) + public async Task RemoveConfigAsync(string id, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { throw new ArgumentNullException(nameof(id)); } - return _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Delete, $"configs/{id}", cancellationToken); + await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Delete, $"configs/{id}", cancellationToken).ConfigureAwait(false); } } \ No newline at end of file diff --git a/src/Docker.DotNet/Endpoints/ContainerOperations.cs b/src/Docker.DotNet/Endpoints/ContainerOperations.cs index af6067c4..333e17cb 100644 --- a/src/Docker.DotNet/Endpoints/ContainerOperations.cs +++ b/src/Docker.DotNet/Endpoints/ContainerOperations.cs @@ -191,7 +191,7 @@ public Task GetContainerStatsAsync(string id, ContainerStatsParameters parameter cancellationToken); } - public Task ResizeContainerTtyAsync(string id, ContainerResizeParameters parameters, CancellationToken cancellationToken = default) + public async Task ResizeContainerTtyAsync(string id, ContainerResizeParameters parameters, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { @@ -204,7 +204,7 @@ public Task ResizeContainerTtyAsync(string id, ContainerResizeParameters paramet } var queryParameters = new QueryString(parameters); - return _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/resize", queryParameters, cancellationToken); + await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/resize", queryParameters, cancellationToken).ConfigureAwait(false); } public async Task StartContainerAsync(string id, ContainerStartParameters? parameters = null, CancellationToken cancellationToken = default) @@ -236,11 +236,11 @@ public async Task StopContainerAsync(string id, ContainerStopParameters pa // since specified wait timespan can be greater than HttpClient's default, we set the // client timeout to infinite and provide a cancellation token. bool? result = null; - await _client.MakeRequestAsync([NoSuchContainerHandler, (statusCode, _) => result = statusCode != HttpStatusCode.NotModified], HttpMethod.Post, $"containers/{id}/stop", queryParameters, null, null, TimeSpan.FromMilliseconds(Timeout.Infinite), cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync([NoSuchContainerHandler, (statusCode, _) => result = statusCode != HttpStatusCode.NotModified], HttpMethod.Post, $"containers/{id}/stop", queryParameters, null, null, Timeout.InfiniteTimeSpan, cancellationToken).ConfigureAwait(false); return result ?? throw new InvalidOperationException(); } - public Task RestartContainerAsync(string id, ContainerRestartParameters parameters, CancellationToken cancellationToken = default) + public async Task RestartContainerAsync(string id, ContainerRestartParameters parameters, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { @@ -255,10 +255,10 @@ public Task RestartContainerAsync(string id, ContainerRestartParameters paramete var queryParameters = new QueryString(parameters); // since specified wait timespan can be greater than HttpClient's default, we set the // client timeout to infinite and provide a cancellation token. - return _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/restart", queryParameters, null, null, TimeSpan.FromMilliseconds(Timeout.Infinite), cancellationToken); + await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/restart", queryParameters, null, null, Timeout.InfiniteTimeSpan, cancellationToken).ConfigureAwait(false); } - public Task KillContainerAsync(string id, ContainerKillParameters parameters, CancellationToken cancellationToken = default) + public async Task KillContainerAsync(string id, ContainerKillParameters parameters, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { @@ -271,10 +271,10 @@ public Task KillContainerAsync(string id, ContainerKillParameters parameters, Ca } var queryParameters = new QueryString(parameters); - return _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/kill", queryParameters, cancellationToken); + await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/kill", queryParameters, cancellationToken).ConfigureAwait(false); } - public Task RenameContainerAsync(string id, ContainerRenameParameters parameters, CancellationToken cancellationToken = default) + public async Task RenameContainerAsync(string id, ContainerRenameParameters parameters, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { @@ -282,27 +282,27 @@ public Task RenameContainerAsync(string id, ContainerRenameParameters parameters } var queryParameters = new QueryString(parameters); - return _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/rename", queryParameters, cancellationToken); + await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/rename", queryParameters, cancellationToken).ConfigureAwait(false); } - public Task PauseContainerAsync(string id, CancellationToken cancellationToken = default) + public async Task PauseContainerAsync(string id, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { throw new ArgumentNullException(nameof(id)); } - return _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/pause", cancellationToken); + await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/pause", cancellationToken).ConfigureAwait(false); } - public Task UnpauseContainerAsync(string id, CancellationToken cancellationToken = default) + public async Task UnpauseContainerAsync(string id, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { throw new ArgumentNullException(nameof(id)); } - return _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/unpause", cancellationToken); + await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/unpause", cancellationToken).ConfigureAwait(false); } public async Task AttachContainerAsync(string id, ContainerAttachParameters parameters, CancellationToken cancellationToken = default) @@ -338,7 +338,7 @@ public async Task WaitContainerAsync(string id, Cancellat return await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/wait", null, null, null, Timeout.InfiniteTimeSpan, cancellationToken).ConfigureAwait(false); } - public Task RemoveContainerAsync(string id, ContainerRemoveParameters parameters, CancellationToken cancellationToken = default) + public async Task RemoveContainerAsync(string id, ContainerRemoveParameters parameters, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { @@ -351,7 +351,7 @@ public Task RemoveContainerAsync(string id, ContainerRemoveParameters parameters } var queryParameters = new QueryString(parameters); - return _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Delete, $"containers/{id}", queryParameters, cancellationToken); + await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Delete, $"containers/{id}", queryParameters, cancellationToken).ConfigureAwait(false); } public async Task GetArchiveFromContainerAsync(string id, ContainerPathStatParameters parameters, bool statOnly, CancellationToken cancellationToken = default) @@ -395,7 +395,7 @@ public async Task GetArchiveFromContainerAsync(string }; } - public Task ExtractArchiveToContainerAsync(string id, CopyToContainerParameters parameters, Stream stream, CancellationToken cancellationToken = default) + public async Task ExtractArchiveToContainerAsync(string id, CopyToContainerParameters parameters, Stream stream, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { @@ -410,7 +410,7 @@ public Task ExtractArchiveToContainerAsync(string id, CopyToContainerParameters var queryParameters = new QueryString(parameters); var data = new BinaryRequestContent(stream, "application/x-tar"); - return _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Put, $"containers/{id}/archive", queryParameters, data, cancellationToken); + await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Put, $"containers/{id}/archive", queryParameters, data, cancellationToken).ConfigureAwait(false); } public async Task PruneContainersAsync(ContainersPruneParameters? parameters = null, CancellationToken cancellationToken = default) diff --git a/src/Docker.DotNet/Endpoints/ImageOperations.cs b/src/Docker.DotNet/Endpoints/ImageOperations.cs index 7c9cebd3..09e26386 100644 --- a/src/Docker.DotNet/Endpoints/ImageOperations.cs +++ b/src/Docker.DotNet/Endpoints/ImageOperations.cs @@ -178,7 +178,7 @@ public Task PushImageAsync(string name, ImagePushParameters parameters, AuthConf cancellationToken); } - public Task TagImageAsync(string name, ImageTagParameters parameters, CancellationToken cancellationToken = default) + public async Task TagImageAsync(string name, ImageTagParameters parameters, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(name)) { @@ -191,7 +191,7 @@ public Task TagImageAsync(string name, ImageTagParameters parameters, Cancellati } var queryParameters = new QueryString(parameters); - return _client.MakeRequestAsync([NoSuchImageHandler], HttpMethod.Post, $"images/{name}/tag", queryParameters, cancellationToken); + await _client.MakeRequestAsync([NoSuchImageHandler], HttpMethod.Post, $"images/{name}/tag", queryParameters, cancellationToken).ConfigureAwait(false); } public async Task>> DeleteImageAsync(string name, ImageDeleteParameters parameters, CancellationToken cancellationToken = default) diff --git a/src/Docker.DotNet/Endpoints/NetworkOperations.cs b/src/Docker.DotNet/Endpoints/NetworkOperations.cs index 4eb52618..bfb48035 100644 --- a/src/Docker.DotNet/Endpoints/NetworkOperations.cs +++ b/src/Docker.DotNet/Endpoints/NetworkOperations.cs @@ -33,14 +33,14 @@ public async Task InspectNetworkAsync(string id, CancellationTo return await _client.MakeRequestAsync([NoSuchNetworkHandler], HttpMethod.Get, $"networks/{id}", cancellationToken).ConfigureAwait(false); } - public Task DeleteNetworkAsync(string id, CancellationToken cancellationToken = default) + public async Task DeleteNetworkAsync(string id, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { throw new ArgumentNullException(nameof(id)); } - return _client.MakeRequestAsync([NoSuchNetworkHandler], HttpMethod.Delete, $"networks/{id}", cancellationToken); + await _client.MakeRequestAsync([NoSuchNetworkHandler], HttpMethod.Delete, $"networks/{id}", cancellationToken).ConfigureAwait(false); } public async Task CreateNetworkAsync(NetworksCreateParameters parameters, CancellationToken cancellationToken = default) @@ -54,7 +54,7 @@ public async Task CreateNetworkAsync(NetworksCreateParam return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "networks/create", null, data, cancellationToken).ConfigureAwait(false); } - public Task ConnectNetworkAsync(string id, NetworkConnectParameters parameters, CancellationToken cancellationToken = default) + public async Task ConnectNetworkAsync(string id, NetworkConnectParameters parameters, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { @@ -67,10 +67,10 @@ public Task ConnectNetworkAsync(string id, NetworkConnectParameters parameters, } var data = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - return _client.MakeRequestAsync([NoSuchNetworkHandler], HttpMethod.Post, $"networks/{id}/connect", null, data, cancellationToken); + await _client.MakeRequestAsync([NoSuchNetworkHandler], HttpMethod.Post, $"networks/{id}/connect", null, data, cancellationToken).ConfigureAwait(false); } - public Task DisconnectNetworkAsync(string id, NetworkDisconnectParameters parameters, CancellationToken cancellationToken = default) + public async Task DisconnectNetworkAsync(string id, NetworkDisconnectParameters parameters, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { @@ -83,12 +83,12 @@ public Task DisconnectNetworkAsync(string id, NetworkDisconnectParameters parame } var data = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - return _client.MakeRequestAsync([NoSuchNetworkHandler], HttpMethod.Post, $"networks/{id}/disconnect", null, data, cancellationToken); + await _client.MakeRequestAsync([NoSuchNetworkHandler], HttpMethod.Post, $"networks/{id}/disconnect", null, data, cancellationToken).ConfigureAwait(false); } public Task DeleteUnusedNetworksAsync(NetworksDeleteUnusedParameters? parameters = null, CancellationToken cancellationToken = default) { - return ((INetworkOperations)this).PruneNetworksAsync(parameters, cancellationToken); + return PruneNetworksAsync(parameters, cancellationToken); } public async Task PruneNetworksAsync(NetworksDeleteUnusedParameters? parameters = null, CancellationToken cancellationToken = default) diff --git a/src/Docker.DotNet/Endpoints/PluginOperations.cs b/src/Docker.DotNet/Endpoints/PluginOperations.cs index 39f7f771..6f5631c1 100644 --- a/src/Docker.DotNet/Endpoints/PluginOperations.cs +++ b/src/Docker.DotNet/Endpoints/PluginOperations.cs @@ -68,7 +68,7 @@ public async Task InspectPluginAsync(string name, CancellationToken canc return await _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Get, $"plugins/{name}/json", cancellationToken); } - public Task RemovePluginAsync(string name, PluginRemoveParameters? parameters = null, CancellationToken cancellationToken = default) + public async Task RemovePluginAsync(string name, PluginRemoveParameters? parameters = null, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(name)) { @@ -76,10 +76,10 @@ public Task RemovePluginAsync(string name, PluginRemoveParameters? parameters = } var queryParameters = parameters == null ? null : new QueryString(parameters); - return _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Delete, $"plugins/{name}", queryParameters, cancellationToken); + await _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Delete, $"plugins/{name}", queryParameters, cancellationToken).ConfigureAwait(false); } - public Task EnablePluginAsync(string name, PluginEnableParameters? parameters = null, CancellationToken cancellationToken = default) + public async Task EnablePluginAsync(string name, PluginEnableParameters? parameters = null, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(name)) { @@ -87,10 +87,10 @@ public Task EnablePluginAsync(string name, PluginEnableParameters? parameters = } var queryParameters = parameters == null ? null : new QueryString(parameters); - return _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Post, $"plugins/{name}/enable", queryParameters, cancellationToken); + await _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Post, $"plugins/{name}/enable", queryParameters, cancellationToken).ConfigureAwait(false); } - public Task DisablePluginAsync(string name, PluginDisableParameters? parameters = null, CancellationToken cancellationToken = default) + public async Task DisablePluginAsync(string name, PluginDisableParameters? parameters = null, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(name)) { @@ -98,10 +98,10 @@ public Task DisablePluginAsync(string name, PluginDisableParameters? parameters } var queryParameters = parameters == null ? null : new QueryString(parameters); - return _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Post, $"plugins/{name}/disable", queryParameters, cancellationToken); + await _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Post, $"plugins/{name}/disable", queryParameters, cancellationToken).ConfigureAwait(false); } - public Task UpgradePluginAsync(string name, PluginUpgradeParameters parameters, CancellationToken cancellationToken = default) + public async Task UpgradePluginAsync(string name, PluginUpgradeParameters parameters, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(name)) { @@ -120,10 +120,10 @@ public Task UpgradePluginAsync(string name, PluginUpgradeParameters parameters, var queryParameters = new QueryString(parameters); var data = new JsonRequestContent>(parameters.Privileges, DockerClient.JsonSerializer); - return _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Post, $"plugins/{name}/upgrade", queryParameters, data, cancellationToken); + await _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Post, $"plugins/{name}/upgrade", queryParameters, data, cancellationToken).ConfigureAwait(false); } - public Task CreatePluginAsync(PluginCreateParameters parameters, Stream plugin, CancellationToken cancellationToken = default) + public async Task CreatePluginAsync(PluginCreateParameters parameters, Stream plugin, CancellationToken cancellationToken = default) { if (parameters == null) { @@ -137,20 +137,20 @@ public Task CreatePluginAsync(PluginCreateParameters parameters, Stream plugin, var queryParameters = new QueryString(parameters); var data = new BinaryRequestContent(plugin, TarContentType); - return _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, $"plugins/create", queryParameters, data, cancellationToken); + await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, $"plugins/create", queryParameters, data, cancellationToken).ConfigureAwait(false); } - public Task PushPluginAsync(string name, CancellationToken cancellationToken = default) + public async Task PushPluginAsync(string name, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException(nameof(name)); } - return _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Post, $"plugins/{name}/push", cancellationToken); + await _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Post, $"plugins/{name}/push", cancellationToken).ConfigureAwait(false); } - public Task ConfigurePluginAsync(string name, PluginConfigureParameters parameters, CancellationToken cancellationToken = default) + public async Task ConfigurePluginAsync(string name, PluginConfigureParameters parameters, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(name)) { @@ -168,6 +168,6 @@ public Task ConfigurePluginAsync(string name, PluginConfigureParameters paramete } var body = new JsonRequestContent>(parameters.Args, DockerClient.JsonSerializer); - return _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Post, $"plugins/{name}/set", null, body, cancellationToken); + await _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Post, $"plugins/{name}/set", null, body, cancellationToken).ConfigureAwait(false); } } \ No newline at end of file diff --git a/src/Docker.DotNet/Endpoints/SecretsOperations.cs b/src/Docker.DotNet/Endpoints/SecretsOperations.cs index 66350236..e26e50c9 100644 --- a/src/Docker.DotNet/Endpoints/SecretsOperations.cs +++ b/src/Docker.DotNet/Endpoints/SecretsOperations.cs @@ -35,13 +35,13 @@ public async Task InspectAsync(string id, CancellationToken cancellation return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, $"secrets/{id}", cancellationToken).ConfigureAwait(false); } - public Task DeleteAsync(string id, CancellationToken cancellationToken = default) + public async Task DeleteAsync(string id, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(id)) { throw new ArgumentNullException(nameof(id)); } - return _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Delete, $"secrets/{id}", cancellationToken); + await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Delete, $"secrets/{id}", cancellationToken).ConfigureAwait(false); } } \ No newline at end of file diff --git a/src/Docker.DotNet/Endpoints/SystemOperations.cs b/src/Docker.DotNet/Endpoints/SystemOperations.cs index 7582660a..f1c78a20 100644 --- a/src/Docker.DotNet/Endpoints/SystemOperations.cs +++ b/src/Docker.DotNet/Endpoints/SystemOperations.cs @@ -9,7 +9,7 @@ internal SystemOperations(DockerClient client) _client = client; } - public Task AuthenticateAsync(AuthConfig authConfig, CancellationToken cancellationToken = default) + public async Task AuthenticateAsync(AuthConfig authConfig, CancellationToken cancellationToken = default) { if (authConfig == null) { @@ -18,7 +18,7 @@ public Task AuthenticateAsync(AuthConfig authConfig, CancellationToken cancellat var data = new JsonRequestContent(authConfig, DockerClient.JsonSerializer); - return _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "auth", null, data, cancellationToken); + await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "auth", null, data, cancellationToken).ConfigureAwait(false); } public async Task GetVersionAsync(CancellationToken cancellationToken = default) @@ -26,9 +26,9 @@ public async Task GetVersionAsync(CancellationToken cancellatio return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "version", cancellationToken).ConfigureAwait(false); } - public Task PingAsync(CancellationToken cancellationToken = default) + public async Task PingAsync(CancellationToken cancellationToken = default) { - return _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "_ping", cancellationToken); + await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "_ping", cancellationToken).ConfigureAwait(false); } public async Task GetSystemInfoAsync(CancellationToken cancellationToken = default) diff --git a/src/Docker.DotNet/Endpoints/VolumeOperations.cs b/src/Docker.DotNet/Endpoints/VolumeOperations.cs index 806a2153..ff5d6fa8 100644 --- a/src/Docker.DotNet/Endpoints/VolumeOperations.cs +++ b/src/Docker.DotNet/Endpoints/VolumeOperations.cs @@ -41,19 +41,19 @@ public async Task InspectAsync(string name, CancellationToken ca return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, $"volumes/{name}", cancellationToken).ConfigureAwait(false); } - public Task RemoveAsync(string name, bool? force = null, CancellationToken cancellationToken = default) + public async Task RemoveAsync(string name, bool? force = null, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException(nameof(name)); } - return _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Delete, $"volumes/{name}", cancellationToken); + await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Delete, $"volumes/{name}", cancellationToken).ConfigureAwait(false); } public async Task PruneAsync(VolumesPruneParameters? parameters = null, CancellationToken cancellationToken = default) { var queryParameters = parameters == null ? null : new QueryString(parameters); - return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "volumes/prune", queryParameters, cancellationToken); + return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "volumes/prune", queryParameters, cancellationToken).ConfigureAwait(false); } } \ No newline at end of file From b1e18481cb17bdc255967d6816013438afbfcc1b Mon Sep 17 00:00:00 2001 From: campersau Date: Tue, 3 Mar 2026 15:07:01 +0100 Subject: [PATCH 09/11] This wasn't a nullable ! --- src/Docker.DotNet/Endpoints/ExecOperations.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Docker.DotNet/Endpoints/ExecOperations.cs b/src/Docker.DotNet/Endpoints/ExecOperations.cs index 593849dc..221ff6e2 100644 --- a/src/Docker.DotNet/Endpoints/ExecOperations.cs +++ b/src/Docker.DotNet/Endpoints/ExecOperations.cs @@ -58,6 +58,6 @@ public async Task StartContainerExecAsync(string id, Containe var response = await _client.MakeRequestForHijackedStreamAsync([NoSuchContainerHandler], HttpMethod.Post, $"exec/{id}/start", null, data, null, cancellationToken) .ConfigureAwait(false); - return new MultiplexedStream(response, parameters.TTY); + return new MultiplexedStream(response, !parameters.TTY); } } \ No newline at end of file From 713a30fad2d39b6e841e89cea53e41d2011c2204 Mon Sep 17 00:00:00 2001 From: Andre Hofmeister <9199345+HofmeisterAn@users.noreply.github.com> Date: Tue, 3 Mar 2026 17:57:58 +0100 Subject: [PATCH 10/11] chore: Align changes --- .../Endpoints/ConfigsOperations.cs | 13 +- .../Endpoints/ContainerOperations.cs | 77 ++++++++--- src/Docker.DotNet/Endpoints/ExecOperations.cs | 2 +- .../Endpoints/IImageOperations.cs | 4 +- .../Endpoints/ImageOperations.cs | 58 ++++---- .../Endpoints/NetworkOperations.cs | 40 ++++-- .../Endpoints/PluginOperations.cs | 46 +++++-- .../Endpoints/SecretsOperations.cs | 13 +- .../Endpoints/SwarmOperations.cs | 124 +++++++++++++----- .../Endpoints/SystemOperations.cs | 12 +- .../Endpoints/TasksOperations.cs | 7 +- .../Endpoints/VolumeOperations.cs | 15 ++- 12 files changed, 294 insertions(+), 117 deletions(-) diff --git a/src/Docker.DotNet/Endpoints/ConfigsOperations.cs b/src/Docker.DotNet/Endpoints/ConfigsOperations.cs index d1efd449..d3712136 100644 --- a/src/Docker.DotNet/Endpoints/ConfigsOperations.cs +++ b/src/Docker.DotNet/Endpoints/ConfigsOperations.cs @@ -11,7 +11,8 @@ internal ConfigOperations(DockerClient client) public async Task> ListConfigsAsync(CancellationToken cancellationToken = default) { - return await _client.MakeRequestAsync>(_client.NoErrorHandlers, HttpMethod.Get, "configs", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync>(_client.NoErrorHandlers, HttpMethod.Get, "configs", cancellationToken) + .ConfigureAwait(false); } public async Task CreateConfigAsync(SwarmCreateConfigParameters body, CancellationToken cancellationToken = default) @@ -22,7 +23,9 @@ public async Task CreateConfigAsync(SwarmCreateConfig } var data = new JsonRequestContent(body.Config, DockerClient.JsonSerializer); - return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "configs/create", null, data, cancellationToken).ConfigureAwait(false); + + return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "configs/create", null, data, cancellationToken) + .ConfigureAwait(false); } public async Task InspectConfigAsync(string id, CancellationToken cancellationToken = default) @@ -32,7 +35,8 @@ public async Task InspectConfigAsync(string id, CancellationToken c throw new ArgumentNullException(nameof(id)); } - return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, $"configs/{id}", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, $"configs/{id}", cancellationToken) + .ConfigureAwait(false); } public async Task RemoveConfigAsync(string id, CancellationToken cancellationToken = default) @@ -42,6 +46,7 @@ public async Task RemoveConfigAsync(string id, CancellationToken cancellationTok throw new ArgumentNullException(nameof(id)); } - await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Delete, $"configs/{id}", cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Delete, $"configs/{id}", cancellationToken) + .ConfigureAwait(false); } } \ No newline at end of file diff --git a/src/Docker.DotNet/Endpoints/ContainerOperations.cs b/src/Docker.DotNet/Endpoints/ContainerOperations.cs index 333e17cb..967b06c1 100644 --- a/src/Docker.DotNet/Endpoints/ContainerOperations.cs +++ b/src/Docker.DotNet/Endpoints/ContainerOperations.cs @@ -33,7 +33,9 @@ public async Task> ListContainersAsync(ContainersLi } var queryParameters = new QueryString(parameters); - return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "containers/json", queryParameters, cancellationToken).ConfigureAwait(false); + + return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "containers/json", queryParameters, cancellationToken) + .ConfigureAwait(false); } public async Task CreateContainerAsync(CreateContainerParameters parameters, CancellationToken cancellationToken = default) @@ -50,7 +52,9 @@ public async Task CreateContainerAsync(CreateContainerP } var data = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - return await _client.MakeRequestAsync([NoSuchImageHandler], HttpMethod.Post, "containers/create", queryParameters, data, cancellationToken).ConfigureAwait(false); + + return await _client.MakeRequestAsync([NoSuchImageHandler], HttpMethod.Post, "containers/create", queryParameters, data, cancellationToken) + .ConfigureAwait(false); } public async Task InspectContainerAsync(string id, CancellationToken cancellationToken = default) @@ -60,7 +64,8 @@ public async Task InspectContainerAsync(string id, Can throw new ArgumentNullException(nameof(id)); } - return await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Get, $"containers/{id}/json", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Get, $"containers/{id}/json", cancellationToken) + .ConfigureAwait(false); } public async Task InspectContainerAsync(string id, ContainerInspectParameters parameters, CancellationToken cancellationToken = default) @@ -76,7 +81,9 @@ public async Task InspectContainerAsync(string id, Con } var queryParameters = new QueryString(parameters); - return await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Get, $"containers/{id}/json", queryParameters, cancellationToken).ConfigureAwait(false); + + return await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Get, $"containers/{id}/json", queryParameters, cancellationToken) + .ConfigureAwait(false); } public async Task ListProcessesAsync(string id, ContainerListProcessesParameters parameters, CancellationToken cancellationToken = default) @@ -92,7 +99,9 @@ public async Task ListProcessesAsync(string id, Cont } var queryParameters = new QueryString(parameters); - return await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Get, $"containers/{id}/top", queryParameters, cancellationToken).ConfigureAwait(false); + + return await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Get, $"containers/{id}/top", queryParameters, cancellationToken) + .ConfigureAwait(false); } public async Task GetContainerLogsAsync(string id, ContainerLogsParameters parameters, IProgress progress, CancellationToken cancellationToken = default) @@ -134,7 +143,8 @@ public async Task> InspectChangesAsync( throw new ArgumentNullException(nameof(id)); } - return await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Get, $"containers/{id}/changes", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Get, $"containers/{id}/changes", cancellationToken) + .ConfigureAwait(false); } public async Task ExportContainerAsync(string id, CancellationToken cancellationToken = default) @@ -204,7 +214,9 @@ public async Task ResizeContainerTtyAsync(string id, ContainerResizeParameters p } var queryParameters = new QueryString(parameters); - await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/resize", queryParameters, cancellationToken).ConfigureAwait(false); + + await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/resize", queryParameters, cancellationToken) + .ConfigureAwait(false); } public async Task StartContainerAsync(string id, ContainerStartParameters? parameters = null, CancellationToken cancellationToken = default) @@ -215,8 +227,12 @@ public async Task StartContainerAsync(string id, ContainerStartParameters? } var queryParameters = parameters == null ? null : new QueryString(parameters); + bool? result = null; - await _client.MakeRequestAsync([NoSuchContainerHandler, (statusCode, _) => result = statusCode != HttpStatusCode.NotModified], HttpMethod.Post, $"containers/{id}/start", queryParameters, cancellationToken).ConfigureAwait(false); + + await _client.MakeRequestAsync([NoSuchContainerHandler, (statusCode, _) => result = statusCode != HttpStatusCode.NotModified], HttpMethod.Post, $"containers/{id}/start", queryParameters, cancellationToken) + .ConfigureAwait(false); + return result ?? throw new InvalidOperationException(); } @@ -233,10 +249,14 @@ public async Task StopContainerAsync(string id, ContainerStopParameters pa } var queryParameters = new QueryString(parameters); + + bool? result = null; + // since specified wait timespan can be greater than HttpClient's default, we set the // client timeout to infinite and provide a cancellation token. - bool? result = null; - await _client.MakeRequestAsync([NoSuchContainerHandler, (statusCode, _) => result = statusCode != HttpStatusCode.NotModified], HttpMethod.Post, $"containers/{id}/stop", queryParameters, null, null, Timeout.InfiniteTimeSpan, cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync([NoSuchContainerHandler, (statusCode, _) => result = statusCode != HttpStatusCode.NotModified], HttpMethod.Post, $"containers/{id}/stop", queryParameters, null, null, Timeout.InfiniteTimeSpan, cancellationToken) + .ConfigureAwait(false); + return result ?? throw new InvalidOperationException(); } @@ -253,9 +273,11 @@ public async Task RestartContainerAsync(string id, ContainerRestartParameters pa } var queryParameters = new QueryString(parameters); + // since specified wait timespan can be greater than HttpClient's default, we set the // client timeout to infinite and provide a cancellation token. - await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/restart", queryParameters, null, null, Timeout.InfiniteTimeSpan, cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/restart", queryParameters, null, null, Timeout.InfiniteTimeSpan, cancellationToken) + .ConfigureAwait(false); } public async Task KillContainerAsync(string id, ContainerKillParameters parameters, CancellationToken cancellationToken = default) @@ -271,7 +293,9 @@ public async Task KillContainerAsync(string id, ContainerKillParameters paramete } var queryParameters = new QueryString(parameters); - await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/kill", queryParameters, cancellationToken).ConfigureAwait(false); + + await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/kill", queryParameters, cancellationToken) + .ConfigureAwait(false); } public async Task RenameContainerAsync(string id, ContainerRenameParameters parameters, CancellationToken cancellationToken = default) @@ -282,7 +306,9 @@ public async Task RenameContainerAsync(string id, ContainerRenameParameters para } var queryParameters = new QueryString(parameters); - await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/rename", queryParameters, cancellationToken).ConfigureAwait(false); + + await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/rename", queryParameters, cancellationToken) + .ConfigureAwait(false); } public async Task PauseContainerAsync(string id, CancellationToken cancellationToken = default) @@ -292,7 +318,8 @@ public async Task PauseContainerAsync(string id, CancellationToken cancellationT throw new ArgumentNullException(nameof(id)); } - await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/pause", cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/pause", cancellationToken) + .ConfigureAwait(false); } public async Task UnpauseContainerAsync(string id, CancellationToken cancellationToken = default) @@ -302,7 +329,8 @@ public async Task UnpauseContainerAsync(string id, CancellationToken cancellatio throw new ArgumentNullException(nameof(id)); } - await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/unpause", cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/unpause", cancellationToken) + .ConfigureAwait(false); } public async Task AttachContainerAsync(string id, ContainerAttachParameters parameters, CancellationToken cancellationToken = default) @@ -335,7 +363,8 @@ public async Task WaitContainerAsync(string id, Cancellat throw new ArgumentNullException(nameof(id)); } - return await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/wait", null, null, null, Timeout.InfiniteTimeSpan, cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/wait", null, null, null, Timeout.InfiniteTimeSpan, cancellationToken) + .ConfigureAwait(false); } public async Task RemoveContainerAsync(string id, ContainerRemoveParameters parameters, CancellationToken cancellationToken = default) @@ -351,7 +380,9 @@ public async Task RemoveContainerAsync(string id, ContainerRemoveParameters para } var queryParameters = new QueryString(parameters); - await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Delete, $"containers/{id}", queryParameters, cancellationToken).ConfigureAwait(false); + + await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Delete, $"containers/{id}", queryParameters, cancellationToken) + .ConfigureAwait(false); } public async Task GetArchiveFromContainerAsync(string id, ContainerPathStatParameters parameters, bool statOnly, CancellationToken cancellationToken = default) @@ -410,13 +441,17 @@ public async Task ExtractArchiveToContainerAsync(string id, CopyToContainerParam var queryParameters = new QueryString(parameters); var data = new BinaryRequestContent(stream, "application/x-tar"); - await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Put, $"containers/{id}/archive", queryParameters, data, cancellationToken).ConfigureAwait(false); + + await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Put, $"containers/{id}/archive", queryParameters, data, cancellationToken) + .ConfigureAwait(false); } public async Task PruneContainersAsync(ContainersPruneParameters? parameters = null, CancellationToken cancellationToken = default) { var queryParameters = parameters == null ? null : new QueryString(parameters); - return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "containers/prune", queryParameters, cancellationToken).ConfigureAwait(false); + + return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "containers/prune", queryParameters, cancellationToken) + .ConfigureAwait(false); } public async Task UpdateContainerAsync(string id, ContainerUpdateParameters parameters, CancellationToken cancellationToken = default) @@ -432,6 +467,8 @@ public async Task UpdateContainerAsync(string id, Conta } var data = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - return await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/update", null, data, cancellationToken); + + return await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Post, $"containers/{id}/update", null, data, cancellationToken) + .ConfigureAwait(false); } } \ No newline at end of file diff --git a/src/Docker.DotNet/Endpoints/ExecOperations.cs b/src/Docker.DotNet/Endpoints/ExecOperations.cs index 221ff6e2..afdf8de0 100644 --- a/src/Docker.DotNet/Endpoints/ExecOperations.cs +++ b/src/Docker.DotNet/Endpoints/ExecOperations.cs @@ -24,7 +24,7 @@ public async Task InspectContainerExecAsync(string throw new ArgumentNullException(nameof(id)); } - return await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Get, $"exec/{id}/json", null, cancellationToken) + return await _client.MakeRequestAsync([NoSuchContainerHandler], HttpMethod.Get, $"exec/{id}/json", cancellationToken) .ConfigureAwait(false); } diff --git a/src/Docker.DotNet/Endpoints/IImageOperations.cs b/src/Docker.DotNet/Endpoints/IImageOperations.cs index c7dcb5bf..7fefeef1 100644 --- a/src/Docker.DotNet/Endpoints/IImageOperations.cs +++ b/src/Docker.DotNet/Endpoints/IImageOperations.cs @@ -116,7 +116,7 @@ public interface IImageOperations /// current auth status, the input is invalid, or the daemon experienced an error. /// /// The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. - Task CreateImageAsync(ImagesCreateParameters parameters, Stream imageStream, AuthConfig authConfig, IProgress progress, CancellationToken cancellationToken = default); + Task CreateImageAsync(ImagesCreateParameters parameters, Stream? imageStream, AuthConfig authConfig, IProgress progress, CancellationToken cancellationToken = default); /// /// Creates an image by importing it from a stream. @@ -296,7 +296,7 @@ public interface IImageOperations /// There was a conflict, or the input is invalid, or the daemon experienced an error. /// No such image was found. /// The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. - Task SaveImagesAsync(string[] names, CancellationToken cancellationToken = default); + Task SaveImagesAsync(string[]? names, CancellationToken cancellationToken = default); /// /// Loads a set of images and tags into a Docker repository. diff --git a/src/Docker.DotNet/Endpoints/ImageOperations.cs b/src/Docker.DotNet/Endpoints/ImageOperations.cs index 09e26386..aad92789 100644 --- a/src/Docker.DotNet/Endpoints/ImageOperations.cs +++ b/src/Docker.DotNet/Endpoints/ImageOperations.cs @@ -33,7 +33,9 @@ public async Task> ListImagesAsync(ImagesListParameter } var queryParameters = new QueryString(parameters); - return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "images/json", queryParameters, cancellationToken).ConfigureAwait(false); + + return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "images/json", queryParameters, cancellationToken) + .ConfigureAwait(false); } public async Task BuildImageFromDockerfileAsync(Stream contents, ImageBuildParameters parameters, CancellationToken cancellationToken = default) @@ -68,24 +70,22 @@ public Task BuildImageFromDockerfileAsync(ImageBuildParameters parameters, Strea throw new ArgumentNullException(nameof(parameters)); } - HttpMethod httpMethod = HttpMethod.Post; + var queryParameters = new QueryString(parameters); var data = new BinaryRequestContent(contents, TarContentType); - var queryParameters = new QueryString(parameters); - - Dictionary customHeaders = RegistryConfigHeaders(authConfigs); + var customHeaders = RegistryConfigHeaders(authConfigs); if (headers != null) { - foreach (string key in headers.Keys) + foreach (var key in headers.Keys) { customHeaders[key] = headers[key]; } } return StreamUtil.MonitorResponseForMessagesAsync( - _client.MakeRequestForRawResponseAsync(httpMethod, "build", queryParameters, data, customHeaders, cancellationToken), + _client.MakeRequestForRawResponseAsync(HttpMethod.Post, "build", queryParameters, data, customHeaders, cancellationToken), progress, cancellationToken); } @@ -100,7 +100,7 @@ public Task CreateImageAsync(ImagesCreateParameters parameters, AuthConfig authC return CreateImageAsync(parameters, null, authConfig, headers, progress, cancellationToken); } - public Task CreateImageAsync(ImagesCreateParameters parameters, Stream imageStream, AuthConfig authConfig, IProgress progress, CancellationToken cancellationToken = default) + public Task CreateImageAsync(ImagesCreateParameters parameters, Stream? imageStream, AuthConfig authConfig, IProgress progress, CancellationToken cancellationToken = default) { return CreateImageAsync(parameters, imageStream, authConfig, null, progress, cancellationToken); } @@ -112,7 +112,6 @@ public Task CreateImageAsync(ImagesCreateParameters parameters, Stream? imageStr throw new ArgumentNullException(nameof(parameters)); } - HttpMethod httpMethod = HttpMethod.Post; BinaryRequestContent? content = null; if (imageStream != null) { @@ -122,7 +121,7 @@ public Task CreateImageAsync(ImagesCreateParameters parameters, Stream? imageStr var queryParameters = new QueryString(parameters); - Dictionary customHeaders = RegistryAuthHeaders(authConfig); + var customHeaders = RegistryAuthHeaders(authConfig); if (headers != null) { @@ -133,7 +132,7 @@ public Task CreateImageAsync(ImagesCreateParameters parameters, Stream? imageStr } return StreamUtil.MonitorResponseForMessagesAsync( - _client.MakeRequestForRawResponseAsync(httpMethod, "images/create", queryParameters, content, customHeaders, cancellationToken), + _client.MakeRequestForRawResponseAsync(HttpMethod.Post, "images/create", queryParameters, content, customHeaders, cancellationToken), progress, cancellationToken); } @@ -145,7 +144,8 @@ public async Task InspectImageAsync(string name, Cancellat throw new ArgumentNullException(nameof(name)); } - return await _client.MakeRequestAsync([NoSuchImageHandler], HttpMethod.Get, $"images/{name}/json", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync([NoSuchImageHandler], HttpMethod.Get, $"images/{name}/json", cancellationToken) + .ConfigureAwait(false); } public async Task> GetImageHistoryAsync(string name, CancellationToken cancellationToken = default) @@ -155,7 +155,8 @@ public async Task> GetImageHistoryAsync(string name, throw new ArgumentNullException(nameof(name)); } - return await _client.MakeRequestAsync([NoSuchImageHandler], HttpMethod.Get, $"images/{name}/history", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync([NoSuchImageHandler], HttpMethod.Get, $"images/{name}/history", cancellationToken) + .ConfigureAwait(false); } public Task PushImageAsync(string name, ImagePushParameters parameters, AuthConfig authConfig, IProgress progress, CancellationToken cancellationToken = default) @@ -191,7 +192,9 @@ public async Task TagImageAsync(string name, ImageTagParameters parameters, Canc } var queryParameters = new QueryString(parameters); - await _client.MakeRequestAsync([NoSuchImageHandler], HttpMethod.Post, $"images/{name}/tag", queryParameters, cancellationToken).ConfigureAwait(false); + + await _client.MakeRequestAsync([NoSuchImageHandler], HttpMethod.Post, $"images/{name}/tag", queryParameters, cancellationToken) + .ConfigureAwait(false); } public async Task>> DeleteImageAsync(string name, ImageDeleteParameters parameters, CancellationToken cancellationToken = default) @@ -207,7 +210,9 @@ public async Task>> DeleteImageAsync(string na } var queryParameters = new QueryString(parameters); - return await _client.MakeRequestAsync[]>([NoSuchImageHandler], HttpMethod.Delete, $"images/{name}", queryParameters, cancellationToken).ConfigureAwait(false); + + return await _client.MakeRequestAsync[]>([NoSuchImageHandler], HttpMethod.Delete, $"images/{name}", queryParameters, cancellationToken) + .ConfigureAwait(false); } public async Task> SearchImagesAsync(ImagesSearchParameters parameters, CancellationToken cancellationToken = default) @@ -218,13 +223,17 @@ public async Task> SearchImagesAsync(ImagesSearchPara } var queryParameters = new QueryString(parameters); - return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "images/search", queryParameters, cancellationToken).ConfigureAwait(false); + + return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "images/search", queryParameters, cancellationToken) + .ConfigureAwait(false); } public async Task PruneImagesAsync(ImagesPruneParameters? parameters = null, CancellationToken cancellationToken = default) { var queryParameters = parameters == null ? null : new QueryString(parameters); - return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "images/prune", queryParameters, cancellationToken).ConfigureAwait(false); + + return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "images/prune", queryParameters, cancellationToken) + .ConfigureAwait(false); } public async Task CommitContainerChangesAsync(CommitContainerChangesParameters parameters, CancellationToken cancellationToken = default) @@ -234,10 +243,12 @@ public async Task CommitContainerChangesAsync(Co throw new ArgumentNullException(nameof(parameters)); } + var queryParameters = new QueryString(parameters); + var data = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - var queryParameters = new QueryString(parameters); - return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "commit", queryParameters, data, cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "commit", queryParameters, data, cancellationToken) + .ConfigureAwait(false); } public Task SaveImageAsync(string name, CancellationToken cancellationToken = default) @@ -245,7 +256,7 @@ public Task SaveImageAsync(string name, CancellationToken cancellationTo return SaveImagesAsync([name], cancellationToken); } - public async Task SaveImagesAsync(string[] names, CancellationToken cancellationToken = default) + public async Task SaveImagesAsync(string[]? names, CancellationToken cancellationToken = default) { EnumerableQueryString? queryString = null; @@ -270,7 +281,7 @@ public Task LoadImageAsync(ImageLoadParameters parameters, Stream imageStream, I throw new ArgumentNullException(nameof(imageStream)); } - BinaryRequestContent content = new BinaryRequestContent(imageStream, TarContentType); + var content = new BinaryRequestContent(imageStream, TarContentType); var queryParameters = new QueryString(parameters); @@ -280,14 +291,13 @@ public Task LoadImageAsync(ImageLoadParameters parameters, Stream imageStream, I cancellationToken); } - private static Dictionary RegistryAuthHeaders(AuthConfig authConfig) + private static Dictionary RegistryAuthHeaders(AuthConfig? authConfig) { return new Dictionary { { RegistryAuthHeaderKey, - Convert.ToBase64String(DockerClient.JsonSerializer.SerializeToUtf8Bytes(authConfig ?? new AuthConfig())) - .Replace("/", "_").Replace("+", "-") + Convert.ToBase64String(DockerClient.JsonSerializer.SerializeToUtf8Bytes(authConfig ?? new AuthConfig())).Replace("/", "_").Replace("+", "-") // This is not documented in Docker API but from source code (https://github.com/docker/docker-ce/blob/10e40bd1548f69354a803a15fde1b672cc024b91/components/cli/cli/command/registry.go#L47) // and from multiple internet sources it has to be base64-url-safe. // See RFC 4648 Section 5. Padding (=) needs to be kept. diff --git a/src/Docker.DotNet/Endpoints/NetworkOperations.cs b/src/Docker.DotNet/Endpoints/NetworkOperations.cs index bfb48035..9476e864 100644 --- a/src/Docker.DotNet/Endpoints/NetworkOperations.cs +++ b/src/Docker.DotNet/Endpoints/NetworkOperations.cs @@ -20,7 +20,9 @@ internal NetworkOperations(DockerClient client) public async Task> ListNetworksAsync(NetworksListParameters? parameters = null, CancellationToken cancellationToken = default) { var queryParameters = parameters == null ? null : new QueryString(parameters); - return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "networks", queryParameters, cancellationToken).ConfigureAwait(false); + + return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "networks", queryParameters, cancellationToken) + .ConfigureAwait(false); } public async Task InspectNetworkAsync(string id, CancellationToken cancellationToken = default) @@ -30,7 +32,8 @@ public async Task InspectNetworkAsync(string id, CancellationTo throw new ArgumentNullException(nameof(id)); } - return await _client.MakeRequestAsync([NoSuchNetworkHandler], HttpMethod.Get, $"networks/{id}", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync([NoSuchNetworkHandler], HttpMethod.Get, $"networks/{id}", cancellationToken) + .ConfigureAwait(false); } public async Task DeleteNetworkAsync(string id, CancellationToken cancellationToken = default) @@ -40,7 +43,8 @@ public async Task DeleteNetworkAsync(string id, CancellationToken cancellationTo throw new ArgumentNullException(nameof(id)); } - await _client.MakeRequestAsync([NoSuchNetworkHandler], HttpMethod.Delete, $"networks/{id}", cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync([NoSuchNetworkHandler], HttpMethod.Delete, $"networks/{id}", cancellationToken) + .ConfigureAwait(false); } public async Task CreateNetworkAsync(NetworksCreateParameters parameters, CancellationToken cancellationToken = default) @@ -51,7 +55,9 @@ public async Task CreateNetworkAsync(NetworksCreateParam } var data = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "networks/create", null, data, cancellationToken).ConfigureAwait(false); + + return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "networks/create", null, data, cancellationToken) + .ConfigureAwait(false); } public async Task ConnectNetworkAsync(string id, NetworkConnectParameters parameters, CancellationToken cancellationToken = default) @@ -61,13 +67,20 @@ public async Task ConnectNetworkAsync(string id, NetworkConnectParameters parame throw new ArgumentNullException(nameof(id)); } - if (string.IsNullOrEmpty(parameters?.Container)) + if (parameters == null) + { + throw new ArgumentNullException(nameof(parameters)); + } + + if (string.IsNullOrEmpty(parameters.Container)) { throw new ArgumentNullException(nameof(parameters)); } var data = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - await _client.MakeRequestAsync([NoSuchNetworkHandler], HttpMethod.Post, $"networks/{id}/connect", null, data, cancellationToken).ConfigureAwait(false); + + await _client.MakeRequestAsync([NoSuchNetworkHandler], HttpMethod.Post, $"networks/{id}/connect", null, data, cancellationToken) + .ConfigureAwait(false); } public async Task DisconnectNetworkAsync(string id, NetworkDisconnectParameters parameters, CancellationToken cancellationToken = default) @@ -77,13 +90,20 @@ public async Task DisconnectNetworkAsync(string id, NetworkDisconnectParameters throw new ArgumentNullException(nameof(id)); } - if (string.IsNullOrEmpty(parameters?.Container)) + if (parameters == null) + { + throw new ArgumentNullException(nameof(parameters)); + } + + if (string.IsNullOrEmpty(parameters.Container)) { throw new ArgumentNullException(nameof(parameters)); } var data = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - await _client.MakeRequestAsync([NoSuchNetworkHandler], HttpMethod.Post, $"networks/{id}/disconnect", null, data, cancellationToken).ConfigureAwait(false); + + await _client.MakeRequestAsync([NoSuchNetworkHandler], HttpMethod.Post, $"networks/{id}/disconnect", null, data, cancellationToken) + .ConfigureAwait(false); } public Task DeleteUnusedNetworksAsync(NetworksDeleteUnusedParameters? parameters = null, CancellationToken cancellationToken = default) @@ -94,6 +114,8 @@ public Task DeleteUnusedNetworksAsync(NetworksDeleteUnusedParameters? parameters public async Task PruneNetworksAsync(NetworksDeleteUnusedParameters? parameters = null, CancellationToken cancellationToken = default) { var queryParameters = parameters == null ? null : new QueryString(parameters); - return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "networks/prune", queryParameters, cancellationToken); + + return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "networks/prune", queryParameters, cancellationToken) + .ConfigureAwait(false); } } \ No newline at end of file diff --git a/src/Docker.DotNet/Endpoints/PluginOperations.cs b/src/Docker.DotNet/Endpoints/PluginOperations.cs index 6f5631c1..704cb23e 100644 --- a/src/Docker.DotNet/Endpoints/PluginOperations.cs +++ b/src/Docker.DotNet/Endpoints/PluginOperations.cs @@ -22,7 +22,9 @@ internal PluginOperations(DockerClient client) public async Task> ListPluginsAsync(PluginListParameters? parameters = null, CancellationToken cancellationToken = default) { var queryParameters = parameters == null ? null : new QueryString(parameters); - return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "plugins", queryParameters, cancellationToken).ConfigureAwait(false); + + return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "plugins", queryParameters, cancellationToken) + .ConfigureAwait(false); } public async Task> GetPrivilegesAsync(PluginGetPrivilegeParameters parameters, CancellationToken cancellationToken = default) @@ -33,7 +35,9 @@ public async Task> GetPrivilegesAsync(PluginGetPrivilegeP } var queryParameters = new QueryString(parameters); - return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "plugins/privileges", queryParameters, cancellationToken).ConfigureAwait(false); + + return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "plugins/privileges", queryParameters, cancellationToken) + .ConfigureAwait(false); } public Task InstallPluginAsync(PluginInstallParameters parameters, IProgress progress, CancellationToken cancellationToken = default) @@ -48,10 +52,10 @@ public Task InstallPluginAsync(PluginInstallParameters parameters, IProgress>(parameters.Privileges, DockerClient.JsonSerializer); - var queryParameters = new QueryString(parameters); + var data = new JsonRequestContent>(parameters.Privileges, DockerClient.JsonSerializer); + return StreamUtil.MonitorStreamForMessagesAsync( _client.MakeRequestForStreamAsync(_client.NoErrorHandlers, HttpMethod.Post, $"plugins/pull", queryParameters, data, null, cancellationToken), progress, @@ -65,7 +69,8 @@ public async Task InspectPluginAsync(string name, CancellationToken canc throw new ArgumentNullException(nameof(name)); } - return await _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Get, $"plugins/{name}/json", cancellationToken); + return await _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Get, $"plugins/{name}/json", cancellationToken) + .ConfigureAwait(false); } public async Task RemovePluginAsync(string name, PluginRemoveParameters? parameters = null, CancellationToken cancellationToken = default) @@ -76,7 +81,9 @@ public async Task RemovePluginAsync(string name, PluginRemoveParameters? paramet } var queryParameters = parameters == null ? null : new QueryString(parameters); - await _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Delete, $"plugins/{name}", queryParameters, cancellationToken).ConfigureAwait(false); + + await _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Delete, $"plugins/{name}", queryParameters, cancellationToken) + .ConfigureAwait(false); } public async Task EnablePluginAsync(string name, PluginEnableParameters? parameters = null, CancellationToken cancellationToken = default) @@ -87,7 +94,9 @@ public async Task EnablePluginAsync(string name, PluginEnableParameters? paramet } var queryParameters = parameters == null ? null : new QueryString(parameters); - await _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Post, $"plugins/{name}/enable", queryParameters, cancellationToken).ConfigureAwait(false); + + await _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Post, $"plugins/{name}/enable", queryParameters, cancellationToken) + .ConfigureAwait(false); } public async Task DisablePluginAsync(string name, PluginDisableParameters? parameters = null, CancellationToken cancellationToken = default) @@ -98,7 +107,9 @@ public async Task DisablePluginAsync(string name, PluginDisableParameters? param } var queryParameters = parameters == null ? null : new QueryString(parameters); - await _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Post, $"plugins/{name}/disable", queryParameters, cancellationToken).ConfigureAwait(false); + + await _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Post, $"plugins/{name}/disable", queryParameters, cancellationToken) + .ConfigureAwait(false); } public async Task UpgradePluginAsync(string name, PluginUpgradeParameters parameters, CancellationToken cancellationToken = default) @@ -119,8 +130,11 @@ public async Task UpgradePluginAsync(string name, PluginUpgradeParameters parame } var queryParameters = new QueryString(parameters); + var data = new JsonRequestContent>(parameters.Privileges, DockerClient.JsonSerializer); - await _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Post, $"plugins/{name}/upgrade", queryParameters, data, cancellationToken).ConfigureAwait(false); + + await _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Post, $"plugins/{name}/upgrade", queryParameters, data, cancellationToken) + .ConfigureAwait(false); } public async Task CreatePluginAsync(PluginCreateParameters parameters, Stream plugin, CancellationToken cancellationToken = default) @@ -136,8 +150,11 @@ public async Task CreatePluginAsync(PluginCreateParameters parameters, Stream pl } var queryParameters = new QueryString(parameters); + var data = new BinaryRequestContent(plugin, TarContentType); - await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, $"plugins/create", queryParameters, data, cancellationToken).ConfigureAwait(false); + + await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, $"plugins/create", queryParameters, data, cancellationToken) + .ConfigureAwait(false); } public async Task PushPluginAsync(string name, CancellationToken cancellationToken = default) @@ -147,7 +164,8 @@ public async Task PushPluginAsync(string name, CancellationToken cancellationTok throw new ArgumentNullException(nameof(name)); } - await _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Post, $"plugins/{name}/push", cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Post, $"plugins/{name}/push", cancellationToken) + .ConfigureAwait(false); } public async Task ConfigurePluginAsync(string name, PluginConfigureParameters parameters, CancellationToken cancellationToken = default) @@ -167,7 +185,9 @@ public async Task ConfigurePluginAsync(string name, PluginConfigureParameters pa throw new ArgumentNullException(nameof(parameters.Args)); } - var body = new JsonRequestContent>(parameters.Args, DockerClient.JsonSerializer); - await _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Post, $"plugins/{name}/set", null, body, cancellationToken).ConfigureAwait(false); + var data = new JsonRequestContent>(parameters.Args, DockerClient.JsonSerializer); + + await _client.MakeRequestAsync([NoSuchPluginHandler], HttpMethod.Post, $"plugins/{name}/set", null, data, cancellationToken) + .ConfigureAwait(false); } } \ No newline at end of file diff --git a/src/Docker.DotNet/Endpoints/SecretsOperations.cs b/src/Docker.DotNet/Endpoints/SecretsOperations.cs index e26e50c9..01e36b2e 100644 --- a/src/Docker.DotNet/Endpoints/SecretsOperations.cs +++ b/src/Docker.DotNet/Endpoints/SecretsOperations.cs @@ -11,7 +11,8 @@ internal SecretsOperations(DockerClient client) public async Task> ListAsync(CancellationToken cancellationToken = default) { - return await _client.MakeRequestAsync>(_client.NoErrorHandlers, HttpMethod.Get, "secrets", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync>(_client.NoErrorHandlers, HttpMethod.Get, "secrets", cancellationToken) + .ConfigureAwait(false); } public async Task CreateAsync(SwarmSecretSpec body, CancellationToken cancellationToken) @@ -22,7 +23,9 @@ public async Task CreateAsync(SwarmSecretSpec body, Cancel } var data = new JsonRequestContent(body, DockerClient.JsonSerializer); - return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "secrets/create", null, data, cancellationToken).ConfigureAwait(false); + + return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "secrets/create", null, data, cancellationToken) + .ConfigureAwait(false); } public async Task InspectAsync(string id, CancellationToken cancellationToken = default) @@ -32,7 +35,8 @@ public async Task InspectAsync(string id, CancellationToken cancellation throw new ArgumentNullException(nameof(id)); } - return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, $"secrets/{id}", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, $"secrets/{id}", cancellationToken) + .ConfigureAwait(false); } public async Task DeleteAsync(string id, CancellationToken cancellationToken = default) @@ -42,6 +46,7 @@ public async Task DeleteAsync(string id, CancellationToken cancellationToken = d throw new ArgumentNullException(nameof(id)); } - await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Delete, $"secrets/{id}", cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Delete, $"secrets/{id}", cancellationToken) + .ConfigureAwait(false); } } \ No newline at end of file diff --git a/src/Docker.DotNet/Endpoints/SwarmOperations.cs b/src/Docker.DotNet/Endpoints/SwarmOperations.cs index cbfe8b31..382324cd 100644 --- a/src/Docker.DotNet/Endpoints/SwarmOperations.cs +++ b/src/Docker.DotNet/Endpoints/SwarmOperations.cs @@ -10,7 +10,8 @@ internal class SwarmOperations : ISwarmOperations throw new Exception("Node is not part of a swarm."); } }; - private static readonly ApiResponseErrorHandlingDelegate AlreadyInSwarmResponseHandler = (statusCode, responseBody) => + + private static readonly ApiResponseErrorHandlingDelegate AlreadyInSwarmJoinResponseHandler = (statusCode, responseBody) => { if (statusCode == HttpStatusCode.ServiceUnavailable) { @@ -19,6 +20,15 @@ internal class SwarmOperations : ISwarmOperations } }; + private static readonly ApiResponseErrorHandlingDelegate AlreadyInSwarmInitResponseHandler = (statusCode, responseBody) => + { + if (statusCode == HttpStatusCode.NotAcceptable) + { + // TODO: Make typed error. + throw new Exception("Node is already part of a swarm."); + } + }; + private readonly DockerClient _client; internal SwarmOperations(DockerClient client) @@ -31,73 +41,103 @@ public async Task CreateServiceAsync(ServiceCreateParamet if (parameters == null) throw new ArgumentNullException(nameof(parameters)); var data = new JsonRequestContent(parameters.Service, DockerClient.JsonSerializer); - return await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Post, "services/create", null, data, RegistryAuthHeaders(parameters.RegistryAuth), cancellationToken).ConfigureAwait(false); + + return await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Post, "services/create", null, data, RegistryAuthHeaders(parameters.RegistryAuth), cancellationToken) + .ConfigureAwait(false); } public async Task GetSwarmUnlockKeyAsync(CancellationToken cancellationToken = default) { - return await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Get, "swarm/unlockkey", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Get, "swarm/unlockkey", cancellationToken) + .ConfigureAwait(false); } public async Task InitSwarmAsync(SwarmInitParameters parameters, CancellationToken cancellationToken = default) { var data = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - return await _client.MakeRequestAsync([AlreadyInSwarmResponseHandler], HttpMethod.Post, "swarm/init", null, data, cancellationToken).ConfigureAwait(false); + + return await _client.MakeRequestAsync([AlreadyInSwarmInitResponseHandler], HttpMethod.Post, "swarm/init", null, data, cancellationToken) + .ConfigureAwait(false); } public async Task InspectServiceAsync(string id, CancellationToken cancellationToken = default) { - if (string.IsNullOrEmpty(id)) throw new ArgumentNullException(nameof(id)); + if (string.IsNullOrEmpty(id)) + { + throw new ArgumentNullException(nameof(id)); + } - return await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Get, $"services/{id}", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Get, $"services/{id}", cancellationToken) + .ConfigureAwait(false); } public async Task InspectSwarmAsync(CancellationToken cancellationToken = default) { - return await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Get, "swarm", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Get, "swarm", cancellationToken) + .ConfigureAwait(false); } public async Task JoinSwarmAsync(SwarmJoinParameters parameters, CancellationToken cancellationToken = default) { var data = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - await _client.MakeRequestAsync([AlreadyInSwarmResponseHandler], HttpMethod.Post, "swarm/join", null, data, cancellationToken).ConfigureAwait(false); + + await _client.MakeRequestAsync([AlreadyInSwarmJoinResponseHandler], HttpMethod.Post, "swarm/join", null, data, cancellationToken) + .ConfigureAwait(false); } public async Task LeaveSwarmAsync(SwarmLeaveParameters? parameters = null, CancellationToken cancellationToken = default) { var queryParameters = parameters == null ? null : new QueryString(parameters); - await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Post, "swarm/leave", queryParameters, cancellationToken).ConfigureAwait(false); + + await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Post, "swarm/leave", queryParameters, cancellationToken) + .ConfigureAwait(false); } public async Task> ListServicesAsync(ServiceListParameters? parameters = null, CancellationToken cancellationToken = default) { var queryParameters = parameters == null ? null : new QueryString(parameters); - return await _client - .MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Get, "services", queryParameters, cancellationToken) + + return await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Get, "services", queryParameters, cancellationToken) .ConfigureAwait(false); } public async Task RemoveServiceAsync(string id, CancellationToken cancellationToken = default) { - if (string.IsNullOrEmpty(id)) throw new ArgumentNullException(nameof(id)); + if (string.IsNullOrEmpty(id)) + { + throw new ArgumentNullException(nameof(id)); + } - await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Delete, $"services/{id}", cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Delete, $"services/{id}", cancellationToken) + .ConfigureAwait(false); } public async Task UnlockSwarmAsync(SwarmUnlockParameters parameters, CancellationToken cancellationToken = default) { - var body = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Post, "swarm/unlock", null, body, cancellationToken).ConfigureAwait(false); + var data = new JsonRequestContent(parameters, DockerClient.JsonSerializer); + + await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Post, "swarm/unlock", null, data, cancellationToken) + .ConfigureAwait(false); } public async Task UpdateServiceAsync(string id, ServiceUpdateParameters parameters, CancellationToken cancellationToken = default) { - if (string.IsNullOrEmpty(id)) throw new ArgumentNullException(nameof(id)); - if (parameters == null) throw new ArgumentNullException(nameof(parameters)); + if (string.IsNullOrEmpty(id)) + { + throw new ArgumentNullException(nameof(id)); + } + + if (parameters == null) + { + throw new ArgumentNullException(nameof(parameters)); + } var queryParameters = new QueryString(parameters); - var body = new JsonRequestContent(parameters.Service, DockerClient.JsonSerializer); - return await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Post, $"services/{id}/update", queryParameters, body, RegistryAuthHeaders(parameters.RegistryAuth), cancellationToken).ConfigureAwait(false); + + var data = new JsonRequestContent(parameters.Service, DockerClient.JsonSerializer); + + return await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Post, $"services/{id}/update", queryParameters, data, RegistryAuthHeaders(parameters.RegistryAuth), cancellationToken) + .ConfigureAwait(false); } public async Task GetServiceLogsAsync(string id, ServiceLogsParameters parameters, CancellationToken cancellationToken = default) @@ -132,7 +172,8 @@ public async Task GetServiceLogsAsync(string id, bool tty, Se var queryParameters = new QueryString(parameters); - var response = await _client.MakeRequestForStreamAsync([NotInSwarmResponseHandler], HttpMethod.Get, $"services/{id}/logs", queryParameters, cancellationToken).ConfigureAwait(false); + var response = await _client.MakeRequestForStreamAsync([NotInSwarmResponseHandler], HttpMethod.Get, $"services/{id}/logs", queryParameters, cancellationToken) + .ConfigureAwait(false); return new MultiplexedStream(response, !tty); } @@ -140,8 +181,11 @@ public async Task GetServiceLogsAsync(string id, bool tty, Se public async Task UpdateSwarmAsync(SwarmUpdateParameters parameters, CancellationToken cancellationToken = default) { var queryParameters = new QueryString(parameters); - var body = new JsonRequestContent(parameters.Spec, DockerClient.JsonSerializer); - await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Post, "swarm/update", queryParameters, body, cancellationToken).ConfigureAwait(false); + + var data = new JsonRequestContent(parameters.Spec, DockerClient.JsonSerializer); + + await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Post, "swarm/update", queryParameters, data, cancellationToken) + .ConfigureAwait(false); } private static Dictionary RegistryAuthHeaders(AuthConfig? authConfig) @@ -162,28 +206,48 @@ private static Dictionary RegistryAuthHeaders(AuthConfig? authCo public async Task> ListNodesAsync(CancellationToken cancellationToken = default) { - return await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Get, "nodes", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Get, "nodes", cancellationToken) + .ConfigureAwait(false); } public async Task InspectNodeAsync(string id, CancellationToken cancellationToken = default) { - if (string.IsNullOrEmpty(id)) throw new ArgumentNullException(nameof(id)); - return await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Get, $"nodes/{id}", cancellationToken).ConfigureAwait(false); + if (string.IsNullOrEmpty(id)) + { + throw new ArgumentNullException(nameof(id)); + } + + return await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Get, $"nodes/{id}", cancellationToken) + .ConfigureAwait(false); } public async Task RemoveNodeAsync(string id, bool? force = null, CancellationToken cancellationToken = default) { - if (string.IsNullOrEmpty(id)) throw new ArgumentNullException(nameof(id)); + if (string.IsNullOrEmpty(id)) + { + throw new ArgumentNullException(nameof(id)); + } + var parameters = new NodeRemoveParameters { Force = force }; + var queryParameters = new QueryString(parameters); - await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Delete, $"nodes/{id}", queryParameters, cancellationToken).ConfigureAwait(false); + + await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Delete, $"nodes/{id}", queryParameters, cancellationToken) + .ConfigureAwait(false); } public async Task UpdateNodeAsync(string id, ulong version, NodeUpdateParameters parameters, CancellationToken cancellationToken = default) { - if (string.IsNullOrEmpty(id)) throw new ArgumentNullException(nameof(id)); + if (string.IsNullOrEmpty(id)) + { + throw new ArgumentNullException(nameof(id)); + } + var queryParameters = new EnumerableQueryString("version", [version.ToString()]); - var body = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Post, $"nodes/{id}/update", queryParameters, body, cancellationToken).ConfigureAwait(false); + + var data = new JsonRequestContent(parameters, DockerClient.JsonSerializer); + + await _client.MakeRequestAsync([NotInSwarmResponseHandler], HttpMethod.Post, $"nodes/{id}/update", queryParameters, data, cancellationToken) + .ConfigureAwait(false); } } \ No newline at end of file diff --git a/src/Docker.DotNet/Endpoints/SystemOperations.cs b/src/Docker.DotNet/Endpoints/SystemOperations.cs index f1c78a20..e8492d44 100644 --- a/src/Docker.DotNet/Endpoints/SystemOperations.cs +++ b/src/Docker.DotNet/Endpoints/SystemOperations.cs @@ -18,22 +18,26 @@ public async Task AuthenticateAsync(AuthConfig authConfig, CancellationToken can var data = new JsonRequestContent(authConfig, DockerClient.JsonSerializer); - await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "auth", null, data, cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "auth", null, data, cancellationToken) + .ConfigureAwait(false); } public async Task GetVersionAsync(CancellationToken cancellationToken = default) { - return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "version", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "version", cancellationToken) + .ConfigureAwait(false); } public async Task PingAsync(CancellationToken cancellationToken = default) { - await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "_ping", cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "_ping", cancellationToken) + .ConfigureAwait(false); } public async Task GetSystemInfoAsync(CancellationToken cancellationToken = default) { - return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "info", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "info", cancellationToken) + .ConfigureAwait(false); } public async Task MonitorEventsAsync(ContainerEventsParameters parameters, CancellationToken cancellationToken = default) diff --git a/src/Docker.DotNet/Endpoints/TasksOperations.cs b/src/Docker.DotNet/Endpoints/TasksOperations.cs index 21562043..1fe89878 100644 --- a/src/Docker.DotNet/Endpoints/TasksOperations.cs +++ b/src/Docker.DotNet/Endpoints/TasksOperations.cs @@ -17,7 +17,9 @@ public Task> ListAsync(CancellationToken cancellationToken = public async Task> ListAsync(TasksListParameters? parameters = null, CancellationToken cancellationToken = default) { var queryParameters = parameters == null ? null : new QueryString(parameters); - return await _client.MakeRequestAsync>(_client.NoErrorHandlers, HttpMethod.Get, "tasks", queryParameters, cancellationToken).ConfigureAwait(false); + + return await _client.MakeRequestAsync>(_client.NoErrorHandlers, HttpMethod.Get, "tasks", queryParameters, cancellationToken) + .ConfigureAwait(false); } public async Task InspectAsync(string id, CancellationToken cancellationToken = default) @@ -27,6 +29,7 @@ public async Task InspectAsync(string id, CancellationToken cancel throw new ArgumentNullException(nameof(id)); } - return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, $"tasks/{id}", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, $"tasks/{id}", cancellationToken) + .ConfigureAwait(false); } } \ No newline at end of file diff --git a/src/Docker.DotNet/Endpoints/VolumeOperations.cs b/src/Docker.DotNet/Endpoints/VolumeOperations.cs index ff5d6fa8..72f777a0 100644 --- a/src/Docker.DotNet/Endpoints/VolumeOperations.cs +++ b/src/Docker.DotNet/Endpoints/VolumeOperations.cs @@ -17,7 +17,9 @@ public Task ListAsync(CancellationToken cancellationToken = public async Task ListAsync(VolumesListParameters? parameters = null, CancellationToken cancellationToken = default) { var queryParameters = parameters == null ? null : new QueryString(parameters); - return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "volumes", queryParameters, null, cancellationToken).ConfigureAwait(false); + + return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, "volumes", queryParameters, cancellationToken) + .ConfigureAwait(false); } public async Task CreateAsync(VolumesCreateParameters parameters, CancellationToken cancellationToken = default) @@ -28,6 +30,7 @@ public async Task CreateAsync(VolumesCreateParameters parameters } var data = new JsonRequestContent(parameters, DockerClient.JsonSerializer); + return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "volumes/create", null, data, cancellationToken); } @@ -38,7 +41,8 @@ public async Task InspectAsync(string name, CancellationToken ca throw new ArgumentNullException(nameof(name)); } - return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, $"volumes/{name}", cancellationToken).ConfigureAwait(false); + return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Get, $"volumes/{name}", cancellationToken) + .ConfigureAwait(false); } public async Task RemoveAsync(string name, bool? force = null, CancellationToken cancellationToken = default) @@ -48,12 +52,15 @@ public async Task RemoveAsync(string name, bool? force = null, CancellationToken throw new ArgumentNullException(nameof(name)); } - await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Delete, $"volumes/{name}", cancellationToken).ConfigureAwait(false); + await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Delete, $"volumes/{name}", cancellationToken) + .ConfigureAwait(false); } public async Task PruneAsync(VolumesPruneParameters? parameters = null, CancellationToken cancellationToken = default) { var queryParameters = parameters == null ? null : new QueryString(parameters); - return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "volumes/prune", queryParameters, cancellationToken).ConfigureAwait(false); + + return await _client.MakeRequestAsync(_client.NoErrorHandlers, HttpMethod.Post, "volumes/prune", queryParameters, cancellationToken) + .ConfigureAwait(false); } } \ No newline at end of file From 8000cd3eb1ec6557cf478b746ae84b94ad3cfd87 Mon Sep 17 00:00:00 2001 From: campersau Date: Wed, 4 Mar 2026 08:11:43 +0100 Subject: [PATCH 11/11] Fix Init Swarm error handling, checking for ServiceUnavailable instead of ServiceUnavailable --- src/Docker.DotNet/Endpoints/SwarmOperations.cs | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/src/Docker.DotNet/Endpoints/SwarmOperations.cs b/src/Docker.DotNet/Endpoints/SwarmOperations.cs index 382324cd..8609a63e 100644 --- a/src/Docker.DotNet/Endpoints/SwarmOperations.cs +++ b/src/Docker.DotNet/Endpoints/SwarmOperations.cs @@ -11,7 +11,7 @@ internal class SwarmOperations : ISwarmOperations } }; - private static readonly ApiResponseErrorHandlingDelegate AlreadyInSwarmJoinResponseHandler = (statusCode, responseBody) => + private static readonly ApiResponseErrorHandlingDelegate AlreadyInSwarmResponseHandler = (statusCode, responseBody) => { if (statusCode == HttpStatusCode.ServiceUnavailable) { @@ -20,15 +20,6 @@ internal class SwarmOperations : ISwarmOperations } }; - private static readonly ApiResponseErrorHandlingDelegate AlreadyInSwarmInitResponseHandler = (statusCode, responseBody) => - { - if (statusCode == HttpStatusCode.NotAcceptable) - { - // TODO: Make typed error. - throw new Exception("Node is already part of a swarm."); - } - }; - private readonly DockerClient _client; internal SwarmOperations(DockerClient client) @@ -56,7 +47,7 @@ public async Task InitSwarmAsync(SwarmInitParameters parameters, Cancell { var data = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - return await _client.MakeRequestAsync([AlreadyInSwarmInitResponseHandler], HttpMethod.Post, "swarm/init", null, data, cancellationToken) + return await _client.MakeRequestAsync([AlreadyInSwarmResponseHandler], HttpMethod.Post, "swarm/init", null, data, cancellationToken) .ConfigureAwait(false); } @@ -81,7 +72,7 @@ public async Task JoinSwarmAsync(SwarmJoinParameters parameters, CancellationTok { var data = new JsonRequestContent(parameters, DockerClient.JsonSerializer); - await _client.MakeRequestAsync([AlreadyInSwarmJoinResponseHandler], HttpMethod.Post, "swarm/join", null, data, cancellationToken) + await _client.MakeRequestAsync([AlreadyInSwarmResponseHandler], HttpMethod.Post, "swarm/join", null, data, cancellationToken) .ConfigureAwait(false); }