def monitorEngine(address, port, dbPassword, listener=None): if not listener: listener = _StandardOutListener() s = Session(address, port=port, service="Monitor") s.authorize("Cloud", dbPassword) monitor = SessionMonitor(s, listener=listener) monitor.start() s.doConnect() return EngineMonitor(monitor, s)
def monitorDomainStats(broker, user, password, listener=None): if not listener: listener = _StandardOutListener() s = Session(broker, service="HostStats") s.authorize(user, password) s.doConnect() checkForError(s.recv()) monitor = SessionMonitor(s, listener=listener) monitor.start() return monitor
def __init__(self, broker_addr, domain_user, domain_pwd, listener=None): """ @type broker_addr str @type domain_user str @type domain_pwd str @type listener """ if not domain_pwd: raise Exception("A password is required to join a domain") self.__session = Session(broker_addr, service="Monitor") self.__session.authorize(domain_user, domain_pwd) self.__user = domain_user self.__password = domain_pwd self.__listener = listener self.__peers = dict() """ @type : dict[str, Peer] """ self.__databases = dict() """ @type : dict[str, Database] """ self.__monitor = SessionMonitor(self.__session, self) # These will be set in handle status after joining the domain self.__domain_name = None """ @type : str """ self.__entry_peer = None """ @type : Peer """ try: self.__session.doConnect() self.__handle_status(self.__session.recv()) except Exception: self.__monitor.close() raise self.__monitor.start()