Skip to content

[Backport 9.0] Fix RequestConfiguration #8515

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 8, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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; }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -161,8 +161,8 @@ ValueTask<TResponse> SendRequest()
var openTelemetryDataMutator = GetOpenTelemetryDataMutator<TRequest, TRequestParameters>(request, resolvedRouteValues);

return isAsync
? new ValueTask<TResponse>(_transport.RequestAsync<TResponse>(endpointPath, postData, openTelemetryDataMutator, request.RequestConfig, cancellationToken))
: new ValueTask<TResponse>(_transport.Request<TResponse>(endpointPath, postData, openTelemetryDataMutator, request.RequestConfig));
? new ValueTask<TResponse>(_transport.RequestAsync<TResponse>(endpointPath, postData, openTelemetryDataMutator, request.RequestConfiguration, cancellationToken))
: new ValueTask<TResponse>(_transport.Request<TResponse>(endpointPath, postData, openTelemetryDataMutator, request.RequestConfiguration));
}

async ValueTask<TResponse> SendRequestWithProductCheck()
Expand All @@ -189,15 +189,15 @@ async ValueTask<TResponse> 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")
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,4 @@ public string? SourceQueryString
get => Q<string>("source");
set => Q("source", value);
}

/// <summary>
/// Specify settings for this request alone, handy if you need a custom timeout or want to bypass sniffing, retries
/// </summary>
[JsonIgnore]
public IRequestConfiguration? RequestConfiguration { get; set; }
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,11 @@ public abstract class Request
internal Request()
{ }

[JsonIgnore] protected internal virtual IRequestConfiguration? RequestConfig { get; set; }
/// <summary>
/// Specify settings for this request alone, handy if you need a custom timeout or want to bypass sniffing, retries
/// </summary>
[JsonIgnore]
public virtual IRequestConfiguration? RequestConfiguration { get; set; }

/// <summary>
/// The default HTTP method for the request which is based on the Elasticsearch Specification endpoint definition.
Expand Down