merge lastest changes
This commit is contained in:
@ -1,5 +1,9 @@
|
|||||||
# elasticsearch-js changelog
|
# elasticsearch-js changelog
|
||||||
|
|
||||||
|
## 2.0 (Mar 27 2014)
|
||||||
|
- The default API version is now `'1.0'`
|
||||||
|
- Promises are now supported using the Bluebird module.
|
||||||
|
|
||||||
## 1.5 (Feb 6 2014)
|
## 1.5 (Feb 6 2014)
|
||||||
- Switched out `keepaliveagent` dependency with `forever-agent`, which is used in the ever popular `request` module, and is much simpler.
|
- Switched out `keepaliveagent` dependency with `forever-agent`, which is used in the ever popular `request` module, and is much simpler.
|
||||||
- The option to use keep-alive is now all or nothing. `maxKeepAliveTime` and `maxKeepAliveRequests` config parameters have been replaced by `keepAlive`, which will keeps at least `minSockets` connections open forever. See: http://www.elasticsearch.org/guide/en/elasticsearch/client/javascript-api/current/configuration.html#configuration
|
- The option to use keep-alive is now all or nothing. `maxKeepAliveTime` and `maxKeepAliveRequests` config parameters have been replaced by `keepAlive`, which will keeps at least `minSockets` connections open forever. See: http://www.elasticsearch.org/guide/en/elasticsearch/client/javascript-api/current/configuration.html#configuration
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
The official low-level Elasticsearch client for Node.js and the browser.
|
The official low-level Elasticsearch client for Node.js and the browser.
|
||||||
|
|
||||||
[](https://travis-ci.org/elasticsearch/elasticsearch-js) [](https://coveralls.io/r/elasticsearch/elasticsearch-js) [](https://david-dm.org/elasticsearch/elasticsearch-js)
|
[](https://travis-ci.org/elasticsearch/elasticsearch-js?branch=2.0) [](https://coveralls.io/r/elasticsearch/elasticsearch-js?branch=2.0) [](https://david-dm.org/elasticsearch/elasticsearch-js)
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
[[api-reference]]
|
[[api-reference]]
|
||||||
== 1.0 API
|
== 1.1 API
|
||||||
|
|
||||||
|
|
||||||
NOTE: This is currently the default API, but in upcomming versions that will change. We recommend setting the `apiVersion` config param when you instantiate your client to make sure that the API does not change unexpectedly.
|
NOTE: This is currently the default API, but in upcomming versions that will change. We recommend setting the `apiVersion` config param when you instantiate your client to make sure that the API does not change unexpectedly.
|
||||||
@ -27,6 +27,7 @@ NOTE: This is currently the default API, but in upcomming versions that will cha
|
|||||||
* <<api-ping,ping>>
|
* <<api-ping,ping>>
|
||||||
* <<api-scroll,scroll>>
|
* <<api-scroll,scroll>>
|
||||||
* <<api-search,search>>
|
* <<api-search,search>>
|
||||||
|
* <<api-searchtemplate,searchTemplate>>
|
||||||
* <<api-suggest,suggest>>
|
* <<api-suggest,suggest>>
|
||||||
* <<api-termvector,termvector>>
|
* <<api-termvector,termvector>>
|
||||||
* <<api-update,update>>
|
* <<api-update,update>>
|
||||||
@ -39,6 +40,7 @@ NOTE: This is currently the default API, but in upcomming versions that will cha
|
|||||||
* <<api-cat-master,cat.master>>
|
* <<api-cat-master,cat.master>>
|
||||||
* <<api-cat-nodes,cat.nodes>>
|
* <<api-cat-nodes,cat.nodes>>
|
||||||
* <<api-cat-pendingtasks,cat.pendingTasks>>
|
* <<api-cat-pendingtasks,cat.pendingTasks>>
|
||||||
|
* <<api-cat-plugins,cat.plugins>>
|
||||||
* <<api-cat-recovery,cat.recovery>>
|
* <<api-cat-recovery,cat.recovery>>
|
||||||
* <<api-cat-shards,cat.shards>>
|
* <<api-cat-shards,cat.shards>>
|
||||||
* <<api-cat-threadpool,cat.threadPool>>
|
* <<api-cat-threadpool,cat.threadPool>>
|
||||||
@ -77,6 +79,7 @@ NOTE: This is currently the default API, but in upcomming versions that will cha
|
|||||||
* <<api-indices-putsettings,indices.putSettings>>
|
* <<api-indices-putsettings,indices.putSettings>>
|
||||||
* <<api-indices-puttemplate,indices.putTemplate>>
|
* <<api-indices-puttemplate,indices.putTemplate>>
|
||||||
* <<api-indices-putwarmer,indices.putWarmer>>
|
* <<api-indices-putwarmer,indices.putWarmer>>
|
||||||
|
* <<api-indices-recovery,indices.recovery>>
|
||||||
* <<api-indices-refresh,indices.refresh>>
|
* <<api-indices-refresh,indices.refresh>>
|
||||||
* <<api-indices-segments,indices.segments>>
|
* <<api-indices-segments,indices.segments>>
|
||||||
* <<api-indices-snapshotindex,indices.snapshotIndex>>
|
* <<api-indices-snapshotindex,indices.snapshotIndex>>
|
||||||
@ -95,6 +98,7 @@ NOTE: This is currently the default API, but in upcomming versions that will cha
|
|||||||
* <<api-snapshot-get,snapshot.get>>
|
* <<api-snapshot-get,snapshot.get>>
|
||||||
* <<api-snapshot-getrepository,snapshot.getRepository>>
|
* <<api-snapshot-getrepository,snapshot.getRepository>>
|
||||||
* <<api-snapshot-restore,snapshot.restore>>
|
* <<api-snapshot-restore,snapshot.restore>>
|
||||||
|
* <<api-snapshot-status,snapshot.status>>
|
||||||
|
|
||||||
[[api-bulk]]
|
[[api-bulk]]
|
||||||
=== `bulk`
|
=== `bulk`
|
||||||
@ -305,6 +309,8 @@ Options:::
|
|||||||
Options:::
|
Options:::
|
||||||
* `"internal"`
|
* `"internal"`
|
||||||
* `"external"`
|
* `"external"`
|
||||||
|
* `"external_gte"`
|
||||||
|
* `"force"`
|
||||||
|
|
||||||
`index`::
|
`index`::
|
||||||
`String` -- The index of the document being count percolated.
|
`String` -- The index of the document being count percolated.
|
||||||
@ -382,6 +388,8 @@ Options:::
|
|||||||
Options:::
|
Options:::
|
||||||
* `"internal"`
|
* `"internal"`
|
||||||
* `"external"`
|
* `"external"`
|
||||||
|
* `"external_gte"`
|
||||||
|
* `"force"`
|
||||||
|
|
||||||
`id`::
|
`id`::
|
||||||
`String` -- Document ID
|
`String` -- Document ID
|
||||||
@ -448,6 +456,8 @@ Options:::
|
|||||||
Options:::
|
Options:::
|
||||||
* `"internal"`
|
* `"internal"`
|
||||||
* `"external"`
|
* `"external"`
|
||||||
|
* `"external_gte"`
|
||||||
|
* `"force"`
|
||||||
|
|
||||||
`id`::
|
`id`::
|
||||||
`String` -- The document ID
|
`String` -- The document ID
|
||||||
@ -744,6 +754,8 @@ client.get({
|
|||||||
Options:::
|
Options:::
|
||||||
* `"internal"`
|
* `"internal"`
|
||||||
* `"external"`
|
* `"external"`
|
||||||
|
* `"external_gte"`
|
||||||
|
* `"force"`
|
||||||
|
|
||||||
`id`::
|
`id`::
|
||||||
`String` -- The document ID
|
`String` -- The document ID
|
||||||
@ -795,6 +807,8 @@ The default method is `GET` and the usual <<api-conventions,params and return va
|
|||||||
Options:::
|
Options:::
|
||||||
* `"internal"`
|
* `"internal"`
|
||||||
* `"external"`
|
* `"external"`
|
||||||
|
* `"external_gte"`
|
||||||
|
* `"force"`
|
||||||
|
|
||||||
`id`::
|
`id`::
|
||||||
`String` -- The document ID
|
`String` -- The document ID
|
||||||
@ -875,6 +889,8 @@ Options:::
|
|||||||
Options:::
|
Options:::
|
||||||
* `"internal"`
|
* `"internal"`
|
||||||
* `"external"`
|
* `"external"`
|
||||||
|
* `"external_gte"`
|
||||||
|
* `"force"`
|
||||||
|
|
||||||
`id`::
|
`id`::
|
||||||
`String` -- Document ID
|
`String` -- Document ID
|
||||||
@ -1286,6 +1302,8 @@ Options:::
|
|||||||
Options:::
|
Options:::
|
||||||
* `"internal"`
|
* `"internal"`
|
||||||
* `"external"`
|
* `"external"`
|
||||||
|
* `"external_gte"`
|
||||||
|
* `"force"`
|
||||||
|
|
||||||
`index`::
|
`index`::
|
||||||
`String` -- The index of the document being percolated.
|
`String` -- The index of the document being percolated.
|
||||||
@ -1510,6 +1528,31 @@ Options:::
|
|||||||
|
|
||||||
link:#[back to top]
|
link:#[back to top]
|
||||||
|
|
||||||
|
[[api-searchtemplate]]
|
||||||
|
=== `searchTemplate`
|
||||||
|
|
||||||
|
[source,js]
|
||||||
|
--------
|
||||||
|
client.searchTemplate([params, [callback]])
|
||||||
|
--------
|
||||||
|
|
||||||
|
// no description
|
||||||
|
|
||||||
|
The default method is `POST` and the usual <<api-conventions,params and return values>> apply. See http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-search.html[the elasticsearch docs] for more about this method.
|
||||||
|
|
||||||
|
// no examples
|
||||||
|
|
||||||
|
|
||||||
|
==== Params
|
||||||
|
|
||||||
|
[horizontal]
|
||||||
|
`index`::
|
||||||
|
`String, String[], Boolean` -- A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices
|
||||||
|
`type`::
|
||||||
|
`String, String[], Boolean` -- A comma-separated list of document types to search; leave empty to perform the operation on all types
|
||||||
|
|
||||||
|
link:#[back to top]
|
||||||
|
|
||||||
[[api-suggest]]
|
[[api-suggest]]
|
||||||
=== `suggest`
|
=== `suggest`
|
||||||
|
|
||||||
@ -1756,6 +1799,8 @@ Options:::
|
|||||||
Options:::
|
Options:::
|
||||||
* `"internal"`
|
* `"internal"`
|
||||||
* `"external"`
|
* `"external"`
|
||||||
|
* `"external_gte"`
|
||||||
|
* `"force"`
|
||||||
|
|
||||||
`id`::
|
`id`::
|
||||||
`String` -- Document ID
|
`String` -- Document ID
|
||||||
@ -2049,6 +2094,37 @@ The default method is `GET` and the usual <<api-conventions,params and return va
|
|||||||
// no examples
|
// no examples
|
||||||
|
|
||||||
|
|
||||||
|
==== Params
|
||||||
|
|
||||||
|
[horizontal]
|
||||||
|
`local`::
|
||||||
|
`Boolean` -- Return local information, do not retrieve the state from master node (default: false)
|
||||||
|
`masterTimeout`::
|
||||||
|
`Date, Number` -- Explicit operation timeout for connection to master node
|
||||||
|
`h`::
|
||||||
|
`String, String[], Boolean` -- Comma-separated list of column names to display
|
||||||
|
`help`::
|
||||||
|
`Boolean` -- Return help information
|
||||||
|
`v`::
|
||||||
|
`Boolean` -- Verbose mode. Display column headers
|
||||||
|
|
||||||
|
link:#[back to top]
|
||||||
|
|
||||||
|
[[api-cat-plugins]]
|
||||||
|
=== `cat.plugins`
|
||||||
|
|
||||||
|
[source,js]
|
||||||
|
--------
|
||||||
|
client.cat.plugins([params, [callback]])
|
||||||
|
--------
|
||||||
|
|
||||||
|
// no description
|
||||||
|
|
||||||
|
The default method is `GET` and the usual <<api-conventions,params and return values>> apply. See http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/cat-plugins.html[the elasticsearch docs] for more about this method.
|
||||||
|
|
||||||
|
// no examples
|
||||||
|
|
||||||
|
|
||||||
==== Params
|
==== Params
|
||||||
|
|
||||||
[horizontal]
|
[horizontal]
|
||||||
@ -2091,8 +2167,6 @@ Options:::
|
|||||||
* `"m"`
|
* `"m"`
|
||||||
* `"g"`
|
* `"g"`
|
||||||
|
|
||||||
`local`::
|
|
||||||
`Boolean` -- Return local information, do not retrieve the state from master node (default: false)
|
|
||||||
`masterTimeout`::
|
`masterTimeout`::
|
||||||
`Date, Number` -- Explicit operation timeout for connection to master node
|
`Date, Number` -- Explicit operation timeout for connection to master node
|
||||||
`h`::
|
`h`::
|
||||||
@ -2316,6 +2390,8 @@ The default method is `POST` and the usual <<api-conventions,params and return v
|
|||||||
[horizontal]
|
[horizontal]
|
||||||
`dryRun`::
|
`dryRun`::
|
||||||
`Boolean` -- Simulate the operation only and return the resulting state
|
`Boolean` -- Simulate the operation only and return the resulting state
|
||||||
|
`explain`::
|
||||||
|
`Boolean` -- Return an explanation of why the commands can or cannot be executed
|
||||||
`filterMetadata`::
|
`filterMetadata`::
|
||||||
`Boolean` -- Don't return cluster state metadata (default: false)
|
`Boolean` -- Don't return cluster state metadata (default: false)
|
||||||
`masterTimeout`::
|
`masterTimeout`::
|
||||||
@ -3173,6 +3249,8 @@ Options:::
|
|||||||
`Anything` -- TODO: ?
|
`Anything` -- TODO: ?
|
||||||
`waitForMerge`::
|
`waitForMerge`::
|
||||||
`Boolean` -- Specify whether the request should block until the merge process is finished (default: true)
|
`Boolean` -- Specify whether the request should block until the merge process is finished (default: true)
|
||||||
|
`force`::
|
||||||
|
`Boolean` -- Force a merge operation to run, even if there is a single segment in the index (default: false)
|
||||||
`index`::
|
`index`::
|
||||||
`String, String[], Boolean` -- A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
|
`String, String[], Boolean` -- A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
|
||||||
|
|
||||||
@ -3355,6 +3433,35 @@ Options:::
|
|||||||
|
|
||||||
link:#[back to top]
|
link:#[back to top]
|
||||||
|
|
||||||
|
[[api-indices-recovery]]
|
||||||
|
=== `indices.recovery`
|
||||||
|
|
||||||
|
[source,js]
|
||||||
|
--------
|
||||||
|
client.indices.recovery([params, [callback]])
|
||||||
|
--------
|
||||||
|
|
||||||
|
// no description
|
||||||
|
|
||||||
|
The default method is `GET` and the usual <<api-conventions,params and return values>> apply. See http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/indices-recovery.html[the elasticsearch docs] for more about this method.
|
||||||
|
|
||||||
|
// no examples
|
||||||
|
|
||||||
|
|
||||||
|
==== Params
|
||||||
|
|
||||||
|
[horizontal]
|
||||||
|
`detailed`::
|
||||||
|
`Boolean` -- Whether to display detailed information about shard recovery
|
||||||
|
`activeOnly`::
|
||||||
|
`Boolean` -- Display only those recoveries that are currently on-going
|
||||||
|
`human`::
|
||||||
|
`Boolean` -- Whether to return time and byte values in human-readable format.
|
||||||
|
`index`::
|
||||||
|
`String, String[], Boolean` -- A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
|
||||||
|
|
||||||
|
link:#[back to top]
|
||||||
|
|
||||||
[[api-indices-refresh]]
|
[[api-indices-refresh]]
|
||||||
=== `indices.refresh`
|
=== `indices.refresh`
|
||||||
|
|
||||||
@ -3439,7 +3546,7 @@ client.indices.snapshotIndex([params, [callback]])
|
|||||||
|
|
||||||
Initiate a snapshot through the gateway of one or more indices.
|
Initiate a snapshot through the gateway of one or more indices.
|
||||||
|
|
||||||
The default method is `POST` and the usual <<api-conventions,params and return values>> apply. See http://www.elasticsearch.org/guide/en/elasticsearch/reference/0.90/indices-gateway-snapshot/.html[the elasticsearch docs] for more about this method.
|
The default method is `POST` and the usual <<api-conventions,params and return values>> apply. See http://www.elasticsearch.org/guide/en/elasticsearch/reference/0.90/indices-gateway-snapshot.html[the elasticsearch docs] for more about this method.
|
||||||
|
|
||||||
// no examples
|
// no examples
|
||||||
|
|
||||||
@ -3945,3 +4052,30 @@ The default method is `POST` and the usual <<api-conventions,params and return v
|
|||||||
`String` -- A snapshot name
|
`String` -- A snapshot name
|
||||||
|
|
||||||
link:#[back to top]
|
link:#[back to top]
|
||||||
|
|
||||||
|
[[api-snapshot-status]]
|
||||||
|
=== `snapshot.status`
|
||||||
|
|
||||||
|
[source,js]
|
||||||
|
--------
|
||||||
|
client.snapshot.status([params, [callback]])
|
||||||
|
--------
|
||||||
|
|
||||||
|
// no description
|
||||||
|
|
||||||
|
The default method is `GET` and the usual <<api-conventions,params and return values>> apply. See http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/modules-snapshots.html[the elasticsearch docs] for more about this method.
|
||||||
|
|
||||||
|
// no examples
|
||||||
|
|
||||||
|
|
||||||
|
==== Params
|
||||||
|
|
||||||
|
[horizontal]
|
||||||
|
`masterTimeout`::
|
||||||
|
`Date, Number` -- Explicit operation timeout for connection to master node
|
||||||
|
`repository`::
|
||||||
|
`String` -- A repository name
|
||||||
|
`snapshot`::
|
||||||
|
`String, String[], Boolean` -- A comma-separated list of snapshot names
|
||||||
|
|
||||||
|
link:#[back to top]
|
||||||
|
|||||||
@ -2759,7 +2759,7 @@ client.indices.snapshotIndex([params, [callback]])
|
|||||||
|
|
||||||
Initiate a snapshot through the gateway of one or more indices.
|
Initiate a snapshot through the gateway of one or more indices.
|
||||||
|
|
||||||
The default method is `POST` and the usual <<api-conventions,params and return values>> apply. See http://www.elasticsearch.org/guide/en/elasticsearch/reference/0.90/indices-gateway-snapshot/.html[the elasticsearch docs] for more about this method.
|
The default method is `POST` and the usual <<api-conventions,params and return values>> apply. See http://www.elasticsearch.org/guide/en/elasticsearch/reference/0.90/indices-gateway-snapshot.html[the elasticsearch docs] for more about this method.
|
||||||
|
|
||||||
// no examples
|
// no examples
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -27,6 +27,7 @@ NOTE: At this time, you must opt into the master API by setting the `apiVersion`
|
|||||||
* <<api-ping-master,ping>>
|
* <<api-ping-master,ping>>
|
||||||
* <<api-scroll-master,scroll>>
|
* <<api-scroll-master,scroll>>
|
||||||
* <<api-search-master,search>>
|
* <<api-search-master,search>>
|
||||||
|
* <<api-searchtemplate-master,searchTemplate>>
|
||||||
* <<api-suggest-master,suggest>>
|
* <<api-suggest-master,suggest>>
|
||||||
* <<api-termvector-master,termvector>>
|
* <<api-termvector-master,termvector>>
|
||||||
* <<api-update-master,update>>
|
* <<api-update-master,update>>
|
||||||
@ -78,9 +79,9 @@ NOTE: At this time, you must opt into the master API by setting the `apiVersion`
|
|||||||
* <<api-indices-putsettings-master,indices.putSettings>>
|
* <<api-indices-putsettings-master,indices.putSettings>>
|
||||||
* <<api-indices-puttemplate-master,indices.putTemplate>>
|
* <<api-indices-puttemplate-master,indices.putTemplate>>
|
||||||
* <<api-indices-putwarmer-master,indices.putWarmer>>
|
* <<api-indices-putwarmer-master,indices.putWarmer>>
|
||||||
|
* <<api-indices-recovery-master,indices.recovery>>
|
||||||
* <<api-indices-refresh-master,indices.refresh>>
|
* <<api-indices-refresh-master,indices.refresh>>
|
||||||
* <<api-indices-segments-master,indices.segments>>
|
* <<api-indices-segments-master,indices.segments>>
|
||||||
* <<api-indices-snapshotindex-master,indices.snapshotIndex>>
|
|
||||||
* <<api-indices-stats-master,indices.stats>>
|
* <<api-indices-stats-master,indices.stats>>
|
||||||
* <<api-indices-status-master,indices.status>>
|
* <<api-indices-status-master,indices.status>>
|
||||||
* <<api-indices-updatealiases-master,indices.updateAliases>>
|
* <<api-indices-updatealiases-master,indices.updateAliases>>
|
||||||
@ -1526,6 +1527,31 @@ Options:::
|
|||||||
|
|
||||||
link:#[back to top]
|
link:#[back to top]
|
||||||
|
|
||||||
|
[[api-searchtemplate-master]]
|
||||||
|
=== `searchTemplate`
|
||||||
|
|
||||||
|
[source,js]
|
||||||
|
--------
|
||||||
|
client.searchTemplate([params, [callback]])
|
||||||
|
--------
|
||||||
|
|
||||||
|
// no description
|
||||||
|
|
||||||
|
The default method is `POST` and the usual <<api-conventions,params and return values>> apply. See http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-search.html[the elasticsearch docs] for more about this method.
|
||||||
|
|
||||||
|
// no examples
|
||||||
|
|
||||||
|
|
||||||
|
==== Params
|
||||||
|
|
||||||
|
[horizontal]
|
||||||
|
`index`::
|
||||||
|
`String, String[], Boolean` -- A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices
|
||||||
|
`type`::
|
||||||
|
`String, String[], Boolean` -- A comma-separated list of document types to search; leave empty to perform the operation on all types
|
||||||
|
|
||||||
|
link:#[back to top]
|
||||||
|
|
||||||
[[api-suggest-master]]
|
[[api-suggest-master]]
|
||||||
=== `suggest`
|
=== `suggest`
|
||||||
|
|
||||||
@ -2140,8 +2166,6 @@ Options:::
|
|||||||
* `"m"`
|
* `"m"`
|
||||||
* `"g"`
|
* `"g"`
|
||||||
|
|
||||||
`local`::
|
|
||||||
`Boolean` -- Return local information, do not retrieve the state from master node (default: false)
|
|
||||||
`masterTimeout`::
|
`masterTimeout`::
|
||||||
`Date, Number` -- Explicit operation timeout for connection to master node
|
`Date, Number` -- Explicit operation timeout for connection to master node
|
||||||
`h`::
|
`h`::
|
||||||
@ -3408,6 +3432,35 @@ Options:::
|
|||||||
|
|
||||||
link:#[back to top]
|
link:#[back to top]
|
||||||
|
|
||||||
|
[[api-indices-recovery-master]]
|
||||||
|
=== `indices.recovery`
|
||||||
|
|
||||||
|
[source,js]
|
||||||
|
--------
|
||||||
|
client.indices.recovery([params, [callback]])
|
||||||
|
--------
|
||||||
|
|
||||||
|
// no description
|
||||||
|
|
||||||
|
The default method is `GET` and the usual <<api-conventions,params and return values>> apply. See http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/indices-recovery.html[the elasticsearch docs] for more about this method.
|
||||||
|
|
||||||
|
// no examples
|
||||||
|
|
||||||
|
|
||||||
|
==== Params
|
||||||
|
|
||||||
|
[horizontal]
|
||||||
|
`detailed`::
|
||||||
|
`Boolean` -- Whether to display detailed information about shard recovery
|
||||||
|
`activeOnly`::
|
||||||
|
`Boolean` -- Display only those recoveries that are currently on-going
|
||||||
|
`human`::
|
||||||
|
`Boolean` -- Whether to return time and byte values in human-readable format.
|
||||||
|
`index`::
|
||||||
|
`String, String[], Boolean` -- A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
|
||||||
|
|
||||||
|
link:#[back to top]
|
||||||
|
|
||||||
[[api-indices-refresh-master]]
|
[[api-indices-refresh-master]]
|
||||||
=== `indices.refresh`
|
=== `indices.refresh`
|
||||||
|
|
||||||
@ -3482,39 +3535,6 @@ Options:::
|
|||||||
|
|
||||||
link:#[back to top]
|
link:#[back to top]
|
||||||
|
|
||||||
[[api-indices-snapshotindex-master]]
|
|
||||||
=== `indices.snapshotIndex`
|
|
||||||
|
|
||||||
[source,js]
|
|
||||||
--------
|
|
||||||
client.indices.snapshotIndex([params, [callback]])
|
|
||||||
--------
|
|
||||||
|
|
||||||
Initiate a snapshot through the gateway of one or more indices.
|
|
||||||
|
|
||||||
The default method is `POST` and the usual <<api-conventions,params and return values>> apply. See http://www.elasticsearch.org/guide/en/elasticsearch/reference/0.90/indices-gateway-snapshot/.html[the elasticsearch docs] for more about this method.
|
|
||||||
|
|
||||||
// no examples
|
|
||||||
|
|
||||||
|
|
||||||
==== Params
|
|
||||||
|
|
||||||
[horizontal]
|
|
||||||
`ignoreUnavailable`::
|
|
||||||
`Boolean` -- Whether specified concrete indices should be ignored when unavailable (missing or closed)
|
|
||||||
`allowNoIndices`::
|
|
||||||
`Boolean` -- Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
|
|
||||||
`[expandWildcards=open]`::
|
|
||||||
`String` -- Whether to expand wildcard expression to concrete indices that are open, closed or both.
|
|
||||||
Options:::
|
|
||||||
* `"open"`
|
|
||||||
* `"closed"`
|
|
||||||
|
|
||||||
`index`::
|
|
||||||
`String, String[], Boolean` -- A comma-separated list of index names; use `_all` or empty string for all indices
|
|
||||||
|
|
||||||
link:#[back to top]
|
|
||||||
|
|
||||||
[[api-indices-stats-master]]
|
[[api-indices-stats-master]]
|
||||||
=== `indices.stats`
|
=== `indices.stats`
|
||||||
|
|
||||||
|
|||||||
@ -33,7 +33,7 @@ module.exports = {
|
|||||||
ignore: [
|
ignore: [
|
||||||
'src/lib/connectors/jquery.js',
|
'src/lib/connectors/jquery.js',
|
||||||
'src/lib/connectors/xhr.js',
|
'src/lib/connectors/xhr.js',
|
||||||
'when'
|
'bluebird'
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -45,7 +45,7 @@ module.exports = {
|
|||||||
ignore: [
|
ignore: [
|
||||||
'src/lib/connectors/angular.js',
|
'src/lib/connectors/angular.js',
|
||||||
'src/lib/connectors/xhr.js',
|
'src/lib/connectors/xhr.js',
|
||||||
'when'
|
'bluebird'
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,7 +7,7 @@ module.exports = {
|
|||||||
'http://127.0.0.1:8000/builds.html'
|
'http://127.0.0.1:8000/builds.html'
|
||||||
],
|
],
|
||||||
testname: 'es.js client tests',
|
testname: 'es.js client tests',
|
||||||
build: process.env.CI_BUILD_NUMBER,
|
build: process.env.TRAVIS_BUILD_ID,
|
||||||
concurrency: 10,
|
concurrency: 10,
|
||||||
username: slk.user,
|
username: slk.user,
|
||||||
key: slk.key,
|
key: slk.key,
|
||||||
|
|||||||
10
package.json
10
package.json
@ -21,11 +21,11 @@
|
|||||||
},
|
},
|
||||||
"supported_es_branches": [
|
"supported_es_branches": [
|
||||||
"master",
|
"master",
|
||||||
"1.x",
|
"1.1",
|
||||||
"1.0",
|
"1.0",
|
||||||
"0.90"
|
"0.90"
|
||||||
],
|
],
|
||||||
"default_api_branch": "1.0"
|
"default_api_branch": "1.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"mocha": "~1.14.0",
|
"mocha": "~1.14.0",
|
||||||
@ -60,16 +60,16 @@
|
|||||||
"expect.js": "~0.2.0",
|
"expect.js": "~0.2.0",
|
||||||
"aliasify": "~1.2.4",
|
"aliasify": "~1.2.4",
|
||||||
"express": "~3.4.7",
|
"express": "~3.4.7",
|
||||||
"grunt-saucelabs": "git://github.com/spenceralger/grunt-saucelabs.git",
|
|
||||||
"find-root": "~0.1.1",
|
"find-root": "~0.1.1",
|
||||||
"event-stream": "~3.1.0"
|
"event-stream": "~3.1.0",
|
||||||
|
"grunt-saucelabs": "^5.1.0"
|
||||||
},
|
},
|
||||||
"license": "Apache 2.0",
|
"license": "Apache 2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"chalk": "~0.4",
|
"chalk": "~0.4",
|
||||||
"forever-agent": "0.5.2",
|
"forever-agent": "0.5.2",
|
||||||
"lodash-node": "~2.4",
|
"lodash-node": "~2.4",
|
||||||
"when": "~2.8"
|
"bluebird": "^1.1.1"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|||||||
@ -54,6 +54,12 @@ var eventElementsPerBulk = eventsPerBulk * 2; // events are stored next to their
|
|||||||
function createIndex(indexName, done) {
|
function createIndex(indexName, done) {
|
||||||
console.log('made index', indexName);
|
console.log('made index', indexName);
|
||||||
var indexBody = {
|
var indexBody = {
|
||||||
|
settings: {
|
||||||
|
index: {
|
||||||
|
number_of_shards: 1,
|
||||||
|
number_of_replicas: 0
|
||||||
|
}
|
||||||
|
},
|
||||||
mappings: {
|
mappings: {
|
||||||
_default_: {
|
_default_: {
|
||||||
properties: {
|
properties: {
|
||||||
|
|||||||
@ -3258,7 +3258,7 @@ api.indices.prototype.segments = ca({
|
|||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Perform a [indices.snapshotIndex](http://www.elasticsearch.org/guide/en/elasticsearch/reference/0.90/indices-gateway-snapshot.html) request
|
* Perform a [indices.snapshotIndex](http://www.elasticsearch.org/guide/en/elasticsearch/reference/1.x/indices-gateway-snapshot.html) request
|
||||||
*
|
*
|
||||||
* @param {Object} params - An object with parameters used to carry out this action
|
* @param {Object} params - An object with parameters used to carry out this action
|
||||||
* @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed)
|
* @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed)
|
||||||
|
|||||||
@ -502,7 +502,6 @@ api.cat.prototype.plugins = ca({
|
|||||||
*
|
*
|
||||||
* @param {Object} params - An object with parameters used to carry out this action
|
* @param {Object} params - An object with parameters used to carry out this action
|
||||||
* @param {String} params.bytes - The unit in which to display byte values
|
* @param {String} params.bytes - The unit in which to display byte values
|
||||||
* @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false)
|
|
||||||
* @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node
|
* @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node
|
||||||
* @param {String, String[], Boolean} params.h - Comma-separated list of column names to display
|
* @param {String, String[], Boolean} params.h - Comma-separated list of column names to display
|
||||||
* @param {Boolean} params.help - Return help information
|
* @param {Boolean} params.help - Return help information
|
||||||
@ -520,9 +519,6 @@ api.cat.prototype.recovery = ca({
|
|||||||
'g'
|
'g'
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
local: {
|
|
||||||
type: 'boolean'
|
|
||||||
},
|
|
||||||
masterTimeout: {
|
masterTimeout: {
|
||||||
type: 'time',
|
type: 'time',
|
||||||
name: 'master_timeout'
|
name: 'master_timeout'
|
||||||
@ -3204,6 +3200,46 @@ api.indices.prototype.putWarmer = ca({
|
|||||||
method: 'PUT'
|
method: 'PUT'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Perform a [indices.recovery](http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/indices-recovery.html) request
|
||||||
|
*
|
||||||
|
* @param {Object} params - An object with parameters used to carry out this action
|
||||||
|
* @param {Boolean} params.detailed - Whether to display detailed information about shard recovery
|
||||||
|
* @param {Boolean} params.activeOnly - Display only those recoveries that are currently on-going
|
||||||
|
* @param {Boolean} params.human - Whether to return time and byte values in human-readable format.
|
||||||
|
* @param {String, String[], Boolean} params.index - A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
|
||||||
|
*/
|
||||||
|
api.indices.prototype.recovery = ca({
|
||||||
|
params: {
|
||||||
|
detailed: {
|
||||||
|
type: 'boolean',
|
||||||
|
'default': false
|
||||||
|
},
|
||||||
|
activeOnly: {
|
||||||
|
type: 'boolean',
|
||||||
|
'default': false,
|
||||||
|
name: 'active_only'
|
||||||
|
},
|
||||||
|
human: {
|
||||||
|
type: 'boolean',
|
||||||
|
'default': false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
urls: [
|
||||||
|
{
|
||||||
|
fmt: '/<%=index%>/_recovery',
|
||||||
|
req: {
|
||||||
|
index: {
|
||||||
|
type: 'list'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
fmt: '/_recovery'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Perform a [indices.refresh](http://www.elasticsearch.org/guide/en/elasticsearch/reference/1.x/indices-refresh.html) request
|
* Perform a [indices.refresh](http://www.elasticsearch.org/guide/en/elasticsearch/reference/1.x/indices-refresh.html) request
|
||||||
*
|
*
|
||||||
@ -4730,6 +4766,41 @@ api.search = ca({
|
|||||||
method: 'POST'
|
method: 'POST'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Perform a [searchTemplate](http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-search.html) request
|
||||||
|
*
|
||||||
|
* @param {Object} params - An object with parameters used to carry out this action
|
||||||
|
* @param {String, String[], Boolean} params.index - A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices
|
||||||
|
* @param {String, String[], Boolean} params.type - A comma-separated list of document types to search; leave empty to perform the operation on all types
|
||||||
|
*/
|
||||||
|
api.searchTemplate = ca({
|
||||||
|
urls: [
|
||||||
|
{
|
||||||
|
fmt: '/<%=index%>/<%=type%>/_search/template',
|
||||||
|
req: {
|
||||||
|
index: {
|
||||||
|
type: 'list'
|
||||||
|
},
|
||||||
|
type: {
|
||||||
|
type: 'list'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
fmt: '/<%=index%>/_search/template',
|
||||||
|
req: {
|
||||||
|
index: {
|
||||||
|
type: 'list'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
fmt: '/_search/template'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
method: 'POST'
|
||||||
|
});
|
||||||
|
|
||||||
api.snapshot = function SnapshotNS(transport) {
|
api.snapshot = function SnapshotNS(transport) {
|
||||||
this.transport = transport;
|
this.transport = transport;
|
||||||
};
|
};
|
||||||
@ -502,7 +502,6 @@ api.cat.prototype.plugins = ca({
|
|||||||
*
|
*
|
||||||
* @param {Object} params - An object with parameters used to carry out this action
|
* @param {Object} params - An object with parameters used to carry out this action
|
||||||
* @param {String} params.bytes - The unit in which to display byte values
|
* @param {String} params.bytes - The unit in which to display byte values
|
||||||
* @param {Boolean} params.local - Return local information, do not retrieve the state from master node (default: false)
|
|
||||||
* @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node
|
* @param {Date, Number} params.masterTimeout - Explicit operation timeout for connection to master node
|
||||||
* @param {String, String[], Boolean} params.h - Comma-separated list of column names to display
|
* @param {String, String[], Boolean} params.h - Comma-separated list of column names to display
|
||||||
* @param {Boolean} params.help - Return help information
|
* @param {Boolean} params.help - Return help information
|
||||||
@ -520,9 +519,6 @@ api.cat.prototype.recovery = ca({
|
|||||||
'g'
|
'g'
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
local: {
|
|
||||||
type: 'boolean'
|
|
||||||
},
|
|
||||||
masterTimeout: {
|
masterTimeout: {
|
||||||
type: 'time',
|
type: 'time',
|
||||||
name: 'master_timeout'
|
name: 'master_timeout'
|
||||||
@ -3204,6 +3200,46 @@ api.indices.prototype.putWarmer = ca({
|
|||||||
method: 'PUT'
|
method: 'PUT'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Perform a [indices.recovery](http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/indices-recovery.html) request
|
||||||
|
*
|
||||||
|
* @param {Object} params - An object with parameters used to carry out this action
|
||||||
|
* @param {Boolean} params.detailed - Whether to display detailed information about shard recovery
|
||||||
|
* @param {Boolean} params.activeOnly - Display only those recoveries that are currently on-going
|
||||||
|
* @param {Boolean} params.human - Whether to return time and byte values in human-readable format.
|
||||||
|
* @param {String, String[], Boolean} params.index - A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
|
||||||
|
*/
|
||||||
|
api.indices.prototype.recovery = ca({
|
||||||
|
params: {
|
||||||
|
detailed: {
|
||||||
|
type: 'boolean',
|
||||||
|
'default': false
|
||||||
|
},
|
||||||
|
activeOnly: {
|
||||||
|
type: 'boolean',
|
||||||
|
'default': false,
|
||||||
|
name: 'active_only'
|
||||||
|
},
|
||||||
|
human: {
|
||||||
|
type: 'boolean',
|
||||||
|
'default': false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
urls: [
|
||||||
|
{
|
||||||
|
fmt: '/<%=index%>/_recovery',
|
||||||
|
req: {
|
||||||
|
index: {
|
||||||
|
type: 'list'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
fmt: '/_recovery'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Perform a [indices.refresh](http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/indices-refresh.html) request
|
* Perform a [indices.refresh](http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/indices-refresh.html) request
|
||||||
*
|
*
|
||||||
@ -3311,51 +3347,6 @@ api.indices.prototype.segments = ca({
|
|||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
|
||||||
* Perform a [indices.snapshotIndex](http://www.elasticsearch.org/guide/en/elasticsearch/reference/0.90/indices-gateway-snapshot.html) request
|
|
||||||
*
|
|
||||||
* @param {Object} params - An object with parameters used to carry out this action
|
|
||||||
* @param {Boolean} params.ignoreUnavailable - Whether specified concrete indices should be ignored when unavailable (missing or closed)
|
|
||||||
* @param {Boolean} params.allowNoIndices - Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
|
|
||||||
* @param {String} [params.expandWildcards=open] - Whether to expand wildcard expression to concrete indices that are open, closed or both.
|
|
||||||
* @param {String, String[], Boolean} params.index - A comma-separated list of index names; use `_all` or empty string for all indices
|
|
||||||
*/
|
|
||||||
api.indices.prototype.snapshotIndex = ca({
|
|
||||||
params: {
|
|
||||||
ignoreUnavailable: {
|
|
||||||
type: 'boolean',
|
|
||||||
name: 'ignore_unavailable'
|
|
||||||
},
|
|
||||||
allowNoIndices: {
|
|
||||||
type: 'boolean',
|
|
||||||
name: 'allow_no_indices'
|
|
||||||
},
|
|
||||||
expandWildcards: {
|
|
||||||
type: 'enum',
|
|
||||||
'default': 'open',
|
|
||||||
options: [
|
|
||||||
'open',
|
|
||||||
'closed'
|
|
||||||
],
|
|
||||||
name: 'expand_wildcards'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
urls: [
|
|
||||||
{
|
|
||||||
fmt: '/<%=index%>/_gateway/snapshot',
|
|
||||||
req: {
|
|
||||||
index: {
|
|
||||||
type: 'list'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
fmt: '/_gateway/snapshot'
|
|
||||||
}
|
|
||||||
],
|
|
||||||
method: 'POST'
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Perform a [indices.stats](http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/indices-stats.html) request
|
* Perform a [indices.stats](http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/indices-stats.html) request
|
||||||
*
|
*
|
||||||
@ -4730,6 +4721,41 @@ api.search = ca({
|
|||||||
method: 'POST'
|
method: 'POST'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Perform a [searchTemplate](http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-search.html) request
|
||||||
|
*
|
||||||
|
* @param {Object} params - An object with parameters used to carry out this action
|
||||||
|
* @param {String, String[], Boolean} params.index - A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices
|
||||||
|
* @param {String, String[], Boolean} params.type - A comma-separated list of document types to search; leave empty to perform the operation on all types
|
||||||
|
*/
|
||||||
|
api.searchTemplate = ca({
|
||||||
|
urls: [
|
||||||
|
{
|
||||||
|
fmt: '/<%=index%>/<%=type%>/_search/template',
|
||||||
|
req: {
|
||||||
|
index: {
|
||||||
|
type: 'list'
|
||||||
|
},
|
||||||
|
type: {
|
||||||
|
type: 'list'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
fmt: '/<%=index%>/_search/template',
|
||||||
|
req: {
|
||||||
|
index: {
|
||||||
|
type: 'list'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
fmt: '/_search/template'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
method: 'POST'
|
||||||
|
});
|
||||||
|
|
||||||
api.snapshot = function SnapshotNS(transport) {
|
api.snapshot = function SnapshotNS(transport) {
|
||||||
this.transport = transport;
|
this.transport = transport;
|
||||||
};
|
};
|
||||||
@ -5254,4 +5280,4 @@ api.create = ca.proxy(api.index, {
|
|||||||
transform: function (params) {
|
transform: function (params) {
|
||||||
params.op_type = 'create';
|
params.op_type = 'create';
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -7,7 +7,7 @@ module.exports = Transport;
|
|||||||
var _ = require('./utils');
|
var _ = require('./utils');
|
||||||
var errors = require('./errors');
|
var errors = require('./errors');
|
||||||
var Host = require('./host');
|
var Host = require('./host');
|
||||||
var when = require('when');
|
var Promise = require('bluebird');
|
||||||
|
|
||||||
function Transport(config) {
|
function Transport(config) {
|
||||||
var self = this;
|
var self = this;
|
||||||
@ -96,7 +96,7 @@ Transport.nodesToHostCallbacks = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
Transport.prototype.defer = function () {
|
Transport.prototype.defer = function () {
|
||||||
return when.defer();
|
return Promise.defer();
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
57
test/fixtures/keepalive.js
vendored
57
test/fixtures/keepalive.js
vendored
@ -1,38 +1,41 @@
|
|||||||
|
var clock = require('sinon').useFakeTimers();
|
||||||
var elasticsearch = require('../../src/elasticsearch');
|
var elasticsearch = require('../../src/elasticsearch');
|
||||||
var _ = require('lodash-node');
|
var _ = require('lodash-node');
|
||||||
var clock = require('sinon').useFakeTimers();
|
var times = require('async').times;
|
||||||
|
|
||||||
var es = elasticsearch.Client({
|
var es = elasticsearch.Client({
|
||||||
host: 'localhost:5555',
|
host: 'no-a-real-host-for-sure.bike:5555',
|
||||||
log: false
|
log: false
|
||||||
});
|
});
|
||||||
|
|
||||||
es.search({
|
times(100, function (i, done) {
|
||||||
index: '_all',
|
es.search({
|
||||||
type: '_all',
|
index: '_all',
|
||||||
body: {
|
type: '_all',
|
||||||
query: {
|
body: {
|
||||||
match_all: {}
|
query: {
|
||||||
|
match_all: {}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}, _.partial(done, null)); // ignore errors
|
||||||
}, function (err, resp) {
|
clock.tick(10);
|
||||||
var conn = _.union(es.transport.connectionPool._conns.dead, es.transport.connectionPool._conns.alive).pop();
|
}, function () {
|
||||||
|
var sockets = _(es.transport.connectionPool._conns.dead)
|
||||||
|
.concat(es.transport.connectionPool._conns.alive)
|
||||||
|
.transform(function (sockets, conn) {
|
||||||
|
[].push.apply(sockets, _.values(conn.agent.sockets));
|
||||||
|
[].push.apply(sockets, _.values(conn.agent.freeSockets));
|
||||||
|
}, [])
|
||||||
|
.flatten()
|
||||||
|
.value();
|
||||||
|
|
||||||
es.close();
|
es.close();
|
||||||
|
|
||||||
if (_.size(clock.timeouts)) {
|
|
||||||
console.log('Timeouts were left behind');
|
|
||||||
console.log(clock);
|
|
||||||
}
|
|
||||||
|
|
||||||
clock.restore();
|
clock.restore();
|
||||||
|
|
||||||
var destroyedSockets = 0;
|
var out = {
|
||||||
function countDestroyed(sockets) {
|
socketCount: sockets.length,
|
||||||
destroyedSockets += _.where(sockets, { destroyed: true}).length;
|
remaining: _.where(sockets, { destroyed: true }).length - sockets.length,
|
||||||
}
|
timeouts: _.size(clock.timeouts)
|
||||||
_.each(conn.agent.sockets, countDestroyed);
|
};
|
||||||
_.each(conn.agent.freeSockets, countDestroyed);
|
process.connected ? process.send(out) : console.log(out);
|
||||||
console.log(destroyedSockets);
|
});
|
||||||
});
|
|
||||||
|
|
||||||
clock.tick(1);
|
|
||||||
@ -11,6 +11,8 @@ var _ = require('../../../src/lib/utils');
|
|||||||
var expect = require('expect.js');
|
var expect = require('expect.js');
|
||||||
var clientManager = require('./client_manager');
|
var clientManager = require('./client_manager');
|
||||||
|
|
||||||
|
var implementedFeatures = ['gtelte', 'regex'];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The version that ES is running, in comparable string form XXX-XXX-XXX, fetched when needed
|
* The version that ES is running, in comparable string form XXX-XXX-XXX, fetched when needed
|
||||||
* @type {String}
|
* @type {String}
|
||||||
@ -114,7 +116,7 @@ function YamlDoc(doc, file) {
|
|||||||
var method = self['do_' + action.name];
|
var method = self['do_' + action.name];
|
||||||
|
|
||||||
// check that it's a function
|
// check that it's a function
|
||||||
expect(method).to.be.a('function');
|
expect(method || 'YamlDoc#' + action.name).to.be.a('function');
|
||||||
|
|
||||||
if (_.isPlainObject(action.args)) {
|
if (_.isPlainObject(action.args)) {
|
||||||
action.name += '(' + JSON.stringify(action.args) + ')';
|
action.name += '(' + JSON.stringify(action.args) + ')';
|
||||||
@ -260,24 +262,39 @@ YamlDoc.prototype = {
|
|||||||
* @param done
|
* @param done
|
||||||
*/
|
*/
|
||||||
do_skip: function (args, done) {
|
do_skip: function (args, done) {
|
||||||
if (!args.version) {
|
if (args.version) {
|
||||||
return done();
|
return rangeMatchesCurrentVersion(args.version, _.bind(function (match) {
|
||||||
|
if (match) {
|
||||||
|
if (this.description === 'setup') {
|
||||||
|
this.file.skipping = true;
|
||||||
|
// console.log('skipping this file' + (args.reason ? ' because ' + args.reason : ''));
|
||||||
|
} else {
|
||||||
|
this.skipping = true;
|
||||||
|
// console.log('skipping the rest of this doc' + (args.reason ? ' because ' + args.reason : ''));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.skipping = false;
|
||||||
|
this.file.skipping = false;
|
||||||
|
}
|
||||||
|
done();
|
||||||
|
}, this));
|
||||||
}
|
}
|
||||||
rangeMatchesCurrentVersion(args.version, _.bind(function (match) {
|
|
||||||
if (match) {
|
if (args.features) {
|
||||||
|
var features = Array.isArray(args.features) ? args.features : [args.features];
|
||||||
|
var notImplemented = _.difference(features, implementedFeatures);
|
||||||
|
|
||||||
|
if (notImplemented.length) {
|
||||||
if (this.description === 'setup') {
|
if (this.description === 'setup') {
|
||||||
this.file.skipping = true;
|
this.file.skipping = true;
|
||||||
// console.log('skipping this file' + (args.reason ? ' because ' + args.reason : ''));
|
console.log('skipping this file because ' + notImplemented.join(' & ') + ' are not implemented');
|
||||||
} else {
|
} else {
|
||||||
this.skipping = true;
|
this.skipping = true;
|
||||||
// console.log('skipping the rest of this doc' + (args.reason ? ' because ' + args.reason : ''));
|
console.log('skipping the rest of this doc because ' + notImplemented.join(' & ') + ' are not implemented');
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
this.skipping = false;
|
|
||||||
this.file.skipping = false;
|
|
||||||
}
|
}
|
||||||
done();
|
return done();
|
||||||
}, this));
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -469,6 +486,18 @@ YamlDoc.prototype = {
|
|||||||
}, this);
|
}, this);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test that the response field (arg key) is less than the value specified
|
||||||
|
*
|
||||||
|
* @param {Object} args - Hash of fields->values that need to be checked
|
||||||
|
* @return {undefined}
|
||||||
|
*/
|
||||||
|
do_lte: function (args) {
|
||||||
|
_.forOwn(args, function (num, path) {
|
||||||
|
expect(this.get(path) <= num).to.be.ok('path: ' + path);
|
||||||
|
}, this);
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test that the response field (arg key) is greater than the value specified
|
* Test that the response field (arg key) is greater than the value specified
|
||||||
*
|
*
|
||||||
@ -481,6 +510,18 @@ YamlDoc.prototype = {
|
|||||||
}, this);
|
}, this);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test that the response field (arg key) is greater than the value specified
|
||||||
|
*
|
||||||
|
* @param {Object} args - Hash of fields->values that need to be checked
|
||||||
|
* @return {undefined}
|
||||||
|
*/
|
||||||
|
do_gte: function (args) {
|
||||||
|
_.forOwn(args, function (num, path) {
|
||||||
|
expect(this.get(path) >= num).to.be.ok('path: ' + path);
|
||||||
|
}, this);
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test that the response field (arg key) has a length equal to that specified.
|
* Test that the response field (arg key) has a length equal to that specified.
|
||||||
* For object values, checks the length of the keys.
|
* For object values, checks the length of the keys.
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
var specDir = __dirname + '/specs';
|
require('bluebird').longStackTraces();
|
||||||
|
|
||||||
|
var specDir = __dirname + '/specs';
|
||||||
require('fs').readdirSync(specDir).forEach(function (file) {
|
require('fs').readdirSync(specDir).forEach(function (file) {
|
||||||
require(specDir + '/' + file);
|
require(specDir + '/' + file);
|
||||||
});
|
});
|
||||||
@ -21,20 +21,20 @@ describe('Client instances creation', function () {
|
|||||||
}).to.throwError(/previous "elasticsearch" module/);
|
}).to.throwError(/previous "elasticsearch" module/);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('inherits the 0.90 API by default', function () {
|
it('inherits the 1.0 API by default', function () {
|
||||||
expect(client.bulk).to.eql(apis['0.90'].bulk);
|
|
||||||
expect(client.cluster.nodeStats).to.eql(apis['0.90'].cluster.prototype.nodeStats);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('inherits the 1.0 API when specified', function () {
|
|
||||||
client.close();
|
|
||||||
client = es.Client({
|
|
||||||
apiVersion: '1.0'
|
|
||||||
});
|
|
||||||
expect(client.bulk).to.eql(apis['1.0'].bulk);
|
expect(client.bulk).to.eql(apis['1.0'].bulk);
|
||||||
expect(client.nodes.stats).to.eql(apis['1.0'].nodes.prototype.stats);
|
expect(client.nodes.stats).to.eql(apis['1.0'].nodes.prototype.stats);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('inherits the 0.90 API when specified', function () {
|
||||||
|
client.close();
|
||||||
|
client = es.Client({
|
||||||
|
apiVersion: '0.90'
|
||||||
|
});
|
||||||
|
expect(client.bulk).to.eql(apis['0.90'].bulk);
|
||||||
|
expect(client.cluster.nodeStats).to.eql(apis['0.90'].cluster.prototype.nodeStats);
|
||||||
|
});
|
||||||
|
|
||||||
it('closing the client causes it\'s transport to be closed', function () {
|
it('closing the client causes it\'s transport to be closed', function () {
|
||||||
var called = false;
|
var called = false;
|
||||||
client.transport.close = function () {
|
client.transport.close = function () {
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
var ca = require('../../../src/lib/client_action');
|
var ca = require('../../../src/lib/client_action');
|
||||||
var expect = require('expect.js');
|
var expect = require('expect.js');
|
||||||
var _ = require('lodash-node');
|
var _ = require('lodash-node');
|
||||||
var when = require('when');
|
var Promise = require('bluebird');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a simple mock of the client, whose "transport" has a request
|
* Creates a simple mock of the client, whose "transport" has a request
|
||||||
@ -18,11 +18,11 @@ function mockClient() {
|
|||||||
cb(void 0, params);
|
cb(void 0, params);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
return when.resolve(params);
|
return Promise.resolve(params);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
defer: function () {
|
defer: function () {
|
||||||
return when.defer();
|
return Promise.defer();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@ -371,23 +371,21 @@ describe('Http Connector', function () {
|
|||||||
|
|
||||||
describe('Connection cleanup', function () {
|
describe('Connection cleanup', function () {
|
||||||
it('destroys any connections created', function (done) {
|
it('destroys any connections created', function (done) {
|
||||||
this.timeout(4000);
|
this.timeout(10000);
|
||||||
var cp = require('child_process');
|
var cp = require('child_process');
|
||||||
var path = require('path');
|
var path = require('path');
|
||||||
var es = require('event-stream');
|
var es = require('event-stream');
|
||||||
|
|
||||||
var proc = cp.spawn('node', [path.join(__dirname, '../../fixtures/keepalive.js')], {
|
var proc = cp.fork(path.join(__dirname, '../../fixtures/keepalive.js'));
|
||||||
silent: true
|
|
||||||
});
|
proc.on('message', function (output) {
|
||||||
|
proc.kill();
|
||||||
|
|
||||||
|
expect(output).to.have.property('remaining', 0);
|
||||||
|
expect(output).to.have.property('timeouts', 0);
|
||||||
|
|
||||||
es.merge(
|
|
||||||
proc.stdout,
|
|
||||||
proc.stderr
|
|
||||||
).pipe(es.wait(function (err, output) {
|
|
||||||
expect(err).to.eql(null);
|
|
||||||
expect(parseInt(output.trim(), 10) <= 1).to.be.ok();
|
|
||||||
done();
|
done();
|
||||||
}));
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('properly removes all elements from the socket', function () {
|
it('properly removes all elements from the socket', function () {
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
var Transport = require('../../../src/lib/transport');
|
var Transport = require('../../../src/lib/transport');
|
||||||
var Host = require('../../../src/lib/host');
|
var Host = require('../../../src/lib/host');
|
||||||
var errors = require('../../../src/lib/errors');
|
var errors = require('../../../src/lib/errors');
|
||||||
var when = require('when');
|
var Promise = require('bluebird');
|
||||||
|
|
||||||
var sinon = require('sinon');
|
var sinon = require('sinon');
|
||||||
var expect = require('expect.js');
|
var expect = require('expect.js');
|
||||||
@ -213,7 +213,7 @@ describe('Transport Class', function () {
|
|||||||
|
|
||||||
describe('#defer', function () {
|
describe('#defer', function () {
|
||||||
it('returns a when.js promise by default', function () {
|
it('returns a when.js promise by default', function () {
|
||||||
expect(Transport.prototype.defer().constructor).to.be(when.defer().constructor);
|
expect(Transport.prototype.defer().constructor).to.be(Promise.defer().constructor);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -513,8 +513,9 @@ describe('Transport Class', function () {
|
|||||||
var tran = new Transport();
|
var tran = new Transport();
|
||||||
shortCircuitRequest(tran);
|
shortCircuitRequest(tran);
|
||||||
var ret = tran.request({});
|
var ret = tran.request({});
|
||||||
expect(when.isPromise(ret)).to.be(true);
|
expect(Promise.is(ret)).to.be(true);
|
||||||
expect(ret.abort).to.be.a('function');
|
expect(ret.abort).to.be.a('function');
|
||||||
|
ret.then(_.noop, _.noop); // prevent complaining from bluebird
|
||||||
});
|
});
|
||||||
it('promise is always pulled from the defer created by this.defer()', function () {
|
it('promise is always pulled from the defer created by this.defer()', function () {
|
||||||
var fakePromise = {};
|
var fakePromise = {};
|
||||||
@ -591,7 +592,9 @@ describe('Transport Class', function () {
|
|||||||
var tran = new Transport({});
|
var tran = new Transport({});
|
||||||
var err;
|
var err;
|
||||||
|
|
||||||
tran.request({});
|
var prom = tran.request({});
|
||||||
|
// disregard promise, prevent bluebird's warnings
|
||||||
|
prom.then(_.noop, _.noop);
|
||||||
|
|
||||||
expect(_.size(clock.timeouts)).to.eql(1);
|
expect(_.size(clock.timeouts)).to.eql(1);
|
||||||
_.each(clock.timeouts, function (timer, id) {
|
_.each(clock.timeouts, function (timer, id) {
|
||||||
@ -607,7 +610,9 @@ describe('Transport Class', function () {
|
|||||||
});
|
});
|
||||||
var err;
|
var err;
|
||||||
|
|
||||||
tran.request({});
|
var prom = tran.request({});
|
||||||
|
// disregard promise, prevent bluebird's warnings
|
||||||
|
prom.then(_.noop, _.noop);
|
||||||
|
|
||||||
expect(_.size(clock.timeouts)).to.eql(1);
|
expect(_.size(clock.timeouts)).to.eql(1);
|
||||||
_.each(clock.timeouts, function (timer, id) {
|
_.each(clock.timeouts, function (timer, id) {
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
var Transport = require('../../../src/lib/transport');
|
var Transport = require('../../../src/lib/transport');
|
||||||
var Host = require('../../../src/lib/host');
|
var Host = require('../../../src/lib/host');
|
||||||
var errors = require('../../../src/lib/errors');
|
var errors = require('../../../src/lib/errors');
|
||||||
var when = require('when');
|
|
||||||
var expect = require('expect.js');
|
var expect = require('expect.js');
|
||||||
|
|
||||||
var sinon = require('sinon');
|
var sinon = require('sinon');
|
||||||
@ -254,7 +253,7 @@ describe('Transport + Mock server', function () {
|
|||||||
good: 'day'
|
good: 'day'
|
||||||
});
|
});
|
||||||
done();
|
done();
|
||||||
});
|
}, done);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user