[IMP] Module 'nsca_client' - External dependency on '/usr/sbin/nsca_send' removed, replaced by a check at the runtime
parent
01e758e2ae
commit
3e84ec6134
|
@ -11,11 +11,6 @@
|
||||||
"license": "AGPL-3",
|
"license": "AGPL-3",
|
||||||
"application": False,
|
"application": False,
|
||||||
"installable": True,
|
"installable": True,
|
||||||
"external_dependencies": {
|
|
||||||
"bin": [
|
|
||||||
'/usr/sbin/send_nsca',
|
|
||||||
],
|
|
||||||
},
|
|
||||||
"data": [
|
"data": [
|
||||||
"security/ir.model.access.csv",
|
"security/ir.model.access.csv",
|
||||||
"data/ir_config_parameter.xml",
|
"data/ir_config_parameter.xml",
|
||||||
|
|
|
@ -3,15 +3,23 @@
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
import os
|
||||||
import shlex
|
import shlex
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
from openerp import _, api, fields, models
|
from openerp import _, api, fields, models
|
||||||
|
from openerp.exceptions import Warning as UserError
|
||||||
|
|
||||||
from openerp.addons.base.ir.ir_cron import str2tuple
|
from openerp.addons.base.ir.ir_cron import str2tuple
|
||||||
|
|
||||||
_logger = logging.getLogger(__name__)
|
_logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
SEND_NSCA_BIN = '/usr/sbin/send_nsca'
|
||||||
|
|
||||||
|
|
||||||
|
def is_exe(fpath):
|
||||||
|
return os.path.isfile(fpath) and os.access(fpath, os.X_OK)
|
||||||
|
|
||||||
|
|
||||||
class NscaCheck(models.Model):
|
class NscaCheck(models.Model):
|
||||||
_name = "nsca.check"
|
_name = "nsca.check"
|
||||||
|
@ -73,6 +81,7 @@ class NscaCheck(models.Model):
|
||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
def _cron_check(self, check_id):
|
def _cron_check(self, check_id):
|
||||||
|
self._check_send_nsca_command()
|
||||||
check = self.browse(check_id)
|
check = self.browse(check_id)
|
||||||
rc, message = 3, "Unknown"
|
rc, message = 3, "Unknown"
|
||||||
try:
|
try:
|
||||||
|
@ -128,3 +137,11 @@ class NscaCheck(models.Model):
|
||||||
_logger.info("%s: %s", check_result, stdout.strip())
|
_logger.info("%s: %s", check_result, stdout.strip())
|
||||||
except Exception, exc:
|
except Exception, exc:
|
||||||
_logger.error(exc)
|
_logger.error(exc)
|
||||||
|
|
||||||
|
def _check_send_nsca_command(self):
|
||||||
|
"""Check if the NSCA client is installed."""
|
||||||
|
if not is_exe(SEND_NSCA_BIN):
|
||||||
|
raise UserError(
|
||||||
|
_(u"Command '%s' not found. Please install the NSCA client.\n"
|
||||||
|
u"On Debian/Ubuntu: apt-get install nsca-client") % (
|
||||||
|
SEND_NSCA_BIN))
|
||||||
|
|
Loading…
Reference in New Issue