aboutsummaryrefslogtreecommitdiffstats
path: root/bin/run.py
diff options
context:
space:
mode:
Diffstat (limited to 'bin/run.py')
-rwxr-xr-xbin/run.py66
1 files changed, 66 insertions, 0 deletions
diff --git a/bin/run.py b/bin/run.py
new file mode 100755
index 0000000..55bb683
--- /dev/null
+++ b/bin/run.py
@@ -0,0 +1,66 @@
+#!/usr/bin/env python3
+
+# ============LICENSE_START=======================================================
+# Copyright (c) 2017-2018 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+#
+# ECOMP is a trademark and service mark of AT&T Intellectual Property.
+
+import sys
+import yaml
+import multiprocessing
+import logging
+import subprocess
+from miss_htbt_service import get_logger
+
+#Checks heartbeat by calling worker thread
+def checkhtbt(mr_url, misshtbt,intvl,intopic,outtopic):
+ print('Doing some work',mr_url, misshtbt,intvl,intopic,outtopic)
+ subprocess.call(["/usr/bin/python","./miss_htbt_service/htbtworker.py" , mr_url , str(misshtbt) , str(intvl) , intopic , outtopic])
+ sys.stdout.flush()
+ return
+
+_logger = get_logger(__name__)
+
+#main functon which reads yaml config and invokes heartbeat
+#monitoring
+if __name__ == '__main__':
+ try:
+ print("Heartbeat Microservice ...")
+ multiprocessing.log_to_stderr()
+ logger = multiprocessing.get_logger()
+ logger.setLevel(logging.INFO)
+ with open("./miss_htbt_service/config/config.yaml", 'r') as ymlfile:
+ cfg = yaml.load(ymlfile)
+ # Put some initial values into the queue
+ for section in cfg:
+ print(section)
+ #print(cfg['global'])
+ #print(cfg['global']['message_router_url'])
+ jobs = []
+ for vnf in (cfg['vnfs']):
+ print(cfg['vnfs'][vnf])
+ #print(cfg['vnfs'][vnf][0])
+ #print(cfg['vnfs'][vnf][1])
+ #print(cfg['vnfs'][vnf][2])
+ #Start Heartbeat monitoring process on VNFs configured
+ p = multiprocessing.Process(target=checkhtbt, args=(cfg['global']['message_router_url'],cfg['vnfs'][vnf][0],cfg['vnfs'][vnf][1],cfg['vnfs'][vnf][2],cfg['vnfs'][vnf][3]))
+ jobs.append(p)
+ p.start()
+ for j in jobs:
+ j.join()
+ print('%s.exitcode = %s' % (j.name, j.exitcode))
+ except Exception as e:
+ _logger.error("Fatal error. Could not start missing heartbeat service due to: {0}".format(e))