forked from apikcloud/apik-scaffolding
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathget_apix.py
61 lines (50 loc) · 1.79 KB
/
get_apix.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import odoorpc
import configparser
import os
import requests
import gitlab
import time
import shutil
config = configparser.ConfigParser()
config.read('config.ini')
apix_user = config['apik']['user']
apix_password = config['apik']['password']
apix_url = config['apik']['url']
apix_db = config['apik']['db']
apix_port = config['apik']['port']
apix_protocol = config['apik']['protocol']
apix_timeout = config['apik']['timeout']
client_name = config['client']['name']
print('Connexion sur {}'.format('ApiX'))
apix = odoorpc.ODOO(apix_url, port=apix_port,protocol=apix_protocol,timeout=apix_timeout)
print("Login...")
apix.login(apix_db,apix_user,apix_password)
print("Connecté")
database_obj = apix.env['saas.database']
db_addons_obj = apix.env['saas.addons.database']
print("Recherche de la base {} ...".format(client_name))
database_id = database_obj.search([('name','like',client_name)])
if len(database_id)== 0:
print('Base non trouvée')
print('Liste des bases disponibles :')
database_ids = database_obj.search([])
for database in database_obj.read(database_ids,['name']):
print('{}'.format(database['name']))
else:
print("Base trouvée !")
database = database_obj.browse(database_id)
print("Récupération des custom addons...")
for repo in database.repos:
url = repo.name.url
if repo.name.version.name == "Standard":
repo_branch = database.odoo_version_group_id.major_version
else:
repo_branch = "master"
if repo.name.identification.name == "Aucune":
repo_url = url
else:
user = repo.name.identification.identifiant
password = repo.name.identification.password
repo_url = "{}://{}:{}@{}".format(url.split(':')[0],user,password,url.split(':')[1][2:])
repo_name = repo.name.name
os.system('git clone {} repositories/{} -b {}'.format(repo_url,repo_name,repo_branch))