Commit c21f080c447ce576d5bb40a18cd3f4ebdfadd165

Authored by Adhidarma Hadiwinoto
1 parent 9eafdb505e
Exists in master

Add xid using uniqid

Showing 3 changed files with 86 additions and 26 deletions Side-by-side Diff

... ... @@ -11,7 +11,8 @@
11 11 "dependencies": {
12 12 "komodo-sdk": "^1.43.8",
13 13 "request": "^2.81.0",
14   - "tektrans-logger": "^1.2.3"
  14 + "tektrans-logger": "^1.2.3",
  15 + "uniqid": "^5.4.0"
15 16 }
16 17 },
17 18 "node_modules/@cloudcmd/copy-file": {
... ... @@ -933,6 +934,14 @@
933 934 "uuid": "^3.4.0"
934 935 }
935 936 },
  937 + "node_modules/komodo-sdk/node_modules/uniqid": {
  938 + "version": "4.1.1",
  939 + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz",
  940 + "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=",
  941 + "dependencies": {
  942 + "macaddress": "^0.2.8"
  943 + }
  944 + },
936 945 "node_modules/kuler": {
937 946 "version": "2.0.0",
938 947 "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz",
... ... @@ -1742,12 +1751,9 @@
1742 1751 }
1743 1752 },
1744 1753 "node_modules/uniqid": {
1745   - "version": "4.1.1",
1746   - "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz",
1747   - "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=",
1748   - "dependencies": {
1749   - "macaddress": "^0.2.8"
1750   - }
  1754 + "version": "5.4.0",
  1755 + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-5.4.0.tgz",
  1756 + "integrity": "sha512-38JRbJ4Fj94VmnC7G/J/5n5SC7Ab46OM5iNtSstB/ko3l1b5g7ALt4qzHFgGciFkyiRNtDXtLNb+VsxtMSE77A=="
1751 1757 },
1752 1758 "node_modules/unpipe": {
1753 1759 "version": "1.0.0",
... ... @@ -2686,6 +2692,16 @@
2686 2692 "tektrans-logger": "^1.2.2",
2687 2693 "uniqid": "^4.1.1",
2688 2694 "uuid": "^3.4.0"
  2695 + },
  2696 + "dependencies": {
  2697 + "uniqid": {
  2698 + "version": "4.1.1",
  2699 + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz",
  2700 + "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=",
  2701 + "requires": {
  2702 + "macaddress": "^0.2.8"
  2703 + }
  2704 + }
2689 2705 }
2690 2706 },
2691 2707 "kuler": {
... ... @@ -3298,12 +3314,9 @@
3298 3314 }
3299 3315 },
3300 3316 "uniqid": {
3301   - "version": "4.1.1",
3302   - "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz",
3303   - "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=",
3304   - "requires": {
3305   - "macaddress": "^0.2.8"
3306   - }
  3317 + "version": "5.4.0",
  3318 + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-5.4.0.tgz",
  3319 + "integrity": "sha512-38JRbJ4Fj94VmnC7G/J/5n5SC7Ab46OM5iNtSstB/ko3l1b5g7ALt4qzHFgGciFkyiRNtDXtLNb+VsxtMSE77A=="
3307 3320 },
3308 3321 "unpipe": {
3309 3322 "version": "1.0.0",
... ... @@ -21,6 +21,7 @@
21 21 "dependencies": {
22 22 "komodo-sdk": "^1.43.8",
23 23 "request": "^2.81.0",
24   - "tektrans-logger": "^1.2.3"
  24 + "tektrans-logger": "^1.2.3",
  25 + "uniqid": "^5.4.0"
25 26 }
26 27 }
... ... @@ -8,6 +8,7 @@ const request = require('request');
8 8  
9 9 const config = require('komodo-sdk/config')
10 10 const logger = require('tektrans-logger');
  11 +const uniqid = rquire('uniqid');
11 12  
12 13 let _callback;
13 14  
... ... @@ -31,13 +32,22 @@ function createHttpServer() {
31 32 }
32 33  
33 34 function onRequestFromPartner(req, res) {
  35 + const xid = uniqid();
  36 +
34 37 const method_name = 'onRequestFromPartner';
35 38  
36 39 let remote_address = req.connection.remoteAddress.replace(/^::ffff:/, '');
37 40  
38 41 let qs = url.parse(req.url, true).query;
39 42  
40   - logger.verbose('Got a request from partner', {module_name: module_name, method_name: method_name, remote_address: remote_address, url: req.url, qs: qs});
  43 + logger.verbose('Got a request from partner', {
  44 + xid,
  45 + module_name,
  46 + method_name,
  47 + remote_address,
  48 + url: req.url,
  49 + qs: qs
  50 + });
41 51  
42 52 let partner = qs.terminal_name + '@' + remote_address;
43 53 let password = qs.password;
... ... @@ -48,6 +58,15 @@ function onRequestFromPartner(req, res) {
48 58 let request_id = qs.request_id;
49 59  
50 60 if (!qs.terminal_name || !password || !reverse_url || ! product_name || !destination || !request_id) {
  61 + logger.verbose('Invalid request from partner', {
  62 + xid,
  63 + hasTerminalName: !!qs.terminal_name,
  64 + hasPassword: !!password,
  65 + hasProductName: !!product_name,
  66 + hasDestination: !!hasDestination,
  67 + hasRequestId: !!request_id,
  68 +
  69 + })
51 70 res.end('INVALID REQUEST');
52 71 return;
53 72 }
... ... @@ -65,7 +84,11 @@ function onRequestFromPartner(req, res) {
65 84 function(err, _result) {
66 85 let result = cleanResponseToPartner(_result);
67 86  
68   - logger.verbose('Forwarding CORE response to partner as direct response', _result);
  87 + logger.verbose('C2DEEE9D Forwarding CORE response to partner as direct response', {
  88 + xid,
  89 + result: _result
  90 + });
  91 +
69 92 res.end(JSON.stringify(result));
70 93 }
71 94 )
... ... @@ -106,22 +129,28 @@ function init(cb) {
106 129 createHttpServer();
107 130 }
108 131  
109   -async function sleepAndResend(partner, msg, params, retry) {
  132 +async function sleepAndResend(xid, partner, msg, params, retry) {
110 133 if (retry > maxSendRetry) {
111 134 logger.verbose('Retry exceeded', {
112   - params,
  135 + xid,
113 136 retry: retry || 0,
  137 + params,
114 138 });
115 139 return;
116 140 }
117 141  
  142 + logger.verbose('Sleep before resend', { xid, sleepBeforeRetryMs });
  143 +
118 144 await sleep(sleepBeforeRetryMs);
119 145 send(partner, msg, params, retry + 1);
120 146 }
121 147  
122 148 function send(partner, msg, params, retry) {
  149 + const xid = uniqid();
  150 +
123 151 if (retry) {
124 152 logger.verbose('F39C9082: Resending', {
  153 + xid,
125 154 partner,
126 155 msg,
127 156 params,
... ... @@ -129,22 +158,26 @@ function send(partner, msg, params, retry) {
129 158 })
130 159 } else {
131 160 logger.verbose('Got response from CORE', {
132   - partner: partner, msg: msg, params: params, retry: retry || 0,
  161 + xid,
  162 + partner,
  163 + msg,
  164 + params,
  165 + retried: retry || 0,
133 166 });
134 167 }
135 168  
136 169 if (!params || !params.reverse_url) {
137   - logger.verbose('Undefined reverse_url, not forwarding message to partner');
  170 + logger.verbose('Undefined reverse_url, not forwarding message to partner', { xid });
138 171 return;
139 172 }
140 173  
141 174 if (params.reverse_url.indexOf('http') < 0) {
142   - logger.verbose('Invalid reverse_url, not forwarding message to partner');
  175 + logger.verbose('Invalid reverse_url, not forwarding message to partner', { xid });
143 176 return;
144 177 }
145 178  
146 179 if (params.rc === '68') {
147   - logger.verbose('Ignoring RC 68 reverse report');
  180 + logger.verbose('Ignoring RC 68 reverse report', { xid });
148 181 return;
149 182 }
150 183  
... ... @@ -153,11 +186,20 @@ function send(partner, msg, params, retry) {
153 186 qs: cleanResponseToPartner(params)
154 187 }
155 188  
156   - logger.verbose('Sending reverse report to partner', {request: reqOptions});
  189 + logger.verbose('Sending reverse report to partner', {
  190 + xid,
  191 + request: reqOptions
  192 + });
  193 +
157 194 request(reqOptions, function(err, res, body) {
158 195 if (err) {
159   - logger.warn('Error sending reverse report to partner', {request: reqOptions, err: err});
160   - sleepAndResend(partner, msg, params, retry || 0);
  196 + logger.warn('Error sending reverse report to partner', {
  197 + xid,
  198 + request: reqOptions,
  199 + err: err,
  200 + });
  201 +
  202 + sleepAndResend(xid, partner, msg, params, retry || 0);
161 203 return;
162 204 }
163 205  
... ... @@ -172,7 +214,11 @@ function send(partner, msg, params, retry) {
172 214 }
173 215 */
174 216  
175   - logger.verbose('Reverse report has been sent to partner', { request: reqOptions, httpStatus: res && res.statusCode });
  217 + logger.verbose('Reverse report has been sent to partner', {
  218 + xid,
  219 + request: reqOptions,
  220 + httpStatus: res && res.statusCode
  221 + });
176 222 })
177 223 }
178 224