self.actions[id] = {'clean': False}
+ cmd = ['createdb', '--quiet', '--encoding=unicode']
if tools.config['db_user']:
- res = tools.exec_pg_command('createdb', '--quiet', '--encoding=unicode', '--username='+tools.config['db_user'], db_name)
- else:
- res = tools.exec_pg_command('createdb', '--quiet', '--encoding=unicode', db_name)
+ 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=' + tools.config['db_port'])
+ cmd.append(db_name)
+ res = tools.exec_pg_command(*tuple(cmd))
if not res:
class DBInitialize(object):
def __call__(self, serv, id, db_name, demo, lang):
def drop(self, password, db_name):
security.check_super(password)
pooler.close_db(db_name)
- if tools.config['db_user']:
- res = tools.exec_pg_command('dropdb', '--quiet', '--username='+tools.config['db_user'], db_name)
- else:
- res = tools.exec_pg_command('dropdb', '--quiet', db_name)
logger = netsvc.Logger()
+
+ cmd = ['dropdb', '--quiet']
+ 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=' + tools.config['db_port'])
+ cmd.append(db_name)
+ res = tools.exec_pg_command(*tuple(cmd))
+
if res:
- logger.notifyChannel("web-service", netsvc.LOG_ERROR, 'DROP DB: %s failed' % (db_name,))
+ logger.notifyChannel("web-service", netsvc.LOG_ERROR,
+ 'DROP DB: %s failed' % (db_name,))
raise Exception, "Couldn't drop database"
else:
- logger.notifyChannel("web-services", netsvc.LOG_INFO, 'DROP DB: %s' % (db_name))
+ logger.notifyChannel("web-services", netsvc.LOG_INFO,
+ 'DROP DB: %s' % (db_name))
return True
def dump(self, password, db_name):
security.check_super(password)
+
+ cmd = ['pg_dump', '--format=c']
if tools.config['db_user']:
- args = ('pg_dump', '--format=c', '-U', tools.config['db_user'], db_name)
- else:
- args = ('pg_dump', '--format=c', db_name)
- stdin, stdout = tools.exec_pg_command_pipe(*args)
+ 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=' + 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()
logger = netsvc.Logger()
if res:
- logger.notifyChannel("web-service", netsvc.LOG_ERROR, 'DUMP DB: %s failed\n%s' % (db_name, data))
+ logger.notifyChannel("web-service", 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))
+ logger.notifyChannel("web-services", netsvc.LOG_INFO,
+ 'DUMP DB: %s' % (db_name))
return base64.encodestring(data)
def restore(self, password, db_name, data):
res = True
if self.db_exist(db_name):
raise Exception, "Database already exists"
- else:
- if tools.config['db_user']:
- args = ('createdb', '--quiet', '--encoding=unicode', '--username='+tools.config['db_user'], db_name)
- args2 = ('pg_restore', '-U', tools.config['db_user'], '-d %s' % db_name)
- else:
- args = ('createdb', '--quiet', '--encoding=unicode', db_name)
- args2 = ('pg_restore', '-d %s' % db_name)
- res = tools.exec_pg_command(*args)
- if not res:
+ cmd = ['createdb', '--quiet', '--encoding=unicode']
+ 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=' + tools.config['db_port'])
+ cmd.append(db_name)
+ args = tuple(cmd)
+
+ cmd = ['pg_restore']
+ 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=' + tools.config['db_port'])
+ cmd.append('--dbname=' + db_name)
+ args2 = tuple(cmd)
+
+ res = tools.exec_pg_command(*args)
+ if not res:
buf=base64.decodestring(data)
if os.name == "nt":
tmpfile = (os.environ['TMP'] or 'C:\\') + os.tmpnam()
if res:
raise Exception, "Couldn't restore database"
logger = netsvc.Logger()
- logger.notifyChannel("web-services", netsvc.LOG_INFO, 'RESTORE DB: %s' % (db_name))
+ logger.notifyChannel("web-services", netsvc.LOG_INFO,
+ 'RESTORE DB: %s' % (db_name))
return True
raise Exception, "Couldn't create database"
db_user = tools.config["db_user"]
if not db_user and os.name == 'posix':
import pwd
- db_user = pwd.getpwuid(os.getuid())[0]
+ db_user = pwd.getpwuid(os.getuid())[0]
if not db_user:
cr.execute("select usename from pg_user where usesysid=(select datdba from pg_database where datname=%s)", (tools.config["db_name"],))
res = cr.fetchone()
def change_admin_password(self, old_password, new_password):
security.check_super(old_password)
- tools.config['admin_passwd'] = new_password
+ tools.config['admin_passwd'] = new_password
tools.config.save()
return True