-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathreqKick.app.js
More file actions
114 lines (96 loc) · 2.91 KB
/
reqKick.app.js
File metadata and controls
114 lines (96 loc) · 2.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
'use strict';
var _ = require('underscore');
var path = require('path');
var util = require('util');
var postNodeStats = require('./common/healthChecks/postNodeStats.js');
var worker = require('./worker.js');
function setupGlobals() {
global.who = 'reqKick|reqKick.app.js';
global.logger = require('./common/logger.js')();
var runMode = process.env.RUN_MODE;
// default log level is warn
var logLevel = 'warn';
if (runMode === 'dev')
logLevel = 'debug';
else if (runMode === 'beta')
logLevel = 'verbose';
else if (runMode === 'production')
logLevel = 'warn';
logger.level = logLevel;
}
function checkENVs() {
var who = global.who + '|' + checkENVs.name;
logger.info(who, 'Inside');
var expectedENVs = ['STATUS_DIR', 'SCRIPTS_DIR', 'REQEXEC_BIN_PATH',
'NODE_ID', 'NODE_TYPE_CODE', 'SHIPPABLE_NODE_ARCHITECTURE',
'SHIPPABLE_NODE_OPERATING_SYSTEM', 'SHIPPABLE_API_URL'];
var errors = [];
_.each(expectedENVs,
function (expectedENV) {
if (_.isEmpty(process.env[expectedENV]))
errors.push(
util.format('%s: Missing ENV: %s', global.who, expectedENV)
);
}
);
if (!_.isEmpty(errors)) {
_.each(errors,
function (error) {
logger.error(error);
}
);
process.exit(1);
}
}
function setupConfig() {
var who = global.who + '|' + setupConfig.name;
logger.info(who, 'Inside');
global.config = {
statusDir: process.env.STATUS_DIR,
scriptsDir: process.env.SCRIPTS_DIR,
reqExecBinPath: process.env.REQEXEC_BIN_PATH,
nodeId: process.env.NODE_ID,
subscriptionId: process.env.SUBSCRIPTION_ID,
nodeTypeCode: parseInt(process.env.NODE_TYPE_CODE, 10) || 7001,
shippableNodeArchitecture: process.env.SHIPPABLE_NODE_ARCHITECTURE,
shippableNodeOperatingSystem: process.env.SHIPPABLE_NODE_OPERATING_SYSTEM,
pollIntervalMS: 5000
};
global.config.jobWhoPath = path.join(global.config.statusDir, 'job.who');
global.config.jobStatusPath = path.join(
global.config.statusDir,
'job.status'
);
global.config.jobENVPath = path.join(global.config.statusDir, 'job.env');
global.config.jobStepsPath = path.join(
global.config.statusDir,
'job.steps.path'
);
global.config.apiUrl = process.env.SHIPPABLE_API_URL;
if (global.config.shippableNodeOperatingSystem === 'WindowsServer_2016') {
global.config.scriptExtension = 'ps1';
global.config.defaultShell = 'powershell';
global.config.defaultShellArgs = [];
} else {
global.config.scriptExtension = 'sh';
global.config.defaultShell = '/bin/bash';
global.config.defaultShellArgs = ['-c'];
}
/* Node Type Codes */
global.nodeTypeCodes = {
dynamic: 7000,
custom: 7001,
system: 7002,
service: 7003
};
global.config.isSystemNode =
global.config.nodeTypeCode === global.nodeTypeCodes.system;
}
function reqKick() {
setupGlobals();
checkENVs();
setupConfig();
postNodeStats();
worker();
}
reqKick();