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;
}
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");
}
}
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");
}
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");
}
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);
}
Aggregations