Exemple #1
0
    def test_get_scheduler_and_mhclient_none(self):
        conf = context.get_conf()

        conf.set('ingest', 'active', 'False')
        self.assertEqual(context.get_mhclient(), None)
        self.assertEqual(context.get_scheduler(), None)

        context.delete('mhclient')
        context.delete('scheduler')
        conf.set('ingest', 'active', 'True')
        self.assertEqual(type(context.get_mhclient()), galicaster.utils.mhhttpclient.MHHTTPClient)
        self.assertEqual(type(context.get_scheduler()), galicaster.scheduler.scheduler.Scheduler)
Exemple #2
0
    def test_get_scheduler_and_occlient_none(self):
        conf = context.get_conf()

        conf.set('ingest', 'active', 'False')
        self.assertEqual(context.get_occlient(), None)
        self.assertEqual(context.get_scheduler(), None)

        context.delete('occlient')
        context.delete('scheduler')
        conf.set('ingest', 'active', 'True')
        self.assertEqual(type(context.get_occlient()), galicaster.opencast.client.OCHTTPClient)
        self.assertEqual(type(context.get_scheduler()), galicaster.scheduler.scheduler.Scheduler)
Exemple #3
0
    def test_get_scheduler_and_occlient_none(self):
        conf = context.get_conf()
        conf.set('ingest', 'active', 'False')

        self.assertEqual(context.get_occlient(), None)
        self.assertTrue(context.get_scheduler() != None)

        context.delete('occlient')
        context.delete('scheduler')
        conf.set('ingest', 'active', 'True')
        self.assertEqual(type(context.get_occlient()),
                         galicaster.opencast.client.OCHTTPClient)
        self.assertEqual(type(context.get_scheduler()),
                         galicaster.scheduler.scheduler.Scheduler)
Exemple #4
0
def check_repository(self):
    global logger
    #mp_list is collection of mediapackages ID's
    mp_list = context.get_repository()

    for uid, mp in mp_list.iteritems():
        if mp.status == mediapackage.SCHEDULED and mp.getDate(
        ) < datetime.datetime.utcnow() and mp.getDate() + datetime.timedelta(
                seconds=(mp.getDuration() /
                         1000)) > datetime.datetime.utcnow():
            #duration update
            x = datetime.datetime.utcnow() - mp.getDate()
            x = x.seconds - 2
            mp.setDuration(mp.getDuration() - x * 1000)
            #start-datetime update
            mp.setDate(datetime.datetime.utcnow() +
                       datetime.timedelta(seconds=2))
            #repository update
            mp_list.update(mp)

            scheduler = context.get_scheduler()
            try:
                scheduler.create_timer(mp)
                logger.info("Mediapackage with UID:%s have been reprogrammed",
                            uid)
            except Exception as exc:
                logger.error(
                    "Error trying to create a new timer for MP {}: {}".format(
                        uid, exc))
Exemple #5
0
def check_repository(self):
    #mp_list is collection of mediapackages ID's
    mp_list = context.get_repository()

    for uid, mp in mp_list.iteritems():
        if mp.status == mediapackage.SCHEDULED and mp.getDate(
        ) < datetime.datetime.utcnow() and mp.getDate() + datetime.timedelta(
                seconds=(mp.getDuration() /
                         1000)) > datetime.datetime.utcnow():
            #duration update
            x = datetime.datetime.utcnow() - mp.getDate()
            x = x.seconds - 2
            mp.setDuration(mp.getDuration() - x * 1000)
            #start-datetime update
            mp.setDate(datetime.datetime.utcnow() +
                       datetime.timedelta(seconds=2))
            #repository update
            mp_list.update(mp)

            scheduler = context.get_scheduler()
            try:
                scheduler.create_new_timer(mp)
            except ValueError:
                #log or set default value
                pass
            #logging
            logger.info("Mediapackage with UID:%s have been reprogrammed", uid)
Exemple #6
0
    def load_modules(self):
        self.window = context.get_mainwindow()
        # Load plugins after loading the main window (fixes a problem with the plugin 'nocursor')
        plugins.init()

        # Recorder
        self.recorder = RecorderClassUI()
        self.insert_page(self.recorder, 'REC')

        if 'scheduler' in self.modules:
            self.scheduler = context.get_scheduler()

        if 'ocservice' in self.modules:
            self.ocservice = context.get_ocservice()

        if 'media_manager' in self.modules:
            self.dispatcher.connect('action-view-change', self.change_mode)

            # Distribution
            self.distribution = DistribUI()
            self.insert_page(self.distribution, 'DIS')

            # Media Manager
            self.listing  = ListingClassUI()
            self.insert_page(self.listing, 'MMA')

        if 'player' in self.modules:
            self.player = PlayerClassUI()
            self.insert_page(self.player, 'PLA')

        self.window.start()

        # Set home page
        homepage = self.conf.get_choice('basic', 'homepage', ['rec', 'pla', 'mma', 'dis'], 'mma').upper()
        if not 'media_manager' in self.modules or PAGES[homepage] not in PAGES_LOADED:
            logger.info("Set REC as home page (default value), modules loaded: {}".format(self.modules))
            self.window.set_current_page(PAGES['REC'])
            self.recorder.block()
        else:
            logger.info("Set {} as home page, modules loaded: {}".format(homepage, self.modules))
            self.window.set_current_page(PAGES[homepage])

        # Notify home page setting by issuing a 'view-changed' signal
        self.dispatcher.emit('view-changed', None, self.window.get_current_page())

        context.get_heartbeat().init_timer()
        self.dispatcher.emit("init")
Exemple #7
0
def post_calendar():
    # DEBUG purposes
    # TODO: be able to receive an icalendar using a post field

    conf = context.get_conf()
    if conf.get_boolean('ingest', 'active'):
        abort(503, "The Opencast service is enabled, so ingoring this command to avoid inconsisten behaviour")

    repo = context.get_repository()
    scheduler = context.get_scheduler()
    logger = context.get_logger()

    repo.delete_next_mediapackages()
    ical_data = repo.get_attach('calendar.ical').read()
    ical.handle_ical(ical_data, None, repo, scheduler, logger)

    return "OK"
Exemple #8
0
    def load_modules(self):        
        self.window = context.get_mainwindow()

        # Load plugins after loading the main window (fixes a problem with the plugin 'nocursor')
        plugins.init()
               
        # Recorder
        self.recorder = RecorderClassUI()
        self.window.insert_page(self.recorder, 'REC', REC) 

        if 'scheduler' in self.modules:        
            self.scheduler = context.get_scheduler()

        if 'media_manager' in self.modules:
            self.dispatcher.connect('change-mode', self.change_mode)

            # Distribution
            self.distribution = DistribUI()
            self.window.insert_page(self.distribution, 'DISTRIBUTION', DIS) 

            # Media Manager
            self.listing  = ListingClassUI()
            self.window.insert_page(self.listing, 'LIST', MMA)
        
        if 'player' in self.modules:
            self.player = PlayerClassUI()
            self.window.insert_page(self.player, 'PLAYER', PLA)

        self.window.start()

        self.recorder.go_ahead() # allows record area to load devices and show preview

        if 'media_manager' in self.modules:            
            self.window.set_current_page(DIS)
            self.state.area = DIS
        else:
            self.window.set_current_page(REC)
            self.state.area = REC
            self.recorder.block()  

        context.get_heartbeat().init_timer()
        self.dispatcher.emit("galicaster-init")
Exemple #9
0
    def load_modules(self):
        plugins.init()

        self.window = context.get_mainwindow()

        # Recorder
        self.recorder = RecorderClassUI()
        self.window.insert_page(self.recorder, 'REC', REC)

        if 'scheduler' in self.modules:
            self.scheduler = context.get_scheduler()

        if 'media_manager' in self.modules:
            self.dispatcher.connect('change-mode', self.change_mode)

            # Distribution
            self.distribution = DistribUI()
            self.window.insert_page(self.distribution, 'DISTRIBUTION', DIS)

            # Media Manager
            self.listing = ListingClassUI()
            self.window.insert_page(self.listing, 'LIST', MMA)

        if 'player' in self.modules:
            self.player = PlayerClassUI()
            self.window.insert_page(self.player, 'PLAYER', PLA)

        self.window.start()

        self.recorder.go_ahead(
        )  # allows record area to load devices and show preview

        if 'media_manager' in self.modules:
            self.window.set_current_page(DIS)
            self.state.area = DIS
        else:
            self.window.set_current_page(REC)
            self.state.area = REC
            self.recorder.block()

        context.get_heartbeat().init_timer()
        self.dispatcher.emit("galicaster-init")
Exemple #10
0
    def load_modules(self):
        plugins.init()

        self.window = context.get_mainwindow()

        # Recorder
        self.recorder = RecorderClassUI()
        self.window.insert_page(self.recorder, "REC", REC)

        if "scheduler" in self.modules:
            self.scheduler = context.get_scheduler()

        if "media_manager" in self.modules:
            self.dispatcher.connect("change-mode", self.change_mode)

            # Distribution
            self.distribution = DistribUI()
            self.window.insert_page(self.distribution, "DISTRIBUTION", DIS)

            # Media Manager
            self.listing = ListingClassUI()
            self.window.insert_page(self.listing, "LIST", MMA)

        if "player" in self.modules:
            self.player = PlayerClassUI()
            self.window.insert_page(self.player, "PLAYER", PLA)

        self.window.start()

        self.recorder.go_ahead()  # allows record area to load devices and show preview

        if "media_manager" in self.modules:
            self.window.set_current_page(DIS)
            self.state.area = DIS
        else:
            self.window.set_current_page(REC)
            self.state.area = REC
            self.recorder.block()

        context.get_heartbeat().init_timer()
        self.dispatcher.emit("galicaster-init")
Exemple #11
0
    def load_modules(self):
        self.window = context.get_mainwindow()
               
        # Recorder
        self.recorder = RecorderClassUI()
        self.window.insert_page(self.recorder, 'REC', REC) 

        if 'scheduler' in self.modules:        
            self.scheduler = context.get_scheduler()

        if 'media_manager' in self.modules:
            self.dispatcher.connect('change-mode', self.change_mode)
            self.dispatcher.connect('play-list', self.play_mp)

            # Distribution
            self.distribution = DistribUI()
            self.window.insert_page(self.distribution, 'DISTRIBUTION', DIS) 

            # Media Manager
            self.listing  = ListingClassUI()
            self.window.insert_page(self.listing, 'LIST', MMA)
        
        if 'player' in self.modules:
            self.player = PlayerClassUI()
            self.window.insert_page(self.player, 'PLAYER', PLA)

        self.window.start()

        self.recorder.go_ahead() # allows record area to load devices and show preview

        if 'media_manager' in self.modules:            
            self.window.set_current_page(DIS)
        else:
            self.window.set_current_page(REC)
            self.recorder.block()  

        plugins.init()
        context.get_heartbeat().init_timer()
Exemple #12
0
def check_repository(self):
    #mp_list is collection of mediapackages ID's
    mp_list = context.get_repository()

    for uid,mp in mp_list.iteritems():
        if mp.status == mediapackage.SCHEDULED and mp.getDate() < datetime.datetime.utcnow() and mp.getDate()+datetime.timedelta(seconds=(mp.getDuration()/1000)) > datetime.datetime.utcnow():
            #duration update			
		x = datetime.datetime.utcnow() - mp.getDate()
		x = x.seconds-2			
		mp.setDuration(mp.getDuration() - x*1000)
		#start-datetime update
		mp.setDate(datetime.datetime.utcnow()+datetime.timedelta(seconds=2))
		#repository update
		mp_list.update(mp)

		scheduler = context.get_scheduler()
		try:
                    scheduler.create_new_timer(mp)
		except ValueError:
                    #log or set default value
                    pass
		#logging
		logger.info("Mediapackage with UID:%s have been reprogrammed", uid)
Exemple #13
0
    def load_modules(self):
        self.window = context.get_mainwindow()

        # Recorder
        self.recorder = RecorderClassUI()
        self.window.insert_page(self.recorder, 'REC', REC)

        if 'scheduler' in self.modules:
            self.scheduler = context.get_scheduler()

        if 'media_manager' in self.modules:
            self.dispatcher.connect('change-mode', self.change_mode)
            self.dispatcher.connect('play-list', self.play_mp)

            # Distribution
            self.distribution = DistribUI()
            self.window.insert_page(self.distribution, 'DISTRIBUTION', DIS)

            # Media Manager
            self.listing = ListingClassUI()
            self.window.insert_page(self.listing, 'LIST', MMA)

        if 'player' in self.modules:
            self.player = PlayerClassUI()
            self.window.insert_page(self.player, 'PLAYER', PLA)

        self.window.start()

        if 'recorder' and 'media_manager' in self.modules:
            self.window.set_current_page(DIS)
        else:
            self.window.set_current_page(REC)
            self.recorder.block()

        plugins.init()
        context.get_heartbeat().init_timer()