İçereği Atla
Menü
Bu soru işaretlendi
6 Cevaplar
8287 Görünümler

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!

Avatar
Vazgeç

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

Üretici

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?

Üretici

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

En İyi Yanı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
Avatar
Vazgeç

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.

En İyi Yanı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


Avatar
Vazgeç
Üretici En İyi Yanıt

Does anyone have an answer for this?

Avatar
Vazgeç
İlgili Gönderiler Cevaplar Görünümler Aktivite
1
Oca 24
15746
1
Tem 25
383
0
Haz 25
2
1
Haz 23
15641
1
Ara 22
5744