Basic ping test
Change-Id: Ib61ebd3963db46118a0d8f5c4cea0e002f48aa9a
diff --git a/app.py b/app.py
index cb8bedb..c3e3238 100644
--- a/app.py
+++ b/app.py
@@ -3,6 +3,8 @@
SPDX-License-Identifier: LicenseRef-ONF-Member-1.01
"""
import sys
+import re
+from datetime import datetime
from flask import Flask, request
from flask_restful import Resource, Api
@@ -10,24 +12,30 @@
from argparse import ArgumentParser, SUPPRESS
from roc import Roc
+from prom import Prometheus
+from ping import ping
+import device
app = Flask(__name__)
api = Api(app)
-global roc
+devices = {} # dict imsi:device
-class Imsi(Resource):
+
+class ReachableDevices(Resource):
def get(self):
- return roc.get_imsi()
+ global devices
+ return device.get_reachable(devices)
-class Subnet(Resource):
+class UnreachableDevices(Resource):
def get(self):
- return roc.get_subnet()
+ global devices
+ return device.get_unreachable(devices)
-api.add_resource(Imsi, '/imsi')
-api.add_resource(Subnet, '/subnet')
+api.add_resource(ReachableDevices, '/reachable-devices')
+api.add_resource(UnreachableDevices, '/unreachable-devices')
def build_argparser():
@@ -43,6 +51,9 @@
args.add_argument("--password",
help="ROC password",
type=str)
+ args.add_argument("--token",
+ help="Rancher bearer token",
+ type=str)
return parser
@@ -58,7 +69,22 @@
args = build_argparser().parse_args()
roc = Roc(args.user, args.password)
- #roc.dump()
- print(roc.get_imsi())
+ prom = Prometheus(args.token.split(':')[0], args.token.split(':')[1])
+
+ roc.update_devices(devices)
+
+ prom.update_devices(devices)
+
+ for imsi_id, device in devices.items():
+ if device.ip is None:
+ continue
+ if ping(device.ip):
+ device.reachable = True
+ device.last_reachable = datetime.now()
+ log.info("{}/{}/{} - reachable".format(device.imsi_id, device.imsi, device.ip))
+ else:
+ device.reachable = False
+ log.info("{}/{}/{} - unreachable".format(device.imsi_id, device.imsi, device.ip))
+
app.run('0.0.0.0', '3333')