added troub
This commit is contained in:
31
app.py
31
app.py
@ -17,14 +17,41 @@ def load_config():
|
||||
return json.load(f)
|
||||
|
||||
device_status = {}
|
||||
|
||||
def update_status():
|
||||
while True:
|
||||
config = load_config()
|
||||
for device in config['devices']:
|
||||
device_status[device['name']] = ping(device['ip'])
|
||||
current_status = ping(device['ip'])
|
||||
previous_status = device_status.get(device['name'], True)
|
||||
|
||||
if current_status != previous_status:
|
||||
diagnostics = run_diagnostics(device)
|
||||
send_webhook(device, current_status, diagnostics)
|
||||
|
||||
device_status[device['name']] = current_status
|
||||
time.sleep(config['check_interval'])
|
||||
|
||||
def send_webhook(device, status, diagnostics):
|
||||
config = load_config()
|
||||
webhook_data = {
|
||||
"device": device,
|
||||
"status": status,
|
||||
"timestamp": datetime.now().isoformat(),
|
||||
"diagnostics": diagnostics
|
||||
}
|
||||
requests.post(config['webhook_url'], json=webhook_data)
|
||||
|
||||
def run_diagnostics(device):
|
||||
diagnostics = {}
|
||||
if device['connection_type'] == 'fiber':
|
||||
# Add your fiber diagnostic commands here
|
||||
diagnostics['optical_power'] = subprocess.getoutput('optical-power-check ' + device['ip'])
|
||||
diagnostics['light_levels'] = subprocess.getoutput('light-level-check ' + device['ip'])
|
||||
else:
|
||||
# Add your copper diagnostic commands here
|
||||
diagnostics['cable_test'] = subprocess.getoutput('ethtool ' + device['ip'])
|
||||
diagnostics['signal_quality'] = subprocess.getoutput('signal-quality-check ' + device['ip'])
|
||||
return diagnostics
|
||||
@app.route('/')
|
||||
def home():
|
||||
return render_template('index.html')
|
||||
|
||||
Reference in New Issue
Block a user