Merge lp://staging/~dreis-pt/openobject-extension/base_external_dbsource-v7 into lp://staging/openobject-extension

Proposed by Daniel Reis
Status: Needs review
Proposed branch: lp://staging/~dreis-pt/openobject-extension/base_external_dbsource-v7
Merge into: lp://staging/openobject-extension
Diff against target: 373 lines (+333/-0)
7 files modified
base_external_dbsource/__init__.py (+24/-0)
base_external_dbsource/__openerp__.py (+61/-0)
base_external_dbsource/base_external_dbsource.py (+178/-0)
base_external_dbsource/base_external_dbsource_demo.xml (+13/-0)
base_external_dbsource/base_external_dbsource_view.xml (+50/-0)
base_external_dbsource/security/ir.model.access.csv (+2/-0)
base_external_dbsource/test/dbsource_connect.yml (+5/-0)
To merge this branch: bzr merge lp://staging/~dreis-pt/openobject-extension/base_external_dbsource-v7
Reviewer Review Type Date Requested Status
Maxime Chambreuil (http://www.savoirfairelinux.com) Needs Fixing
David (community) Needs Information
Alexandre Fayolle - camptocamp code review, no test Approve
Review via email: mp+159673@code.staging.launchpad.net

Description of the change

Ported base_external_dbsource to v7.

To post a comment you must log in.
374. By Daniel Reis

fix typo

Revision history for this message
Alexandre Fayolle - camptocamp (alexandre-fayolle-c2c) wrote :

LGTM

review: Approve (code review, no test)
Revision history for this message
David (dhecar) wrote :

Whats the correct version for 6.1?

review: Needs Information
Revision history for this message
Daniel Reis (dreis-pt) wrote :

@David, I'm sorry I don't understand the question. Could you rephrase it please?

Revision history for this message
David (dhecar) wrote :

Hello, i'm triying to use the module base_external_dbsource in Openerp 6.1

Where is the correct module for this version?

I've installed base_external_dbsource-v7 ans I'm getting error datetime.

openerp.osv.osv: Uncaught exception
Traceback (most recent call last):
  File "/opt/openerp/server/openerp/osv/osv.py", line 129, in wrapper
    return f(self, dbname, *args, **kwargs)
  File "/opt/openerp/server/openerp/osv/osv.py", line 195, in execute
    res = self.execute_cr(cr, uid, obj, method, *args, **kw)
  File "/opt/openerp/server/openerp/osv/osv.py", line 183, in execute_cr
    return getattr(object, method)(cr, uid, *args, **kw)
  File "/opt/openerp/server/openerp/addons/import_odbc/import_odbc.py",
line 147, in import_run
    else: sync = datetime.datetime(1900, 1, 1, 0, 0, 0)
AttributeError: type object 'datetime.datetime' has no attribute 'datetime'
2013-05-09 13:24:07,131 14273 ERROR ? openerp.netsvc: type object
'datetime.datetime' has no attribute 'datetime'

if i change import datetime from datetime to import datetime, the error
change to:

 openerp.osv.osv: Uncaught exception
Traceback (most recent call last):
  File "/opt/openerp/server/openerp/osv/osv.py", line 129, in wrapper
    return f(self, dbname, *args, **kwargs)
  File "/opt/openerp/server/openerp/osv/osv.py", line 195, in execute
    res = self.execute_cr(cr, uid, obj, method, *args, **kw)
  File "/opt/openerp/server/openerp/osv/osv.py", line 183, in execute_cr
    return getattr(object, method)(cr, uid, *args, **kw)
  File "/opt/openerp/server/openerp/addons/import_odbc/import_odbc.py",
line 138, in import_run
    log = {'start_run': datetime.now().replace(microsecond=0),
AttributeError: 'module' object has no attribute 'now'
2013-05-10 08:57:27,141 32035 ERROR ? openerp.netsvc: 'module' object has
no attribute 'now'

2013/5/10 Daniel Reis (SECURITAS SA) <email address hidden>

> @David, I'm sorry I don't understand the question. Could you rephrase it
> please?
> --
>
> https://code.launchpad.net/~dreis-pt/openobject-extension/base_external_dbsource-v7/+merge/159673
> You are reviewing the proposed merge of
> lp:~dreis-pt/openobject-extension/base_external_dbsource-v7 into
> lp:openobject-extension.
>

--

*Serveis Informàtics a Pimes i Particulars*

- Manteniment de xarxes i servidors
- Reinstal·lacions de sistemes
- Desinfecció de virus
- Instal·lació de Linux
- Implementació d'Openerp (Gestió empresa)

http://sinergiainformatica.net

Tefl: 659 522 073

Revision history for this message
Daniel Reis (dreis-pt) wrote :

@Maxime: this is a dependency for mgmtsystem_kpi; do you think you could review or test this?

Revision history for this message
Maxime Chambreuil (http://www.savoirfairelinux.com) (max3903) wrote :

sure, but not this week.

Revision history for this message
Maxime Chambreuil (http://www.savoirfairelinux.com) (max3903) wrote :

@Daniel

I have managed to test it. Everything is working well up to the point where I compute a KPI and execute a query against an external database (MySQL). I got this error message:

Server Traceback (most recent call last):
  File "/home/max/openerp/web/7.0/addons/web/session.py", line 89, in send
    return openerp.netsvc.dispatch_rpc(service_name, method, args)
  File "/home/max/openerp/server/7.0/openerp/netsvc.py", line 292, in dispatch_rpc
    result = ExportService.getService(service_name).dispatch(method, params)
  File "/home/max/openerp/server/7.0/openerp/service/web_services.py", line 626, in dispatch
    res = fn(db, uid, *params)
  File "/home/max/openerp/server/7.0/openerp/osv/osv.py", line 188, in execute_kw
    return self.execute(db, uid, obj, method, *args, **kw or {})
  File "/home/max/openerp/server/7.0/openerp/osv/osv.py", line 131, in wrapper
    return f(self, dbname, *args, **kwargs)
  File "/home/max/openerp/server/7.0/openerp/osv/osv.py", line 197, in execute
    res = self.execute_cr(cr, uid, obj, method, *args, **kw)
  File "/home/max/openerp/server/7.0/openerp/osv/osv.py", line 185, in execute_cr
    return getattr(object, method)(cr, uid, *args, **kw)
  File "/home/max/openerp/mgmtsystem/7.0/mgmtsystem_kpi/mgmtsystem_kpi.py", line 294, in compute_kpi_value
    res = dbsrc_obj.execute(obj.kpi_code)
  File "/home/max/openerp/server/7.0/openerp/osv/orm.py", line 374, in function_proxy
    return attr(self._cr, self._uid, [self._id], *args, **kwargs)
  File "/home/max/openerp/local/base_external_dbsource/base_external_dbsource.py", line 140, in execute
    cur = conn.execute(sqlquery, sqlparams)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1449, in execute
    params)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1628, in _execute_text
    statement, parameters
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1691, in _execute_context
    context)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 331, in do_execute
    cursor.execute(statement, parameters)
  File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 159, in execute
    query = query % db.literal(args)
TypeError: not all arguments converted during string formatting

I will do further debugging tomorrow.

Revision history for this message
David (dhecar) wrote :
Download full text (3.9 KiB)

Hi, Finally I found this

http://bazaar.launchpad.net/~openerp-community/openobject-extension/import_odbc_base_external_dbsource/
with revision 357.

I have changed some lines in order to work, but i'm not sure it's
correct.(See the diff.patch file)

Another error is when the cron job is running:

2013-05-25 10:50:57,144 27878 ERROR ? openerp.addons.base.ir.ir_cron: Call
of self.pool.get('import.odbc.dbtable').import_run(cr, uid, *()) failed in
Job 16
Traceback (most recent call last):
  File "/opt/openerp/server/openerp/addons/base/ir/ir_cron.py", line 146,
in _callback
    method(cr, uid, *args)
  File "/opt/openerp/server/openerp/addons/import_odbc/import_odbc.py",
line 120, in import_run
    actions = self.read(cr, uid, ids, ['id', 'exec_order'])
  File "/opt/openerp/server/openerp/osv/orm.py", line 3415, in read
    select = map(lambda x: isinstance(x, dict) and x['id'] or x, select)
TypeError: argument 2 to map() must support iteration

2013/5/25 Maxime Chambreuil (http://www.savoirfairelinux.com) <
<email address hidden>>

> @Daniel
>
> I have managed to test it. Everything is working well up to the point
> where I compute a KPI and execute a query against an external database
> (MySQL). I got this error message:
>
> Server Traceback (most recent call last):
> File "/home/max/openerp/web/7.0/addons/web/session.py", line 89, in send
> return openerp.netsvc.dispatch_rpc(service_name, method, args)
> File "/home/max/openerp/server/7.0/openerp/netsvc.py", line 292, in
> dispatch_rpc
> result = ExportService.getService(service_name).dispatch(method,
> params)
> File "/home/max/openerp/server/7.0/openerp/service/web_services.py",
> line 626, in dispatch
> res = fn(db, uid, *params)
> File "/home/max/openerp/server/7.0/openerp/osv/osv.py", line 188, in
> execute_kw
> return self.execute(db, uid, obj, method, *args, **kw or {})
> File "/home/max/openerp/server/7.0/openerp/osv/osv.py", line 131, in
> wrapper
> return f(self, dbname, *args, **kwargs)
> File "/home/max/openerp/server/7.0/openerp/osv/osv.py", line 197, in
> execute
> res = self.execute_cr(cr, uid, obj, method, *args, **kw)
> File "/home/max/openerp/server/7.0/openerp/osv/osv.py", line 185, in
> execute_cr
> return getattr(object, method)(cr, uid, *args, **kw)
> File
> "/home/max/openerp/mgmtsystem/7.0/mgmtsystem_kpi/mgmtsystem_kpi.py", line
> 294, in compute_kpi_value
> res = dbsrc_obj.execute(obj.kpi_code)
> File "/home/max/openerp/server/7.0/openerp/osv/orm.py", line 374, in
> function_proxy
> return attr(self._cr, self._uid, [self._id], *args, **kwargs)
> File
> "/home/max/openerp/local/base_external_dbsource/base_external_dbsource.py",
> line 140, in execute
> cur = conn.execute(sqlquery, sqlparams)
> File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line
> 1449, in execute
> params)
> File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line
> 1628, in _execute_text
> statement, parameters
> File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line
> 1691, in _execute_context
> context)
> File "/usr/lib/python2.7/dist-packages...

Read more...

1--- /opt/MODULOS-6.1/import_odbc.py 2013-05-15 08:23:59.158992062 +0000
2+++ /opt/MODULOS-6.1/import_odbc_base_external_dbsource/import_odbc/import_odbc.py 2013-05-13 09:58:18.978992838 +0000
3@@ -134,7 +134,7 @@
4 model_name = obj.model_target.model
5 model_obj = self.pool.get(model_name)
6 xml_prefix = model_name.replace('.', '_') + "_id_"
7- log = {'start_run': datetime.now().replace(microsecond=0),
8+ log = {'start_run': datetime.today().replace(microsecond=0),
9 'last_run': None,
10 'last_record_count': 0,
11 'last_error_count': 0,
12@@ -144,7 +144,7 @@
13
14 #Prepare SQL sentence; replace "%s" with the last_sync date
15 if obj.last_sync: sync = datetime.strptime(obj.last_sync, "%Y-%m-%d %H:%M:%S")
16- else: sync = datetime.datetime(1900, 1, 1, 0, 0, 0)
17+ else: sync = datetime(1900, 1, 1, 0, 0, 0)
18 params = {'sync': sync}
19 res = db_model.execute(cr, uid, [obj.dbsource_id.id], obj.sql_source, params, metadata=True)
20
21@@ -183,7 +183,7 @@
22 if log['last_log']:
23 log['last_log'].insert(0, 'LEVEL|== Line == |== Relationship ==|== Message ==')
24 log.update( {'last_log': '\n'.join(log['last_log'])} )
25- log.update({ 'last_run': datetime.now().replace(microsecond=0) }) #second=0,
26+ log.update({ 'last_run': datetime.today().replace(microsecond=0) }) #second=0,
27 self.write(cr, uid, [obj.id], log)
28 #Finished
29 _logger.debug('Import job FINISHED.')
Revision history for this message
Maxime Chambreuil (http://www.savoirfairelinux.com) (max3903) wrote :

Problem was that sqlparams default value didn't work.

l340: replace sqlparams=None by sqlparams=[]

review: Needs Fixing
375. By Daniel Reis

Handle empty sqlparams

Revision history for this message
Daniel Reis (dreis-pt) wrote :

Maxime, just fixed the problem you reported.
I'm not using this right now, but I would like it to get merged, so that someone else that needs it can pick it up and go improve it.

Revision history for this message
Maxime Chambreuil (http://www.savoirfairelinux.com) (max3903) wrote :

@Daniel

Can you fix the conflicts ?

Thanks.

review: Needs Fixing
376. By Daniel Reis

Resolve conflicts

Unmerged revisions

376. By Daniel Reis

Resolve conflicts

375. By Daniel Reis

Handle empty sqlparams

374. By Daniel Reis

fix typo

373. By Daniel Reis

Ported base_external_dbsource to v7

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.

Subscribers

People subscribed via source and target branches