Ejemplo n.º 1
0
    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())
Ejemplo n.º 2
0
    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())
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
    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:")
Ejemplo n.º 5
0
    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:")
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
    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)