56 lines
2.1 KiB
Python
56 lines
2.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
import argparse
|
|
import common
|
|
|
|
|
|
def str2bool(v):
|
|
return v.lower() in ('yes', 'true', '1')
|
|
|
|
|
|
def main():
|
|
""" Main function with argument parsing """
|
|
parser = argparse.ArgumentParser(description='Odoo database creation '
|
|
'according to their names')
|
|
parser = common.parser(parser)
|
|
parser.add_argument('-a', '--action', type=str, default='create',
|
|
help='action for the database,' +
|
|
'default to create (others are drop, duplicate)')
|
|
parser.add_argument('-d', '--database', type=str, required=True,
|
|
help='the targetted database')
|
|
parser.add_argument('-dn', '--duplicate-name', type=str,
|
|
help=('name for duplicated database (optional : '
|
|
'name_copy otherwise'))
|
|
parser.add_argument('-pw', '--password', type=str, required=True,
|
|
help='the odoo superadmin password')
|
|
parser.add_argument('-dm', '--demo', type=str, default='False',
|
|
help='demonstration data')
|
|
parser.add_argument('-l', '--lang', type=str, default='fr_FR',
|
|
help='default language')
|
|
parser.add_argument('-dbpw', '--database_password', type=str, default='admin',
|
|
help='the database admin password, default to admin')
|
|
|
|
args = parser.parse_args()
|
|
# Connection
|
|
odoo = common.connection(args)
|
|
|
|
# Databases actions
|
|
dblist = odoo.db.list()
|
|
if args.action == 'create':
|
|
if args.database in dblist:
|
|
print 'database already exists'
|
|
else:
|
|
odoo.db.create(args.password, args.database, str2bool(args.demo),
|
|
args.lang, args.database_password)
|
|
else:
|
|
if args.database not in dblist:
|
|
print 'database not found'
|
|
elif args.action == 'drop':
|
|
odoo.db.drop(args.password, args.database)
|
|
elif args.action == 'duplicate':
|
|
name = args.duplicate_name or args.database + '_copy'
|
|
odoo.db.duplicate(args.password, args.database, name)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|