###############################################################################
# Copyright (c) 2017 Koren Lev (Cisco Systems), Yaron Yogev (Cisco Systems) #
# and others #
# #
# All rights reserved. This program and the accompanying materials #
# are made available under the terms of the Apache License, Version 2.0 #
# which accompanies this distribution, and is available at #
# http://www.apache.org/licenses/LICENSE-2.0 #
###############################################################################
# handle monitoring event for links
from monitoring.handlers.monitoring_check_handler import MonitoringCheckHandler
class HandleLink(MonitoringCheckHandler):
def __init__(self, args):
super().__init__(args)
def handle(self, link_id_from_check, check_result):
# link ID from check is formatted like this:
# __
link_type = link_id_from_check[:link_id_from_check.index('_')]
remainder = link_id_from_check[len(link_type)+1:]
source_id = remainder[:remainder.index('_')]
target_id = remainder[len(source_id)+1:]
search = {
'link_type': link_type,
'source_id': source_id,
'target_id': target_id
}
doc = self.inv.find_items(search, collection='links', get_single=True)
if not doc:
return 1
self.keep_result(doc, check_result)
return check_result['status']