mirror of
https://codeberg.org/scip/esctl.git
synced 2026-08-24 18:24:18 +02:00
Compare commits
2 Commits
d69984b01f
...
fix/es8-he
| Author | SHA1 | Date | |
|---|---|---|---|
| 734dea4dff | |||
| 5d7050018f |
2
go.mod
2
go.mod
@@ -14,7 +14,7 @@
|
|||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
module codeberg.org/scip/esctl
|
module codeberg.org/scip/esctl
|
||||||
|
|
||||||
go 1.26.4
|
go 1.26
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/MichaelMure/go-term-markdown v0.1.4
|
github.com/MichaelMure/go-term-markdown v0.1.4
|
||||||
|
|||||||
@@ -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