Change-Id: I7fac1e4f219526b9ac7a4e28f1be1b456d365b5d
Signed-off-by: bravof <fbravo@whitestack.com>
# contact: bdiaz@whitestack.com or glavado@whitestack.com
##
# contact: bdiaz@whitestack.com or glavado@whitestack.com
##
-LABEL authors="Benjamín Díaz"
+LABEL authors="Benjamín Díaz, Fabián Bravo"
RUN apt-get --yes update \
&& apt-get --yes install python3 python3-pip libmysqlclient-dev git mysql-client \
RUN apt-get --yes update \
&& apt-get --yes install python3 python3-pip libmysqlclient-dev git mysql-client \
ENV OSMPOL_GLOBAL_LOGLEVEL INFO
ENV OSMPOL_GLOBAL_LOGLEVEL INFO
-HEALTHCHECK --interval=5s --timeout=2s --retries=12 \
+HEALTHCHECK --interval=10s --timeout=5s --retries=10 --start-period=30s \
CMD osm-pol-healthcheck || exit 1
CMD /bin/bash /policy_module/docker/scripts/start.sh
\ No newline at end of file
CMD osm-pol-healthcheck || exit 1
CMD /bin/bash /policy_module/docker/scripts/start.sh
\ No newline at end of file
import asyncio
import logging
import sys
import asyncio
import logging
import sys
from osm_policy_module.core.agent import PolicyModuleAgent
from osm_policy_module.core.config import Config
from osm_policy_module.core.agent import PolicyModuleAgent
from osm_policy_module.core.config import Config
+ # Cleanup old temp health file
+ if os.path.exists('/tmp/osm_pol_agent_health_flag'):
+ os.remove('/tmp/osm_pol_agent_health_flag')
+
parser = argparse.ArgumentParser(prog='osm-policy-agent')
parser.add_argument('--config-file', nargs='?', help='POL configuration file')
args = parser.parse_args()
parser = argparse.ArgumentParser(prog='osm-policy-agent')
parser.add_argument('--config-file', nargs='?', help='POL configuration file')
args = parser.parse_args()
import logging
import subprocess
import sys
import logging
import subprocess
import sys
log = logging.getLogger(__name__)
log = logging.getLogger(__name__)
if not _contains_process(processes_running, p):
log.error("Process %s not running!" % p)
return False
if not _contains_process(processes_running, p):
log.error("Process %s not running!" % p)
return False
+
+ # Check if process is running properly (listening to kafka bus)
+ if os.path.exists('/tmp/osm_pol_agent_health_flag'):
+ return True
+ else:
+ return False
if __name__ == '__main__':
if __name__ == '__main__':
##
import asyncio
import logging
##
import asyncio
import logging
+from pathlib import Path
+import os
self.loop.run_until_complete(self.start())
async def start(self):
self.loop.run_until_complete(self.start())
async def start(self):
+ Path('/tmp/osm_pol_agent_health_flag').touch()
topics = [
"ns",
"alarm_response"
]
await self.msg_bus.aioread(topics, self._process_msg)
log.critical("Exiting...")
topics = [
"ns",
"alarm_response"
]
await self.msg_bus.aioread(topics, self._process_msg)
log.critical("Exiting...")
+ if os.path.exists('/tmp/osm_pol_agent_health_flag'):
+ os.remove('/tmp/osm_pol_agent_health_flag')
async def _process_msg(self, topic, key, msg):
async def _process_msg(self, topic, key, msg):
+ Path('/tmp/osm_pol_agent_health_flag').touch()
log.debug("_process_msg topic=%s key=%s msg=%s", topic, key, msg)
try:
if key in ALLOWED_KAFKA_KEYS:
log.debug("_process_msg topic=%s key=%s msg=%s", topic, key, msg)
try:
if key in ALLOWED_KAFKA_KEYS: