警告用户服务器正在维护中

OpenERP生产服务器有时需要一些维护:升级一些模块,可能重新启动服务器。

我的问题是,我想有一种方法来阻止普通用户访问服务器。 例如,通过返回“维护中”消息。

什么是最好的解决scheme呢?

如果服务器重新启动,通常您需要某种故障转移IP或至less在应用程序服务器(在这种情况下,OpenERP)前面的caching代理来告诉用户它已closures。 否则,在服务器处于脱机状态时,您只会收到一条返回给客户端的通用浏览器错误消息,如“未find服务器”或类似的消息。

简而言之,最好的方法是在应用程序服务器之前安装另一个“始终”(或独立重新引导的服务器集群)的物理/虚拟服务器,以便始终能够解决域名,如果由于崩溃或重新启动而导致主服务器closures,则可以故障切换到备份服务器。

这不是最好的办法,但它是一个有用的黑客:

编辑服务器的openerp\addons\base\res\res_users.py文件。 在def check(self, db, uid, passwd):开头def check(self, db, uid, passwd):方法add:

  if uid != openerp.SUPERUSER_ID: raise osv.except_osv(_('UNDER MAINTENANCE'), _('This service is temporarily down for maintenance.')) 

在下次重新启动时,服务器将停止接受admin以外的用户。