def exp_dump(self, db_name): logger = logging.getLogger('openerp.service.web_services.db.dump') with self._set_pg_password_in_environment(): cmd = ['pg_dump', '--format=c', '--no-owner'] if tools.config['db_user']: cmd.append('--username='******'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.error( 'DUMP DB: %s failed! Please verify the configuration of the database password on the server. ' 'You may need to create a .pgpass file for authentication, or specify `db_password` in the ' 'server configuration file.\n %s', db_name, data) raise Exception, "Couldn't dump database" logger.info('DUMP DB successful: %s', db_name) return base64.encodestring(data)
def exp_dump(self, db_name): try: self._set_pg_psw_env_var() cmd = ['pg_dump', '--format=c', '--no-owner'] if tools.config['db_user']: cmd.append('--username='******'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.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.info('DUMP DB successful: %s', db_name) return base64.encodestring(data) finally: self._unset_pg_psw_env_var()
def _db_pg_dump(self, cr, uid, db_name, db_filename, context=None): _logger.info('auto_backup DUMP DB!') pg_passwd = os.environ.get( 'PGPASSWORD') or tools.config['db_password'] or False data = '' if not pg_passwd: _logger.error( 'DUMP DB: %s failed! Please verify the configuration of the database password on the server. ' 'You may need to create a .pgpass file for authentication, or specify `db_password` in the ' 'server configuration file.\n %s', db_name, data) raise Exception, "Couldn't dump database" os.environ['PGPASSWORD'] = tools.config['db_password'] cmd = ['pg_dump', '--format=c', '--no-owner'] if tools.config['db_user']: cmd.append('--username='******'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('--file=' + db_filename) cmd.append(db_name) stdin, stdout = tools.exec_pg_command_pipe(*tuple(cmd)) stdin.close() data = stdout.read() res = stdout.close() return base64.encodestring(data)
def exp_dump(self, db_name): logger = logging.getLogger("openerp.service.web_services.db.dump") with self._set_pg_password_in_environment(): cmd = ["pg_dump", "--format=c", "--no-owner"] if tools.config["db_user"]: cmd.append("--username="******"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.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.info("DUMP DB successful: %s", db_name) return base64.encodestring(data)
def exp_dump(self, db_name): logger = netsvc.Logger() self._set_pg_psw_env_var() cmd = ['pg_dump', '--format=c', '--no-owner'] if tools.config['db_user']: cmd.append('--username='******'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.notifyChannel("web-services", netsvc.LOG_ERROR, 'DUMP DB: %s failed\n%s' % (db_name, data)) raise Exception, "Couldn't dump database" logger.notifyChannel("web-services", netsvc.LOG_INFO, 'DUMP DB: %s' % (db_name)) self._unset_pg_psw_env_var() return base64.encodestring(data)
def _db_pg_dump(self, cr, uid, db_name, db_filename, context=None): _logger.info('auto_backup DUMP DB!') pg_passwd = os.environ.get('PGPASSWORD') or tools.config['db_password'] or False data = '' if not pg_passwd: _logger.error( 'DUMP DB: %s failed! Please verify the configuration of the database password on the server. ' 'You may need to create a .pgpass file for authentication, or specify `db_password` in the ' 'server configuration file.\n %s', db_name, data) raise Exception, "Couldn't dump database" os.environ['PGPASSWORD'] = tools.config['db_password'] cmd = ['pg_dump', '--format=c', '--no-owner'] if tools.config['db_user']: cmd.append('--username='******'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('--file=' + db_filename) cmd.append(db_name) stdin, stdout = tools.exec_pg_command_pipe(*tuple(cmd)) stdin.close() data = stdout.read() res = stdout.close() return base64.encodestring(data)
def exp_restore(self, db_name, data): logger = netsvc.Logger() 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,)) raise Exception, "Database already exists" self._create_empty_database(db_name) cmd = ['pg_restore', '--no-owner'] if tools.config['db_user']: cmd.append('--username='******'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)) self._unset_pg_psw_env_var() return True
def exp_restore(self, db_name, data): try: 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='******'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)) return True finally: self._unset_pg_psw_env_var()
def exp_restore(self, db_name, data): logger = logging.getLogger('openerp.service.web_services.db.restore') with self._set_pg_password_in_environment(): 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='******'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) return True