[MERGE] trunk
authorAntony Lesuisse <al@openerp.com>
Tue, 31 Jan 2012 21:17:44 +0000 (22:17 +0100)
committerAntony Lesuisse <al@openerp.com>
Tue, 31 Jan 2012 21:17:44 +0000 (22:17 +0100)
bzr revid: al@openerp.com-20120131211744-whzzo0dh6w1kptng

1  2 
openerp/addons/base/ir/ir_actions.py
openerp/addons/base/module/module.py
openerp/addons/base/res/res_users.py
openerp/modules/db.py
openerp/modules/module.py
openerp/osv/orm.py
openerp/report/report_sxw.py
openerp/service/web_services.py

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -327,6 -329,8 +330,7 @@@ class browse_record(object)
          self._table = table # deprecated, use _model!
          self._model = table
          self._table_name = self._table._name
 -        self.__logger = logging.getLogger(
 -            'openerp.osv.orm.browse_record.' + self._table_name)
++        self.__logger = logging.getLogger('openerp.osv.orm.browse_record.' + self._table_name)
          self._context = context
          self._fields_process = fields_process
  
@@@ -34,11 -34,8 +34,10 @@@ import openerp.tools as tool
  import zipfile
  import common
  from openerp.osv.fields import float as float_class, function as function_class
- from openerp.osv.orm import browse_record
  from openerp.tools.translate import _
  
 +_logger = logging.getLogger(__name__)
 +
  DT_FORMAT = '%Y-%m-%d'
  DHM_FORMAT = '%Y-%m-%d %H:%M:%S'
  HM_FORMAT = '%H:%M:%S'
@@@ -201,68 -207,79 +206,73 @@@ class db(netsvc.ExportService)
              os.environ['PGPASSWORD'] = ''
  
      def exp_dump(self, db_name):
-         self._set_pg_psw_env_var()
-         cmd = ['pg_dump', '--format=c', '--no-owner']
-         if tools.config['db_user']:
-             cmd.append('--username=' + tools.config['db_user'])
-         if tools.config['db_host']:
-             cmd.append('--host=' + tools.config['db_host'])
-         if tools.config['db_port']:
-             cmd.append('--port=' + str(tools.config['db_port']))
-         cmd.append(db_name)
-         stdin, stdout = tools.exec_pg_command_pipe(*tuple(cmd))
-         stdin.close()
-         data = stdout.read()
-         res = stdout.close()
-         if res:
-             _logger.error('DUMP DB: %s failed\n%s', db_name, data)
-             raise Exception, "Couldn't dump database"
-         _logger.info('DUMP DB: %s', db_name)
-         self._unset_pg_psw_env_var()
-         return base64.encodestring(data)
 -        logger = netsvc.Logger()
+         try:
+             self._set_pg_psw_env_var()
+             cmd = ['pg_dump', '--format=c', '--no-owner']
+             if tools.config['db_user']:
+                 cmd.append('--username=' + tools.config['db_user'])
+             if tools.config['db_host']:
+                 cmd.append('--host=' + tools.config['db_host'])
+             if tools.config['db_port']:
+                 cmd.append('--port=' + str(tools.config['db_port']))
+             cmd.append(db_name)
+     
+             stdin, stdout = tools.exec_pg_command_pipe(*tuple(cmd))
+             stdin.close()
+             data = stdout.read()
+             res = stdout.close()
+     
+             if not data or res:
 -                logger.notifyChannel("web-services", netsvc.LOG_ERROR,
++                _logger.error(
+                         'DUMP DB: %s failed! Please verify the configuration of the database password on the server. '\
+                         'It should be provided as a -w <PASSWD> command-line option, or as `db_password` in the '\
+                         'server configuration file.\n %s'  % (db_name, data))
+                 raise Exception, "Couldn't dump database"
 -            logger.notifyChannel("web-services", netsvc.LOG_INFO,
 -                    'DUMP DB successful: %s' % (db_name))
++            _logger.info('DUMP DB successful: %s', db_name)
+     
+             return base64.encodestring(data)
+         finally:
+             self._unset_pg_psw_env_var()
  
      def exp_restore(self, db_name, data):
-         self._set_pg_psw_env_var()
-         if self.exp_db_exist(db_name):
-             _logger.warning('RESTORE DB: %s already exists', db_name)
-             raise Exception, "Database already exists"
-         self._create_empty_database(db_name)
-         cmd = ['pg_restore', '--no-owner']
-         if tools.config['db_user']:
-             cmd.append('--username=' + tools.config['db_user'])
-         if tools.config['db_host']:
-             cmd.append('--host=' + tools.config['db_host'])
-         if tools.config['db_port']:
-             cmd.append('--port=' + str(tools.config['db_port']))
-         cmd.append('--dbname=' + db_name)
-         args2 = tuple(cmd)
-         buf=base64.decodestring(data)
-         if os.name == "nt":
-             tmpfile = (os.environ['TMP'] or 'C:\\') + os.tmpnam()
-             file(tmpfile, 'wb').write(buf)
-             args2=list(args2)
-             args2.append(' ' + tmpfile)
-             args2=tuple(args2)
-         stdin, stdout = tools.exec_pg_command_pipe(*args2)
-         if not os.name == "nt":
-             stdin.write(base64.decodestring(data))
-         stdin.close()
-         res = stdout.close()
-         if res:
-             raise Exception, "Couldn't restore database"
-         _logger.info('RESTORE DB: %s', db_name)
-         self._unset_pg_psw_env_var()
-         return True
 -        logger = netsvc.Logger()
 -
+         try:
+             self._set_pg_psw_env_var()
+             if self.exp_db_exist(db_name):
 -                logger.notifyChannel("web-services", netsvc.LOG_WARNING,
 -                        'RESTORE DB: %s already exists' % (db_name,))
++                _logger.warning('RESTORE DB: %s already exists' % (db_name,))
+                 raise Exception, "Database already exists"
+             self._create_empty_database(db_name)
+             cmd = ['pg_restore', '--no-owner']
+             if tools.config['db_user']:
+                 cmd.append('--username=' + tools.config['db_user'])
+             if tools.config['db_host']:
+                 cmd.append('--host=' + tools.config['db_host'])
+             if tools.config['db_port']:
+                 cmd.append('--port=' + str(tools.config['db_port']))
+             cmd.append('--dbname=' + db_name)
+             args2 = tuple(cmd)
+             buf=base64.decodestring(data)
+             if os.name == "nt":
+                 tmpfile = (os.environ['TMP'] or 'C:\\') + os.tmpnam()
+                 file(tmpfile, 'wb').write(buf)
+                 args2=list(args2)
+                 args2.append(' ' + tmpfile)
+                 args2=tuple(args2)
+             stdin, stdout = tools.exec_pg_command_pipe(*args2)
+             if not os.name == "nt":
+                 stdin.write(base64.decodestring(data))
+             stdin.close()
+             res = stdout.close()
+             if res:
+                 raise Exception, "Couldn't restore database"
 -            logger.notifyChannel("web-services", netsvc.LOG_INFO,
 -                    'RESTORE DB: %s' % (db_name))
++            _logger.info('RESTORE DB: %s' % (db_name))
+             return True
+         finally:
+             self._unset_pg_psw_env_var()
  
      def exp_rename(self, old_name, new_name):
          openerp.modules.registry.RegistryManager.delete(old_name)