Commit b2e0fde08d7afde4f88b4b97b43c1a4254cd13a2
1 parent
08782b4c
Exists in
master
and in
1 other branch
refactor log system, calls to the logger and calling in the right places. Deal w…
…ith subtitles on video_rnp
Showing
13 changed files
with
134 additions
and
61 deletions
Show diff stats
endpoints/audio.js
... | ... | @@ -60,7 +60,6 @@ function process(req, res) { |
60 | 60 | try { |
61 | 61 | callCore(id, locals.audio, req, res); |
62 | 62 | callback(); |
63 | - logger.incrementService("outros", "traducoes"); | |
64 | 63 | } catch (err) { |
65 | 64 | logger.incrementError("1", err); |
66 | 65 | callback(err); |
... | ... | @@ -101,7 +100,7 @@ function callCore(id, audio, req, res) { |
101 | 100 | |
102 | 101 | console.log("=== Core: " + command_line); |
103 | 102 | |
104 | - core.call(id, command_line, req, res); | |
105 | -}; | |
103 | + core.call(id, command_line, req, res, null, null, "outros"); | |
104 | +} | |
106 | 105 | |
107 | 106 | module.exports.init = init; | ... | ... |
endpoints/ios.js
... | ... | @@ -10,6 +10,8 @@ var logger = require('../logsystem/main.js'); |
10 | 10 | |
11 | 11 | function init(req, res) { |
12 | 12 | |
13 | + logger.incrementService("outros", "requisicoes"); | |
14 | + | |
13 | 15 | var id = uuid.v4(); |
14 | 16 | |
15 | 17 | /* Verifica se os paramêtros [transparencia, texto] possuem algum valor */ | ... | ... |
endpoints/legenda.js
... | ... | @@ -12,6 +12,9 @@ function init(req, res) { |
12 | 12 | |
13 | 13 | var id = uuid.v4(); |
14 | 14 | |
15 | + logger.incrementService("outros", "requisicoes"); | |
16 | + | |
17 | + | |
15 | 18 | /* Verifica se o paramêtro [transparencia] possue algum valor */ |
16 | 19 | if (req.body.transparencia === '') { |
17 | 20 | res.send(500, parameters.errorMessage('O valor de algum parâmetro está vazio')); |
... | ... | @@ -69,7 +72,7 @@ function init(req, res) { |
69 | 72 | /* Listener que dispara quando a requisição ao core da erro */ |
70 | 73 | child.on('error', function(code, signal){ |
71 | 74 | res.send(500, parameters.errorMessage('Erro na chamada ao core')); |
72 | - logger.incrementError("1", err); | |
75 | + logger.incrementError("legenda", err); | |
73 | 76 | }); |
74 | 77 | }); |
75 | 78 | ... | ... |
endpoints/texto.js
... | ... | @@ -13,6 +13,8 @@ function init(req, res, Request) { |
13 | 13 | |
14 | 14 | var id = uuid.v4(); |
15 | 15 | |
16 | + logger.incrementService("outros", "requisicoes"); | |
17 | + | |
16 | 18 | /* Verifica se os paramêtros [transparencia, texto] possuem algum valor */ |
17 | 19 | |
18 | 20 | if ((req.body.transparencia === '') || (req.body.texto === '') || (req.body.linguagem === '')) { |
... | ... | @@ -43,7 +45,6 @@ function init(req, res, Request) { |
43 | 45 | db.create(request_object, function(result) { |
44 | 46 | if (result !== null) { |
45 | 47 | res.send(200, { 'status': 'Requisição ' + result.id + ' cadastrada com sucesso.', 'video_id': result.id}); |
46 | - logger.incrementService("outros", "traducoes"); | |
47 | 48 | } else { |
48 | 49 | res.send(500, { 'error': 'Erro na criação da requisição.'}); |
49 | 50 | } |
... | ... | @@ -74,7 +75,7 @@ function init(req, res, Request) { |
74 | 75 | /* Listener que dispara quando a requisição ao core da erro */ |
75 | 76 | child.on('error', function(code, signal){ |
76 | 77 | res.send(500, parameters.errorMessage('Erro na chamada ao core')); |
77 | - logger.incrementError("1", 'Erro na chamada ao core'); | |
78 | + logger.incrementError("core", 'Erro na chamada ao core'); | |
78 | 79 | db.update(request_object, 'Error', function(result) { |
79 | 80 | }); |
80 | 81 | }); | ... | ... |
endpoints/video.js
... | ... | @@ -11,6 +11,9 @@ var logger = require('../logsystem/main.js'); |
11 | 11 | function init(req, res) { |
12 | 12 | res.set("Content-Type", "application/json"); |
13 | 13 | |
14 | + logger.incrementService("videos", "requisicoes"); | |
15 | + | |
16 | + | |
14 | 17 | /* Verifica se os paramêtros [transparencia, texto] possuem algum valor */ |
15 | 18 | if ((req.body.posicao === '') || (req.body.tamanho === '') || (req.body.transparencia === '')) { |
16 | 19 | res.send(500, parameters.errorMessage('O valor de algum parâmetro está vazio')); |
... | ... | @@ -59,7 +62,6 @@ function process(req, res) { |
59 | 62 | // Faz a chamada ao core |
60 | 63 | try { |
61 | 64 | callCore(id, locals.video, locals.subtitle, req, res); |
62 | - logger.incrementService("videos", "traducoes"); | |
63 | 65 | callback(); |
64 | 66 | } catch (err) { |
65 | 67 | logger.incrementError("1", err); |
... | ... | @@ -101,7 +103,7 @@ function callCore(id, video, subtitle, req, res) { |
101 | 103 | |
102 | 104 | console.log("=== Core: " + command_line); |
103 | 105 | |
104 | - core.call(id, command_line, req, res); | |
106 | + core.call(id, command_line, req, res, null, null, "videos"); | |
105 | 107 | } |
106 | 108 | |
107 | 109 | module.exports.init = init; | ... | ... |
endpoints/video_legenda.js
... | ... | @@ -60,7 +60,6 @@ function process(req, res) { |
60 | 60 | try { |
61 | 61 | callCore(id, locals.video, locals.subtitle, req, res); |
62 | 62 | callback(); |
63 | - logger.incrementService("outros", "traducoes"); | |
64 | 63 | } catch (err) { |
65 | 64 | callback(err); |
66 | 65 | logger.incrementError("1", err); |
... | ... | @@ -107,7 +106,7 @@ function callCore(id, video, subtitle, req, res) { |
107 | 106 | |
108 | 107 | console.log("=== Core: " + command_line); |
109 | 108 | |
110 | - core.call(id, command_line, req, res); | |
111 | -}; | |
109 | + core.call(id, command_line, req, res, null, null, "outros"); | |
110 | +} | |
112 | 111 | |
113 | 112 | module.exports.init = init; | ... | ... |
endpoints/videornp.js
... | ... | @@ -10,12 +10,16 @@ var async = require('async'); |
10 | 10 | var _ = require('lodash'); |
11 | 11 | var kue = require('kue'), |
12 | 12 | queue = kue.createQueue(); |
13 | +var logger = require('../logsystem/main.js'); | |
14 | + | |
13 | 15 | |
14 | 16 | function init(req, res, Request) { |
15 | 17 | res.set("Content-Type", "application/json"); |
16 | 18 | |
17 | 19 | if (_.isEmpty(req.body.legenda_url) && _.isEmpty(req.body.video_url)) { |
18 | 20 | res.send(500, parameters.errorMessage('O valor do parâmetro legenda_url e video_url está vazio')); |
21 | + logger.incrementError("video", "O valor do parâmetro legenda_url e video_url está vazio"); | |
22 | + logger.incrementError("legenda", "O valor do parâmetro legenda_url e video_url está vazio"); | |
19 | 23 | return; |
20 | 24 | } |
21 | 25 | |
... | ... | @@ -65,7 +69,7 @@ function process(req, res, Request) { |
65 | 69 | |
66 | 70 | db.create(request_object, function(result) { |
67 | 71 | if (result !== null) { |
68 | - res.send(200, { 'id': result.id }); | |
72 | + res.send(200, { 'status': 'Requisição ' + result.id + ' cadastrada com sucesso.', 'video_id': result.id}); | |
69 | 73 | } else { |
70 | 74 | res.send(500, { 'error': 'Erro na criação da requisição.'}); |
71 | 75 | } |
... | ... | @@ -98,7 +102,6 @@ function process(req, res, Request) { |
98 | 102 | |
99 | 103 | // Faz a chamada ao core |
100 | 104 | try { |
101 | - | |
102 | 105 | if (_.isEmpty(req.body.legenda_url)) { // video_url present |
103 | 106 | callCore(id, locals.video, locals.subtitle, req, res, Request, request_object); |
104 | 107 | } else { |
... | ... | @@ -125,10 +128,18 @@ function downloadAndMoveFiles(folder, req, locals, callback) { |
125 | 128 | function(callback) { |
126 | 129 | if (_.isEmpty(req.body.legenda_url)) { // video_url present |
127 | 130 | // Download video |
128 | - files.downloadAndMoveVideo(folder, req, locals, callback); | |
131 | + try { | |
132 | + files.downloadAndMoveVideo(folder, req, locals, callback); | |
133 | + } catch (e) { | |
134 | + logger.incrementError("video", e); | |
135 | + } | |
129 | 136 | } else { |
130 | 137 | // Download subtitle |
131 | - files.downloadAndMoveSubtitle(folder, req, locals, callback); | |
138 | + try { | |
139 | + files.downloadAndMoveSubtitle(folder, req, locals, callback); | |
140 | + } catch (e) { | |
141 | + logger.incrementError("legenda", e); | |
142 | + } | |
132 | 143 | } |
133 | 144 | |
134 | 145 | } |
... | ... | @@ -154,7 +165,7 @@ function callCore(id, video, subtitle, req, res, Request, request_object) { |
154 | 165 | console.log("=== Core: " + command_line); |
155 | 166 | |
156 | 167 | console.log("ID: " + request_object.id); |
157 | - core.call(id, command_line, req, res, Request, request_object); | |
168 | + core.call(id, command_line, req, res, Request, request_object, "videos"); | |
158 | 169 | } |
159 | 170 | |
160 | 171 | function callCoreSubtitle(id, subtitle, req, res, Request, request_object) { |
... | ... | @@ -176,7 +187,7 @@ function callCoreSubtitle(id, subtitle, req, res, Request, request_object) { |
176 | 187 | queue.process('exec_command_line' + id, function(job, done){ |
177 | 188 | child = queue_helper.exec_command_line(job.data.command_line, done); |
178 | 189 | }); |
179 | - | |
190 | + | |
180 | 191 | job.on('complete', function() { |
181 | 192 | /* Executa a linha de comando */ |
182 | 193 | child = exec(command_line, function(err, stdout, stderr) { |
... | ... | @@ -186,14 +197,34 @@ function callCoreSubtitle(id, subtitle, req, res, Request, request_object) { |
186 | 197 | |
187 | 198 | /* Listener que dispara quando a requisição ao core finaliza */ |
188 | 199 | child.on('close', function(code, signal){ |
189 | - res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.flv' }); | |
200 | + | |
201 | + // res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.flv' }); | |
202 | + | |
203 | + // Se o core executou com erro | |
204 | + if (code !== 0) { | |
205 | + db.update(Request, request_object.id, 'Error', function (result) {}); | |
206 | + console.log("Erro no retorno do core. Código: " + code); | |
207 | + logger.incrementError('core', "Erro no retorno do core. Código: " + code); | |
208 | + } else { | |
209 | + // Se o core executou normal | |
210 | + db.update(Request, request_object.id, 'Completed', function (result) {}); | |
211 | + res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.mp4'}); | |
212 | + logger.incrementService("videos", "traducoes"); | |
213 | + } | |
214 | + }); | |
215 | + | |
216 | + | |
190 | 217 | }); |
191 | 218 | |
192 | 219 | /* Listener que dispara quando a requisição ao core da erro */ |
193 | 220 | child.on('error', function(code, signal){ |
194 | - res.send(500, parameters.errorMessage('Erro na chamada ao core')); | |
221 | + db.update(Request, request_object.id, 'Error', function (result) {}); | |
222 | + console.log("Erro no retorno do core. Código: " + code); | |
223 | + logger.incrementError('core', "Erro no retorno do core. Código: " + code); | |
224 | + res.send(500, parameters.errorMessage('Erro na chamada ao core')); | |
195 | 225 | }); |
196 | - }); | |
226 | + | |
227 | + | |
197 | 228 | |
198 | 229 | } |
199 | 230 | ... | ... |
helpers/core.js
... | ... | @@ -10,7 +10,8 @@ var kue = require('kue'), |
10 | 10 | var logger = require('../logsystem/main.js'); |
11 | 11 | var db = require('../db/api'); |
12 | 12 | |
13 | -function call(id, command_line, req, res, Request, request_object) { | |
13 | +// req_type == "video" ou "outros" para ser usado no logger | |
14 | +function call(id, command_line, req, res, Request, request_object, req_type) { | |
14 | 15 | /* Executa a linha de comando */ |
15 | 16 | // child = exec(command_line, function(err, stdout, stderr) { |
16 | 17 | // // [stdout] = vlibras-core output |
... | ... | @@ -19,6 +20,11 @@ function call(id, command_line, req, res, Request, request_object) { |
19 | 20 | // // console.log('STDERR: ' + stderr); |
20 | 21 | // }); |
21 | 22 | |
23 | + // para ser usado no logger | |
24 | + req_type = req_type === "videos" ? req_type : "outros"; | |
25 | + | |
26 | + logger.incrementService(req_type, "requisicoes"); | |
27 | + | |
22 | 28 | var child, |
23 | 29 | job = queue.create('exec_command_line' + id, { |
24 | 30 | title: 'Command Line for: ' + req.body.servico, |
... | ... | @@ -27,9 +33,6 @@ function call(id, command_line, req, res, Request, request_object) { |
27 | 33 | |
28 | 34 | queue.process('exec_command_line' + id, function(job, done){ |
29 | 35 | child = queue_helper.exec_command_line(job.data.command_line, done); |
30 | - if (child === undefined) { | |
31 | - throw "Erro ao conectar com o core"; | |
32 | - } | |
33 | 36 | }); |
34 | 37 | |
35 | 38 | job.on('complete', function() { |
... | ... | @@ -43,18 +46,20 @@ function call(id, command_line, req, res, Request, request_object) { |
43 | 46 | if (code !== 0) { |
44 | 47 | db.update(Request, request_object.id, 'Error', function (result) { |
45 | 48 | }); |
46 | - throw "Erro no retorno do core. Código: " + code; | |
47 | - } | |
48 | - | |
49 | - // Se o core executou normal | |
50 | - db.update(Request, request_object.id, 'Completed', function (result) { | |
51 | - }); | |
52 | - res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.mp4'}); | |
49 | + console.log("Erro no retorno do core. Código: " + code); | |
50 | + logger.incrementError('core', "Erro no retorno do core. Código: " + code); | |
51 | + } else { | |
52 | + // Se o core executou normal | |
53 | + db.update(Request, request_object.id, 'Completed', function (result) {}); | |
54 | + res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.mp4'}); | |
55 | + logger.incrementService(req_type, "traducoes"); | |
56 | + } | |
53 | 57 | }); |
54 | 58 | |
55 | 59 | // Se a chamada deu erro |
56 | 60 | child.on('error', function(code, signal) { |
57 | - throw "Erro na chamada ao core"; | |
61 | + console.log("Erro no retorno do core. Código: " + code); | |
62 | + logger.incrementError('core', "Erro no retorno do core. Código: " + code); | |
58 | 63 | }); |
59 | 64 | |
60 | 65 | |
... | ... | @@ -63,17 +68,31 @@ function call(id, command_line, req, res, Request, request_object) { |
63 | 68 | |
64 | 69 | // Se a chamada foi feita com sucesso |
65 | 70 | child.on('close', function(code, signal) { |
71 | + var data; | |
66 | 72 | |
67 | 73 | // Endereço do callback |
68 | 74 | var path = url.parse(req.body.callback); |
69 | 75 | |
70 | 76 | // Se o core executou com erro |
71 | - if (code === 0) { | |
72 | - var data = querystring.stringify({ 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.mp4', 'id' : id }); | |
73 | - } else { | |
74 | - var data = querystring.stringify({ 'error': 'Erro no Core', 'code': code, 'id' : id }); | |
75 | - logger.incrementError("2"); | |
76 | - } | |
77 | + // if (code === 0) { | |
78 | + // data = querystring.stringify({ 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.mp4', 'id' : id }); | |
79 | + // } else { | |
80 | + // data = querystring.stringify({ 'error': 'Erro no Core', 'code': code, 'id' : id }); | |
81 | + // logger.incrementError('core', "Erro no retorno do core. Código: " + code); | |
82 | + // } | |
83 | + | |
84 | + // Se o core executou com erro | |
85 | + if (code !== 0) { | |
86 | + db.update(Request, request_object.id, 'Error', function (result) { | |
87 | + }); | |
88 | + console.log("Erro no retorno do core. Código: " + code); | |
89 | + logger.incrementError('core', "Erro no retorno do core. Código: " + code); | |
90 | + } else { | |
91 | + // Se o core executou normal | |
92 | + db.update(Request, request_object.id, 'Completed', function (result) {}); | |
93 | + res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.mp4'}); | |
94 | + logger.incrementService(req_type, "traducoes"); | |
95 | + } | |
77 | 96 | |
78 | 97 | // Chama o callback |
79 | 98 | requests.postRequest(path, data); |
... | ... | @@ -83,7 +102,7 @@ function call(id, command_line, req, res, Request, request_object) { |
83 | 102 | child.on('error', function(code, signal) { |
84 | 103 | var path = url.parse(req.body.callback); |
85 | 104 | var data = querystring.stringify( { 'error': 'Erro na chamada ao core', 'code': code, 'id': id } ); |
86 | - logger.incrementError("2"); | |
105 | + logger.incrementError('core', "Erro no retorno do core. Código: " + code); | |
87 | 106 | requests.postRequest(path, data); |
88 | 107 | }); |
89 | 108 | ... | ... |
helpers/queue.js
... | ... | @@ -9,10 +9,10 @@ exports.exec_command_line = function (command_line, done) { |
9 | 9 | }); |
10 | 10 | |
11 | 11 | child.on('error', function(code, signal) { |
12 | - throw "Erro ao conectar com o core"; | |
12 | + throw new Error("Erro ao conectar com o core"); | |
13 | 13 | }); |
14 | 14 | child.on('disconnect', function(code, signal) { |
15 | - throw "Disconectado do core"; | |
15 | + throw new Error("Disconectado do core"); | |
16 | 16 | }); |
17 | 17 | |
18 | 18 | done(); | ... | ... |
logsystem/main.coffee
... | ... | @@ -25,10 +25,18 @@ exports.incrementError = (id, detalhe="", inc=1) -> |
25 | 25 | bloqueante = !config.isNaoBloqueante() # diferente de nao bloqueante aceita bloqueante ou ambos |
26 | 26 | |
27 | 27 | # id pode ser "1", "2", "3", "4" ou qualquer outro id criado para identificar erros |
28 | - # 1 - Core retornou um erro. | |
29 | - # 2 - Vídeo inválido. | |
30 | - # 3 - Legenda inválida. | |
31 | - # 4 - Endpoint inválido. | |
28 | + # 1 ou 'core' - Core retornou um erro. | |
29 | + # 2 ou 'video' - Vídeo inválido. | |
30 | + # 3 ou 'legenda' - Legenda inválida. | |
31 | + # 4 ou 'endpoint' - Endpoint inválido. | |
32 | + | |
33 | + switch id | |
34 | + when 'core' then id = "1" | |
35 | + when 'video' then id = "2" | |
36 | + when 'legenda' then id = "3" | |
37 | + when 'endpoint' then id = "4" | |
38 | + else | |
39 | + throw new Error "ID inválido" | |
32 | 40 | |
33 | 41 | if bloqueante |
34 | 42 | errors["resumo"]["bloqueante"][id] += inc | ... | ... |
logsystem/main.js
... | ... | @@ -26,6 +26,22 @@ |
26 | 26 | errors_log_path = "./logsystem/errors.log"; |
27 | 27 | errors = JSON.parse(fs.readFileSync(errors_log_path, 'utf8')); |
28 | 28 | bloqueante = !config.isNaoBloqueante(); |
29 | + switch (id) { | |
30 | + case 'core': | |
31 | + id = "1"; | |
32 | + break; | |
33 | + case 'video': | |
34 | + id = "2"; | |
35 | + break; | |
36 | + case 'legenda': | |
37 | + id = "3"; | |
38 | + break; | |
39 | + case 'endpoint': | |
40 | + id = "4"; | |
41 | + break; | |
42 | + default: | |
43 | + throw new Error("ID inválido"); | |
44 | + } | |
29 | 45 | if (bloqueante) { |
30 | 46 | errors["resumo"]["bloqueante"][id] += inc; |
31 | 47 | } else { | ... | ... |
logsystem/services.log
... | ... | @@ -3,12 +3,12 @@ |
3 | 3 | "videos": { |
4 | 4 | "requisicoes": 20, |
5 | 5 | "traducoes": 11, |
6 | - "saude": 0 | |
6 | + "saude": 1 | |
7 | 7 | }, |
8 | 8 | "outros": { |
9 | - "requisicoes": 200, | |
10 | - "traducoes": 176, | |
11 | - "saude": 0 | |
9 | + "requisicoes": 201, | |
10 | + "traducoes": 177, | |
11 | + "saude": 1 | |
12 | 12 | } |
13 | 13 | } |
14 | 14 | } |
15 | 15 | \ No newline at end of file | ... | ... |
server.js
... | ... | @@ -54,21 +54,17 @@ app.post('/api', function(req, res) { |
54 | 54 | switch(req.body.servico) { |
55 | 55 | /* Tipo de Serviço: Texto */ |
56 | 56 | case 'texto': |
57 | - logger.incrementService("outros", "requisicoes"); | |
58 | 57 | ep_texto.init(req, res, Request); |
59 | 58 | break; |
60 | 59 | |
61 | 60 | /* Tipo de Serviço: iOS */ |
62 | 61 | case 'ios': |
63 | - logger.incrementService("outros", "requisicoes"); | |
64 | 62 | ep_ios.init(req, res); |
65 | 63 | break; |
66 | 64 | |
67 | 65 | /* Tipo de Serviço: Só o Vídeo */ |
68 | 66 | case 'video': |
69 | - logger.incrementService("videos", "requisicoes"); | |
70 | 67 | ep_video.init(req, res); |
71 | - // logger.incrementService("videos", "traducoes"); | |
72 | 68 | break; |
73 | 69 | |
74 | 70 | case 'videornp': |
... | ... | @@ -77,9 +73,7 @@ app.post('/api', function(req, res) { |
77 | 73 | |
78 | 74 | /* Tipo de Serviço: Só a Legenda */ |
79 | 75 | case 'legenda': |
80 | - logger.incrementService("outros", "requisicoes"); | |
81 | 76 | ep_legenda.init(req, res); |
82 | - | |
83 | 77 | break; |
84 | 78 | |
85 | 79 | /* Tipo de Serviço: Video + Legenda */ |
... | ... | @@ -143,12 +137,11 @@ app.get('/glosa', function(req, res) { |
143 | 137 | }); |
144 | 138 | |
145 | 139 | // para testes apenas |
146 | -app.get('/incrementaerro', function(req, res) { | |
147 | - // logger.incrementError("1", "detalhe do erro"); | |
148 | - // logger.incrementService("videos", "traducoes"); | |
149 | - res.send(200, "Incrementado"); | |
150 | - | |
151 | -}); | |
140 | +// app.get('/incrementaerro', function(req, res) { | |
141 | +// // logger.incrementError("1", "detalhe do erro"); | |
142 | +// // logger.incrementService("videos", "traducoes"); | |
143 | +// res.send(200, "Incrementado"); | |
144 | +// }); | |
152 | 145 | |
153 | 146 | app.get('/limparfila', function(req, res) { |
154 | 147 | ... | ... |