[Backport 7.x] Added x-elastic-client-meta header (#1377)
Co-authored-by: Tomas Della Vedova <delvedor@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
48762f12ec
commit
39ce8778a5
@ -28,12 +28,14 @@ const { ResponseError, ConfigurationError } = require('./errors')
|
||||
const pImmediate = promisify(setImmediate)
|
||||
const sleep = promisify(setTimeout)
|
||||
const kClient = Symbol('elasticsearch-client')
|
||||
const kMetaHeader = Symbol('meta header')
|
||||
/* istanbul ignore next */
|
||||
const noop = () => {}
|
||||
|
||||
class Helpers {
|
||||
constructor (opts) {
|
||||
this[kClient] = opts.client
|
||||
this[kMetaHeader] = opts.metaHeader
|
||||
this.maxRetries = opts.maxRetries
|
||||
}
|
||||
|
||||
@ -71,6 +73,10 @@ class Helpers {
|
||||
* @return {iterator} the async iterator
|
||||
*/
|
||||
async * scrollSearch (params, options = {}) {
|
||||
if (this[kMetaHeader] !== null) {
|
||||
options.headers = options.headers || {}
|
||||
options.headers['x-elastic-client-meta'] = this[kMetaHeader] + ',h=s'
|
||||
}
|
||||
// TODO: study scroll search slices
|
||||
const wait = options.wait || 5000
|
||||
const maxRetries = options.maxRetries || this.maxRetries
|
||||
@ -99,7 +105,7 @@ class Helpers {
|
||||
stop = true
|
||||
await this[kClient].clearScroll(
|
||||
{ body: { scroll_id } },
|
||||
{ ignore: [400] }
|
||||
{ ignore: [400], ...options }
|
||||
)
|
||||
}
|
||||
|
||||
@ -414,6 +420,7 @@ class Helpers {
|
||||
bulk (options) {
|
||||
const client = this[kClient]
|
||||
const { serialize, deserialize } = client.serializer
|
||||
const reqOptions = this[kMetaHeader] !== null ? { headers: { 'x-elastic-client-meta': this[kMetaHeader] + ',h=bp' } } : {}
|
||||
const {
|
||||
datasource,
|
||||
onDocument,
|
||||
@ -676,7 +683,7 @@ class Helpers {
|
||||
|
||||
function tryBulk (bulkBody, callback) {
|
||||
if (shouldAbort === true) return callback(null, [])
|
||||
client.bulk(Object.assign({}, bulkOptions, { body: bulkBody }), (err, { body }) => {
|
||||
client.bulk(Object.assign({}, bulkOptions, { body: bulkBody }), reqOptions, (err, { body }) => {
|
||||
if (err) return callback(err, null)
|
||||
if (body.errors === false) {
|
||||
stats.successful += body.items.length
|
||||
|
||||
Reference in New Issue
Block a user