diff --git a/monitoring_status/README.rst b/monitoring_status/README.rst new file mode 100644 index 0000000..b939c7a --- /dev/null +++ b/monitoring_status/README.rst @@ -0,0 +1,9 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :alt: License + +Monitoring: Status +================== + +Provides a HTTP route that returns health status of the instance. + +The url to call is ``http://server/monitoring/status`` diff --git a/monitoring_status/__init__.py b/monitoring_status/__init__.py new file mode 100644 index 0000000..153a9e3 --- /dev/null +++ b/monitoring_status/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +from . import controllers diff --git a/monitoring_status/__openerp__.py b/monitoring_status/__openerp__.py new file mode 100644 index 0000000..0e024c2 --- /dev/null +++ b/monitoring_status/__openerp__.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# Copyright 2016 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + + +{'name': 'Monitoring: Status', + 'version': '9.0.1.0.0', + 'author': 'Camptocamp', + 'license': 'AGPL-3', + 'category': 'category', + 'depends': ['base', 'web'], + 'website': 'http://www.camptocamp.com', + 'data': [], + 'installable': True, + } diff --git a/monitoring_status/controllers/__init__.py b/monitoring_status/controllers/__init__.py new file mode 100644 index 0000000..12a7e52 --- /dev/null +++ b/monitoring_status/controllers/__init__.py @@ -0,0 +1 @@ +from . import main diff --git a/monitoring_status/controllers/main.py b/monitoring_status/controllers/main.py new file mode 100644 index 0000000..246e066 --- /dev/null +++ b/monitoring_status/controllers/main.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Copyright 2016 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +import json + +import werkzeug + +from openerp import http +from openerp.addons.web.controllers.main import ensure_db + + +class Monitoring(http.Controller): + + @http.route('/monitoring/status', type='http', auth='none') + def status(self): + ensure_db() + # TODO: add 'sub-systems' status and infos: + # queue job, cron, database, ... + headers = {'Content-Type': 'application/json'} + info = {'status': 1} + return werkzeug.wrappers.Response(json.dumps(info), headers=headers)