mirror of
https://codeberg.org/scip/esctl.git
synced 2026-08-24 11:24:17 +02:00
fix #79: remove compatibility header
This commit is contained in:
@@ -189,6 +189,7 @@ func (cluster *Cluster) getDefaultOptions() []elasticsearch.Option {
|
|||||||
cluster.getTransport(),
|
cluster.getTransport(),
|
||||||
elastictransport.WithHeader(headers),
|
elastictransport.WithHeader(headers),
|
||||||
),
|
),
|
||||||
|
elasticsearch.WithCompatibilityMode(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -203,7 +204,9 @@ func (cluster *Cluster) getTransport() elastictransport.Option {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
return elastictransport.WithTransport(transport)
|
return elastictransport.WithTransport(
|
||||||
|
&CompatibilityTransport{Transport: transport},
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (conf *Config) SetupES() error {
|
func (conf *Config) SetupES() error {
|
||||||
|
|||||||
@@ -53,6 +53,11 @@ func (t *DebugTransport) RoundTrip(req *http.Request) (*http.Response, error) {
|
|||||||
contentline = buf.String()
|
contentline = buf.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if req.Header.Get("Accept") != "" {
|
||||||
|
req.Header.Del("Accept")
|
||||||
|
req.Header.Add("Accept", "application/json")
|
||||||
|
}
|
||||||
|
|
||||||
slog.Info("req", "host", req.URL.Host, "uri", req.URL.Path,
|
slog.Info("req", "host", req.URL.Host, "uri", req.URL.Path,
|
||||||
"body", content, "bodyline", contentline,
|
"body", content, "bodyline", contentline,
|
||||||
"headers", req.Header,
|
"headers", req.Header,
|
||||||
@@ -60,3 +65,21 @@ func (t *DebugTransport) RoundTrip(req *http.Request) (*http.Response, error) {
|
|||||||
|
|
||||||
return t.Transport.RoundTrip(req)
|
return t.Transport.RoundTrip(req)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Fixes https://codeberg.org/scip/esctl/issues/79:
|
||||||
|
// the API client has this Accept header hardcoded everywhere:
|
||||||
|
// req.Header.Set("Accept", "application/vnd.elasticsearch+json;compatible-with=9")
|
||||||
|
// While this works pretty well with ES9, it doesn't with ES8. So, we replace
|
||||||
|
// this header with a new one without the compatibility part.
|
||||||
|
type CompatibilityTransport struct {
|
||||||
|
Transport http.RoundTripper
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t *CompatibilityTransport) RoundTrip(req *http.Request) (*http.Response, error) {
|
||||||
|
if req.Header.Get("Accept") != "" {
|
||||||
|
req.Header.Del("Accept")
|
||||||
|
req.Header.Add("Accept", "application/json")
|
||||||
|
}
|
||||||
|
|
||||||
|
return t.Transport.RoundTrip(req)
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user