Beispiel #1
0
 def test_remove_watch_directory(self):
     man = Manager()
     add_paths(man, self.paths)
     for path in self.paths:
         self.assertTrue( man.has_watch(path) )
         man.remove_watch_directory( path )
         self.assertTrue( not man.has_watch(path) )
Beispiel #2
0
    def run(self):
        self.index_create()
        manager = Manager()
        apiclient = apc()
        config = user().mm_config
        WatchSyncer(signal=getsig('watch'),
                    chunking_number=config['chunking_number'],
                    timeout=config['request_max_wait'])
        airtime_receiver = AirtimeMessageReceiver(config, manager)
        airtime_notifier = AirtimeNotifier(config, airtime_receiver)

        adb = AirtimeDB(apiclient)
        store = {
            u'stor': adb.storage_path(),
            u'watched_dirs': adb.list_watched(),
        }

        self.logger.info("initializing mm with directories: %s" % str(store))

        self.logger.info("Initing with the following airtime response:%s" %
                         str(store))

        airtime_receiver.change_storage({'directory': store[u'stor']})

        for watch_dir in store[u'watched_dirs']:
            if not os.path.exists(watch_dir):
                # Create the watch_directory here
                try:
                    os.makedirs(watch_dir)
                except Exception:
                    self.logger.error("Could not create watch directory: '%s' \
                            (given from the database)." % watch_dir)
            if os.path.exists(watch_dir):
                airtime_receiver.new_watch({'directory': watch_dir},
                                           restart=True)
            else:
                self.logger.info("Failed to add watch on %s" % str(watch_dir))

        EventDrainer(airtime_notifier,
                     interval=float(config['rmq_event_wait']))

        # Launch the toucher that updates the last time when the script was
        # ran every n seconds.
        # TODO : verify that this does not interfere with bootstrapping because the
        # toucher thread might update the last_ran variable too fast
        ToucherThread(path=user().touch_file_path(),
                      interval=int(config['touch_interval']))

        success = False
        while not success:
            try:
                apiclient.register_component('media-monitor')
                success = True
            except Exception, e:
                self.logger.error(str(e))
                import time
                time.sleep(10)
 def setUp(self):
     # TODO : properly mock this later
     cfg = {}
     self.amr = AirtimeMessageReceiver(cfg, Manager())
Beispiel #4
0
 def test_organize_path(self):
     man = Manager()
     man.set_organize_path( self.opath )
     self.assertEqual( man.get_organize_path(), self.opath )
     man.set_organize_path( self.ppath )
     self.assertEqual( man.get_organize_path(), self.ppath )
Beispiel #5
0
 def test_init(self):
     man = Manager()
     self.assertTrue( len(man.watched_directories) == 0 )
     self.assertTrue( man.watch_channel is not None )
     self.assertTrue( man.organize_channel is not None )