Review: Approve code review Un comentario como curiosidad, pero todo correcto.
Un saludo. Diff comments: > === modified file 'nayar_mqspace/__init__.py' > --- nayar_mqspace/__init__.py 2014-06-11 10:23:47 +0000 > +++ nayar_mqspace/__init__.py 2014-06-30 14:09:22 +0000 > @@ -19,7 +19,4 @@ > # > > ############################################################################## > > -import worker > - > -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: > - > +from . import models > > === modified file 'nayar_mqspace/__openerp__.py' > --- nayar_mqspace/__openerp__.py 2014-06-11 10:23:47 +0000 > +++ nayar_mqspace/__openerp__.py 2014-06-30 14:09:22 +0000 > @@ -24,18 +24,16 @@ > "version": "1.0", > "author": "Nayar Systems", > "category": "Enterprise Specific Modules", > - "description": "Soporte para workers que trabajan conectados a la nube > MQSpace", > + "description": """ > + Soporte para workers que trabajan conectados a la nube MQSpace > + """, > "depends": [], > - "init_xml": [], > - "demo_xml": [], > - "update_xml": [ > + "data": [ > 'security/nayar_mqspace.xml', > 'security/ir.model.access.csv', > - 'worker_view.xml', > - ], > + 'views/worker_view.xml', > + ], > "website": 'http://www.72horas.net/', > "active": False, > "installable": True > } > - > -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: > > === added directory 'nayar_mqspace/models' > === added file 'nayar_mqspace/models/__init__.py' > --- nayar_mqspace/models/__init__.py 1970-01-01 00:00:00 +0000 > +++ nayar_mqspace/models/__init__.py 2014-06-30 14:09:22 +0000 > @@ -0,0 +1,22 @@ > +# -*- coding: utf-8 -*- > +############################################################################## > +# > +# OpenERP, Open Source Management Solution > +# Copyright (C) 2013 Nayar Systems (<http://www.72horas.net/>) > +# > +# This program is free software: you can redistribute it and/or modify > +# it under the terms of the GNU Affero General Public License as > +# published by the Free Software Foundation, either version 3 of the > +# License, or (at your option) any later version. > +# > +# This program is distributed in the hope that it will be useful, > +# but WITHOUT ANY WARRANTY; without even the implied warranty of > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +# GNU Affero General Public License for more details. > +# > +# You should have received a copy of the GNU Affero General Public License > +# along with this program. If not, see <http://www.gnu.org/licenses/>. > +# > +############################################################################## > + > +from . import worker > > === renamed file 'nayar_mqspace/worker.py' => 'nayar_mqspace/models/worker.py' > --- nayar_mqspace/worker.py 2014-06-11 10:23:47 +0000 > +++ nayar_mqspace/models/worker.py 2014-06-30 14:09:22 +0000 > @@ -19,16 +19,12 @@ > # > > ############################################################################## > > -import logging > -import netsvc > -from osv import osv, fields > +from openerp import logging, netsvc > +from openerp.osv import orm, fields > import platform > import pooler > import threading > -import time > -from tools import config > -from tools import mqclient > -from tools.translate import _ > +from openerp.tools import config, mqclient mqclient debe ser algo que han añadido ellos al core. Les preguntaré a ver. > > > STATE = [ > @@ -37,7 +33,7 @@ > ] > > > -class nayar_mqspace_worker(osv.osv): > +class NayarMqspaceWorker(orm.Model): > _name = 'nayar.mqspace.worker' > _description = 'Nayar MQSpace Worker' > > @@ -46,7 +42,9 @@ > def _get_state(self, cr, uid, ids, field_name, arg, context): > res = {} > for i in ids: > - if cr.dbname in self.workers and i in self.workers[cr.dbname] > and self.workers[cr.dbname][i].is_alive(): > + if (cr.dbname in self.workers and > + i in self.workers[cr.dbname] and > + self.workers[cr.dbname][i].is_alive()): > res[i] = 'running' > else: > res[i] = 'stopped' > @@ -55,22 +53,25 @@ > _columns = { > 'name': fields.char('Name', size=512, required=True), > 'uid': fields.many2one('res.users', 'User', required=True), > - 'state': fields.function(_get_state, type='selection', > selection=STATE, method=True, string='State'), > + 'state': fields.function(_get_state, type='selection', > selection=STATE, > + method=True, string='State'), > 'autorun': fields.boolean('Auto'), > - 'queue_ids': fields.one2many('nayar.mqspace.worker.queue', > 'worker_id', 'Queues'), > - } > + 'queue_ids': fields.one2many('nayar.mqspace.worker.queue', > 'worker_id', > + 'Queues'), > + } > > _defaults = { > 'uid': lambda self, cr, uid, context: uid, > 'autorun': False, > - } > + } > > def __init__(self, *args, **kwargs): > - super(nayar_mqspace_worker, self).__init__(*args, **kwargs) > + super(NayarMqspaceWorker, self).__init__(*args, **kwargs) > pool, cr = args > try: > self.logger = logging.getLogger("mqspace") > - cr.execute("SELECT EXISTS(SELECT * FROM > information_schema.tables WHERE table_name = 'nayar_mqspace_worker')") > + cr.execute("SELECT EXISTS(SELECT * FROM > information_schema.tables " > + "WHERE table_name = 'nayar_mqspace_worker')") > if cr.fetchone()[0]: > ids = self.search(cr, 1, [('autorun', '=', True)]) > self.schedule(cr, 1, ids) > @@ -79,14 +80,17 @@ > > def schedule(self, cr, uid, ids, context=None): > for i in ids: > - if not(cr.dbname in self.workers and i in > self.workers[cr.dbname] and self.workers[cr.dbname][i].is_alive()): > + if not(cr.dbname in self.workers and > + i in self.workers[cr.dbname] and > + self.workers[cr.dbname][i].is_alive()): > worker_conf = self.browse(cr, uid, i) > - worker = Worker(cr.dbname, worker_conf.uid.id, i, > worker_conf.name) > + worker = Worker(cr.dbname, worker_conf.uid.id, i, > + worker_conf.name) > if not cr.dbname in self.workers: > self.workers[cr.dbname] = {} > self.workers[cr.dbname][i] = worker > return True > - > + > def start(self, cr, uid, ids, context=None): > self.schedule(cr, uid, ids, context=context) > for i in ids: > @@ -104,24 +108,27 @@ > > def process(self, cr, uid, data): > model_obj = self.pool.get(data['model']) > - return getattr(model_obj, data['fun'])(cr, uid, *data.get('args', > []), **data.get('kwargs', {})) > - > -nayar_mqspace_worker() > - > - > -class nayar_mqspace_worker_queue(osv.osv): > + return getattr(model_obj, data['fun'])(cr, uid, > + *data.get('args', []), > + **data.get('kwargs', {})) > + > + > +class NayarMqspaceWorkerQueue(orm.Model): > _name = 'nayar.mqspace.worker.queue' > _description = 'Nayar MQSpace Queue' > > _columns = { > - 'worker_id': fields.many2one('nayar.mqspace.worker', 'Worker', > required=True), > + 'worker_id': fields.many2one('nayar.mqspace.worker', 'Worker', > + required=True), > 'name': fields.char('Name', size=512, required=True), > - 'model': fields.char('Object', size=64, help="Name of object whose > function will be called when this queue will have messages."), > - 'function': fields.char('Function', size=64, help="Name of the > method to be called on the object when this queue receives a message."), > + 'model': fields.char('Object', size=64, > + help="Name of object whose function will be " > + "called when this queue will have messages."), > + 'function': fields.char('Function', size=64, > + help="Name of the method to be called on the > " > + "object when this queue receives a > message."), > } > > -nayar_mqspace_worker_queue() > - > > class Worker(threading.Thread, netsvc.Server): > def __init__(self, db_name, uid, worker_id, name): > @@ -143,7 +150,8 @@ > netsvc.Server.start(self) > > def run(self): > - self.logger.info("Starting Worker '%s' on %s" % (self.name, > self.db_name)) > + self.logger.info("Starting Worker '%s' on %s" % > + (self.name, self.db_name)) > print "Starting Worker '%s' on %s" % (self.name, self.db_name) > > try: > @@ -151,13 +159,18 @@ > self.cr = pooler.get_db(self.db_name).cursor() > self.halt = False > self.connection = mqclient.Connection(config.get('cloud_host')) > - self.connection.session_create(config.get('cloud_user'), > config.get('cloud_pass'), expire=60*5) > + self.connection.session_create(config.get('cloud_user'), > + config.get('cloud_pass'), > + expire=60*5) > self.connection.start() > > queue_obj = self.pool.get('nayar.mqspace.worker.queue') > - queue_ids = queue_obj.search(self.cr, self.uid, [('worker_id', > '=', self.worker_id)]) > + queue_ids = queue_obj.search(self.cr, self.uid, > + [('worker_id', '=', > self.worker_id)]) > queues = queue_obj.browse(self.cr, self.uid, queue_ids) > - queue_names = ["%s%s.%s.%s" % (config.get('cloud_path'), > platform.node(), self.db_name, queue.name) for queue in queues] > + queue_names = ["%s%s.%s.%s" % (config.get('cloud_path'), > + platform.node(), self.db_name, > + queue.name) for queue in queues] > > pulls = [] > for q in queue_names: > @@ -165,7 +178,8 @@ > t.start() > pulls.append(t) > > - self.logger.info("Worker '%s' running on %s" % (self.name, > self.db_name)) > + self.logger.info("Worker '%s' running on %s" % > + (self.name, self.db_name)) > print "Worker '%s' running on %s" % (self.name, self.db_name) > > for t in pulls: > @@ -181,7 +195,8 @@ > except Exception as ex: > self.logger.error(ex) > > - self.logger.info("Worker '%s' on %s stopped" % (self.name, > self.db_name)) > + self.logger.info("Worker '%s' on %s stopped" % > + (self.name, self.db_name)) > print "Worker '%s' on %s stopped" % (self.name, self.db_name) > > def pull_message(self, queue_name): > @@ -198,7 +213,8 @@ > self.logger.error(m) > break > else: > - t = threading.Thread(target=self.process_task, > args=(taskpull, m)) > + t = threading.Thread(target=self.process_task, > + args=(taskpull, m)) > t.start() > tasks.append(t) > taskpull = self.connection.new_taskpull() > @@ -211,22 +227,27 @@ > for t in tasks: > t.join() > > - def process_task(self, taskpull, message): > + def process_task(self, taskpull, message, context=None): > try: > cr = pooler.get_db(self.db_name).cursor() > - taskpull.result(self.process_message(cr, self.uid, message)) > + taskpull.result(self.process_message(cr, self.uid, message, > + context=context)) > cr.close() > cr = None > except Exception as ex: > self.logger.error(message) > self.logger.error(ex) > - > - def process_message(self, cr, uid, message): > + > + def process_message(self, cr, uid, message, context=None): > queue_name = message['data']['queue'] > - queue_obj = self.pool.get('nayar.mqspace.worker.queue') > - queue_ids = queue_obj.search(cr, uid, [('worker_id', '=', > self.worker_id)]) > - for queue in queue_obj.browse(cr, uid, queue_ids): > - if queue_name == "%s%s.%s.%s" % (config.get('cloud_path'), > platform.node(), self.db_name, queue.name): > + queue_obj = self.pool['nayar.mqspace.worker.queue'] > + queue_ids = queue_obj.search(cr, uid, > + [('worker_id', '=', self.worker_id)], > + context=context) > + for queue in queue_obj.browse(cr, uid, queue_ids, context=context): > + if queue_name == "%s%s.%s.%s" % (config.get('cloud_path'), > + platform.node(), self.db_name, > + queue.name): > try: > m = self.pool.get(queue.model) > f = getattr(m, queue.function) > @@ -235,12 +256,15 @@ > except Exception as ex: > cr.rollback() > msg_error = "" > - if type(ex) is osv.except_osv: > + if type(ex) is orm.except_orm: > msg_error = "%s %s" % (ex.name, ex.value) > else: > msg_error = str(ex) > res = {'error': msg_error} > - self.logger.exception("Job call of > self.pool.get('%s').%s(cr, uid, %s) failed" % (queue.model, queue.function, > message['data']['data'])) > + self.logger.exception( > + "Job call of self.pool.get('%s').%s(cr, uid, %s) " > + "failed" % (queue.model, queue.function, > + message['data']['data'])) > > return res > > @@ -250,7 +274,8 @@ > > def stop(self): > if self.is_alive(): > - self.logger.info("Stopping Worker '%s' on %s" % (self.name, > self.db_name)) > + self.logger.info("Stopping Worker '%s' on %s" % > + (self.name, self.db_name)) > print "Stopping Worker '%s' on %s" % (self.name, self.db_name) > self.halt = True > netsvc.Server.stop(self) > > === added directory 'nayar_mqspace/views' > === renamed file 'nayar_mqspace/worker_view.xml' => > 'nayar_mqspace/views/worker_view.xml' > --- nayar_mqspace/worker_view.xml 2014-06-11 10:23:47 +0000 > +++ nayar_mqspace/views/worker_view.xml 2014-06-30 14:09:22 +0000 > @@ -1,100 +1,102 @@ > <?xml version="1.0" encoding="utf-8"?> > <openerp> > - <data> > - <!-- Worker Search View --> > - <record id="view_nayar_mqspace_worker_search" model="ir.ui.view"> > - <field name="name">view.nayar.mqspace.worker.search</field> > - <field name="model">nayar.mqspace.worker</field> > - <field name="type">search</field> > - <field name="arch" type="xml"> > - <search string="Search Workers"> > - <field name="name"/> > - <field name="uid"/> > - <field name="state"/> > - <field name="autorun"/> > - </search> > - </field> > - </record> > - > - <!-- Worker Tree View --> > - <record id="view_nayar_mqspace_worker_view" model="ir.ui.view"> > - <field name="name">view.nayar.mqspace.worker.tree</field> > - <field name="model">nayar.mqspace.worker</field> > - <field name="type">tree</field> > - <field name="priority">1</field> > - <field name="arch" type="xml"> > - <tree string="Workers"> > - <field name="name" /> > - <field name="uid" /> > - <field name="state" /> > - <field name="autorun" /> > - </tree> > - </field> > - </record> > - > - <!-- Worker Form View--> > - <record id="view_nayar_mqspace_worker_form" model="ir.ui.view"> > - <field name="name">view.nayar.mqspace.worker.form</field> > - <field name="model">nayar.mqspace.worker</field> > - <field name="type">form</field> > - <field name="arch" type="xml"> > - <form string="Worker"> > - <group col="4" colspan="2"> > - <field name="name"/> > - <field name="uid"/> > - <field name="state"/> > - <field name="autorun"/> > - <field name="queue_ids" nolabel="1" colspan="4"/> > - <button name="start" string="Start" type="object" > icon="gtk-go-forward" colspan="2"/> > - <button name="stop" string="Stop" type="object" icon="gtk-stop" > colspan="2"/> > - </group> > - </form> > - </field> > - </record> > - > - <!-- Queue Tree View--> > - <record id="view_nayar_mqspace_worker_queue_tree" model="ir.ui.view"> > - <field name="name">view.nayar.mqspace.worker.queue.tree</field> > - <field name="model">nayar.mqspace.worker.queue</field> > - <field name="type">tree</field> > - <field name="priority">1</field> > - <field name="arch" type="xml"> > - <tree string="Queues"> > - <field name="name"/> > - <field name="model"/> > - <field name="function"/> > - </tree> > - </field> > - </record> > - > - <!-- Queue Form View --> > - <record id="view_nayar_mqspace_worker_queue_form" model="ir.ui.view" > > - <field name="name">view.nayar.mqspace.worker.queue.form</field> > - <field name="model">nayar.mqspace.worker.queue</field> > - <field name="priority">1</field> > - <field name="type">form</field> > - <field name="arch" type="xml"> > - <form string="Queue"> > - <group colspan="2" col="4"> > - <field name="name"/> > - <field name="model"/> > - <field name="function"/> > - </group> > - </form> > - </field> > - </record> > - > - <!-- Actions --> > - <record id="action_nayar_mqspace_worker_form" > model="ir.actions.act_window"> > - <field name="name">Workers</field> > - <field name="type">ir.actions.act_window</field> > - <field name="res_model">nayar.mqspace.worker</field> > - <field name="view_type">form</field> > - <field name="view_mode">tree,form</field> > - <field name="search_view_id" ref="view_nayar_mqspace_worker_search"/> > - </record> > - > - <menuitem id="base.menu_nayar_mqspace" name="Nayar MQSpace" > parent="base.menu_administration"/> > - <menuitem action="action_nayar_mqspace_worker_form" > id="menu_nayar_mqspace_worker" parent="base.menu_nayar_mqspace" sequence="1"/> > - </data> > + <data> > + <!-- Worker Search View --> > + <record id="view_nayar_mqspace_worker_search" model="ir.ui.view"> > + <field name="name">view.nayar.mqspace.worker.search</field> > + <field name="model">nayar.mqspace.worker</field> > + <field name="arch" type="xml"> > + <search string="Search Workers"> > + <field name="name" /> > + <field name="uid" /> > + <field name="state" /> > + <field name="autorun" /> > + </search> > + </field> > + </record> > + > + <!-- Worker Tree View --> > + <record id="view_nayar_mqspace_worker_view" model="ir.ui.view"> > + <field name="name">view.nayar.mqspace.worker.tree</field> > + <field name="model">nayar.mqspace.worker</field> > + <field name="priority">1</field> > + <field name="arch" type="xml"> > + <tree string="Workers"> > + <field name="name" /> > + <field name="uid" /> > + <field name="state" /> > + <field name="autorun" /> > + </tree> > + </field> > + </record> > + > + <!-- Worker Form View --> > + <record id="view_nayar_mqspace_worker_form" model="ir.ui.view"> > + <field name="name">view.nayar.mqspace.worker.form</field> > + <field name="model">nayar.mqspace.worker</field> > + <field name="arch" type="xml"> > + <form string="Worker"> > + <group col="4" colspan="2"> > + <field name="name" /> > + <field name="uid" /> > + <field name="state" /> > + <field name="autorun" /> > + <field name="queue_ids" nolabel="1" > + colspan="4" /> > + <button name="start" string="Start" type="object" > + icon="gtk-go-forward" colspan="2" /> > + <button name="stop" string="Stop" type="object" > + icon="gtk-stop" colspan="2" /> > + </group> > + </form> > + </field> > + </record> > + > + <!-- Queue Tree View --> > + <record id="view_nayar_mqspace_worker_queue_tree" model="ir.ui.view"> > + <field name="name">view.nayar.mqspace.worker.queue.tree > + </field> > + <field name="model">nayar.mqspace.worker.queue</field> > + <field name="priority">1</field> > + <field name="arch" type="xml"> > + <tree string="Queues"> > + <field name="name" /> > + <field name="model" /> > + <field name="function" /> > + </tree> > + </field> > + </record> > + > + <!-- Queue Form View --> > + <record id="view_nayar_mqspace_worker_queue_form" model="ir.ui.view"> > + <field name="name">view.nayar.mqspace.worker.queue.form > + </field> > + <field name="model">nayar.mqspace.worker.queue</field> > + <field name="priority">1</field> > + <field name="arch" type="xml"> > + <form string="Queue"> > + <group colspan="2" col="4"> > + <field name="name" /> > + <field name="model" /> > + <field name="function" /> > + </group> > + </form> > + </field> > + </record> > + > + <!-- Actions --> > + <record id="action_nayar_mqspace_worker_form" > model="ir.actions.act_window"> > + <field name="name">Workers</field> > + <field name="type">ir.actions.act_window</field> > + <field name="res_model">nayar.mqspace.worker</field> > + <field name="view_type">form</field> > + <field name="view_mode">tree,form</field> > + <field name="search_view_id" > ref="view_nayar_mqspace_worker_search" /> > + </record> > + > + <menuitem id="base.menu_nayar_mqspace" name="Nayar MQSpace" > + parent="base.menu_administration" /> > + <menuitem action="action_nayar_mqspace_worker_form" > id="menu_nayar_mqspace_worker" > + parent="base.menu_nayar_mqspace" sequence="1" /> > + </data> > </openerp> > -- https://code.launchpad.net/~oihanecruce/avanzosc/nayar_mqspace/+merge/225008 Your team Avanzosc_security is subscribed to branch lp:~avanzosc-security-team/avanzosc/72horas. -- Mailing list: https://launchpad.net/~avanzosc Post to : [email protected] Unsubscribe : https://launchpad.net/~avanzosc More help : https://help.launchpad.net/ListHelp

