12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- from __future__ import unicode_literals
- from django.conf import settings
- from random import randint
- from jinja2 import Environment, PackageLoader, select_autoescape
- import os
- import socket
- import time
- '''
- '''
- def randomize_port():
- ports = settings.ODOO_PORTS_RANGE
- port = 0
- while not check_port(port):
- time.sleep(1)
- port = randint(ports[0], ports[1])
- return port
-
-
- '''
- '''
- def check_port(port=0):
- if port == 0:
- return False
- ok = False
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- try:
- s.bind((settings.DOCKER_NETWORK, port))
- ok = True
- except socket.error:
- ok = False
-
- s.close()
- return ok
- '''
- '''
- def check_name(name=None):
- if not name:
- return False
- full_path = os.path.join(settings.ODOO_ROOT_PATH, name)
- return os.path.exists(full_path)
- '''
- '''
- def create_folders(name=None):
- if not name:
- return False
- folders = settings.ODOO_DEFAULT_FOLDERS
- for folder in folders:
- full_path = os.path.join(settings.ODOO_ROOT_PATH, name, folder)
- os.makedirs(full_path)
- time.sleep(1)
- '''
- '''
- def create_configuration(name=None):
- if not name:
- return False
- conf_path = os.path.join(settings.ODOO_ROOT_PATH, name, 'config')
- if not os.path.exists(conf_path):
- return False
- env = Environment(
- loader=PackageLoader('api', 'templates'),
- autoescape=select_autoescape(['j2'])
- )
- template = env.get_template(settings.ODOO_CONF_FILENAME + '.j2')
- template_rendered = template.stream({
- 'admin_password': settings.ODOO_ADMIN_PASSWORD,
- 'db_name': name,
- 'db_user': settings.ODOO_DB_USER,
- 'db_password': settings.ODOO_DB_PASSWORD
- })
- template_rendered.dump(os.path.join(conf_path, settings.ODOO_CONF_FILENAME + '.conf'))
- return True
|