java/code/src/com/redhat/rhn/common/util/test/ServletUtilsTest.java | 14 -- java/code/src/com/redhat/rhn/domain/server/test/ServerGroupTest.java | 4 java/code/src/com/redhat/rhn/frontend/action/rhnset/SetItemSelectionAction.java | 4 java/code/src/com/redhat/rhn/frontend/configuration/tags/ConfigChannelTag.java | 2 java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTag.java | 2 java/code/src/com/redhat/rhn/frontend/taglibs/list/SelectableColumnTag.java | 4 java/code/src/com/redhat/rhn/frontend/xmlrpc/XmlRpcServlet.java | 2 java/code/src/com/redhat/rhn/taskomatic/NoSuchBunchTaskException.java | 5 java/code/src/com/redhat/rhn/taskomatic/NoSuchTaskException.java | 5 java/code/src/com/redhat/rhn/taskomatic/NoSuchTaskoTriggerException.java | 5 java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java | 68 ++++++++++ java/code/src/com/redhat/rhn/taskomatic/TaskoRun.hbm.xml | 5 java/code/src/com/redhat/rhn/taskomatic/TaskoTemplate.java | 2 java/code/src/com/redhat/rhn/taskomatic/TaskoXmlRpcHandler.java | 24 ++- java/code/src/com/redhat/rhn/taskomatic/core/RhnJobFactory.java | 1 java/code/src/com/redhat/rhn/taskomatic/task/test/DailySummaryTest.java | 4 java/code/src/com/redhat/rhn/testing/RhnBaseTestCase.java | 3 17 files changed, 121 insertions(+), 33 deletions(-)
New commits: commit 18d30dfada31e3a37e613d8e27bc9a4442de635d Author: Tomas Lestach tlestach@redhat.com Date: Mon Jun 14 19:01:28 2010 +0200
deleting old task run history
diff --git a/java/code/src/com/redhat/rhn/taskomatic/NoSuchBunchTaskException.java b/java/code/src/com/redhat/rhn/taskomatic/NoSuchBunchTaskException.java index 54c4ac0..bb7b8b3 100644 --- a/java/code/src/com/redhat/rhn/taskomatic/NoSuchBunchTaskException.java +++ b/java/code/src/com/redhat/rhn/taskomatic/NoSuchBunchTaskException.java @@ -21,6 +21,11 @@ package com.redhat.rhn.taskomatic; */ public class NoSuchBunchTaskException extends Exception {
+ /** + * Comment for <code>serialVersionUID</code> + */ + private static final long serialVersionUID = -1611165320092152311L; + public NoSuchBunchTaskException(String message) { super(message); } diff --git a/java/code/src/com/redhat/rhn/taskomatic/NoSuchTaskException.java b/java/code/src/com/redhat/rhn/taskomatic/NoSuchTaskException.java index 6170012..f4703de 100644 --- a/java/code/src/com/redhat/rhn/taskomatic/NoSuchTaskException.java +++ b/java/code/src/com/redhat/rhn/taskomatic/NoSuchTaskException.java @@ -21,4 +21,9 @@ package com.redhat.rhn.taskomatic; */ public class NoSuchTaskException extends Exception {
+ /** + * Comment for <code>serialVersionUID</code> + */ + private static final long serialVersionUID = -1252459283237351146L; + } diff --git a/java/code/src/com/redhat/rhn/taskomatic/NoSuchTaskoTriggerException.java b/java/code/src/com/redhat/rhn/taskomatic/NoSuchTaskoTriggerException.java index 8feed42..196a34b 100644 --- a/java/code/src/com/redhat/rhn/taskomatic/NoSuchTaskoTriggerException.java +++ b/java/code/src/com/redhat/rhn/taskomatic/NoSuchTaskoTriggerException.java @@ -17,4 +17,9 @@ package com.redhat.rhn.taskomatic;
public class NoSuchTaskoTriggerException extends Exception {
+ /** + * Comment for <code>serialVersionUID</code> + */ + private static final long serialVersionUID = 1110623343705256957L; + } diff --git a/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java b/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java index 4f477aa..6a62706 100644 --- a/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java +++ b/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java @@ -16,9 +16,14 @@ package com.redhat.rhn.taskomatic;
import com.redhat.rhn.common.hibernate.HibernateFactory; +import com.redhat.rhn.taskomatic.core.SchedulerKernel;
import org.apache.log4j.Logger; +import org.quartz.SchedulerException; +import org.quartz.Trigger;
+import java.io.File; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -64,6 +69,10 @@ public class TaskoFactory extends HibernateFactory { singleton.saveObject(taskoRun); }
+ public static void delete(TaskoRun taskoRun) { + singleton.removeObject(taskoRun); + } + public static void save(TaskoTemplate taskoTemplate) { singleton.saveObject(taskoTemplate); } @@ -81,4 +90,63 @@ public class TaskoFactory extends HibernateFactory { return (List<TaskoTask>) singleton.listObjectsByNamedQuery( "TaskoTask.listTasks", new HashMap()); } + + public static List<TaskoRun> listRunsOlderThan(Integer orgId, Date limitTime) { + Map params = new HashMap(); + params.put("org_id", orgId); + params.put("limit_time", limitTime); + return (List<TaskoRun>) singleton.listObjectsByNamedQuery( + "TaskoRun.listRunsOlderThan", params); + } + + public static void clearRunHistory(Integer orgId, Date limitTime) { + try { + String[] triggerNames = SchedulerKernel.getScheduler(). + getTriggerNames(orgId.toString()); + // triggerName == jobLabel + for (String jobLabel : triggerNames) { + // delete history of runs + List<TaskoRun> runList = + TaskoFactory.listRunsOlderThan(orgId, limitTime); + for (TaskoRun run : runList) { + TaskoFactory.deleteLogFiles(run); + TaskoFactory.delete(run); + } + + // unschedule outdated jobs + Trigger trigger = SchedulerKernel.getScheduler().getTrigger( + jobLabel, orgId.toString()); + Date endTime = trigger.getEndTime(); + if ((endTime != null) && (endTime.before(limitTime))) { + SchedulerKernel.getScheduler().unscheduleJob(trigger.getName(), + orgId.toString()); + } + } + TaskoFactory.commitTransaction(); + } + catch (SchedulerException e) { + TaskoFactory.rollbackTransaction(); + } + } + + public static void deleteLogFiles(TaskoRun run) { + String out = run.getStdOutputPath(); + if ((out != null) && (!out.isEmpty())) { + deleteFile(out); + run.setStdOutputPath(null); + } + String err = run.getStdErrorPath(); + if ((err != null) && (!err.isEmpty())) { + deleteFile(err); + run.setStdErrorPath(null); + } + } + + private static boolean deleteFile(String fileName) { + File file = new File(fileName); + if (file.exists()) { + return file.delete(); + } + return false; + } } 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 07248ad..bb316e3 100644 --- a/java/code/src/com/redhat/rhn/taskomatic/TaskoRun.hbm.xml +++ b/java/code/src/com/redhat/rhn/taskomatic/TaskoRun.hbm.xml @@ -33,8 +33,11 @@ PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" </class>
<query name="TaskoRun.listRunsWithStatus"> - <![CDATA[from com.redhat.rhn.taskomatic.TaskoRun as r where r.template.task.id = :task_id AND (r.status = :status1 OR status = :status2)]]> + <![CDATA[FROM com.redhat.rhn.taskomatic.TaskoRun AS r WHERE r.template.task.id = :task_id AND (r.status = :status1 OR status = :status2)]]> </query>
+ <query name="TaskoRun.listRunsOlderThan"> + <![CDATA[FROM com.redhat.rhn.taskomatic.TaskoRun AS r WHERE r.orgId = :org_id and r.endTime < :limit_time]]> + </query>
</hibernate-mapping> diff --git a/java/code/src/com/redhat/rhn/taskomatic/TaskoXmlRpcHandler.java b/java/code/src/com/redhat/rhn/taskomatic/TaskoXmlRpcHandler.java index e0c9e1e..ca6d88e 100644 --- a/java/code/src/com/redhat/rhn/taskomatic/TaskoXmlRpcHandler.java +++ b/java/code/src/com/redhat/rhn/taskomatic/TaskoXmlRpcHandler.java @@ -75,11 +75,20 @@ public class TaskoXmlRpcHandler { params); }
- public int unscheduleBunch(Integer orgId, String triggerName) + public int unscheduleBunch(Integer orgId, String jobLabel) throws NoSuchTaskoTriggerException { try { - return SchedulerKernel.getScheduler().unscheduleJob(triggerName, - orgId.toString()) ? 1 : 0; + Trigger trigger = SchedulerKernel.getScheduler().getTrigger( + jobLabel, orgId.toString()); + if (false) { + Trigger newTrigger = (Trigger) trigger.clone(); + newTrigger.setEndTime(new Date()); + SchedulerKernel.getScheduler().rescheduleJob(jobLabel, orgId.toString(), newTrigger); + } + else { + SchedulerKernel.getScheduler().unscheduleJob(jobLabel, orgId.toString()); + } + return 1; } catch (SchedulerException e) { throw new NoSuchTaskoTriggerException(); @@ -88,7 +97,7 @@ public class TaskoXmlRpcHandler {
public Date scheduleSingleBunchRun(Integer orgId, String bunchName, String jobLabel, Map params) - throws ParseException, InvalidJobLabelException, NoSuchBunchTaskException { + throws InvalidJobLabelException, NoSuchBunchTaskException { try { JobDetail jobDetail = createJob(bunchName, orgId, jobLabel, params); SimpleTrigger st = new SimpleTrigger(jobLabel, orgId.toString(), 1, 1); @@ -110,7 +119,7 @@ public class TaskoXmlRpcHandler { } TaskoBunch bunch = TaskoFactory.lookupOrgBunchByName(bunchName); if (bunch == null) { - throw new NoSuchBunchTaskException("bunchName"); + throw new NoSuchBunchTaskException(bunchName); } // create job JobDetail jobDetail = new JobDetail(jobLabel, orgId.toString(), @@ -133,4 +142,9 @@ public class TaskoXmlRpcHandler { throw new NoSuchTaskoTriggerException(); } } + + public int clearRunHistory(Integer orgId, Date limitTime) { + TaskoFactory.clearRunHistory(orgId, limitTime); + return 1; + } } diff --git a/java/code/src/com/redhat/rhn/taskomatic/core/RhnJobFactory.java b/java/code/src/com/redhat/rhn/taskomatic/core/RhnJobFactory.java index 4eee7dd..4406c5d 100644 --- a/java/code/src/com/redhat/rhn/taskomatic/core/RhnJobFactory.java +++ b/java/code/src/com/redhat/rhn/taskomatic/core/RhnJobFactory.java @@ -17,7 +17,6 @@ package com.redhat.rhn.taskomatic.core; import com.redhat.rhn.common.hibernate.HibernateRuntimeException; import com.redhat.rhn.taskomatic.TaskoBunch; import com.redhat.rhn.taskomatic.TaskoFactory; -import com.redhat.rhn.taskomatic.TaskoTemplate;
import org.quartz.Job; import org.quartz.SchedulerException;
commit c2e950489de46dc6217d80c6ce4c705da566ab66 Author: Tomas Lestach tlestach@redhat.com Date: Mon Jun 14 19:00:02 2010 +0200
code cleanup
- removed exceptions from method definitions that aren't thrown - removed unused imports
diff --git a/java/code/src/com/redhat/rhn/common/util/test/ServletUtilsTest.java b/java/code/src/com/redhat/rhn/common/util/test/ServletUtilsTest.java index 5e8cbf2..19e8516 100644 --- a/java/code/src/com/redhat/rhn/common/util/test/ServletUtilsTest.java +++ b/java/code/src/com/redhat/rhn/common/util/test/ServletUtilsTest.java @@ -119,7 +119,7 @@ public class ServletUtilsTest extends MockObjectTestCase { assertEquals(expectedParams, actualParams); }
- public void testPathWithParamsValueUrlEncoding() throws UnsupportedEncodingException { + public void testPathWithParamsValueUrlEncoding() { Map params = new HashMap(); params.put("key", "some; value&"); String result = ServletUtils.pathWithParams("/foo", params); @@ -133,16 +133,14 @@ public class ServletUtilsTest extends MockObjectTestCase { assertEquals("/foo", result); }
- public void testPathWithParamsArrayValueUrlEncoding() - throws UnsupportedEncodingException { + public void testPathWithParamsArrayValueUrlEncoding() { Map params = new HashMap(); params.put("key", new Object[] {"value;", "value&", "$", "normal"}); String result = ServletUtils.pathWithParams("/foo", params); assertEquals("/foo?key=value%3B&key=value%26&key=%24&key=normal", result); }
- public void testPathWithParamsListValue() - throws UnsupportedEncodingException { + public void testPathWithParamsListValue() { Map params = new HashMap(); List values = new ArrayList(); values.add("value;"); @@ -155,16 +153,14 @@ public class ServletUtilsTest extends MockObjectTestCase {
}
- public void testPathWithParamsKeyUrlEncoding() - throws UnsupportedEncodingException { + public void testPathWithParamsKeyUrlEncoding() { Map params = new HashMap(); params.put("a;", "somevalue"); String result = ServletUtils.pathWithParams("/foo", params); assertEquals("/foo?a%3B=somevalue", result); }
- public void testPathWithParamsKeyArrayUrlEncoding() - throws UnsupportedEncodingException { + public void testPathWithParamsKeyArrayUrlEncoding() { Map params = new HashMap(); params.put("a;", new Object[] {"1", "2", "3"}); String result = ServletUtils.pathWithParams("/foo", params); diff --git a/java/code/src/com/redhat/rhn/domain/server/test/ServerGroupTest.java b/java/code/src/com/redhat/rhn/domain/server/test/ServerGroupTest.java index 10a13b7..119f8ce 100644 --- a/java/code/src/com/redhat/rhn/domain/server/test/ServerGroupTest.java +++ b/java/code/src/com/redhat/rhn/domain/server/test/ServerGroupTest.java @@ -32,7 +32,6 @@ import com.redhat.rhn.testing.UserTestUtils;
import org.hibernate.Session;
-import java.sql.SQLException; import java.util.HashMap; import java.util.Map;
@@ -104,8 +103,7 @@ public class ServerGroupTest extends RhnBaseTestCase {
private static EntitlementServerGroup updateGroupType(EntitlementServerGroup sg, - ServerGroupType type) - throws SQLException { + ServerGroupType type) {
WriteMode m = ModeFactory.getWriteMode("test_queries", "update_group_type"); diff --git a/java/code/src/com/redhat/rhn/frontend/action/rhnset/SetItemSelectionAction.java b/java/code/src/com/redhat/rhn/frontend/action/rhnset/SetItemSelectionAction.java index 02f074f..a6233cd 100644 --- a/java/code/src/com/redhat/rhn/frontend/action/rhnset/SetItemSelectionAction.java +++ b/java/code/src/com/redhat/rhn/frontend/action/rhnset/SetItemSelectionAction.java @@ -26,7 +26,6 @@ import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping;
-import java.io.IOException; import java.util.Set;
import javax.servlet.http.HttpServletRequest; @@ -107,8 +106,7 @@ public class SetItemSelectionAction extends RhnAction {
// Write an responseText with the current count from the set - private void writeResponse(HttpServletResponse resp, int setSize, String setLabel) - throws IOException { + private void writeResponse(HttpServletResponse resp, int setSize, String setLabel) { StringBuffer responseText = new StringBuffer(); LocalizationService ls = LocalizationService.getInstance(); if (RhnSetDecl.SYSTEMS.getLabel().equals(setLabel)) { diff --git a/java/code/src/com/redhat/rhn/frontend/configuration/tags/ConfigChannelTag.java b/java/code/src/com/redhat/rhn/frontend/configuration/tags/ConfigChannelTag.java index 7113f84..e58807a 100644 --- a/java/code/src/com/redhat/rhn/frontend/configuration/tags/ConfigChannelTag.java +++ b/java/code/src/com/redhat/rhn/frontend/configuration/tags/ConfigChannelTag.java @@ -120,7 +120,7 @@ public class ConfigChannelTag extends TagSupport { /** * Checks to see if no invalid values are specified */ - private boolean checkType() throws JspException { + private boolean checkType() { try { ConfigChannelType.lookup(type); return true; diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTag.java b/java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTag.java index 51a126b..38061aa 100644 --- a/java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTag.java +++ b/java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTag.java @@ -889,7 +889,7 @@ public class ListDisplayTag extends BodyTagSupport { buf.append(input.render() + "\n"); }
- private void renderViewAllLink(JspWriter out) throws IOException { + private void renderViewAllLink(JspWriter out) {
/* diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/list/SelectableColumnTag.java b/java/code/src/com/redhat/rhn/frontend/taglibs/list/SelectableColumnTag.java index 6f9d2b9..2222bce 100644 --- a/java/code/src/com/redhat/rhn/frontend/taglibs/list/SelectableColumnTag.java +++ b/java/code/src/com/redhat/rhn/frontend/taglibs/list/SelectableColumnTag.java @@ -380,7 +380,7 @@ public class SelectableColumnTag extends TagSupport { ListTagUtil.write(pageContext, "" />\n"); }
- private boolean isSelected() throws JspException { + private boolean isSelected() { if (!StringUtils.isBlank(selectExpr)) { return selectExpr.equalsIgnoreCase("true"); } @@ -394,7 +394,7 @@ public class SelectableColumnTag extends TagSupport { return selections != null && selections.containsKey(valueExpr); }
- private boolean isDisabled() throws JspException { + private boolean isDisabled() { if (disabledExpr != null && disabledExpr.equalsIgnoreCase("true")) { return true; } diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/XmlRpcServlet.java b/java/code/src/com/redhat/rhn/frontend/xmlrpc/XmlRpcServlet.java index 24d52f8..a60444c 100644 --- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/XmlRpcServlet.java +++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/XmlRpcServlet.java @@ -69,7 +69,7 @@ public class XmlRpcServlet extends HttpServlet {
private void passControl(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { + throws IOException { response.sendRedirect("/rhn/apidoc/index.jsp"); }
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/test/DailySummaryTest.java b/java/code/src/com/redhat/rhn/taskomatic/task/test/DailySummaryTest.java index a957665..375a4a1 100644 --- a/java/code/src/com/redhat/rhn/taskomatic/task/test/DailySummaryTest.java +++ b/java/code/src/com/redhat/rhn/taskomatic/task/test/DailySummaryTest.java @@ -20,8 +20,6 @@ import com.redhat.rhn.taskomatic.task.DailySummary; import com.redhat.rhn.testing.RhnBaseTestCase; import com.redhat.rhn.testing.UserTestUtils;
-import org.quartz.JobExecutionException; - import java.util.HashMap; import java.util.Map;
@@ -76,7 +74,7 @@ public class DailySummaryTest extends RhnBaseTestCase { return; }
- public void aTestExcecute() throws JobExecutionException { + public void aTestExcecute() { // using jesusr_redhat orgid for this test. Run only on hosted. // TODO: how do we create good test data for something like this? return; diff --git a/java/code/src/com/redhat/rhn/testing/RhnBaseTestCase.java b/java/code/src/com/redhat/rhn/testing/RhnBaseTestCase.java index 52f2780..5cc8325 100644 --- a/java/code/src/com/redhat/rhn/testing/RhnBaseTestCase.java +++ b/java/code/src/com/redhat/rhn/testing/RhnBaseTestCase.java @@ -27,7 +27,6 @@ import org.hibernate.HibernateException; import org.hibernate.Session;
import java.io.File; -import java.io.IOException; import java.io.Serializable; import java.lang.reflect.InvocationTargetException; import java.text.DateFormat; @@ -268,7 +267,7 @@ public abstract class RhnBaseTestCase extends TestCase { log.setLevel(Level.ERROR); }
- protected static void createDirIfNotExists(File dir) throws IOException { + protected static void createDirIfNotExists(File dir) { String error = "Could not create the following directory:[" + dir.getPath() + "] . Please create that directory before proceeding with the tests";
commit 191aca930aaccb35bd67ac8911f473d4dea954a5 Author: Tomas Lestach tlestach@redhat.com Date: Mon Jun 14 10:00:06 2010 +0200
fix for another assignment without effect
diff --git a/java/code/src/com/redhat/rhn/taskomatic/TaskoTemplate.java b/java/code/src/com/redhat/rhn/taskomatic/TaskoTemplate.java index 62850b0..a308fe1 100644 --- a/java/code/src/com/redhat/rhn/taskomatic/TaskoTemplate.java +++ b/java/code/src/com/redhat/rhn/taskomatic/TaskoTemplate.java @@ -128,7 +128,7 @@ public class TaskoTemplate { * @param modifiedIn The modified to set. */ public void setModified(Date modifiedIn) { - this.modified = modified; + this.modified = modifiedIn; }
spacewalk-commits@lists.fedorahosted.org