Commit 4f31c9ff405f2dc30f7b5e1b3075bc08c3f44cc0
1 parent
faa01283
Exists in
master
and in
1 other branch
Alterações para versão MPOG
Showing
15 changed files
with
288 additions
and
296 deletions
Show diff stats
Dockerfile
| @@ -45,12 +45,9 @@ RUN add-apt-repository ppa:mc3man/trusty-media | @@ -45,12 +45,9 @@ RUN add-apt-repository ppa:mc3man/trusty-media | ||
| 45 | RUN apt-get -y update | 45 | RUN apt-get -y update |
| 46 | RUN apt-get install -y ffmpeg gstreamer0.10-ffmpeg | 46 | RUN apt-get install -y ffmpeg gstreamer0.10-ffmpeg |
| 47 | 47 | ||
| 48 | -#Install Redis | ||
| 49 | -RUN apt-get install -y redis-server | ||
| 50 | -RUN service redis-server restart | ||
| 51 | - | ||
| 52 | WORKDIR / | 48 | WORKDIR / |
| 53 | RUN mkdir /storage/ | 49 | RUN mkdir /storage/ |
| 50 | +RUN mkdir -p /storage/videos/ | ||
| 54 | 51 | ||
| 55 | #Copy workers to container | 52 | #Copy workers to container |
| 56 | WORKDIR /root/ | 53 | WORKDIR /root/ |
| @@ -84,17 +81,12 @@ ENV PYTHONPATH=":/root/vlibras-libs/aelius:/root/vlibras-translate/src:/root/vli | @@ -84,17 +81,12 @@ ENV PYTHONPATH=":/root/vlibras-libs/aelius:/root/vlibras-translate/src:/root/vli | ||
| 84 | #Portas de comunicacao do container | 81 | #Portas de comunicacao do container |
| 85 | WORKDIR /root/vlibras-api/ | 82 | WORKDIR /root/vlibras-api/ |
| 86 | 83 | ||
| 87 | -VOLUME ["/storage/"] | ||
| 88 | - | ||
| 89 | RUN npm cache clean | 84 | RUN npm cache clean |
| 90 | RUN rm -rf node_modules | 85 | RUN rm -rf node_modules |
| 91 | RUN npm i | 86 | RUN npm i |
| 92 | RUN npm install amqplib | 87 | RUN npm install amqplib |
| 93 | -#ADD ./vlibras-api/node_modules/amqplib/ /root/vlibras-api/node_modules/amqplib/ | ||
| 94 | RUN npm --version | 88 | RUN npm --version |
| 95 | RUN node --version | 89 | RUN node --version |
| 96 | 90 | ||
| 97 | -# /etc/init.d/redis-server start | ||
| 98 | - | ||
| 99 | #Comando de entrada quando inicializado | 91 | #Comando de entrada quando inicializado |
| 100 | -ENTRYPOINT (sleep 3m) ; (node /root/vlibras-api/server.js & sleep 10) ; python /root/processManager.py | 92 | +ENTRYPOINT (sleep 1m) ; (node /root/vlibras-api/server.js & sleep 10) ; python /root/processManager.py |
| @@ -0,0 +1,71 @@ | @@ -0,0 +1,71 @@ | ||
| 1 | +FROM ubuntu:14.04 | ||
| 2 | +MAINTAINER Jonathan Brilhante | ||
| 3 | +#Container para o Core | ||
| 4 | + | ||
| 5 | +#Dependencies installation - RabbitMQ / Graylog / Nodejs / Redis / MongoDB / FFmpeg | ||
| 6 | + | ||
| 7 | +#Packages updates | ||
| 8 | +RUN apt-get -y upgrade | ||
| 9 | +RUN apt-get -y update | ||
| 10 | + | ||
| 11 | +#Install necessary packages | ||
| 12 | +RUN apt-get install -y build-essential libssl-dev sudo curl wget && apt-get clean | ||
| 13 | + | ||
| 14 | +#Install python packages | ||
| 15 | +RUN apt-get install -y python python-setuptools && apt-get clean && easy_install pip | ||
| 16 | + | ||
| 17 | +#Install python and python lib for RabbitMQ | ||
| 18 | +RUN pip install pika | ||
| 19 | + | ||
| 20 | +#Install Graylog | ||
| 21 | +RUN pip install graypy | ||
| 22 | +RUN pip install graypy[amqp] | ||
| 23 | + | ||
| 24 | +#Install aditional packages | ||
| 25 | +RUN apt-get install -y pkg-config libfreetype6-dev libpng-dev xvfb python-yaml libgomp1 python-numpy python-pyfits python-matplotlib idle && apt-get clean | ||
| 26 | +RUN pip install nltk==3.0.5 nltk_tgrep --upgrade | ||
| 27 | +RUN pip install pysrt pyvirtualdisplay | ||
| 28 | +RUN apt-get install -y software-properties-common && apt-get clean | ||
| 29 | + | ||
| 30 | +#Install FFmpeg | ||
| 31 | +RUN add-apt-repository ppa:mc3man/trusty-media | ||
| 32 | +RUN apt-get -y update | ||
| 33 | +RUN apt-get install -y ffmpeg gstreamer0.10-ffmpeg && apt-get clean | ||
| 34 | + | ||
| 35 | +#RUN useradd -ms /bin/bash vlibras | ||
| 36 | +#WORKDIR / | ||
| 37 | +RUN mkdir /storage/ | ||
| 38 | +#RUN mkdir /home/vlibras/ | ||
| 39 | +#RUN chown -R vlibras /storage/ | ||
| 40 | +#RUN chown -R vlibras /home/vlibras/ | ||
| 41 | +#USER vlibras | ||
| 42 | + | ||
| 43 | +#Copy workers to container | ||
| 44 | +WORKDIR /root/ | ||
| 45 | +ADD ./extractor.py /root/extractor.py | ||
| 46 | +ADD ./mixer.py /root/mixer.py | ||
| 47 | +ADD ./renderer.py /root/renderer.py | ||
| 48 | +ADD ./translator.py /root/translator.py | ||
| 49 | +ADD ./PikaManager.py /root/PikaManager.py | ||
| 50 | +ADD ./processManager.py /root/processManager.py | ||
| 51 | +ADD ./log/ /root/log/ | ||
| 52 | +ADD ./unityVideo/ /root/unityVideo/ | ||
| 53 | +ADD ./vlibras-translate/ /root/vlibras-translate/ | ||
| 54 | +ADD ./vlibras-libs/ /root/vlibras-libs/ | ||
| 55 | + | ||
| 56 | +#Workers environment variables | ||
| 57 | +ENV VLIBRAS_VIDEO_CREATOR="/root/unityVideo/videoCreator.x86_64" | ||
| 58 | +ENV VLIBRAS_VIDEO_LIBRAS="/storage/libras" | ||
| 59 | +ENV VLIBRAS_VIDEO_MIXED="/storage/videos" | ||
| 60 | +ENV VLIBRAS_VIDEO_SCREENS="/storage/frames" | ||
| 61 | + | ||
| 62 | +#Translator environment variables | ||
| 63 | +ENV HUNPOS_TAGGER="/root/vlibras-libs/aelius/bin/hunpos-tag" | ||
| 64 | +ENV AELIUS_DATA="/root/vlibras-libs/aelius/aelius_data" | ||
| 65 | +ENV TRANSLATE_DATA="/root/vlibras-translate/data" | ||
| 66 | +ENV NLTK_DATA="/root/vlibras-libs/aelius/nltk_data" | ||
| 67 | +ENV PYTHONPATH=":/root/vlibras-libs/aelius:/root/vlibras-translate/src:/root/vlibras-libs/aelius:/root/vlibras-translate/src" | ||
| 68 | +#ENV NODE_PATH=/home/vlibras/vlibras-api/node_modules/;%NODE_PATH% | ||
| 69 | + | ||
| 70 | +#Comando de entrada quando inicializado | ||
| 71 | +ENTRYPOINT sleep 1m ; python /root/processManager.py |
No preview for this file type
vlibras-api/db/config.js
| @@ -6,7 +6,7 @@ function connectMongo(mongoose) { | @@ -6,7 +6,7 @@ function connectMongo(mongoose) { | ||
| 6 | console.log('Conectado ao MongoDB.') | 6 | console.log('Conectado ao MongoDB.') |
| 7 | }); | 7 | }); |
| 8 | 8 | ||
| 9 | - mongoose.connect('mongodb://localhost/vlibras-api'); | 9 | + mongoose.connect('mongodb://mongo/vlibras-api'); |
| 10 | }; | 10 | }; |
| 11 | 11 | ||
| 12 | -module.exports.connect = connectMongo; | ||
| 13 | \ No newline at end of file | 12 | \ No newline at end of file |
| 13 | +module.exports.connect = connectMongo; |
vlibras-api/endpoints/ios.js
| @@ -4,14 +4,12 @@ var queue_helper = require('../helpers/queue'); | @@ -4,14 +4,12 @@ var queue_helper = require('../helpers/queue'); | ||
| 4 | var exec = require('child_process').exec, child; | 4 | var exec = require('child_process').exec, child; |
| 5 | var uuid = require('node-uuid'); | 5 | var uuid = require('node-uuid'); |
| 6 | var fs = require('fs'); | 6 | var fs = require('fs'); |
| 7 | -var kue = require('kue'), | ||
| 8 | - queue = kue.createQueue(); | ||
| 9 | var logger = require('../logsystem/main.js'); | 7 | var logger = require('../logsystem/main.js'); |
| 10 | 8 | ||
| 11 | function init(req, res) { | 9 | function init(req, res) { |
| 12 | 10 | ||
| 13 | logger.incrementService("outros", "requisicoes"); | 11 | logger.incrementService("outros", "requisicoes"); |
| 14 | - | 12 | + |
| 15 | var id = uuid.v4(); | 13 | var id = uuid.v4(); |
| 16 | 14 | ||
| 17 | /* Verifica se os paramêtros [transparencia, texto] possuem algum valor */ | 15 | /* Verifica se os paramêtros [transparencia, texto] possuem algum valor */ |
| @@ -36,30 +34,30 @@ function init(req, res) { | @@ -36,30 +34,30 @@ function init(req, res) { | ||
| 36 | // child = exec(command_line, function(err, stdout, stderr) { | 34 | // child = exec(command_line, function(err, stdout, stderr) { |
| 37 | // // [stdout] = vlibras-core output | 35 | // // [stdout] = vlibras-core output |
| 38 | // }); | 36 | // }); |
| 39 | - | ||
| 40 | - var child; | ||
| 41 | - var job = queue.create('exec_command_line' + id, { | ||
| 42 | - title: 'Command Line for: ' + req.body.servico, | ||
| 43 | - command_line: command_line | ||
| 44 | - }).removeOnComplete( true ).save(); | ||
| 45 | - | ||
| 46 | - queue.process('exec_command_line' + id, function(job, done){ | ||
| 47 | - child = queue_helper.exec_command_line(job.data.command_line, done); | ||
| 48 | - }); | ||
| 49 | - | ||
| 50 | - job.on('complete', function() { | ||
| 51 | - /* Listener que dispara quando a requisição ao core finaliza */ | ||
| 52 | - child.on('close', function(code, signal){ | ||
| 53 | - res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.mp4' }); | ||
| 54 | - logger.incrementService("outros", "traducoes"); | ||
| 55 | - }); | ||
| 56 | - | ||
| 57 | - /* Listener que dispara quando a requisição ao core da erro */ | ||
| 58 | - child.on('error', function(code, signal){ | ||
| 59 | - res.send(500, parameters.errorMessage('Erro na chamada ao core')); | ||
| 60 | - logger.incrementError("1", err); | ||
| 61 | - }); | ||
| 62 | - }); | 37 | + // |
| 38 | + // var child; | ||
| 39 | + // var job = queue.create('exec_command_line' + id, { | ||
| 40 | + // title: 'Command Line for: ' + req.body.servico, | ||
| 41 | + // command_line: command_line | ||
| 42 | + // }).removeOnComplete( true ).save(); | ||
| 43 | + // | ||
| 44 | + // queue.process('exec_command_line' + id, function(job, done){ | ||
| 45 | + // child = queue_helper.exec_command_line(job.data.command_line, done); | ||
| 46 | + // }); | ||
| 47 | + // | ||
| 48 | + // job.on('complete', function() { | ||
| 49 | + // /* Listener que dispara quando a requisição ao core finaliza */ | ||
| 50 | + // child.on('close', function(code, signal){ | ||
| 51 | + // res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.mp4' }); | ||
| 52 | + // logger.incrementService("outros", "traducoes"); | ||
| 53 | + // }); | ||
| 54 | + // | ||
| 55 | + // /* Listener que dispara quando a requisição ao core da erro */ | ||
| 56 | + // child.on('error', function(code, signal){ | ||
| 57 | + // res.send(500, parameters.errorMessage('Erro na chamada ao core')); | ||
| 58 | + // logger.incrementError("1", err); | ||
| 59 | + // }); | ||
| 60 | + // }); | ||
| 63 | } | 61 | } |
| 64 | 62 | ||
| 65 | module.exports.init = init; | 63 | module.exports.init = init; |
vlibras-api/endpoints/legenda.js
| @@ -4,8 +4,8 @@ var queue_helper = require('../helpers/queue'); | @@ -4,8 +4,8 @@ var queue_helper = require('../helpers/queue'); | ||
| 4 | var exec = require('child_process').exec, child; | 4 | var exec = require('child_process').exec, child; |
| 5 | var uuid = require('node-uuid'); | 5 | var uuid = require('node-uuid'); |
| 6 | var fs = require('fs'); | 6 | var fs = require('fs'); |
| 7 | -var kue = require('kue'), | ||
| 8 | - queue = kue.createQueue(); | 7 | +// var kue = require('kue'), |
| 8 | +// queue = kue.createQueue(); | ||
| 9 | var logger = require('../logsystem/main.js'); | 9 | var logger = require('../logsystem/main.js'); |
| 10 | 10 | ||
| 11 | function init(req, res) { | 11 | function init(req, res) { |
| @@ -53,28 +53,28 @@ function init(req, res) { | @@ -53,28 +53,28 @@ function init(req, res) { | ||
| 53 | // // console.log(stdout); | 53 | // // console.log(stdout); |
| 54 | // }); | 54 | // }); |
| 55 | 55 | ||
| 56 | - var job = queue.create('exec_command_line' + id, { | ||
| 57 | - title: 'Command Line for: ' + req.body.servico, | ||
| 58 | - command_line: command_line | ||
| 59 | - }).save(); | ||
| 60 | - | ||
| 61 | - queue.process('exec_command_line' + id, function(job, done){ | ||
| 62 | - child = queue_helper.exec_command_line(job.data.command_line, done); | ||
| 63 | - }); | ||
| 64 | - | ||
| 65 | - job.on('complete', function() { | ||
| 66 | - /* Listener que dispara quando a requisição ao core finaliza */ | ||
| 67 | - child.on('close', function(code, signal){ | ||
| 68 | - res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.flv' }); | ||
| 69 | - logger.incrementService("outros", "traducoes"); | ||
| 70 | - }); | ||
| 71 | - | ||
| 72 | - /* Listener que dispara quando a requisição ao core da erro */ | ||
| 73 | - child.on('error', function(code, signal){ | ||
| 74 | - res.send(500, parameters.errorMessage('Erro na chamada ao core')); | ||
| 75 | - logger.incrementError("legenda", err); | ||
| 76 | - }); | ||
| 77 | - }); | 56 | + // var job = queue.create('exec_command_line' + id, { |
| 57 | + // title: 'Command Line for: ' + req.body.servico, | ||
| 58 | + // command_line: command_line | ||
| 59 | + // }).save(); | ||
| 60 | + // | ||
| 61 | + // queue.process('exec_command_line' + id, function(job, done){ | ||
| 62 | + // child = queue_helper.exec_command_line(job.data.command_line, done); | ||
| 63 | + // }); | ||
| 64 | + // | ||
| 65 | + // job.on('complete', function() { | ||
| 66 | + // /* Listener que dispara quando a requisição ao core finaliza */ | ||
| 67 | + // child.on('close', function(code, signal){ | ||
| 68 | + // res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.flv' }); | ||
| 69 | + // logger.incrementService("outros", "traducoes"); | ||
| 70 | + // }); | ||
| 71 | + // | ||
| 72 | + // /* Listener que dispara quando a requisição ao core da erro */ | ||
| 73 | + // child.on('error', function(code, signal){ | ||
| 74 | + // res.send(500, parameters.errorMessage('Erro na chamada ao core')); | ||
| 75 | + // logger.incrementError("legenda", err); | ||
| 76 | + // }); | ||
| 77 | + // }); | ||
| 78 | 78 | ||
| 79 | }); | 79 | }); |
| 80 | } | 80 | } |
vlibras-api/endpoints/texto.js
| @@ -5,8 +5,8 @@ var db = require('../db/api'); | @@ -5,8 +5,8 @@ var db = require('../db/api'); | ||
| 5 | var exec = require('child_process').exec, child; | 5 | var exec = require('child_process').exec, child; |
| 6 | var uuid = require('node-uuid'); | 6 | var uuid = require('node-uuid'); |
| 7 | var fs = require('fs'); | 7 | var fs = require('fs'); |
| 8 | -var kue = require('kue'), | ||
| 9 | - queue = kue.createQueue(); | 8 | +// var kue = require('kue'), |
| 9 | +// queue = kue.createQueue(); | ||
| 10 | var logger = require('../logsystem/main.js'); | 10 | var logger = require('../logsystem/main.js'); |
| 11 | 11 | ||
| 12 | function init(req, res, Request) { | 12 | function init(req, res, Request) { |
| @@ -49,33 +49,33 @@ function init(req, res, Request) { | @@ -49,33 +49,33 @@ function init(req, res, Request) { | ||
| 49 | var command_line = 'echo ' + req.body.texto + ' >> text_files/' + id + ' && mkdir uploads/' + id + ' && vlibras_user/vlibras-core/./vlibras -T ' + 'text_files/' + id + ' -l portugues -b ' + parameters.getTransparency(req.body.transparencia) + ' --id ' + id + ' --mode devel >> /tmp/core_log 2>&1'; | 49 | var command_line = 'echo ' + req.body.texto + ' >> text_files/' + id + ' && mkdir uploads/' + id + ' && vlibras_user/vlibras-core/./vlibras -T ' + 'text_files/' + id + ' -l portugues -b ' + parameters.getTransparency(req.body.transparencia) + ' --id ' + id + ' --mode devel >> /tmp/core_log 2>&1'; |
| 50 | 50 | ||
| 51 | console.log(command_line); | 51 | console.log(command_line); |
| 52 | - var child; | ||
| 53 | - var job = queue.process('exec_command_line' + id, { | ||
| 54 | - title: 'Command Line for: ' + req.body.servico, | ||
| 55 | - command_line: command_line | ||
| 56 | - }).removeOnComplete( true ).save(); | ||
| 57 | - | ||
| 58 | - queue.process('exec_command_line' + id, function(job, done){ | ||
| 59 | - child = queue_helper.exec_command_line(job.data.command_line, done); | ||
| 60 | - }); | ||
| 61 | - | ||
| 62 | - job.on('complete', function() { | ||
| 63 | - /* Listener que dispara quando a requisição ao core finaliza */ | ||
| 64 | - child.on('close', function(code, signal) { | ||
| 65 | - res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.webm' }); | ||
| 66 | - db.update(Request, request_object.id, 'Completed', function(result) { console.log(result); }); | ||
| 67 | - logger.incrementService("outros", "traducoes"); | ||
| 68 | - }); | ||
| 69 | - | ||
| 70 | - /* Listener que dispara quando a requisição ao core da erro */ | ||
| 71 | - child.on('error', function(code, signal){ | ||
| 72 | - res.send(500, parameters.errorMessage('Erro na chamada ao core')); | ||
| 73 | - logger.incrementError("core", 'Erro na chamada ao core'); | ||
| 74 | - db.update(request_object, 'Error', function(result) { | ||
| 75 | - }); | ||
| 76 | - }); | ||
| 77 | - | ||
| 78 | - }); | 52 | + // var child; |
| 53 | + // var job = queue.process('exec_command_line' + id, { | ||
| 54 | + // title: 'Command Line for: ' + req.body.servico, | ||
| 55 | + // command_line: command_line | ||
| 56 | + // }).removeOnComplete( true ).save(); | ||
| 57 | + // | ||
| 58 | + // queue.process('exec_command_line' + id, function(job, done){ | ||
| 59 | + // child = queue_helper.exec_command_line(job.data.command_line, done); | ||
| 60 | + // }); | ||
| 61 | + // | ||
| 62 | + // job.on('complete', function() { | ||
| 63 | + // /* Listener que dispara quando a requisição ao core finaliza */ | ||
| 64 | + // child.on('close', function(code, signal) { | ||
| 65 | + // res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.webm' }); | ||
| 66 | + // db.update(Request, request_object.id, 'Completed', function(result) { console.log(result); }); | ||
| 67 | + // logger.incrementService("outros", "traducoes"); | ||
| 68 | + // }); | ||
| 69 | + // | ||
| 70 | + // /* Listener que dispara quando a requisição ao core da erro */ | ||
| 71 | + // child.on('error', function(code, signal){ | ||
| 72 | + // res.send(500, parameters.errorMessage('Erro na chamada ao core')); | ||
| 73 | + // logger.incrementError("core", 'Erro na chamada ao core'); | ||
| 74 | + // db.update(request_object, 'Error', function(result) { | ||
| 75 | + // }); | ||
| 76 | + // }); | ||
| 77 | + // | ||
| 78 | + // }); | ||
| 79 | 79 | ||
| 80 | } | 80 | } |
| 81 | 81 |
vlibras-api/endpoints/video_legenda.js
| @@ -125,7 +125,7 @@ function downloadAndMoveFiles(folder, req, locals, callback) { | @@ -125,7 +125,7 @@ function downloadAndMoveFiles(folder, req, locals, callback) { | ||
| 125 | } | 125 | } |
| 126 | //Funcao de adicionar na fila | 126 | //Funcao de adicionar na fila |
| 127 | function sendToQueue(request_object, req, locals ,res, callback){ | 127 | function sendToQueue(request_object, req, locals ,res, callback){ |
| 128 | - amqp.connect('amqp://localhost', function(erro, conn) { | 128 | + amqp.connect('amqp://rabbit', function(erro, conn) { |
| 129 | if(erro != null){ | 129 | if(erro != null){ |
| 130 | //res.json({message : erro}); | 130 | //res.json({message : erro}); |
| 131 | throw erro; | 131 | throw erro; |
| @@ -165,7 +165,7 @@ function sendToQueue(request_object, req, locals ,res, callback){ | @@ -165,7 +165,7 @@ function sendToQueue(request_object, req, locals ,res, callback){ | ||
| 165 | 165 | ||
| 166 | //Funcao de receber da fila | 166 | //Funcao de receber da fila |
| 167 | function receiveFromQueue(request_object, Request, res, callback){ | 167 | function receiveFromQueue(request_object, Request, res, callback){ |
| 168 | - amqp.connect('amqp://localhost', function(erro, conn) { | 168 | + amqp.connect('amqp://rabbit', function(erro, conn) { |
| 169 | if(erro != null){ | 169 | if(erro != null){ |
| 170 | res.json({ | 170 | res.json({ |
| 171 | message : erro | 171 | message : erro |
vlibras-api/endpoints/videornp.js
| @@ -3,14 +3,12 @@ var properties = require('../helpers/properties'); | @@ -3,14 +3,12 @@ var properties = require('../helpers/properties'); | ||
| 3 | var files = require('../helpers/files'); | 3 | var files = require('../helpers/files'); |
| 4 | var core = require('../helpers/core'); | 4 | var core = require('../helpers/core'); |
| 5 | var db = require('../db/api'); | 5 | var db = require('../db/api'); |
| 6 | -var queue_helper = require('../helpers/queue'); | 6 | +// var queue_helper = require('../helpers/queue'); |
| 7 | var exec = require('child_process').exec, child; | 7 | var exec = require('child_process').exec, child; |
| 8 | var uuid = require('node-uuid'); | 8 | var uuid = require('node-uuid'); |
| 9 | var mkdirp = require('mkdirp'); | 9 | var mkdirp = require('mkdirp'); |
| 10 | var async = require('async'); | 10 | var async = require('async'); |
| 11 | var _ = require('lodash'); | 11 | var _ = require('lodash'); |
| 12 | -var kue = require('kue'), | ||
| 13 | - queue = kue.createQueue(); | ||
| 14 | var logger = require('../logsystem/main.js'); | 12 | var logger = require('../logsystem/main.js'); |
| 15 | var url = require('url'); | 13 | var url = require('url'); |
| 16 | var requests = require('../helpers/requests'); | 14 | var requests = require('../helpers/requests'); |
| @@ -189,14 +187,14 @@ function callCoreSubtitle(id, subtitle, req, res, Request, request_object) { | @@ -189,14 +187,14 @@ function callCoreSubtitle(id, subtitle, req, res, Request, request_object) { | ||
| 189 | console.log("Chamada ao core == " + command_line); | 187 | console.log("Chamada ao core == " + command_line); |
| 190 | 188 | ||
| 191 | var child; | 189 | var child; |
| 192 | - var job = queue.create('exec_command_line' + id, { | ||
| 193 | - title: 'Command Line for: ' + req.body.servico, | ||
| 194 | - command_line: command_line | ||
| 195 | - }).removeOnComplete( true ).save(); | ||
| 196 | - queue.process('exec_command_line' + id, function(job, done){ | ||
| 197 | - child = queue_helper.exec_command_line(job.data.command_line, done); | ||
| 198 | - console.log("queue process"); | ||
| 199 | - }); | 190 | + // var job = queue.create('exec_command_line' + id, { |
| 191 | + // title: 'Command Line for: ' + req.body.servico, | ||
| 192 | + // command_line: command_line | ||
| 193 | + // }).removeOnComplete( true ).save(); | ||
| 194 | + // queue.process('exec_command_line' + id, function(job, done){ | ||
| 195 | + // child = queue_helper.exec_command_line(job.data.command_line, done); | ||
| 196 | + // console.log("queue process"); | ||
| 197 | + // }); | ||
| 200 | 198 | ||
| 201 | job.on('complete', function() { | 199 | job.on('complete', function() { |
| 202 | /* Executa a linha de comando */ | 200 | /* Executa a linha de comando */ |
vlibras-api/helpers/core.js
| @@ -5,8 +5,8 @@ var url = require('url'); | @@ -5,8 +5,8 @@ var url = require('url'); | ||
| 5 | var http = require('http'); | 5 | var http = require('http'); |
| 6 | var querystring = require('querystring'); | 6 | var querystring = require('querystring'); |
| 7 | var exec = require('child_process').exec, child; | 7 | var exec = require('child_process').exec, child; |
| 8 | -var kue = require('kue'), | ||
| 9 | - queue = kue.createQueue(); | 8 | +// var kue = require('kue'), |
| 9 | +// queue = kue.createQueue(); | ||
| 10 | var logger = require('../logsystem/main.js'); | 10 | var logger = require('../logsystem/main.js'); |
| 11 | var db = require('../db/api'); | 11 | var db = require('../db/api'); |
| 12 | 12 | ||
| @@ -31,94 +31,94 @@ function call(id, command_line, req, res, Request, request_object, req_type) { | @@ -31,94 +31,94 @@ function call(id, command_line, req, res, Request, request_object, req_type) { | ||
| 31 | command_line: command_line | 31 | command_line: command_line |
| 32 | }).removeOnComplete( true ).save(); | 32 | }).removeOnComplete( true ).save(); |
| 33 | 33 | ||
| 34 | - queue.process('exec_command_line' + id, function(job, done){ | ||
| 35 | - child = queue_helper.exec_command_line(job.data.command_line, done); | ||
| 36 | - }); | ||
| 37 | - | ||
| 38 | - job.on('complete', function() { | ||
| 39 | - // Se o callback não foi definido | ||
| 40 | - if (req.body.callback === undefined) { | ||
| 41 | - | ||
| 42 | - // Se a chamada foi feita com sucesso | ||
| 43 | - child.on('close', function(code, signal) { | ||
| 44 | - | ||
| 45 | - // Se o core executou com erro | ||
| 46 | - if (code !== 0) { | ||
| 47 | - db.update(Request, request_object.id, 'Error', function (result) { | ||
| 48 | - }); | ||
| 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 | - } | ||
| 57 | - }); | ||
| 58 | - | ||
| 59 | - // Se a chamada deu erro | ||
| 60 | - child.on('error', function(code, signal) { | ||
| 61 | - console.log("Erro no retorno do core. Código: " + code); | ||
| 62 | - logger.incrementError('core', "Erro no retorno do core. Código: " + code); | ||
| 63 | - }); | ||
| 64 | - | ||
| 65 | - | ||
| 66 | - // Se o callback foi definido | ||
| 67 | - } else { | ||
| 68 | - | ||
| 69 | - // Se a chamada foi feita com sucesso | ||
| 70 | - child.on('close', function(code, signal) { | ||
| 71 | - var data; | ||
| 72 | - | ||
| 73 | - // Endereço do callback | ||
| 74 | - var path = url.parse(req.body.callback); | ||
| 75 | - | ||
| 76 | - // Se o core executou com erro | ||
| 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 | - data = { | ||
| 91 | - 'error' : code | ||
| 92 | - }; | ||
| 93 | - } else { | ||
| 94 | - // Se o core executou normal | ||
| 95 | - db.update(Request, request_object.id, 'Completed', function (result) {}); | ||
| 96 | - res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.mp4'}); | ||
| 97 | - logger.incrementService(req_type, "traducoes"); | ||
| 98 | - | ||
| 99 | - data = { | ||
| 100 | - 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.mp4', | ||
| 101 | - 'versao' : '1.0', | ||
| 102 | - 'legenda' : '' | ||
| 103 | - }; | ||
| 104 | - } | ||
| 105 | - console.log("Path == " + path); | ||
| 106 | - data = JSON.stringify(data); | ||
| 107 | - requests.postRequest(path, data); | ||
| 108 | - }); | ||
| 109 | - | ||
| 110 | - // Se a chamada deu erro | ||
| 111 | - child.on('error', function(code, signal) { | ||
| 112 | - var path = url.parse(req.body.callback); | ||
| 113 | - var data = JSON.stringify( { 'error': 'Erro na chamada ao core', 'code': code, 'id': id } ); | ||
| 114 | - logger.incrementError('core', "Erro no retorno do core. Código: " + code); | ||
| 115 | - requests.postRequest(path, data); | ||
| 116 | - }); | 34 | + // queue.process('exec_command_line' + id, function(job, done){ |
| 35 | + // child = queue_helper.exec_command_line(job.data.command_line, done); | ||
| 36 | + // }); | ||
| 117 | 37 | ||
| 118 | - // Retorno da primeira requisição | ||
| 119 | - res.send(200, JSON.stringify({ 'id': id })); | ||
| 120 | - } | ||
| 121 | - }); | 38 | + // job.on('complete', function() { |
| 39 | + // // Se o callback não foi definido | ||
| 40 | + // if (req.body.callback === undefined) { | ||
| 41 | + // | ||
| 42 | + // // Se a chamada foi feita com sucesso | ||
| 43 | + // child.on('close', function(code, signal) { | ||
| 44 | + // | ||
| 45 | + // // Se o core executou com erro | ||
| 46 | + // if (code !== 0) { | ||
| 47 | + // db.update(Request, request_object.id, 'Error', function (result) { | ||
| 48 | + // }); | ||
| 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 | + // } | ||
| 57 | + // }); | ||
| 58 | + // | ||
| 59 | + // // Se a chamada deu erro | ||
| 60 | + // child.on('error', function(code, signal) { | ||
| 61 | + // console.log("Erro no retorno do core. Código: " + code); | ||
| 62 | + // logger.incrementError('core', "Erro no retorno do core. Código: " + code); | ||
| 63 | + // }); | ||
| 64 | + // | ||
| 65 | + // | ||
| 66 | + // // Se o callback foi definido | ||
| 67 | + // } else { | ||
| 68 | + // | ||
| 69 | + // // Se a chamada foi feita com sucesso | ||
| 70 | + // child.on('close', function(code, signal) { | ||
| 71 | + // var data; | ||
| 72 | + // | ||
| 73 | + // // Endereço do callback | ||
| 74 | + // var path = url.parse(req.body.callback); | ||
| 75 | + // | ||
| 76 | + // // Se o core executou com erro | ||
| 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 | + // data = { | ||
| 91 | + // 'error' : code | ||
| 92 | + // }; | ||
| 93 | + // } else { | ||
| 94 | + // // Se o core executou normal | ||
| 95 | + // db.update(Request, request_object.id, 'Completed', function (result) {}); | ||
| 96 | + // res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.mp4'}); | ||
| 97 | + // logger.incrementService(req_type, "traducoes"); | ||
| 98 | + // | ||
| 99 | + // data = { | ||
| 100 | + // 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.mp4', | ||
| 101 | + // 'versao' : '1.0', | ||
| 102 | + // 'legenda' : '' | ||
| 103 | + // }; | ||
| 104 | + // } | ||
| 105 | + // console.log("Path == " + path); | ||
| 106 | + // data = JSON.stringify(data); | ||
| 107 | + // requests.postRequest(path, data); | ||
| 108 | + // }); | ||
| 109 | + // | ||
| 110 | + // // Se a chamada deu erro | ||
| 111 | + // child.on('error', function(code, signal) { | ||
| 112 | + // var path = url.parse(req.body.callback); | ||
| 113 | + // var data = JSON.stringify( { 'error': 'Erro na chamada ao core', 'code': code, 'id': id } ); | ||
| 114 | + // logger.incrementError('core', "Erro no retorno do core. Código: " + code); | ||
| 115 | + // requests.postRequest(path, data); | ||
| 116 | + // }); | ||
| 117 | + // | ||
| 118 | + // // Retorno da primeira requisição | ||
| 119 | + // res.send(200, JSON.stringify({ 'id': id })); | ||
| 120 | + // } | ||
| 121 | + // }); | ||
| 122 | } | 122 | } |
| 123 | 123 | ||
| 124 | module.exports.call = call; | 124 | module.exports.call = call; |
| 1 | -var host = '150.165.205.10'; | ||
| 2 | -var port = 200; | ||
| 3 | -var uploads_folder = './uploads/'; | ||
| 4 | -var ip = require('ip'); | 1 | +var host = process.env.VLIBRAS_VIDEO_IP; |
| 2 | +var port = process.env.VLIBRAS_VIDEO_PORT; | ||
| 3 | +var uploads_folder = 'uploads/'; | ||
| 5 | 4 | ||
| 6 | module.exports.host = host; | 5 | module.exports.host = host; |
| 7 | module.exports.port = port; | 6 | module.exports.port = port; |
| 8 | module.exports.uploads_folder = uploads_folder; | 7 | module.exports.uploads_folder = uploads_folder; |
| 9 | -module.exports.SERVER_IP = '150.165.205.10'; | 8 | +module.exports.SERVER_IP = process.env.VLIBRAS_VIDEO_IP; |
vlibras-api/logsystem/main.coffee
| 1 | config = require('../config/main.js') | 1 | config = require('../config/main.js') |
| 2 | fs = require('fs') | 2 | fs = require('fs') |
| 3 | -kue = require('kue') | ||
| 4 | -queue = kue.createQueue() | ||
| 5 | exports = module.exports = {} | 3 | exports = module.exports = {} |
| 6 | 4 | ||
| 7 | # 1 - Core retornou um erro. | 5 | # 1 - Core retornou um erro. |
vlibras-api/logsystem/main.js
vlibras-api/package.json
| @@ -15,7 +15,7 @@ | @@ -15,7 +15,7 @@ | ||
| 15 | "mkdirp": "^0.5.0", | 15 | "mkdirp": "^0.5.0", |
| 16 | "node-uuid": "^1.4.1", | 16 | "node-uuid": "^1.4.1", |
| 17 | "ip": "latest", | 17 | "ip": "latest", |
| 18 | - "mongoose": "^3.8.16", | 18 | + "mongoose": "^4.4.12", |
| 19 | "python-shell": "0.0.3", | 19 | "python-shell": "0.0.3", |
| 20 | "kue": "latest", | 20 | "kue": "latest", |
| 21 | "unirest": "latest", | 21 | "unirest": "latest", |
vlibras-api/server.js
| @@ -21,39 +21,33 @@ var db = require('./db/api'); | @@ -21,39 +21,33 @@ var db = require('./db/api'); | ||
| 21 | var config = require('./config/main.js'); | 21 | var config = require('./config/main.js'); |
| 22 | var logger = require('./logsystem/main.js'); | 22 | var logger = require('./logsystem/main.js'); |
| 23 | var unirest = require('unirest'); | 23 | var unirest = require('unirest'); |
| 24 | -var kue = require('kue'), | ||
| 25 | -redis = require('kue/node_modules/redis'); | ||
| 26 | -var queue_helper = require('./helpers/queue'); | ||
| 27 | - | ||
| 28 | -app.redisClient = redis.createClient(config.redisPort, config.redisUrl,{}); | ||
| 29 | - | ||
| 30 | -app.redisClient.on('connect', function () { | ||
| 31 | - console.info('successful connection to redis server'); | ||
| 32 | -}); | ||
| 33 | - | ||
| 34 | -app.redisClient.on('error', function (err) { | ||
| 35 | - console.log('Redis error encountered', err); | ||
| 36 | -}); | ||
| 37 | - | ||
| 38 | -app.redisClient.on('end', function() { | ||
| 39 | - console.log('Redis connection closed'); | ||
| 40 | -}); | ||
| 41 | - | ||
| 42 | -kue.app.listen(config.kuePort); | ||
| 43 | - | ||
| 44 | -var queue = kue.createQueue({ | ||
| 45 | - redis: { | ||
| 46 | - createClientFactory: function(){ | ||
| 47 | - return app.redisClient; | ||
| 48 | - } | ||
| 49 | - } | ||
| 50 | -}); | ||
| 51 | - | ||
| 52 | - | ||
| 53 | -queue.process('exec_command_line', function(job, done){ | ||
| 54 | - child = queue_helper.exec_command_line(job.data.command_line, job.data.callback, Request, job.data.idreq, job.data.res, job.data.idsolicitacao, done); | ||
| 55 | - console.log("Executando requisicao " + job.id + " enfileirada."); | ||
| 56 | -}); | 24 | +// var kue = require('kue'), |
| 25 | +// redis = require('kue/node_modules/redis'); | ||
| 26 | +// var queue_helper = require('./helpers/queue'); | ||
| 27 | + | ||
| 28 | +// app.redisClient = redis.createClient(config.redisPort, config.redisUrl,{}); | ||
| 29 | +// | ||
| 30 | +// app.redisClient.on('connect', function () { | ||
| 31 | +// console.info('successful connection to redis server'); | ||
| 32 | +// }); | ||
| 33 | +// | ||
| 34 | +// app.redisClient.on('error', function (err) { | ||
| 35 | +// console.log('Redis error encountered', err); | ||
| 36 | +// }); | ||
| 37 | +// | ||
| 38 | +// app.redisClient.on('end', function() { | ||
| 39 | +// console.log('Redis connection closed'); | ||
| 40 | +// }); | ||
| 41 | +// | ||
| 42 | +// kue.app.listen(config.kuePort); | ||
| 43 | +// | ||
| 44 | +// var queue = kue.createQueue({ | ||
| 45 | +// redis: { | ||
| 46 | +// createClientFactory: function(){ | ||
| 47 | +// return app.redisClient; | ||
| 48 | +// } | ||
| 49 | +// } | ||
| 50 | +// }); | ||
| 57 | 51 | ||
| 58 | var PythonShell = require('python-shell'); | 52 | var PythonShell = require('python-shell'); |
| 59 | 53 | ||
| @@ -63,10 +57,6 @@ var options = { | @@ -63,10 +57,6 @@ var options = { | ||
| 63 | args: [] | 57 | args: [] |
| 64 | }; | 58 | }; |
| 65 | 59 | ||
| 66 | -app.use('/kue', kue.app); | ||
| 67 | - | ||
| 68 | -// app.use(express.bodyParser.json({limit: "1000mb"})); | ||
| 69 | -// app.use(express.bodyParser.urlencoded({ limit: "1000mb", extended: true })); | ||
| 70 | app.use(express.static(path.join(__dirname, '/uploads'))); | 60 | app.use(express.static(path.join(__dirname, '/uploads'))); |
| 71 | app.use(express.static('/storage/videos/')); | 61 | app.use(express.static('/storage/videos/')); |
| 72 | app.use(express.bodyParser({ keepExtensions: true, uploadDir: path.join(__dirname, '/uploads'), limit: "1500mb" })); | 62 | app.use(express.bodyParser({ keepExtensions: true, uploadDir: path.join(__dirname, '/uploads'), limit: "1500mb" })); |
| @@ -179,60 +169,6 @@ app.get('/glosa', function(req, res) { | @@ -179,60 +169,6 @@ app.get('/glosa', function(req, res) { | ||
| 179 | // res.send(200, "Incrementado"); | 169 | // res.send(200, "Incrementado"); |
| 180 | // }); | 170 | // }); |
| 181 | 171 | ||
| 182 | -app.get('/api/limparfila', function(req, res) { | ||
| 183 | - | ||
| 184 | - // graceful shutdown | ||
| 185 | - process.once( 'SIGTERM', function ( sig ) { | ||
| 186 | - queue.shutdown( 5000, function(err) { | ||
| 187 | - console.log( 'Kue shutdown: ', err||'' ); | ||
| 188 | - process.exit( 0 ); | ||
| 189 | - }); | ||
| 190 | - }); | ||
| 191 | - | ||
| 192 | - // todos abaixos sao redundantes | ||
| 193 | - queue.inactive( function( err, ids ) { | ||
| 194 | - ids.forEach( function( id ) { | ||
| 195 | - kue.Job.get( id, function( err, job ) { | ||
| 196 | - job.remove( function(){ | ||
| 197 | - // console.log( 'removed ', job.id ); | ||
| 198 | - }); | ||
| 199 | - }); | ||
| 200 | - }); | ||
| 201 | - }); | ||
| 202 | - | ||
| 203 | - queue.active( function( err, ids ) { | ||
| 204 | - ids.forEach( function( id ) { | ||
| 205 | - kue.Job.get( id, function( err, job ) { | ||
| 206 | - job.remove( function(){ | ||
| 207 | - // console.log( 'removed ', job.id ); | ||
| 208 | - }); | ||
| 209 | - }); | ||
| 210 | - }); | ||
| 211 | - }); | ||
| 212 | - | ||
| 213 | - queue.complete( function( err, ids ) { | ||
| 214 | - ids.forEach( function( id ) { | ||
| 215 | - kue.Job.get( id, function( err, job ) { | ||
| 216 | - job.remove( function(){ | ||
| 217 | - // console.log( 'removed ', job.id ); | ||
| 218 | - }); | ||
| 219 | - }); | ||
| 220 | - }); | ||
| 221 | - }); | ||
| 222 | - | ||
| 223 | - queue.failed( function( err, ids ) { | ||
| 224 | - ids.forEach( function( id ) { | ||
| 225 | - kue.Job.get( id, function( err, job ) { | ||
| 226 | - job.remove( function(){ | ||
| 227 | - // console.log( 'removed ', job.id ); | ||
| 228 | - }); | ||
| 229 | - }); | ||
| 230 | - }); | ||
| 231 | - }); | ||
| 232 | - | ||
| 233 | - res.send(200, {'status' : 'A fila foi resetada com sucesso.'}); | ||
| 234 | -}); | ||
| 235 | - | ||
| 236 | app.get('/api/dicionario', function(req, res){ | 172 | app.get('/api/dicionario', function(req, res){ |
| 237 | res.send(200, { 'versao': '1.0' } ); | 173 | res.send(200, { 'versao': '1.0' } ); |
| 238 | }); | 174 | }); |