Search in sources :

Example 71 with Task

use of cz.metacentrum.perun.taskslib.model.Task in project perun by CESNET.

the class BlockingGenExecutorCompletionService method blockingSubmit.

@Override
public Future<Task> blockingSubmit(EngineWorker<Task> taskWorker) throws InterruptedException {
    semaphore.acquire();
    Future<Task> future = null;
    try {
        GenWorker genWorker = (GenWorker) taskWorker;
        // We must have start time before adding Task to executingGenTasks
        genWorker.getTask().setGenStartTime(LocalDateTime.now());
        future = completionService.submit(genWorker);
        executingGenTasks.put(future, genWorker.getTask());
    } catch (Exception ex) {
        // release semaphore if submission fails
        semaphore.release();
        throw ex;
    }
    return future;
}
Also used : Task(cz.metacentrum.perun.taskslib.model.Task) GenWorker(cz.metacentrum.perun.engine.scheduling.GenWorker) TaskExecutionException(cz.metacentrum.perun.engine.exceptions.TaskExecutionException)

Example 72 with Task

use of cz.metacentrum.perun.taskslib.model.Task in project perun by CESNET.

the class EventProcessorTest method eventProcessorTest.

@Test
public void eventProcessorTest() {
    System.out.println("EventProcessor.eventProcessorTest()");
    EngineMessageProducer engineMessageProducer = new EngineMessageProducerMock("testQueue");
    eventProcessor.getEngineMessageProducerFactory().setProducer(engineMessageProducer);
    LinkedBlockingQueue<Event> mockQueue = new LinkedBlockingQueue<>();
    Event event = new Event();
    event.setTimeStamp(System.currentTimeMillis());
    event.setHeader("portishead");
    event.setData(new DirectMemberAddedToGroup(member1, group1));
    mockQueue.add(event);
    eventProcessor.setEventQueue(mockQueue);
    SchedulingPoolMock pool = new SchedulingPoolMock(2);
    eventProcessor.setSchedulingPool(pool);
    // runs inside this thread, should end when message is delivered
    // this necessitates the use of test timeout
    eventProcessor.run();
    List<Task> addedTasks = pool.getTasks();
    List<Facility> facilities = new LinkedList<>();
    for (Task task : addedTasks) {
        Assert.isTrue(service1.equals(task.getService()) || service2.equals(task.getService()), "task service is different");
        Assert.isTrue(facility1.equals(task.getFacility()), "task Facility is different");
        Assert.isTrue(task.getStatus().equals(TaskStatus.WAITING), "task status is not waiting");
    }
}
Also used : Task(cz.metacentrum.perun.taskslib.model.Task) EngineMessageProducer(cz.metacentrum.perun.dispatcher.jms.EngineMessageProducer) DirectMemberAddedToGroup(cz.metacentrum.perun.audit.events.GroupManagerEvents.DirectMemberAddedToGroup) Event(cz.metacentrum.perun.dispatcher.model.Event) Facility(cz.metacentrum.perun.core.api.Facility) LinkedBlockingQueue(java.util.concurrent.LinkedBlockingQueue) LinkedList(java.util.LinkedList) AbstractDispatcherTest(cz.metacentrum.perun.dispatcher.AbstractDispatcherTest) Test(org.junit.Test)

Example 73 with Task

use of cz.metacentrum.perun.taskslib.model.Task in project perun by CESNET.

the class SchedulingPoolTest method addToPoolTest.

@IfProfileValue(name = "perun.test.groups", values = ("unit-tests"))
@Test
public void addToPoolTest() throws TaskStoreException {
    System.out.println("SchedulingPool.addTask()");
    Assert.isTrue(schedulingPool.getSize() == 1, "original size is 1");
    schedulingPool.addToPool(task1);
    // pool already contains this task
    Assert.isTrue(schedulingPool.getSize() == 1, "new size is 1");
    task2 = new Task();
    task2.setId(2);
    task2.setService(service2);
    task2.setFacility(facility1);
    task2.setDestinations(destinations);
    task2.setSchedule(LocalDateTime.now());
    schedulingPool.addToPool(task2);
    Assert.isTrue(schedulingPool.getSize() == 2, "new size is 2");
}
Also used : Task(cz.metacentrum.perun.taskslib.model.Task) AbstractDispatcherTest(cz.metacentrum.perun.dispatcher.AbstractDispatcherTest) Test(org.junit.Test) IfProfileValue(org.springframework.test.annotation.IfProfileValue)

Example 74 with Task

use of cz.metacentrum.perun.taskslib.model.Task in project perun by CESNET.

the class EventParserImplTest method parseEventTest.

@Test
public void parseEventTest() throws Exception {
    System.out.println("EventParserImpl.parseEventTest");
    String testEvent = "task|[" + task1.getId() + "][false]|[" + task1.getService().serializeToString() + "]|[" + task1.getFacility().serializeToString() + "]|[Destinations [";
    for (Destination destination : task1.getDestinations()) {
        testEvent = testEvent.concat(destination.serializeToString() + ", ");
    }
    testEvent = testEvent.concat("]]");
    Task task2 = eventParser.parseEvent(testEvent);
    Assert.isTrue(task1.equals(task2), "task1 equals task2");
}
Also used : Task(cz.metacentrum.perun.taskslib.model.Task) Test(org.junit.Test) AbstractEngineTest(cz.metacentrum.perun.engine.AbstractEngineTest)

Example 75 with Task

use of cz.metacentrum.perun.taskslib.model.Task in project perun by CESNET.

the class SchedulingPoolTest method getTaskByIdTest.

@Test
public void getTaskByIdTest() throws Exception {
    Task task = schedulingPool.getTask(task1.getId());
    assertEquals(task1, task);
}
Also used : Task(cz.metacentrum.perun.taskslib.model.Task) Test(org.junit.Test) AbstractEngineTest(cz.metacentrum.perun.engine.AbstractEngineTest)

Aggregations

Task (cz.metacentrum.perun.taskslib.model.Task)77 InternalErrorException (cz.metacentrum.perun.core.api.exceptions.InternalErrorException)16 Date (java.util.Date)16 Test (org.junit.Test)15 Facility (cz.metacentrum.perun.core.api.Facility)14 Destination (cz.metacentrum.perun.core.api.Destination)11 Service (cz.metacentrum.perun.core.api.Service)10 TaskStoreException (cz.metacentrum.perun.taskslib.exceptions.TaskStoreException)10 PrivilegeException (cz.metacentrum.perun.core.api.exceptions.PrivilegeException)9 ExecService (cz.metacentrum.perun.taskslib.model.ExecService)9 ArrayList (java.util.ArrayList)9 AbstractDispatcherTest (cz.metacentrum.perun.dispatcher.AbstractDispatcherTest)6 SendTask (cz.metacentrum.perun.taskslib.model.SendTask)6 TaskResult (cz.metacentrum.perun.taskslib.model.TaskResult)6 JMSException (javax.jms.JMSException)6 Pair (cz.metacentrum.perun.core.api.Pair)5 AbstractEngineTest (cz.metacentrum.perun.engine.AbstractEngineTest)5 TaskExecutionException (cz.metacentrum.perun.engine.exceptions.TaskExecutionException)5 LocalDateTime (java.time.LocalDateTime)5 Resource (cz.metacentrum.perun.core.api.Resource)4