Exemplo n.º 1
0
 def setUp_job_manager(self):
     self.job_manager = LocalJobManager(
         {"default": "inginious-c-default"},
         os.path.join(os.path.dirname(__file__), 'tasks'),
         self.course_factory,
         self.task_factory,
         hook_manager=self.generate_hook_manager(),
         agent_class=get_fake_local_agent(self.handle_job_func))
     self.job_manager.start()
Exemplo n.º 2
0
def create_job_manager(configuration,
                       plugin_manager,
                       task_directory,
                       course_factory,
                       task_factory,
                       is_testing=False):
    """ Creates a new inginious.backend job manager from the configuration """

    # Create the job manager
    backend_type = configuration.get("backend", "local")
    if backend_type == "local":
        return LocalJobManager(
            configuration.get(
                'containers', {
                    "default": "ingi/inginious-c-default",
                    "sekexe": "ingi/inginious-c-sekexe"
                }), task_directory, course_factory, task_factory,
            configuration.get('local_agent_tmp_dir', "/tmp/inginious_agent"),
            plugin_manager, is_testing)
    elif backend_type == "remote":
        return RemoteDockerJobManager(
            configuration.get("docker_daemons", []),
            configuration.get(
                'containers', {
                    "default": "ingi/inginious-c-default",
                    "sekexe": "ingi/inginious-c-sekexe"
                }), task_directory, course_factory, task_factory,
            plugin_manager, is_testing)
    elif backend_type == "remote_manual":
        return RemoteManualAgentJobManager(
            configuration.get("agents", [{
                "host": "localhost",
                "port": 5001
            }]),
            configuration.get(
                'containers', {
                    "default": "ingi/inginious-c-default",
                    "sekexe": "ingi/inginious-c-sekexe"
                }), task_directory, course_factory, task_factory,
            plugin_manager, is_testing)
    elif backend_type == "docker_machine":
        return DockerMachineJobManager(
            configuration.get("machines", []),
            configuration.get(
                'containers', {
                    "default": "ingi/inginious-c-default",
                    "sekexe": "ingi/inginious-c-sekexe"
                }), task_directory, course_factory, task_factory,
            plugin_manager, is_testing)
    else:
        raise Exception("Unknown inginious.backend {}".format(backend_type))