From 0fb14ba23a61b780e2259c1cffc28a189f63f224 Mon Sep 17 00:00:00 2001 From: Florian Bernd Date: Thu, 8 May 2025 15:04:03 +0200 Subject: [PATCH] Fix `RequestConfiguration` (#8514) --- .../_Shared/Api/BulkRequest.cs | 2 +- .../_Shared/Client/ElasticsearchClient.cs | 12 ++++++------ .../_Shared/Core/Request/PlainRequest.cs | 6 ------ .../_Shared/Core/Request/Request.cs | 6 +++++- 4 files changed, 12 insertions(+), 14 deletions(-) diff --git a/src/Elastic.Clients.Elasticsearch/_Shared/Api/BulkRequest.cs b/src/Elastic.Clients.Elasticsearch/_Shared/Api/BulkRequest.cs index d23f5e27f2..46570f4d86 100644 --- a/src/Elastic.Clients.Elasticsearch/_Shared/Api/BulkRequest.cs +++ b/src/Elastic.Clients.Elasticsearch/_Shared/Api/BulkRequest.cs @@ -25,7 +25,7 @@ public partial class BulkRequest : IStreamSerializable internal Request Self => this; - protected internal override IRequestConfiguration RequestConfig => RequestConfigSingleton; + public override IRequestConfiguration RequestConfiguration => RequestConfigSingleton; public BulkOperationsCollection? Operations { get; set; } diff --git a/src/Elastic.Clients.Elasticsearch/_Shared/Client/ElasticsearchClient.cs b/src/Elastic.Clients.Elasticsearch/_Shared/Client/ElasticsearchClient.cs index b8af23beeb..afda07d6c1 100644 --- a/src/Elastic.Clients.Elasticsearch/_Shared/Client/ElasticsearchClient.cs +++ b/src/Elastic.Clients.Elasticsearch/_Shared/Client/ElasticsearchClient.cs @@ -161,8 +161,8 @@ ValueTask SendRequest() var openTelemetryDataMutator = GetOpenTelemetryDataMutator(request, resolvedRouteValues); return isAsync - ? new ValueTask(_transport.RequestAsync(endpointPath, postData, openTelemetryDataMutator, request.RequestConfig, cancellationToken)) - : new ValueTask(_transport.Request(endpointPath, postData, openTelemetryDataMutator, request.RequestConfig)); + ? new ValueTask(_transport.RequestAsync(endpointPath, postData, openTelemetryDataMutator, request.RequestConfiguration, cancellationToken)) + : new ValueTask(_transport.Request(endpointPath, postData, openTelemetryDataMutator, request.RequestConfiguration)); } async ValueTask SendRequestWithProductCheck() @@ -189,15 +189,15 @@ async ValueTask SendRequestWithProductCheckCore() // Attach product check header // TODO: The copy constructor should accept null values - var requestConfig = (request.RequestConfig is null) + var requestConfig = (request.RequestConfiguration is null) ? new RequestConfiguration() { ResponseHeadersToParse = new HeadersList("x-elastic-product") } - : new RequestConfiguration(request.RequestConfig) + : new RequestConfiguration(request.RequestConfiguration) { - ResponseHeadersToParse = (request.RequestConfig.ResponseHeadersToParse is { Count: > 0 }) - ? new HeadersList(request.RequestConfig.ResponseHeadersToParse, "x-elastic-product") + ResponseHeadersToParse = (request.RequestConfiguration.ResponseHeadersToParse is { Count: > 0 }) + ? new HeadersList(request.RequestConfiguration.ResponseHeadersToParse, "x-elastic-product") : new HeadersList("x-elastic-product") }; diff --git a/src/Elastic.Clients.Elasticsearch/_Shared/Core/Request/PlainRequest.cs b/src/Elastic.Clients.Elasticsearch/_Shared/Core/Request/PlainRequest.cs index c16a793569..af10ba9e64 100644 --- a/src/Elastic.Clients.Elasticsearch/_Shared/Core/Request/PlainRequest.cs +++ b/src/Elastic.Clients.Elasticsearch/_Shared/Core/Request/PlainRequest.cs @@ -66,10 +66,4 @@ public string? SourceQueryString get => Q("source"); set => Q("source", value); } - - /// - /// Specify settings for this request alone, handy if you need a custom timeout or want to bypass sniffing, retries - /// - [JsonIgnore] - public IRequestConfiguration? RequestConfiguration { get; set; } } diff --git a/src/Elastic.Clients.Elasticsearch/_Shared/Core/Request/Request.cs b/src/Elastic.Clients.Elasticsearch/_Shared/Core/Request/Request.cs index 148011dcfa..f748358cf9 100644 --- a/src/Elastic.Clients.Elasticsearch/_Shared/Core/Request/Request.cs +++ b/src/Elastic.Clients.Elasticsearch/_Shared/Core/Request/Request.cs @@ -20,7 +20,11 @@ public abstract class Request internal Request() { } - [JsonIgnore] protected internal virtual IRequestConfiguration? RequestConfig { get; set; } + /// + /// Specify settings for this request alone, handy if you need a custom timeout or want to bypass sniffing, retries + /// + [JsonIgnore] + public virtual IRequestConfiguration? RequestConfiguration { get; set; } /// /// The default HTTP method for the request which is based on the Elasticsearch Specification endpoint definition.