# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
+from __future__ import absolute_import
import pkg_resources
import logging
import multiprocessing
class MonitorMgr(object):
"""docstring for MonitorMgr"""
+
def __init__(self):
self._monitor_list = []
for monitor_cfg in monitor_cfgs:
monitor_type = monitor_cfg["monitor_type"]
monitor_cls = BaseMonitor.get_monitor_cls(monitor_type)
+
+ monitor_number = monitor_cfg.get("monitor_number", 1)
+ if monitor_number > 1:
+ monitor_cls = BaseMonitor.get_monitor_cls("multi-monitor")
+
monitor_ins = monitor_cls(monitor_cfg, context)
if "key" in monitor_cfg:
monitor_ins.key = monitor_cfg["key"]
@staticmethod
def get_monitor_cls(monitor_type):
- '''return monitor class of specified type'''
+ """return monitor class of specified type"""
for monitor in utils.itersubclasses(BaseMonitor):
if monitor_type == monitor.__monitor_type__:
total_time = end_time - begin_time
self._queue.put({"total_time": total_time,
- "outage_time": last_outage-first_outage,
+ "outage_time": last_outage - first_outage,
+ "last_outage": last_outage,
+ "first_outage": first_outage,
"total_count": total_count,
"outage_count": outage_count})
def verify_SLA(self):
pass
+
+ def result(self):
+ return self._result