예제 #1
0
    def __init__(self, filemasks, publish_port=9000):
        super(EventHandler, self).__init__()

        self.logger = logging.getLogger(__name__)
        pub_address = "tcp://" + str(get_own_ip()) + ":" + str(publish_port)
        self.pub = Publisher(pub_address)
        self.filemasks = filemasks
        self.filename = ''
        self.info = {}
        self.filetype = ''
예제 #2
0
 def __setstate__(self, kwargs):
     """Set things running even when loading from YAML."""
     LOG.debug('Starting publisher')
     self.port = kwargs.get('port', 0)
     self.nameservers = kwargs.get('nameservers', "")
     if self.nameservers is None:
         self.pub = Publisher("tcp://*:" + str(self.port), "l2processor")
     else:
         self.pub = NoisyPublisher('l2processor',
                                   port=self.port,
                                   nameservers=self.nameservers)
         self.pub.start()
예제 #3
0
    def test_pub_suber(self):
        """Test publisher and subscriber.
        """

        pub_address = "tcp://" + str(get_own_ip()) + ":0"
        pub = Publisher(pub_address)
        addr = pub_address[:-1] + str(pub.port_number)
        sub = Subscriber([addr], '/counter')
        tested = False
        for counter in range(5):
            message = Message("/counter", "info", str(counter))
            pub.send(str(message))
            time.sleep(1)

            msg = sub.recv(2).next()
            if msg is not None:
                self.assertEquals(str(msg), str(message))
                tested = True
        self.assertTrue(tested)
        pub.stop()
예제 #4
0
            "time_of_first_scanline": datetime.strptime(base[16:30],
                                                        "%Y%m%d%H%M%S").isoformat(),
            "time_of_last_scanline": datetime.strptime(base[32:46],
                                                        "%Y%m%d%H%M%S").isoformat()}
        import pprint
        pprint.pprint(metadata)
        yield Message('/dc/polar/gds', 'file', metadata)



PUB_ADDRESS = "tcp://" + str(get_own_ip()) + ":9000"
BROADCASTER = sendaddresstype('p1', PUB_ADDRESS, "HRPT 1b", 2).start()

time.sleep(10)

PUB = Publisher(PUB_ADDRESS)

try:
    #for msg in SUB(timeout=1):
    #    print "Consumer got", msg
    counter = 0
    while True:
        counter += 1
        for i in send_new_files():
            print "publishing " + str(i)
            PUB.send(str(i))
        time.sleep(60)
except KeyboardInterrupt:
    print "terminating datasource..."
    BROADCASTER.stop()
    PUB.stop()
예제 #5
0
 def __init__(self, cmd_args):
     """Initialize server."""
     super(MoveItServer, self).__init__(cmd_args, "server")
     LOGGER.info("Starting publisher on port %s.", str(cmd_args.port))
     self.sync_publisher = Publisher("tcp://*:" + str(cmd_args.port), "move_it_server")
예제 #6
0
    else:
        fh = logging.StreamHandler()

    formatter = logging.Formatter(log_format)
    fh.setFormatter(formatter)

    LOGGER.addHandler(fh)
    LOGGER = logging.getLogger('move_it_server')

    pyinotify.log.handlers = [fh]

    LOGGER.info("Starting up.")

    LOGGER.info("Starting publisher on port %s.", str(cmd_args.port))

    PUB = Publisher("tcp://*:" + str(cmd_args.port), "move_it_server")

    mask = (pyinotify.IN_CLOSE_WRITE | pyinotify.IN_MOVED_TO
            | pyinotify.IN_CREATE)
    watchman = pyinotify.WatchManager()

    def reload_cfg_file(filename, disable_backlog=False):
        return reload_config(filename,
                             chains,
                             publisher=PUB,
                             disable_backlog=disable_backlog)

    notifier = pyinotify.ThreadedNotifier(
        watchman,
        EventHandler(reload_cfg_file, cmd_filename=cmd_args.config_file))
    watchman.add_watch(os.path.dirname(cmd_args.config_file), mask)
예제 #7
0
 def __init__(self, cmd_args):
     super(MoveItMirror, self).__init__(cmd_args, "mirror")
     self.cache_lock = Lock()
     LOGGER.info("Starting publisher on port %s.", str(cmd_args.port))
     self.pub = Publisher("tcp://*:" + str(cmd_args.port), "move_it_mirror")
예제 #8
0
def create_publisher(port, publisher_name):
    """Create a publisher using port *port*."""
    LOGGER.info("Starting publisher on port %s.", str(port))
    return Publisher("tcp://*:" + str(port), publisher_name)