Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
6 Trả lời
8438 Lượt xem

Hello, I have an Odoo server on odoo.sh and want to execute some pieces of code only when running there. Is there a way I can check, on a python method, if the server is running on production, locally, stagging, etc?

Thank you!

Ảnh đại diện
Huỷ bỏ

May i know ,what is your purpose for doing this ?

Tác giả

I my server I have, for example a method that makes a request to updates the invontory of our ecommerce. Something like:

def sync_inventory(self):

stock = function_that_get_the_current_stock()

update_ecommerce_stock(stock)

What I need I a way of doing something like:

def sync_inventory(self):

stock = function_that_get_the_current_stock()

if verify_if_server_is_on_production():

update_ecommerce_stock(stock)

Was I clear?

Tác giả

Sorry about the bad indentation... I couln't tab and the spaces I input didn't work...

Câu trả lời hay nhất

Following workround might be helpful to check if is "production" or "local":

def _check_environment_is_production(self):
web_base_url = self.env['ir.config_parameter'].sudo().get_param('web.base.url')
localhost_names = ['localhost']
return False if not web_base_url or any(x in web_base_url for x in localhost_names) else True
Ảnh đại diện
Huỷ bỏ

Please note that when exporting a backup of production from odoo.sh, for me at least this test on my dev machine still returns TRUE. And unfortunately the parameter ODOO_STAGE suggeted by https://www.odoo.sh/faq doesn't exist by default.

Câu trả lời hay nhất

Try this one

from openerp import api, models

_logger = logging.getLogger(__name__)

import xmlrpclib


class TestConnection(models.Model):

    _name = "test.connection"   


    @api.model

    def check_connection(self):        

        url = url

        db = db_name

        username = db_user

        password = db_password

        try:

            common = xmlrpclib.ServerProxy('{}/xmlrpc/2/common'.format(url))

            common.version()

            ### connection established, do your logic

        except:

            _logger.warning('*********Unable to connect the server ***********')

            ### connection Failed


Ảnh đại diện
Huỷ bỏ
Tác giả Câu trả lời hay nhất

Does anyone have an answer for this?

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 1 24
15898
1
thg 7 25
499
0
thg 6 25
2
1
thg 6 23
15944
1
thg 12 22
6005