Tracked down a bug in a call to MongoDB that failed to ever return. It was trying to remove an index and the call never finished.
This commit is contained in:
@@ -2,6 +2,8 @@ import {Meteor} from "meteor/meteor";
|
|||||||
import { _ } from 'underscore';
|
import { _ } from 'underscore';
|
||||||
import { Roles } from 'meteor/alanning:roles';
|
import { Roles } from 'meteor/alanning:roles';
|
||||||
|
|
||||||
|
// console.log("Setting Up Admin...")
|
||||||
|
|
||||||
if (Meteor.isServer) {
|
if (Meteor.isServer) {
|
||||||
Meteor.methods({
|
Meteor.methods({
|
||||||
'admin.fixRecords'(input) {
|
'admin.fixRecords'(input) {
|
||||||
@@ -54,3 +56,5 @@ if (Meteor.isServer) {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// console.log("Admin setup.")
|
||||||
@@ -5,6 +5,8 @@ import { Roles } from 'meteor/alanning:roles';
|
|||||||
//import SimpleSchema from "simpl-schema";
|
//import SimpleSchema from "simpl-schema";
|
||||||
import {AssetTypes} from "./asset-types";
|
import {AssetTypes} from "./asset-types";
|
||||||
|
|
||||||
|
// console.log("Setting Up Asset Assignments...")
|
||||||
|
|
||||||
export const AssetAssignments = new Mongo.Collection('assetAssignments');
|
export const AssetAssignments = new Mongo.Collection('assetAssignments');
|
||||||
/*
|
/*
|
||||||
const TYPE_STUDENT = 1;
|
const TYPE_STUDENT = 1;
|
||||||
@@ -42,8 +44,8 @@ if (Meteor.isServer) {
|
|||||||
//try {AssetAssignments._dropIndex("name")} catch(e) {}
|
//try {AssetAssignments._dropIndex("name")} catch(e) {}
|
||||||
//AssetAssignments.createIndex({name: "text"}, {name: "name", unique: false});
|
//AssetAssignments.createIndex({name: "text"}, {name: "name", unique: false});
|
||||||
|
|
||||||
try {AssetTypes._dropIndex("AssetID")} catch(e) {} //Typo put this as an index in AssetTypes instead of AssetAssignments.
|
//try {AssetTypes._dropIndex("AssetID")} catch(e) {} //Typo put this as an index in AssetTypes instead of AssetAssignments.
|
||||||
AssetAssignments.createIndex({assetId: 1}, {name: "AssetID", unique: false});
|
//AssetAssignments.createIndex({assetId: 1}, {name: "AssetID", unique: false});
|
||||||
|
|
||||||
// This code only runs on the server
|
// This code only runs on the server
|
||||||
Meteor.publish('assetAssignments', function(assetId) {
|
Meteor.publish('assetAssignments', function(assetId) {
|
||||||
@@ -57,11 +59,6 @@ if (Meteor.isServer) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
Meteor.methods({
|
Meteor.methods({
|
||||||
'AssetAssignments.getOne'(assetId) {
|
|
||||||
check(assetId, String);
|
|
||||||
|
|
||||||
return AssetAssignments.findOne(assetId);
|
|
||||||
},
|
|
||||||
/**
|
/**
|
||||||
* Assigns the asset to the assignee. The assignee should either be a Student or Staff member.
|
* Assigns the asset to the assignee. The assignee should either be a Student or Staff member.
|
||||||
* @param assetId The Mongo ID of the asset (asset._id).
|
* @param assetId The Mongo ID of the asset (asset._id).
|
||||||
@@ -91,3 +88,4 @@ Meteor.methods({
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// console.log("Asset assignments setup.")
|
||||||
@@ -4,6 +4,8 @@ import { check } from 'meteor/check';
|
|||||||
import { Roles } from 'meteor/alanning:roles';
|
import { Roles } from 'meteor/alanning:roles';
|
||||||
//import SimpleSchema from "simpl-schema";
|
//import SimpleSchema from "simpl-schema";
|
||||||
|
|
||||||
|
// console.log("Setting Up Asset Types...")
|
||||||
|
|
||||||
//
|
//
|
||||||
// An asset type is a specific type of equipment. Example: Lenovo 100e Chromebook.
|
// An asset type is a specific type of equipment. Example: Lenovo 100e Chromebook.
|
||||||
//
|
//
|
||||||
@@ -74,3 +76,4 @@ Meteor.methods({
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// console.log("Asset types setup.")
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ import {AssetTypes} from "./asset-types";
|
|||||||
import { ReactiveAggregate } from 'meteor/tunguska:reactive-aggregate';
|
import { ReactiveAggregate } from 'meteor/tunguska:reactive-aggregate';
|
||||||
import {AssetAssignments} from "/imports/api/asset-assignments";
|
import {AssetAssignments} from "/imports/api/asset-assignments";
|
||||||
|
|
||||||
|
// console.log("Setting Up Assets...")
|
||||||
|
|
||||||
export const Assets = new Mongo.Collection('assets');
|
export const Assets = new Mongo.Collection('assets');
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -193,3 +195,4 @@ Meteor.methods({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// console.log("Assets setup.")
|
||||||
@@ -5,6 +5,8 @@ import { MongoClient } from 'mongodb';
|
|||||||
import {Assets} from "/imports/api/assets";
|
import {Assets} from "/imports/api/assets";
|
||||||
//import {Roles} from 'alanning/roles';
|
//import {Roles} from 'alanning/roles';
|
||||||
|
|
||||||
|
// console.log("Setting Up Data Collection...")
|
||||||
|
|
||||||
//export const Records = new Mongo.Collection('records');
|
//export const Records = new Mongo.Collection('records');
|
||||||
let client;
|
let client;
|
||||||
let database;
|
let database;
|
||||||
@@ -104,3 +106,5 @@ if (Meteor.isServer) {
|
|||||||
// },
|
// },
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// console.log("Data Collection setup.")
|
||||||
@@ -7,3 +7,5 @@ import "./sites.js";
|
|||||||
import "./asset-types.js";
|
import "./asset-types.js";
|
||||||
import "./assets.js";
|
import "./assets.js";
|
||||||
import "./asset-assignments.js";
|
import "./asset-assignments.js";
|
||||||
|
|
||||||
|
// console.log("Finished setting up server side models.");
|
||||||
@@ -4,6 +4,8 @@ import {Students} from "./students";
|
|||||||
import {Staff} from "./staff";
|
import {Staff} from "./staff";
|
||||||
import { Roles } from 'meteor/alanning:roles';
|
import { Roles } from 'meteor/alanning:roles';
|
||||||
|
|
||||||
|
// console.log("Setting Up Sites...")
|
||||||
|
|
||||||
export const Sites = new Mongo.Collection('sites');
|
export const Sites = new Mongo.Collection('sites');
|
||||||
|
|
||||||
if (Meteor.isServer) {
|
if (Meteor.isServer) {
|
||||||
@@ -36,3 +38,5 @@ Meteor.methods({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// console.log("Sites setup.")
|
||||||
@@ -6,6 +6,8 @@ import {Sites} from "/imports/api/sites";
|
|||||||
import {parse} from "csv-parse";
|
import {parse} from "csv-parse";
|
||||||
import { ReactiveAggregate } from 'meteor/tunguska:reactive-aggregate';
|
import { ReactiveAggregate } from 'meteor/tunguska:reactive-aggregate';
|
||||||
|
|
||||||
|
// console.log("Setting Up Staff...")
|
||||||
|
|
||||||
export const Staff = new Mongo.Collection('staff');
|
export const Staff = new Mongo.Collection('staff');
|
||||||
|
|
||||||
if (Meteor.isServer) {
|
if (Meteor.isServer) {
|
||||||
@@ -160,3 +162,4 @@ Meteor.methods({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// console.log("Staff setup.")
|
||||||
@@ -6,6 +6,8 @@ import { Roles } from 'meteor/alanning:roles';
|
|||||||
import {parse} from 'csv-parse';
|
import {parse} from 'csv-parse';
|
||||||
import { ReactiveAggregate } from 'meteor/tunguska:reactive-aggregate';
|
import { ReactiveAggregate } from 'meteor/tunguska:reactive-aggregate';
|
||||||
|
|
||||||
|
// console.log("Setting Up Students...")
|
||||||
|
|
||||||
export const Students = new Mongo.Collection('students');
|
export const Students = new Mongo.Collection('students');
|
||||||
|
|
||||||
if (Meteor.isServer) {
|
if (Meteor.isServer) {
|
||||||
@@ -171,3 +173,5 @@ if (Meteor.isServer) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// console.log("Students setup.")
|
||||||
@@ -2,6 +2,8 @@ import { Meteor } from 'meteor/meteor';
|
|||||||
import { Roles } from 'meteor/alanning:roles';
|
import { Roles } from 'meteor/alanning:roles';
|
||||||
import { check } from 'meteor/check';
|
import { check } from 'meteor/check';
|
||||||
|
|
||||||
|
// console.log("Setting Up Users...")
|
||||||
|
|
||||||
if (Meteor.isServer) {
|
if (Meteor.isServer) {
|
||||||
Meteor.publish(null, function() {
|
Meteor.publish(null, function() {
|
||||||
if(this.userId) {
|
if(this.userId) {
|
||||||
@@ -66,3 +68,5 @@ if (Meteor.isServer) {
|
|||||||
// },
|
// },
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// console.log("Users setup.")
|
||||||
@@ -2,6 +2,8 @@ import { Accounts } from 'meteor/accounts-base'
|
|||||||
import { Roles } from 'meteor/alanning:roles'
|
import { Roles } from 'meteor/alanning:roles'
|
||||||
import {Meteor} from "meteor/meteor";
|
import {Meteor} from "meteor/meteor";
|
||||||
|
|
||||||
|
console.log("Setting up accounts-config...")
|
||||||
|
|
||||||
if(Meteor.isClient) {
|
if(Meteor.isClient) {
|
||||||
Accounts.ui.config({
|
Accounts.ui.config({
|
||||||
passwordSignupFields: 'USERNAME_ONLY'
|
passwordSignupFields: 'USERNAME_ONLY'
|
||||||
@@ -68,3 +70,5 @@ if(Meteor.isServer) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log("Finished setting up accounts-config.")
|
||||||
26
package-lock.json
generated
26
package-lock.json
generated
@@ -3148,6 +3148,22 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/rollup": {
|
||||||
|
"version": "2.78.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.0.tgz",
|
||||||
|
"integrity": "sha512-4+YfbQC9QEVvKTanHhIAFVUFSRsezvQF8vFOJwtGfb9Bb+r014S+qryr9PSmw8x6sMnPkmFBGAvIFVQxvJxjtg==",
|
||||||
|
"dev": true,
|
||||||
|
"peer": true,
|
||||||
|
"bin": {
|
||||||
|
"rollup": "dist/bin/rollup"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10.0.0"
|
||||||
|
},
|
||||||
|
"optionalDependencies": {
|
||||||
|
"fsevents": "~2.3.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/rollup-plugin-css-only": {
|
"node_modules/rollup-plugin-css-only": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/rollup-plugin-css-only/-/rollup-plugin-css-only-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/rollup-plugin-css-only/-/rollup-plugin-css-only-3.1.0.tgz",
|
||||||
@@ -6171,6 +6187,16 @@
|
|||||||
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
|
||||||
"integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="
|
"integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="
|
||||||
},
|
},
|
||||||
|
"rollup": {
|
||||||
|
"version": "2.78.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.0.tgz",
|
||||||
|
"integrity": "sha512-4+YfbQC9QEVvKTanHhIAFVUFSRsezvQF8vFOJwtGfb9Bb+r014S+qryr9PSmw8x6sMnPkmFBGAvIFVQxvJxjtg==",
|
||||||
|
"dev": true,
|
||||||
|
"peer": true,
|
||||||
|
"requires": {
|
||||||
|
"fsevents": "~2.3.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"rollup-plugin-css-only": {
|
"rollup-plugin-css-only": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/rollup-plugin-css-only/-/rollup-plugin-css-only-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/rollup-plugin-css-only/-/rollup-plugin-css-only-3.1.0.tgz",
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
|
console.log("Checking Environment...");
|
||||||
|
|
||||||
if(!process.env.MONGO_URL) {
|
if(!process.env.MONGO_URL) {
|
||||||
console.log("Must provide the MONGO_URL environment variable point to the district central's main database. Should be of the format: `mongodb://localhost:27017/DatabaseName` or `mongodb://user_name:password@host.domain.com,host2.domain.com,host3.domain.com/DatabaseName?replicaSet=set_name`.")
|
console.error("Must provide the MONGO_URL environment variable point to the district central's main database. Should be of the format: `mongodb://localhost:27017/DatabaseName` or `mongodb://user_name:password@host.domain.com,host2.domain.com,host3.domain.com/DatabaseName?replicaSet=set_name`.")
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!process.env.MONGO_URL2) {
|
if(!process.env.MONGO_URL2) {
|
||||||
console.log("Must provide the MONGO_URL2 environment variable pointing to the chromebook data collection dataset. Should be of the format: `mongodb://localhost:27017/DatabaseName` or `mongodb://user_name:password@host.domain.com,host2.domain.com,host3.domain.com/DatabaseName?replicaSet=set_name`.")
|
console.error("Must provide the MONGO_URL2 environment variable pointing to the chromebook data collection dataset. Should be of the format: `mongodb://localhost:27017/DatabaseName` or `mongodb://user_name:password@host.domain.com,host2.domain.com,host3.domain.com/DatabaseName?replicaSet=set_name`.")
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -12,8 +14,8 @@ try {
|
|||||||
let settings = Assets.getText('settings.json');
|
let settings = Assets.getText('settings.json');
|
||||||
}
|
}
|
||||||
catch(e) {
|
catch(e) {
|
||||||
console.log("Must have a /private/settings.json file with the following format:");
|
console.error("Must have a /private/settings.json file with the following format:");
|
||||||
console.log(`
|
console.error(`
|
||||||
{
|
{
|
||||||
"google": {
|
"google": {
|
||||||
"clientId": "xxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com",
|
"clientId": "xxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com",
|
||||||
@@ -30,3 +32,5 @@ catch(e) {
|
|||||||
`);
|
`);
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log("Environment Checking Complete.")
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
import {MongoInternals} from 'meteor/mongo';
|
import {MongoInternals} from 'meteor/mongo';
|
||||||
import {Meteor} from 'meteor/meteor';
|
import {Meteor} from 'meteor/meteor';
|
||||||
|
|
||||||
|
console.log("Setting up data collection database connection...");
|
||||||
|
|
||||||
let uri = process.env.MONGO_URL2; //"mongodb://localhost:27017/avusd_data_collection";
|
let uri = process.env.MONGO_URL2; //"mongodb://localhost:27017/avusd_data_collection";
|
||||||
//uri = "mongodb://localhost:27017/avusd_data_collection";
|
//uri = "mongodb://localhost:27017/avusd_data_collection";
|
||||||
//console.log(uri);
|
//console.log(uri);
|
||||||
@@ -11,3 +13,5 @@ Meteor.Records = collection;
|
|||||||
|
|
||||||
// let results = collection.find({deviceId: "1e3e99ef-adf4-4aa2-8784-205bc60f0ce3"}).fetch();
|
// let results = collection.find({deviceId: "1e3e99ef-adf4-4aa2-8784-205bc60f0ce3"}).fetch();
|
||||||
// console.log(results);
|
// console.log(results);
|
||||||
|
|
||||||
|
console.log("Database connection setup.")
|
||||||
@@ -4,6 +4,8 @@
|
|||||||
* Loads the information from the /private/settings.json file.
|
* Loads the information from the /private/settings.json file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
console.log("Setting up Google OAuth...");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
let settings = Assets.getText('settings.json');
|
let settings = Assets.getText('settings.json');
|
||||||
|
|
||||||
@@ -48,3 +50,5 @@ ServiceConfiguration.configurations.upsert(
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
console.log("Finished OAuth setup.")
|
||||||
@@ -3,6 +3,8 @@ import winston from "winston";
|
|||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
import _ from 'underscore';
|
import _ from 'underscore';
|
||||||
|
|
||||||
|
// console.log("Setting up logging....");
|
||||||
|
|
||||||
let production = (process.env.NODE_ENV === "production");
|
let production = (process.env.NODE_ENV === "production");
|
||||||
let logPath = process.env.LOG_PATH;
|
let logPath = process.env.LOG_PATH;
|
||||||
|
|
||||||
@@ -88,3 +90,5 @@ console.warn = function(d) {
|
|||||||
console.error = function(e) {
|
console.error = function(e) {
|
||||||
logger.log("error", e.stack || e);
|
logger.log("error", e.stack || e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// console.log("Logger setup.");
|
||||||
Reference in New Issue
Block a user