X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_policy_module%2Fcmd%2Fpolicy_module_healthcheck.py;h=23fb6a735d46c7c10cd734ecf50215456260dfcf;hb=cb5642a2af495af4319beb1dba2d417b78f3200a;hp=e10776f13873d1856c0770ac0e59dd1876758d0b;hpb=6d8a34f0584eac025fa0d56a49ba965432da0b4c;p=osm%2FPOL.git diff --git a/osm_policy_module/cmd/policy_module_healthcheck.py b/osm_policy_module/cmd/policy_module_healthcheck.py index e10776f..23fb6a7 100644 --- a/osm_policy_module/cmd/policy_module_healthcheck.py +++ b/osm_policy_module/cmd/policy_module_healthcheck.py @@ -20,28 +20,22 @@ # contact: bdiaz@whitestack.com or glavado@whitestack.com ## import argparse -import asyncio import logging import subprocess import sys - -from aiokafka import AIOKafkaConsumer - -from osm_policy_module.core.config import Config +import os log = logging.getLogger(__name__) def main(): - parser = argparse.ArgumentParser(prog='osm-policy-healthcheck') - parser.add_argument('--config-file', nargs='?', help='POL configuration file') - args = parser.parse_args() - cfg = Config(args.config_file) + parser = argparse.ArgumentParser(prog="osm-policy-healthcheck") + parser.add_argument("--config-file", nargs="?", help="POL configuration file") + # args = parser.parse_args() + # cfg = Config(args.config_file) if not _processes_running(): sys.exit(1) - if not _is_kafka_ok(cfg.get('message', 'host'), cfg.get('message', 'port')): - sys.exit(1) sys.exit(0) @@ -52,31 +46,20 @@ def _processes_running(): return True return False - processes_to_check = ['osm-policy-agent'] - ps = subprocess.Popen(['ps', 'aux'], stdout=subprocess.PIPE).communicate()[0] - processes_running = ps.decode().split('\n') + processes_to_check = ["osm-policy-agent"] + ps = subprocess.Popen(["ps", "aux"], stdout=subprocess.PIPE).communicate()[0] + processes_running = ps.decode().split("\n") for p in processes_to_check: if not _contains_process(processes_running, p): + log.error("Process %s not running!" % p) return False - return True - - -def _is_kafka_ok(host, port): - async def _test_kafka(loop): - consumer = AIOKafkaConsumer( - 'healthcheck', - loop=loop, bootstrap_servers='{}:{}'.format(host, port)) - await consumer.start() - await consumer.stop() - try: - loop = asyncio.get_event_loop() - loop.run_until_complete(_test_kafka(loop)) + # Check if process is running properly (listening to kafka bus) + if os.path.exists("/tmp/osm_pol_agent_health_flag"): return True - except Exception: - log.exception("POL can not connect to Kafka") + else: return False -if __name__ == '__main__': +if __name__ == "__main__": main()