forked from opensearch-project/opensearch-js
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added point in time APIs (opensearch-project#348)
Added point in time APIs Signed-off-by: Ajay Gupta <[email protected]> Signed-off-by: Ajay Gupta <[email protected]> Co-authored-by: Ajay Gupta <[email protected]>
- Loading branch information
Showing
12 changed files
with
685 additions
and
61 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
/* | ||
* Copyright OpenSearch Contributors | ||
* SPDX-License-Identifier: Apache-2.0 | ||
* | ||
* The OpenSearch Contributors require contributions made to | ||
* this file be licensed under the Apache-2.0 license or a | ||
* compatible open source license. | ||
* | ||
*/ | ||
|
||
'use strict'; | ||
|
||
/* eslint camelcase: 0 */ | ||
/* eslint no-unused-vars: 0 */ | ||
|
||
const { handleError, snakeCaseKeys, normalizeArguments, kConfigurationError } = require('../utils'); | ||
const acceptedQuerystring = [ | ||
'allow_partial_pit_creation', | ||
'keep_alive', | ||
'preference', | ||
'routing', | ||
'pretty', | ||
'human', | ||
'error_trace', | ||
'source', | ||
'filter_path', | ||
]; | ||
const snakeCase = { | ||
allowPartialPitCreation: 'allow_partial_pit_creation', | ||
keepAlive: 'keep_alive', | ||
errorTrace: 'error_trace', | ||
filterPath: 'filter_path', | ||
}; | ||
|
||
/** | ||
* Creates a point in time. | ||
* <br/> See Also: {@link https://opensearch.org/docs/latest/opensearch/point-in-time-api#create-a-pit|Opensearch - Create a PIT} | ||
* @memberOf API-PIT | ||
* | ||
* @param {Object} params | ||
* @param {string} params.index - The name(s) of the target index(es) for the PIT. May contain a comma-separated list or a wildcard index pattern. | ||
* @param {string} params.keep_alive - The amount of time to keep the PIT | ||
* @param {string} [params.preference=random] - The node or the shard used to perform the search. | ||
* @param {string} [params.routing] - Specifies to route search requests to a specific shard. | ||
* @param {string} [params.expand_wildcards=open] - The type of index that can match the wildcard pattern. Supports comma-separated values. | ||
* @param {string} [params.allow_partial_pit_creation=false] - Specifies whether to create a PIT with partial failures. | ||
* | ||
* @param {Object} [options] - Options for {@link Transport#request} | ||
* @param {function} [callback] - Callback that handles errors and response | ||
* | ||
* @returns {{abort: function(), then: function(), catch: function()}|Promise<never>|*} {@link https://opensearch.org/docs/latest/opensearch/point-in-time-api#sample-response|Create PIT Response} | ||
*/ | ||
|
||
function createPitApi(params, options, callback) { | ||
[params, options, callback] = normalizeArguments(params, options, callback); | ||
|
||
// check required parameters | ||
if (params['index'] == null) { | ||
const err = new this[kConfigurationError]('Missing required parameter: index'); | ||
return handleError(err, callback); | ||
} | ||
|
||
if (params['keep_alive'] == null) { | ||
const err = new this[kConfigurationError]('Missing required parameter: keep_alive'); | ||
return handleError(err, callback); | ||
} | ||
|
||
let { method, body, index, ...querystring } = params; | ||
querystring = snakeCaseKeys(acceptedQuerystring, snakeCase, querystring); | ||
|
||
let path = ''; | ||
if (method == null) method = 'POST'; | ||
path = '/' + encodeURIComponent(index) + '/' + '_search' + '/' + 'point_in_time'; | ||
|
||
// build request object | ||
const request = { | ||
method, | ||
path, | ||
body: body || '', | ||
querystring, | ||
}; | ||
|
||
return this.transport.request(request, options, callback); | ||
} | ||
|
||
module.exports = createPitApi; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
/* | ||
* Copyright OpenSearch Contributors | ||
* SPDX-License-Identifier: Apache-2.0 | ||
* | ||
* The OpenSearch Contributors require contributions made to | ||
* this file be licensed under the Apache-2.0 license or a | ||
* compatible open source license. | ||
* | ||
*/ | ||
|
||
'use strict'; | ||
|
||
/* eslint camelcase: 0 */ | ||
/* eslint no-unused-vars: 0 */ | ||
|
||
const { handleError, snakeCaseKeys, normalizeArguments, kConfigurationError } = require('../utils'); | ||
const acceptedQuerystring = ['pretty', 'human', 'error_trace', 'source', 'filter_path']; | ||
const snakeCase = { errorTrace: 'error_trace', filterPath: 'filter_path' }; | ||
|
||
/** | ||
* Deletes all PITs in the OpenSearch cluster. The Delete All PITs API deletes only local PITs or mixed PITs (PITs created in both local and remote clusters). It does not delete fully remote PITs. | ||
* <br/> See Also: {@link https://opensearch.org/docs/latest/opensearch/point-in-time-api#delete-pits|Opensearch - Delete PITs} | ||
* @memberOf API-PIT | ||
* | ||
* @param {Object} params | ||
* | ||
* @param {Object} [options] - Options for {@link Transport#request} | ||
* @param {function} [callback] - Callback that handles errors and response | ||
* | ||
* @returns {{abort: function(), then: function(), catch: function()}|Promise<never>|*} {@link https://opensearch.org/docs/latest/opensearch/point-in-time-api#sample-response-2|Delete all PITs Response} | ||
*/ | ||
function deleteAllPitsApi(params, options, callback) { | ||
[params, options, callback] = normalizeArguments(params, options, callback); | ||
|
||
let { method, body, ...querystring } = params; | ||
querystring = snakeCaseKeys(acceptedQuerystring, snakeCase, querystring); | ||
|
||
let path = ''; | ||
if (method == null) method = 'DELETE'; | ||
path = '/' + '_search' + '/' + 'point_in_time' + '/' + '_all'; | ||
|
||
// build request object | ||
const request = { | ||
method, | ||
path, | ||
body: body || '', | ||
querystring, | ||
}; | ||
|
||
return this.transport.request(request, options, callback); | ||
} | ||
|
||
module.exports = deleteAllPitsApi; |
Oops, something went wrong.