[MIG] server_environment from 11 to 12
This commit is contained in:
parent
c7a09c0224
commit
8e5b7e91b6
|
|
@ -1,33 +1,17 @@
|
|||
##############################################################################
|
||||
#
|
||||
# Adapted by Nicolas Bessi. Copyright Camptocamp SA
|
||||
# Based on Florent Xicluna original code. Copyright Wingo SA
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
# Copyright Wingo SA
|
||||
# Copyright 2018 Camptocamp (https://www.camptocamp.com).
|
||||
# License GPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
{
|
||||
"name": "server configuration environment files",
|
||||
"version": "11.0.2.0.0",
|
||||
"version": "12.0.2.0.0",
|
||||
"depends": [
|
||||
"base",
|
||||
"base_sparse_field",
|
||||
],
|
||||
"author": "Camptocamp,Odoo Community Association (OCA)",
|
||||
"summary": "move some configurations out of the database",
|
||||
"website": "http://odoo-community.org/",
|
||||
"website": "http://github.com/OCA/server-env",
|
||||
"license": "GPL-3 or any later version",
|
||||
"category": "Tools",
|
||||
"data": [
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# Copyright 2018 Camptocamp (https://www.camptocamp.com).
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
# License GPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
import logging
|
||||
|
||||
|
|
@ -97,6 +97,7 @@ class ServerEnvMixin(models.AbstractModel):
|
|||
|
||||
"""
|
||||
_name = 'server.env.mixin'
|
||||
_description = 'Mixin to add server environment in existing models'
|
||||
|
||||
server_env_defaults = fields.Serialized()
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,89 @@
|
|||
To configure this module, you need to edit the main configuration file
|
||||
of your instance, and add a directive called ``running_env``. Commonly
|
||||
used values are 'dev', 'test', 'production'::
|
||||
|
||||
[options]
|
||||
running_env=dev
|
||||
|
||||
Values associated to keys containing 'passw' are only displayed in the 'dev'
|
||||
environment.
|
||||
|
||||
You have several possibilities to set configuration values:
|
||||
|
||||
server_environment_files
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
You can edit the settings you need in the ``server_environment_files`` addon. The
|
||||
``server_environment_files_sample`` can be used as an example:
|
||||
|
||||
* values common to all / most environments can be stored in the
|
||||
``default/`` directory using the .ini file syntax;
|
||||
* each environment you need to define is stored in its own directory
|
||||
and can override or extend default values;
|
||||
* you can override or extend values in the main configuration
|
||||
file of your instance;
|
||||
|
||||
Environment variable
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
You can define configuration in the environment variable ``SERVER_ENV_CONFIG``
|
||||
and/or ``SERVER_ENV_CONFIG_SECRET``. The 2 variables are handled the exact same
|
||||
way, this is only a convenience for the deployment where you can isolate the
|
||||
secrets in a different, encrypted, file. They are multi-line environment variables
|
||||
in the same configparser format than the files.
|
||||
If you used options in ``server_environment_files``, the options set in the
|
||||
environment variable override them.
|
||||
|
||||
The options in the environment variable are not dependent of ``running_env``,
|
||||
the content of the variable must be set accordingly to the running environment.
|
||||
|
||||
Example of setup:
|
||||
|
||||
A public file, containing that will contain public variables::
|
||||
|
||||
# These variables are not odoo standard variables,
|
||||
# they are there to represent what your file could look like
|
||||
export WORKERS='8'
|
||||
export MAX_CRON_THREADS='1'
|
||||
export LOG_LEVEL=info
|
||||
export LOG_HANDLER=":INFO"
|
||||
export DB_MAXCONN=5
|
||||
|
||||
# server environment options
|
||||
export SERVER_ENV_CONFIG="
|
||||
[storage_backend.my-sftp]
|
||||
sftp_server=10.10.10.10
|
||||
sftp_login=foo
|
||||
sftp_port=22200
|
||||
directory_path=Odoo
|
||||
"
|
||||
|
||||
A second file which is encrypted and contains secrets::
|
||||
|
||||
# This variable is not an odoo standard variable,
|
||||
# it is there to represent what your file could look like
|
||||
export DB_PASSWORD='xxxxxxxxx'
|
||||
# server environment options
|
||||
export SERVER_ENV_CONFIG_SECRET="
|
||||
[storage_backend.my-sftp]
|
||||
sftp_password=xxxxxxxxx
|
||||
"
|
||||
|
||||
Default values
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
When using the ``server.env.mixin`` mixin, for each env-computed field, a
|
||||
companion field ``<field>_env_default`` is created. This field is not
|
||||
environment-dependent. It's a fallback value used when no key is set in
|
||||
configuration files / environment variable.
|
||||
|
||||
When the default field is used, the field is made editable on Odoo.
|
||||
|
||||
Note: empty environment keys always take precedence over default fields
|
||||
|
||||
|
||||
Keychain integration
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Read the documentation of the class `models/server_env_mixin.py
|
||||
<models/server_env_mixin.py>`_.
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
* Florent Xicluna (Wingo) <florent.xicluna@gmail.com>
|
||||
* Nicolas Bessi <nicolas.bessi@camptocamp.com>
|
||||
* Alexandre Fayolle <alexandre.fayolle@camptocamp.com>
|
||||
* Daniel Reis <dgreis@sapo.pt>
|
||||
* Holger Brunn <hbrunn@therp.nl>
|
||||
* Leonardo Pistone <leonardo.pistone@camptocamp.com>
|
||||
* Adrien Peiffer <adrien.peiffer@acsone.com>
|
||||
* Thierry Ducrest <thierry.ducrest@camptocamp.com>
|
||||
* Guewen Baconnier <guewen.baconnier@camptocamp.com>
|
||||
* Thomas Binfeld <thomas.binsfeld@acsone.eu>
|
||||
* Stéphane Bidoul <stefane.bidoul@acsone.com>
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
This module provides a way to define an environment in the main Odoo
|
||||
configuration file and to read some configurations from files
|
||||
depending on the configured environment: you define the environment in
|
||||
the main configuration file, and the values for the various possible
|
||||
environments are stored in the ``server_environment_files`` companion
|
||||
module.
|
||||
|
||||
The ``server_environment_files`` module is optional, the values can be set using
|
||||
an environment variable with a fallback on default values in the database.
|
||||
|
||||
The configuration read from the files are visible under the Configuration
|
||||
menu. If you are not in the 'dev' environment you will not be able to
|
||||
see the values contained in the defined secret keys
|
||||
(by default : '*passw*', '*key*', '*secret*' and '*token*').
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
By itself, this module does little. See for instance the
|
||||
``mail_environment`` addon which depends on this one to allow configuring
|
||||
the incoming and outgoing mail servers depending on the environment.
|
||||
|
||||
You can store your configuration values in a companion module called
|
||||
``server_environment_files``. You can copy and customize the provided
|
||||
``server_environment_files_sample`` module for this purpose. Alternatively, you
|
||||
can provide them in environment variables ``SERVER_ENV_CONFIG`` and
|
||||
``SERVER_ENV_CONFIG_SECRET``.
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
* it is not possible to set the environment from the command line. A
|
||||
configuration file must be used.
|
||||
* the module does not allow to set low level attributes such as database server, etc.
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
You can include a mixin in your model and configure the env-computed fields
|
||||
by an override of ``_server_env_fields``.
|
||||
|
||||
::
|
||||
|
||||
class StorageBackend(models.Model):
|
||||
_name = "storage.backend"
|
||||
_inherit = ["storage.backend", "server.env.mixin"]
|
||||
|
||||
@property
|
||||
def _server_env_fields(self):
|
||||
return {"directory_path": {}}
|
||||
|
||||
Read the documentation of the class and methods in `models/server_env_mixin.py
|
||||
<models/server_env_mixin.py>`__.
|
||||
|
|
@ -153,6 +153,7 @@ class _Defaults(dict):
|
|||
class ServerConfiguration(models.TransientModel):
|
||||
"""Display server configuration."""
|
||||
_name = 'server.config'
|
||||
_description = 'Display server configuration'
|
||||
_conf_defaults = _Defaults()
|
||||
|
||||
@classmethod
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ def get_server_environment():
|
|||
try:
|
||||
rev_id = 'bzr: %s' % _get_output('bzr revision-info')
|
||||
except Exception:
|
||||
rev_id = 'Can not retrive revison from git or bzr'
|
||||
rev_id = 'Can not retrieve revison from git or bzr'
|
||||
|
||||
os_lang = '.'.join([x for x in locale.getdefaultlocale() if x])
|
||||
if not os_lang:
|
||||
|
|
|
|||
|
|
@ -1,21 +1,2 @@
|
|||
##############################################################################
|
||||
#
|
||||
# Author: Nicolas Bessi
|
||||
# Copyright 2014 Camptocamp SA
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
from . import test_server_environment
|
||||
from . import test_environment_variable
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# Copyright 2018 Camptocamp (https://www.camptocamp.com).
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
# License GPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
import os
|
||||
from contextlib import contextmanager
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# Copyright 2018 Camptocamp (https://www.camptocamp.com).
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
# License GPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
|
||||
from odoo.addons.server_environment import server_env
|
||||
|
|
|
|||
|
|
@ -1,22 +1,5 @@
|
|||
##############################################################################
|
||||
#
|
||||
# Author: Nicolas Bessi
|
||||
# Copyright 2014 Camptocamp SA
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
# Copyright 2018 Camptocamp (https://www.camptocamp.com).
|
||||
# License GPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
from odoo.addons.server_environment import server_env
|
||||
from . import common
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue