Use EC2 instance ID instead of hostname

This commit is contained in:
Ben Gotow 2016-07-14 18:52:30 -07:00
parent 5062f8d02b
commit 08c7ca8b0d
4 changed files with 36 additions and 19 deletions

View file

@ -15,6 +15,7 @@
"promise-props": "^1.0.0",
"promise.prototype.finally": "^1.0.1",
"redis": "2.x.x",
"request": "^2.73.0",
"rx": "4.x.x",
"sequelize": "3.x.x",
"underscore": "1.x.x",

View file

@ -20,7 +20,7 @@ module.exports = (sequelize, Sequelize) => {
error: this.error,
props: this.props,
}
}
}
},
},
});
};

View file

@ -1,8 +1,7 @@
const Metrics = require(`nylas-metrics`)
const Metrics = require('nylas-metrics')
Metrics.startCapturing('nylas-k2-sync')
const {DatabaseConnector, Logger} = require('nylas-core')
const SyncProcessManager = require('./sync-process-manager');
global.Metrics = Metrics
global.Logger = Logger.createLogger('nylas-k2-sync')
@ -14,19 +13,37 @@ const onUnhandledError = (err) => {
process.on('uncaughtException', onUnhandledError)
process.on('unhandledRejection', onUnhandledError)
const manager = new SyncProcessManager();
DatabaseConnector.forShared().then((db) => {
const {Account} = db;
Account.findAll().then((accounts) => {
if (accounts.length === 0) {
global.Logger.info(`Couldn't find any accounts to sync. Run this CURL command to auth one!`)
global.Logger.info(`curl -X POST -H "Content-Type: application/json" -d '{"email":"inboxapptest1@fastmail.fm", "name":"Ben Gotow", "provider":"imap", "settings":{"imap_username":"inboxapptest1@fastmail.fm","imap_host":"mail.messagingengine.com","imap_port":993,"smtp_host":"mail.messagingengine.com","smtp_port":0,"smtp_username":"inboxapptest1@fastmail.fm", "smtp_password":"trar2e","imap_password":"trar2e","ssl_required":true}}' "http://localhost:5100/auth?client_id=123"`)
}
manager.ensureAccountIDsInRedis(accounts.map(a => a.id)).then(() => {
manager.start();
})
const prepareEnvironmentInfo = (callback) => {
if (process.env.NODE_ENV === 'development') {
const os = require('os')
global.instanceId = os.hostname();
callback();
} else {
const request = require('request')
request('http://169.254.169.254/latest/meta-data/instance-id', (error, response, body) => {
global.instanceId = body;
callback();
});
}
}
prepareEnvironmentInfo(() => {
const SyncProcessManager = require('./sync-process-manager')
const manager = new SyncProcessManager();
DatabaseConnector.forShared().then((db) => {
const {Account} = db;
Account.findAll().then((accounts) => {
if (accounts.length === 0) {
global.Logger.info(`Couldn't find any accounts to sync. Run this CURL command to auth one!`)
global.Logger.info(`curl -X POST -H "Content-Type: application/json" -d '{"email":"inboxapptest1@fastmail.fm", "name":"Ben Gotow", "provider":"imap", "settings":{"imap_username":"inboxapptest1@fastmail.fm","imap_host":"mail.messagingengine.com","imap_port":993,"smtp_host":"mail.messagingengine.com","smtp_port":0,"smtp_username":"inboxapptest1@fastmail.fm", "smtp_password":"trar2e","imap_password":"trar2e","ssl_required":true}}' "http://localhost:5100/auth?client_id=123"`)
}
manager.ensureAccountIDsInRedis(accounts.map(a => a.id)).then(() => {
manager.start();
})
});
});
});
global.manager = manager;
global.manager = manager;
});

View file

@ -1,8 +1,7 @@
const os = require('os');
const SyncWorker = require('./sync-worker');
const {PromiseUtils, DatabaseConnector, PubsubConnector, SchedulerUtils} = require(`nylas-core`)
const IDENTITY = `${os.hostname()}-${process.pid}`;
const IDENTITY = `${global.instanceId}-${process.pid}`;
const {
ACCOUNTS_FOR,