Fixing bugs

This commit is contained in:
Luca Frosini 2021-05-26 12:47:29 +02:00
parent 651f42ab80
commit 0d0eb85644
5 changed files with 20 additions and 11 deletions

View File

@ -93,7 +93,7 @@ public class SmartExecutorInitializator implements ApplicationManager {
try {
logger.debug("Going to get Orphan Scheduled Tasks in scope {}", context);
List<ScheduledTask> scheduledTasks = smartExecutorPersistenceConnector.getOrphanScheduledTasks(pluginManager.getAvailablePlugins().keySet());
List<ScheduledTask> scheduledTasks = smartExecutorPersistenceConnector.getScheduledTasks(pluginManager.getAvailablePlugins().keySet(), true);
if(scheduledTasks.size()==0){
logger.debug("No Orphan Scheduled Tasks this instance can take in charge in scope {}", context);
}

View File

@ -181,14 +181,14 @@ public class OrientDBPersistenceConnector extends SmartExecutorPersistenceConnec
}
@Override
public List<ScheduledTask> getOrphanScheduledTasks(Collection<String> plugins)
public List<ScheduledTask> getScheduledTasks(Collection<String> plugins, boolean onlyOrphan)
throws SchedulePersistenceException {
ODatabaseSession oDatabaseSession = null;
try {
oDatabaseSession = oDatabasePool.acquire();
String type = ScheduledTask.class.getSimpleName();
String queryString = String.format("SELECT * FROM %s WHERE %s = '%s'", type, "scope",
String queryString = String.format("SELECT * FROM %s WHERE %s = '%s'", type, "context",
ContextUtility.getCurrentContext());
if(plugins != null && plugins.size() != 0) {
boolean first = true;
@ -218,7 +218,11 @@ public class OrientDBPersistenceConnector extends SmartExecutorPersistenceConnec
ScheduledTask scheduledTask = ExtendedSEMapper.getInstance().unmarshal(ScheduledTask.class, json);
try {
if(isOrphan(scheduledTask)) {
if(onlyOrphan) {
if(isOrphan(scheduledTask)) {
scheduledTasks.add(scheduledTask);
}
}else {
scheduledTasks.add(scheduledTask);
}
} catch(Exception e) {

View File

@ -102,14 +102,16 @@ public class RestSmartExecutor {
List<String> plugins = new ArrayList<>();
boolean orphan = false;
if(pluginName.compareTo(RestConstants.ORPHAN_PATH_PARAM)!=0) {
plugins.addAll(pluginManager.getAvailablePlugins().keySet());
plugins.add(pluginName);
}else {
// TODO check role
plugins.addAll(pluginManager.getAvailablePlugins().keySet());
orphan = true;
}
List<ScheduledTask> scheduledTasks = persistenceConnector.getOrphanScheduledTasks(plugins);
List<ScheduledTask> scheduledTasks = persistenceConnector.getScheduledTasks(plugins, orphan);
/*
* Using SEMapper because the server must not return sensitive information like token

View File

@ -22,7 +22,7 @@ public interface ScheduledTaskPersistence {
* @throws SchedulePersistenceException
* if fails
*/
public List<ScheduledTask> getOrphanScheduledTasks(Collection<String> plugins)
public List<ScheduledTask> getScheduledTasks(Collection<String> plugins, boolean onlyOrphan)
throws SchedulePersistenceException;
/**

View File

@ -3,6 +3,7 @@
*/
package org.gcube.vremanagement.executor.persistence;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
@ -70,12 +71,14 @@ public class SmartExecutorPersistenceConnectorTest extends ContextTest {
@Test
public void getAvailableScheduledTasksTest() throws Exception {
ContextTest.setContextByName(ROOT);
ContextTest.setContextByName("/gcube/devsec");
ScheduledTaskPersistence stc = ScheduledTaskPersistenceFactory.getScheduledTaskPersistence();
Assert.assertNotNull(stc);
Assert.assertEquals(OrientDBPersistenceConnector.class, stc.getClass());
List<ScheduledTask> lc = stc.getOrphanScheduledTasks(null);
List<String> plugins = new ArrayList<>();
plugins.add("hello-world-se-plugin");
List<ScheduledTask> lc = stc.getScheduledTasks(plugins, false);
logger.debug("Available Scheduled Tasks : {}", lc);
}