def discovery_request(self, msg, messages=-1): sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) sock.settimeout(5) sock.sendto( str(msg), (self._config.discoverer.broadcast, self._config.discoverer.port)) recived_messages = 0 while True and messages != 0: received = None try: received = sock.recv(1024) except socket.timeout: pass if received is not None: recived_messages = recived_messages + 1 discoverer_event_from_data(received) else: break if (recived_messages == messages) or (recived_messages == 1 and messages == -1): break dispatcher.notify('command.end_of_data', Event())
def discovery_request(self, msg, messages = -1): sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) sock.settimeout(5) sock.sendto(str(msg), (self._config.discoverer.broadcast, self._config.discoverer.port)) recived_messages = 0 while True and messages != 0: received = None try: received = sock.recv(1024) except socket.timeout: pass if received is not None: recived_messages = recived_messages + 1 discoverer_event_from_data(received) else: break if (recived_messages == messages) or (recived_messages == 1 and messages == -1): break dispatcher.notify('command.end_of_data', Event())
def discoverer_event_from_data(data, address = (0,0), socket = None): data = json.loads(data) request = data['request'] del data['request'] msg = DiscovererMessage(request, data, address, socket) event = DiscovererEvent(msg) logging.getLogger('default').debug( "Discoverer server received [{}]: {} from: {}:{}".format(request, data, address[0], address[1])) dispatcher.notify('discoverer.message.receive.{}'.format(request), event)
def handle(self): from pgherd.daemon import daemon try: self.logger = logging.getLogger('default') if daemon.node is not None: self.send(NodeStatus(daemon.node)) while event.is_set(): self.logger.debug('Negotiator wating for message') message = self.read() dispatcher.notify('negotiator.message.receive', message) except Exception, ex: self.logger.exception("Unexpected error:")
def run(self): self.logger.debug('Starting monitoring local node') while event.is_set(): try: status = StatusEvent(self._connections.get_local_status()) self.logger.debug('Get local node status: {}'.format(status)) dispatcher.notify('monitor.local.update', status) except: if self.logger.isEnabledFor(logging.DEBUG): self.logger.exception("Failed getting local node status - waiting for node wake up ") else: self.logger.warning("Failed getting local node status - waiting for node wake up ") finally: time.sleep(self._config.interval)
def run(self): self.logger.debug('Starting monitoring local node') while event.is_set(): try: status = StatusEvent(self._connections.get_local_status()) self.logger.debug('Get local node status: {}'.format(status)) dispatcher.notify('monitor.local.update', status) except: if self.logger.isEnabledFor(logging.DEBUG): self.logger.exception( "Failed getting local node status - waiting for node wake up " ) else: self.logger.warning( "Failed getting local node status - waiting for node wake up " ) finally: time.sleep(self._config.interval)