def check_laboratory(self, address_str, experiments):
        broken_resources = {
            # resource_id : error_message
        }

        try:
            address = CoordAddress.translate(address_str)
            server = self.locator[address]
            failing_experiments = server.check_experiments_resources()
            #
            # failing_experiments is a dictionary such as:
            # {
            #     experiment_instance_id : error_message
            # }
            # 
            for failing_experiment in failing_experiments:
                if not failing_experiment in experiments:
                    log.log( ResourcesChecker, log.level.Error,
                            "Laboratory server %s reported that experiment %s was failing; however this laboratory does NOT manage this experiment. Attack?" % (address_str, failing_experiment))
                    continue

                # 
                # The error for a resource will be concatenated
                # 
                broken_resource = experiments[failing_experiment]
                error_message   = failing_experiments[failing_experiment]
                if broken_resource in broken_resources:
                    broken_resources[broken_resource] = broken_resources[broken_resource] + ';' + error_message
                else:
                    broken_resources[broken_resource] = error_message

        except:
            traceback.print_exc()
            log.log( ResourcesChecker, log.level.Critical,
                    "Error checking resources of laboratory %s " % address_str)
            log.log_exc(ResourcesChecker, log.level.Critical)
        
        return broken_resources
Toggle fullscreen status on non-embedded video outputs.
dataset/ETHPy150Open weblabdeusto/weblabdeusto/server/src/weblab/core/coordinator/checker.py/ResourcesChecker.check_laboratory--crossover with--dataset/ETHPy150Open disqus/playa/playa/lib/vlc.py/MediaPlayer.toggle_fullscreen