Skip to content
This repository was archived by the owner on May 17, 2021. It is now read-only.

chore(deps): COMPASS-4191: Switch to namespaced fork of triejs on npm #62

Merged
merged 3 commits into from
Mar 4, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
.jshintrc
.jsfmtrc
.eslintrc
.travis.yml
.zuul.yml
examples/
img/
test/
9 changes: 3 additions & 6 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
language: node_js
sudo: false
dist: bionic
node_js:
- 8.9.3
- 10.2.1
- 12.4.0
script:
- npm run check
- npm test
cache:
directories:
- node_modules
cache: npm
28 changes: 17 additions & 11 deletions lib/fetch.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ function attach(anything, done) {

/**
* get basic index information via `db.collection.indexes()`
* @param {Function} done callback
* @param {object} results results from async.auto
* @param {Function} done callback
*/
function getIndexes(done, results) {
function getIndexes(results, done) {
var client = results.client;
var ns = mongodbNS(results.namespace);
client
Expand All @@ -45,10 +45,10 @@ function getIndexes(done, results) {

/**
* get index statistics via `db.collection.aggregate({$indexStats: {}})`
* @param {Function} done callback
* @param {object} results results from async.auto
* @param {Function} done callback
*/
function getIndexStats(done, results) {
function getIndexStats(results, done) {
var client = results.client;
var ns = mongodbNS(results.namespace);
var pipeline = [
Expand All @@ -62,10 +62,12 @@ function getIndexStats(done, results) {
}
}
];
debug('Getting $indexStats for %s', results.namespace);
var collection = client.db(ns.database).collection(ns.collection);
collection.aggregate(pipeline, { cursor: {} }).toArray(function(err, res) {
if (err) {
if (isNotAuthorizedError(err)) {
debug('Not authorized to get index stats', err);
/**
* In the 3.2 server, `readWriteAnyDatabase@admin` does not grant sufficient privileges for $indexStats.
* The `clusterMonitor` role is required to run $indexStats.
Expand All @@ -75,7 +77,7 @@ function getIndexStats(done, results) {
}

if (err.message.match(/Unrecognized pipeline stage name/)) {
// $indexStats not yet supported, return empty document
debug('$indexStats not yet supported, return empty document', err);
return done(null, {});
}
done(err);
Expand All @@ -89,13 +91,14 @@ function getIndexStats(done, results) {

/**
* get index sizes via `db.collection.stats()` (`indexSizes` field)
* @param {Function} done callback
* @param {object} results results from async.auto
* @param {Function} done callback
*/

function getIndexSizes(done, results) {
function getIndexSizes(results, done) {
var client = results.client;
var ns = mongodbNS(results.namespace);
debug('Getting index sizes for %s', results.namespace);
client
.db(ns.database)
.collection(ns.collection)
Expand All @@ -107,22 +110,24 @@ function getIndexSizes(done, results) {
);
return done(null, {});
}
debug('Error getting index sizes for %s', results.namespace, err);
return done(err);
}

res = _.mapValues(res.indexSizes, function(size) {
return { size: size };
});
debug('Got index sizes for %s', results.namespace, res);
done(null, res);
});
}

/**
* merge all information together for each index
* @param {Function} done callback
* @param {object} results results from async.auto
* @param {Function} done callback
*/
function combineStatsAndIndexes(done, results) {
function combineStatsAndIndexes(results, done) {
var indexes = results.getIndexes;
var stats = results.getIndexStats;
var sizes = results.getIndexSizes;
Expand Down Expand Up @@ -153,12 +158,13 @@ function getIndexDetails(client, namespace, done) {
combineStatsAndIndexes
]
};

debug('Getting index details for namespace %s', namespace);
async.auto(tasks, function(err, results) {
if (err) {
// report error
debug('Failed to get index details for namespace %s', namespace, err);
return done(err);
}
debug('Index details for namespace %s', namespace, results.indexes);
// all info was collected in indexes
return done(null, results.indexes);
});
Expand Down
2 changes: 1 addition & 1 deletion lib/warnings.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
var Triejs = require('triejs');
var Triejs = require('@mongodb-js/triejs');
var Model = require('ampersand-model');
var Collection = require('ampersand-collection');
var _ = require('lodash');
Expand Down
Loading