Exemple #1
0
 def drop(self, master_pwd, name):
     try:
         dispatch_rpc('db', 'drop', [master_pwd, name])
         request._cr = None  # dropping a database leads to an unusable cursor
         return http.local_redirect('/web/v2/manager')
     except Exception as e:
         error = "Database deletion error: %s" % (str(e) or repr(e))
         return self._render_template(error=error)
Exemple #2
0
 def duplicate(self, master_pwd, name, new_name):
     try:
         dispatch_rpc('db', 'duplicate_database',
                      [master_pwd, name, new_name])
         return http.local_redirect('/web/database/manager')
     except Exception, e:
         error = "Database duplication error: %s" % e
         return self._render_template(error=error)
Exemple #3
0
 def delete(self):
     master_pwd = odoo.tools.config['admin_passwd']
     name = self.name
     try:
         http.dispatch_rpc('db', 'drop', [master_pwd, name])
         self.write({'state': 'init'})
     except Exception, e:
         error = "Database deletion error: %s" % str(e) or repr(e)
Exemple #4
0
 def change_password(self, master_pwd, master_pwd_new):
     try:
         dispatch_rpc('db', 'change_admin_password',
                      [master_pwd, master_pwd_new])
         return http.local_redirect('/web/v2/manager')
     except Exception as e:
         error = "Master password update error: %s" % (str(e) or repr(e))
         return self._render_template(error=error)
Exemple #5
0
 def database_create(self, database_name, admin_login, admin_password, master_password="******", lang="en_US", **kw):
     if not re.match(DBNAME_PATTERN, database_name):
         raise exceptions.BadRequest(_('Invalid database name.'))
     http.dispatch_rpc('db', 'create_database', [
         master_password, database_name,
         bool(kw.get('demo')), lang,
         admin_password, admin_login,
         kw.get('country_code') or False])
     return Response(json.dumps(True), content_type='application/json;charset=utf-8', status=200)
Exemple #6
0
 def restore(self, master_pwd, backup_file, name, copy=False):
     try:
         data = base64.b64encode(backup_file.read())
         dispatch_rpc('db', 'restore',
                      [master_pwd, name, data,
                       str2bool(copy)])
         return http.local_redirect('/web/database/manager')
     except Exception, e:
         error = "Database restore error: %s" % e
         return self._render_template(error=error)
Exemple #7
0
 def duplicate(self, master_pwd, name, new_name):
     try:
         if not re.match(DBNAME_PATTERN, new_name):
             raise Exception(
                 _('Invalid database name. Only alphanumerical characters, underscore, hyphen and dot are allowed.'
                   ))
         dispatch_rpc('db', 'duplicate_database',
                      [master_pwd, name, new_name])
         return http.local_redirect('/web/v2/manager')
     except Exception as e:
         error = "Database duplication error: %s" % (str(e) or repr(e))
         return self._render_template(error=error)
Exemple #8
0
 def database_duplicate(self,
                        database_old,
                        database_new,
                        master_password="******",
                        **kw):
     if not re.match(DBNAME_PATTERN, database_new):
         raise exceptions.BadRequest(_('Invalid database name.'))
     http.dispatch_rpc('db', 'duplicate_database',
                       [master_password, database_old, database_new])
     return Response(json.dumps(True),
                     content_type='application/json;charset=utf-8',
                     status=200)
Exemple #9
0
 def create(self, master_pwd, name, lang, password, **post):
     try:
         # country code could be = "False" which is actually True in python
         country_code = post.get('country_code') or False
         dispatch_rpc('db', 'create_database', [
             master_pwd, name,
             bool(post.get('demo')), lang, password, post['login'],
             country_code
         ])
         request.session.authenticate(name, post['login'], password)
         return http.local_redirect('/web/')
     except Exception, e:
         error = "Database creation error: %s" % e
Exemple #10
0
 def auth(self):
     master_pwd = odoo.tools.config['admin_passwd']
     name, demo, lang, password, login = self.name, self.demo, 'en_US', SUPERPWD, SUPERLOGIN
     country_code = self.country.code or False
     try:
         # creating database
         http.dispatch_rpc('db', 'create_database', [
             master_pwd, name,
             bool(demo), lang, password, login, country_code
         ])
         # uploading users in database
         self.update_usr()
         # Assign module to database
         self.update_mod()
         self.write({'state': 'live'})
     except Exception, e:
         error = "Database creation error: %s" % str(e) or repr(e)
Exemple #11
0
 def create(self, master_pwd, name, lang, password, **post):
     try:
         if not re.match(DBNAME_PATTERN, name):
             raise Exception(
                 _('Invalid database name. Only alphanumerical characters, underscore, hyphen and dot are allowed.'
                   ))
         # country code could be = "False" which is actually True in python
         country_code = post.get('country_code') or False
         dispatch_rpc('db', 'create_database', [
             master_pwd, name,
             bool(post.get('demo')), lang, password, post['login'],
             country_code
         ])
         request.session.authenticate(name, post['login'], password)
         return http.local_redirect('/web/')
     except Exception as e:
         error = "Database creation error: %s" % (str(e) or repr(e))
     return self._render_template(error=error)
 def test_exp_database_rename_clone_delete(self):
     database = common.get_db_name()
     dispatch_rpc('db', 'create_database', [
         MASTER_PASSWORD, "muk_dms_file_create_db_test", False, "en",
         "admin", "admin"
     ])
     self.assertTrue('muk_dms_file_create_db_test' in db_list())
     dispatch_rpc('db', 'duplicate_database', [
         MASTER_PASSWORD, 'muk_dms_file_create_db_test',
         'muk_dms_file_duplicate_db_test'
     ])
     self.assertTrue('muk_dms_file_duplicate_db_test' in db_list())
     dispatch_rpc('db', 'drop',
                  [MASTER_PASSWORD, 'muk_dms_file_duplicate_db_test'])
     dispatch_rpc('db', 'drop',
                  [MASTER_PASSWORD, 'muk_dms_file_create_db_test'])
     self.assertTrue('muk_dms_file_create_db_test' not in db_list())
     self.assertTrue('muk_dms_file_duplicate_db_test' not in db_list())
 def test_exp_database_backup_restore(self):
     dispatch_rpc('db', 'create_database', [
         MASTER_PASSWORD, "muk_dms_file_create_db_test", False, "en",
         "admin", "admin"
     ])
     self.assertTrue('muk_dms_file_create_db_test' in db_list())
     dump_stream = dump_db("muk_dms_file_create_db_test", None, 'zip')
     with tempfile.NamedTemporaryFile(delete=False) as data_file:
         data_file.write(dump_stream.read())
     restore_db('muk_dms_file_restore_db_test', data_file.name, True)
     self.assertTrue('muk_dms_file_restore_db_test' in db_list())
     dispatch_rpc('db', 'drop',
                  [MASTER_PASSWORD, 'muk_dms_file_restore_db_test'])
     dispatch_rpc('db', 'drop',
                  [MASTER_PASSWORD, 'muk_dms_file_create_db_test'])
     self.assertTrue('muk_dms_file_create_db_test' not in db_list())
     self.assertTrue('muk_dms_file_restore_db_test' not in db_list())
Exemple #14
0
 def jsonrpc(self, service, method, args):
     """ Method used by client APIs to contact OpenERP. """
     return dispatch_rpc(service, method, args)
Exemple #15
0
 def _xmlrpc(self, service):
     """Common method to handle an XML-RPC request."""
     data = request.httprequest.get_data()
     params, method = loads(data)
     result = dispatch_rpc(service, method, params)
     return dumps((result, ), methodresponse=1, allow_none=False)
Exemple #16
0
 def change_password(self, password_new, password_old="admin", **kw):
     http.dispatch_rpc('db', 'change_admin_password',
                       [password_old, password_new])
     return Response(json.dumps(True),
                     content_type='application/json;charset=utf-8',
                     status=200)
Exemple #17
0
 def database_drop(self, database_name, master_password="******", **kw):
     http.dispatch_rpc('db', 'drop', [master_password, database_name])
     request._cr = None
     return Response(json.dumps(True),
                     content_type='application/json;charset=utf-8',
                     status=200)
Exemple #18
0
 def jsonrpc(self, service, method, args):
     """ Method used by client APIs to contact OpenERP. """
     return dispatch_rpc(service, method, args)
Exemple #19
0
 def _xmlrpc(self, service):
     """Common method to handle an XML-RPC request."""
     data = request.httprequest.get_data()
     params, method = loads(data)
     result = dispatch_rpc(service, method, params)
     return dumps((result,), methodresponse=1, allow_none=False)