java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java | 12 ++++
java/code/src/com/redhat/rhn/taskomatic/TaskoRun.hbm.xml | 2
java/code/src/com/redhat/rhn/taskomatic/TaskoSchedule.hbm.xml | 4 +
java/code/src/com/redhat/rhn/taskomatic/TaskoXmlRpcHandler.java | 25 ++++++++++
4 files changed, 42 insertions(+), 1 deletion(-)
New commits:
commit e8733b8eace4ce61c3d207ffddf1d8ce394e2f7c
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Thu May 5 19:56:20 2011 +0200
659138 - fix ordering of runs
diff --git a/java/code/src/com/redhat/rhn/taskomatic/TaskoRun.hbm.xml
b/java/code/src/com/redhat/rhn/taskomatic/TaskoRun.hbm.xml
index 3da3c70..5459391 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/TaskoRun.hbm.xml
+++ b/java/code/src/com/redhat/rhn/taskomatic/TaskoRun.hbm.xml
@@ -42,7 +42,7 @@ PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
</query>
<query name="TaskoRun.listByBunch">
- <![CDATA[FROM com.redhat.rhn.taskomatic.TaskoRun WHERE template.bunch.name
= :bunch_name ORDER BY startTime DESC, template.ordering, endTime DESC]]>
+ <![CDATA[FROM com.redhat.rhn.taskomatic.TaskoRun WHERE template.bunch.name
= :bunch_name ORDER BY startTime DESC, template.ordering DESC, endTime DESC]]>
</query>
<query name="TaskoRun.listRunsWithStatus">
commit efdfafc349cec29f4ed448f0403d2553b8b2a2a5
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Thu May 5 18:01:09 2011 +0200
introduce taskomatic reinit schedules
diff --git a/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java
b/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java
index 5686900..4d0b09d 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java
@@ -293,6 +293,18 @@ public class TaskoFactory extends HibernateFactory {
}
}
+
+ /**
+ * list schedules, that shall be run sometime in the future
+ * @return list of schedules to be run at least once
+ */
+ public static List<TaskoSchedule> listFuture() {
+ Map params = new HashMap();
+ params.put("timestamp", new Date());
+ return singleton.listObjectsByNamedQuery(
+ "TaskoSchedule.listFuture", params);
+ }
+
private static TaskoBunch lookupBunchByOrgAndName(Integer orgId, String bunchName)
throws NoSuchBunchTaskException {
TaskoBunch bunch = null;
diff --git a/java/code/src/com/redhat/rhn/taskomatic/TaskoSchedule.hbm.xml
b/java/code/src/com/redhat/rhn/taskomatic/TaskoSchedule.hbm.xml
index 30375d8..d06aa75 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/TaskoSchedule.hbm.xml
+++ b/java/code/src/com/redhat/rhn/taskomatic/TaskoSchedule.hbm.xml
@@ -80,6 +80,10 @@ PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
<![CDATA[FROM com.redhat.rhn.taskomatic.TaskoSchedule WHERE orgId =
:org_id AND (activeFrom < :timestamp AND (activeTill is null OR :timestamp <
activeTill))]]>
</query>
+ <query name="TaskoSchedule.listFuture">
+ <![CDATA[FROM com.redhat.rhn.taskomatic.TaskoSchedule WHERE activeTill is
null OR :timestamp < activeTill]]>
+ </query>
+
<query name="TaskoSchedule.listActiveInSat">
<![CDATA[FROM com.redhat.rhn.taskomatic.TaskoSchedule WHERE orgId is null
AND activeFrom < :timestamp AND (activeTill is null OR :timestamp <
activeTill)]]>
</query>
diff --git a/java/code/src/com/redhat/rhn/taskomatic/TaskoXmlRpcHandler.java
b/java/code/src/com/redhat/rhn/taskomatic/TaskoXmlRpcHandler.java
index 46776e0..fbeb506 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/TaskoXmlRpcHandler.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/TaskoXmlRpcHandler.java
@@ -19,6 +19,7 @@ import com.redhat.rhn.taskomatic.core.SchedulerKernel;
import org.quartz.SchedulerException;
import org.quartz.Trigger;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -487,4 +488,28 @@ public class TaskoXmlRpcHandler {
throws InvalidParamException {
return getRunStdErrorLog(null, runId, nBytes);
}
+
+ /**
+ * reinitialize all schedules
+ * meant to be called, when taskomatic has to be reinitialized
+ * (f.e. because of time shift)
+ * @return list of successfully reinitialized schedules
+ */
+ public List<TaskoSchedule> reinitializeAllSchedulesFromNow() {
+ List<TaskoSchedule> schedules = new ArrayList<TaskoSchedule>();
+ for (TaskoSchedule schedule : TaskoFactory.listFuture()) {
+ TaskoQuartzHelper.destroyJob(schedule.getOrgId(), schedule.getJobLabel());
+ schedule.setActiveFrom(new Date());
+ TaskoFactory.save(schedule);
+ try {
+ TaskoQuartzHelper.createJob(schedule);
+ schedules.add(schedule);
+ }
+ catch (InvalidParamException e) {
+ // Pech gehabt()
+ }
+ }
+ return schedules;
+
+ }
}
Show replies by date