summaryrefslogtreecommitdiff
path: root/odoo/cli
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2018-11-16 19:30:20 +0100
committerChristophe Simonis <chs@odoo.com>2018-11-16 19:30:20 +0100
commit6faad524cf5e4db02855cb213277c40aee14c42a (patch)
tree383c984dc1461a03481baa9fbdce8c156ca97e2e /odoo/cli
parent3657dc77c2ddb4275f07d1271b93e7f25e09913a (diff)
parentbc744a1da46efda6f1eb5c341f2fa5df30c9c7ad (diff)
[MERGE] forward port branch 12.0 up to bc744a1da46
Diffstat (limited to 'odoo/cli')
-rw-r--r--odoo/cli/deploy.py39
1 files changed, 14 insertions, 25 deletions
diff --git a/odoo/cli/deploy.py b/odoo/cli/deploy.py
index 6e76cea7d45..29b969135dd 100644
--- a/odoo/cli/deploy.py
+++ b/odoo/cli/deploy.py
@@ -18,40 +18,29 @@ class Deploy(Command):
def deploy_module(self, module_path, url, login, password, db='', force=False):
url = url.rstrip('/')
- csrf_token = self.authenticate(url, login, password, db)
module_file = self.zip_module(module_path)
try:
- return self.upload_module(url, module_file, force=force, csrf_token=csrf_token)
+ return self.login_upload_module(module_file, url, login, password, db, force=force)
finally:
os.remove(module_file)
- def upload_module(self, server, module_file, force=False, csrf_token=None):
+ def login_upload_module(self, module_file, url, login, password, db, force=False):
print("Uploading module file...")
- url = server + '/base_import_module/upload'
-
- post_data = {'force': '1' if force else ''}
- if csrf_token: post_data['csrf_token'] = csrf_token
-
+ endpoint = url + '/base_import_module/login_upload'
+ post_data = {
+ 'login': login,
+ 'password': password,
+ 'db': db,
+ 'force': '1' if force else '',
+ }
with open(module_file, 'rb') as f:
- res = self.session.post(url, files={'mod_file': f}, data=post_data)
- res.raise_for_status()
-
- return res.text
+ res = self.session.post(endpoint, files={'mod_file': f}, data=post_data)
- def authenticate(self, server, login, password, db=''):
- print("Authenticating on server '%s' ..." % server)
-
- # Fixate session with a given db if any
- self.session.get(server + '/web/login', params=dict(db=db))
-
- args = dict(login=login, password=password, db=db)
- res = self.session.post(server + '/base_import_module/login', args)
if res.status_code == 404:
- raise Exception("The server '%s' does not have the 'base_import_module' installed." % server)
- elif res.status_code != 200:
- raise Exception(res.text)
-
- return res.headers.get('x-csrf-token')
+ raise Exception(
+ "The server '%s' does not have the 'base_import_module' installed or is not up-to-date." % url)
+ res.raise_for_status()
+ return res.text
def zip_module(self, path):
path = os.path.abspath(path)