java/code/src/com/redhat/rhn/domain/kickstart/KickstartData.java | 2
java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java | 2
java/code/src/com/redhat/rhn/taskomatic/TaskoJob.java | 3
java/code/src/com/redhat/rhn/taskomatic/TaskoRun.java | 62
+++++----
java/code/src/com/redhat/rhn/taskomatic/task/CleanCurrentAlerts.java | 6
java/code/src/com/redhat/rhn/taskomatic/task/CobblerSyncTask.java | 13 -
java/code/src/com/redhat/rhn/taskomatic/task/CompareConfigFilesTask.java | 6
java/code/src/com/redhat/rhn/taskomatic/task/DailySummary.java | 5
java/code/src/com/redhat/rhn/taskomatic/task/PackageCleanup.java | 52
++-----
java/code/src/com/redhat/rhn/taskomatic/task/RepoSyncTask.java | 25 ---
java/code/src/com/redhat/rhn/taskomatic/task/RhnExtCmdJob.java | 2
java/code/src/com/redhat/rhn/taskomatic/task/SandboxCleanup.java | 6
java/code/src/com/redhat/rhn/taskomatic/task/SatelliteCertificateCheck.java | 6
java/code/src/com/redhat/rhn/taskomatic/task/SessionCleanup.java | 6
java/code/src/com/redhat/rhn/taskomatic/task/SummaryPopulation.java | 5
java/code/src/com/redhat/rhn/taskomatic/task/SynchProbeState.java | 6
java/code/src/com/redhat/rhn/taskomatic/task/test/PackageCleanupTest.java | 13 -
schema/spacewalk/common/data/rhnTaskoBunch.sql | 29 ++++
schema/spacewalk/common/data/rhnTaskoTemplate.sql | 68
+++++++++-
schema/spacewalk/common/tables/rhnTaskoRun.sql | 2
schema/spacewalk/common/tables/rhnTaskoTemplate.sql | 2
21 files changed, 191 insertions(+), 130 deletions(-)
New commits:
commit 069d64e9f439757422c49489cf0076da97847e76
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Fri Jul 9 14:30:50 2010 +0200
migrate PackageCleanup
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/PackageCleanup.java
b/java/code/src/com/redhat/rhn/taskomatic/task/PackageCleanup.java
index 4589f3e..1c1e9c7 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/PackageCleanup.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/PackageCleanup.java
@@ -32,39 +32,29 @@ import java.util.Map;
/**
* Cleans up orphaned packages
- *
+ *
* @version $Rev $
*/
-public class PackageCleanup extends SingleThreadedTestableTask {
-
+public class PackageCleanup extends RhnJavaJob {
+
/**
* Used to log stats in the RHNDAEMONSTATE table
- */
+ */
public static final String DISPLAY_NAME = "package_cleanup";
-
- private static Logger logger = Logger.getLogger(PackageCleanup.class);
+
+ private Logger logger = getLogger(PackageCleanup.class);
/**
* {@inheritDoc}
*/
- public void execute(JobExecutionContext ctx, boolean testContext)
- throws JobExecutionException {
+ public void execute(JobExecutionContext ctx) throws JobExecutionException {
try {
- String pkgDir = null;
- if (testContext) {
- pkgDir = "/tmp";
- }
- else {
- pkgDir = Config.get().getString("web.mount_point");
- }
-
+ String pkgDir = Config.get().getString("web.mount_point");
+
// Retrieve list of orpahned packages
List candidates = findCandidates();
- if (testContext) {
- assert (candidates.size() == 1);
- }
-
+
// Bail if no work to do
if (candidates == null || candidates.size() == 0) {
if (logger.isDebugEnabled()) {
@@ -74,7 +64,7 @@ public class PackageCleanup extends SingleThreadedTestableTask {
else if (logger.isDebugEnabled()) {
logger.debug("Found " + candidates.size() + " orphaned
pacakges");
}
-
+
// Delete them from the filesystem
for (Iterator iter = candidates.iterator(); iter.hasNext();) {
Map row = (Map) iter.next();
@@ -82,15 +72,12 @@ public class PackageCleanup extends SingleThreadedTestableTask {
if (logger.isDebugEnabled()) {
logger.debug("Deleting package " + path);
}
- if (testContext) {
- assert (path != null);
- }
if (path == null) {
continue;
}
- deletePackage(pkgDir, path, testContext);
+ deletePackage(pkgDir, path);
}
-
+
// Reset the queue (table)
resetQueue();
}
@@ -99,18 +86,15 @@ public class PackageCleanup extends SingleThreadedTestableTask {
throw new JobExecutionException(e);
}
}
-
+
private void resetQueue() {
- WriteMode update = ModeFactory.getWriteMode(TaskConstants.MODE_NAME,
+ WriteMode update = ModeFactory.getWriteMode(TaskConstants.MODE_NAME,
TaskConstants.TASK_QUERY_PKGCLEANUP_RESET_QUEUE);
update.executeUpdate(Collections.EMPTY_MAP);
}
-
- private void deletePackage(String pkgDir, String path, boolean testContext) {
+
+ private void deletePackage(String pkgDir, String path) {
File f = new File(pkgDir, path);
- if (testContext) {
- assert (f.exists());
- }
if (f.exists() && f.canWrite() && !f.isDirectory()) {
f.delete();
if (logger.isDebugEnabled()) {
@@ -135,7 +119,7 @@ public class PackageCleanup extends SingleThreadedTestableTask {
logger.error(f.getAbsoluteFile() + " not found");
}
}
-
+
private List findCandidates() {
SelectMode query = ModeFactory.getMode(TaskConstants.MODE_NAME,
TaskConstants.TASK_QUERY_PKGCLEANUP_FIND_CANDIDATES);
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/test/PackageCleanupTest.java
b/java/code/src/com/redhat/rhn/taskomatic/task/test/PackageCleanupTest.java
index 7560bbd..54a5bd9 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/test/PackageCleanupTest.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/test/PackageCleanupTest.java
@@ -16,7 +16,7 @@ package com.redhat.rhn.taskomatic.task.test;
import com.redhat.rhn.common.hibernate.HibernateFactory;
import com.redhat.rhn.taskomatic.task.PackageCleanup;
-import com.redhat.rhn.taskomatic.task.TestableTask;
+import com.redhat.rhn.taskomatic.task.RhnJob;
import com.redhat.rhn.testing.RhnBaseTestCase;
import org.hibernate.Session;
@@ -25,9 +25,9 @@ import java.io.File;
import java.sql.Statement;
public class PackageCleanupTest extends RhnBaseTestCase {
-
-
-
+
+
+
protected void setUp() throws Exception {
Session session = HibernateFactory.getSession();
StringBuffer sql = new StringBuffer();
@@ -48,8 +48,7 @@ public class PackageCleanupTest extends RhnBaseTestCase {
}
public void testPackageCleanup() throws Exception {
- TestableTask task = new PackageCleanup();
- task.execute(null, true);
-
+ RhnJob task = new PackageCleanup();
+ task.execute(null);
}
}
diff --git a/schema/spacewalk/common/data/rhnTaskoBunch.sql
b/schema/spacewalk/common/data/rhnTaskoBunch.sql
index 2e53b28..ef0aa0a 100644
--- a/schema/spacewalk/common/data/rhnTaskoBunch.sql
+++ b/schema/spacewalk/common/data/rhnTaskoBunch.sql
@@ -47,4 +47,7 @@ INSERT INTO rhnTaskoBunch (id, name, description, org_bunch,
active_from)
INSERT INTO rhnTaskoBunch (id, name, description, org_bunch, active_from)
VALUES (rhn_tasko_bunch_id_seq.nextval, 'repo-sync-bunch', 'Used
for syncing repos to a channel', '', sysdate);
+INSERT INTO rhnTaskoBunch (id, name, description, org_bunch, active_from)
+ VALUES (rhn_tasko_bunch_id_seq.nextval, 'package-cleanup-bunch',
'Cleans up orphaned packages', '', sysdate);
+
commit;
diff --git a/schema/spacewalk/common/data/rhnTaskoTemplate.sql
b/schema/spacewalk/common/data/rhnTaskoTemplate.sql
index 75e0eeb..e6ee47a 100644
--- a/schema/spacewalk/common/data/rhnTaskoTemplate.sql
+++ b/schema/spacewalk/common/data/rhnTaskoTemplate.sql
@@ -98,4 +98,11 @@ INSERT INTO rhnTaskoTemplate (id, bunch_id, task_id, ordering,
start_if)
0,
'');
+INSERT INTO rhnTaskoTemplate (id, bunch_id, task_id, ordering, start_if)
+ VALUES (rhn_tasko_template_id_seq.nextval,
+ (SELECT id FROM rhnTaskoBunch WHERE
name='package-cleanup-bunch'),
+ (SELECT id FROM rhnTaskoTask WHERE
name='package-cleanup'),
+ 0,
+ '');
+
commit;
commit c8ede4a711f57e4f1a65d650388f81f159ba2502
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Fri Jul 9 14:17:40 2010 +0200
migrate RepoSyncTask
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/RepoSyncTask.java
b/java/code/src/com/redhat/rhn/taskomatic/task/RepoSyncTask.java
index 0836dcf..c0e7fba 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/RepoSyncTask.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/RepoSyncTask.java
@@ -22,13 +22,10 @@ import com.redhat.rhn.domain.task.Task;
import com.redhat.rhn.domain.task.TaskFactory;
import org.apache.log4j.Logger;
-import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
-import java.io.IOException;
import java.util.ArrayList;
-import java.util.Date;
import java.util.List;
@@ -39,14 +36,14 @@ import java.util.List;
*
* @version $Rev$
*/
-public class RepoSyncTask implements Job {
+public class RepoSyncTask extends RhnExtCmdJob {
/**
* Used to log stats in the RHNDAEMONSTATE table
*/
public static final String DISPLAY_NAME = "repo_sync";
- private static Logger log = Logger.getLogger(RepoSyncTask.class);
+ private Logger log = getLogger(RepoSyncTask.class);
/**
* Default constructor
@@ -80,22 +77,8 @@ public class RepoSyncTask implements Job {
continue;
}
TaskFactory.removeTask(task);
-
- try {
- Process p = Runtime.getRuntime().exec(
- getSyncCommand(src).toArray(new String[0]));
- src.setLastSynced(new Date());
- int chr = p.getInputStream().read();
- while (chr != -1) {
- chr = p.getInputStream().read();
-
- }
-
- }
- catch (IOException e) {
- log.fatal(e.getMessage());
- e.printStackTrace();
- }
+
+ executeExtCmd(getSyncCommand(src).toArray(new String[0]));
}
}
diff --git a/schema/spacewalk/common/data/rhnTaskoBunch.sql
b/schema/spacewalk/common/data/rhnTaskoBunch.sql
index 5b0736b..2e53b28 100644
--- a/schema/spacewalk/common/data/rhnTaskoBunch.sql
+++ b/schema/spacewalk/common/data/rhnTaskoBunch.sql
@@ -44,4 +44,7 @@ INSERT INTO rhnTaskoBunch (id, name, description, org_bunch,
active_from)
INSERT INTO rhnTaskoBunch (id, name, description, org_bunch, active_from)
VALUES (rhn_tasko_bunch_id_seq.nextval, 'sandbox-cleanup-bunch',
'Clean up sandbox', '', sysdate);
+INSERT INTO rhnTaskoBunch (id, name, description, org_bunch, active_from)
+ VALUES (rhn_tasko_bunch_id_seq.nextval, 'repo-sync-bunch', 'Used
for syncing repos to a channel', '', sysdate);
+
commit;
diff --git a/schema/spacewalk/common/data/rhnTaskoTemplate.sql
b/schema/spacewalk/common/data/rhnTaskoTemplate.sql
index d35cd10..75e0eeb 100644
--- a/schema/spacewalk/common/data/rhnTaskoTemplate.sql
+++ b/schema/spacewalk/common/data/rhnTaskoTemplate.sql
@@ -91,4 +91,11 @@ INSERT INTO rhnTaskoTemplate (id, bunch_id, task_id, ordering,
start_if)
0,
'');
+INSERT INTO rhnTaskoTemplate (id, bunch_id, task_id, ordering, start_if)
+ VALUES (rhn_tasko_template_id_seq.nextval,
+ (SELECT id FROM rhnTaskoBunch WHERE
name='repo-sync-bunch'),
+ (SELECT id FROM rhnTaskoTask WHERE name='repo-sync'),
+ 0,
+ '');
+
commit;
commit 66a29f782f4d00cd3d87cfba2b4370f5ba94b505
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Thu Jul 8 18:11:39 2010 +0200
migrate SandboxCleanup
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/SandboxCleanup.java
b/java/code/src/com/redhat/rhn/taskomatic/task/SandboxCleanup.java
index 088bac2..7cc26cf 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/SandboxCleanup.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/SandboxCleanup.java
@@ -32,19 +32,19 @@ import java.util.Map;
* SandboxCleanup
* @version $Rev$
*/
-public class SandboxCleanup extends SingleThreadedTask {
+public class SandboxCleanup extends RhnJavaJob {
/**
* Used to log stats in the RHNDAEMONSTATE table
*/
public static final String DISPLAY_NAME = "sandbox_cleanup";
- private static Logger log = Logger.getLogger(SandboxCleanup.class);
+ private Logger log = getLogger(SandboxCleanup.class);
/**
* {@inheritDoc}
*/
- protected void run(JobExecutionContext arg0In)
+ public void execute(JobExecutionContext arg0In)
throws JobExecutionException {
int sandboxLifetime = Config.get().getInt("sandbox_lifetime"); //in
days
diff --git a/schema/spacewalk/common/data/rhnTaskoBunch.sql
b/schema/spacewalk/common/data/rhnTaskoBunch.sql
index 9dad0f4..5b0736b 100644
--- a/schema/spacewalk/common/data/rhnTaskoBunch.sql
+++ b/schema/spacewalk/common/data/rhnTaskoBunch.sql
@@ -41,4 +41,7 @@ INSERT INTO rhnTaskoBunch (id, name, description, org_bunch,
active_from)
INSERT INTO rhnTaskoBunch (id, name, description, org_bunch, active_from)
VALUES (rhn_tasko_bunch_id_seq.nextval, 'cert-check-bunch',
'Satellite certificate check', '', sysdate);
+INSERT INTO rhnTaskoBunch (id, name, description, org_bunch, active_from)
+ VALUES (rhn_tasko_bunch_id_seq.nextval, 'sandbox-cleanup-bunch',
'Clean up sandbox', '', sysdate);
+
commit;
diff --git a/schema/spacewalk/common/data/rhnTaskoTemplate.sql
b/schema/spacewalk/common/data/rhnTaskoTemplate.sql
index df2b410..d35cd10 100644
--- a/schema/spacewalk/common/data/rhnTaskoTemplate.sql
+++ b/schema/spacewalk/common/data/rhnTaskoTemplate.sql
@@ -84,4 +84,11 @@ INSERT INTO rhnTaskoTemplate (id, bunch_id, task_id, ordering,
start_if)
0,
'');
+INSERT INTO rhnTaskoTemplate (id, bunch_id, task_id, ordering, start_if)
+ VALUES (rhn_tasko_template_id_seq.nextval,
+ (SELECT id FROM rhnTaskoBunch WHERE
name='sandbox-cleanup-bunch'),
+ (SELECT id FROM rhnTaskoTask WHERE
name='sandbox-cleanup'),
+ 0,
+ '');
+
commit;
commit 52a70acadc0babc2738d6bd15940c488f0b7e833
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Thu Jul 8 17:54:22 2010 +0200
migrate SatelliteCertificateCheck
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/SatelliteCertificateCheck.java
b/java/code/src/com/redhat/rhn/taskomatic/task/SatelliteCertificateCheck.java
index f7689c5..1030537 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/SatelliteCertificateCheck.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/SatelliteCertificateCheck.java
@@ -31,16 +31,16 @@ import org.quartz.JobExecutionException;
* SatelliteCertificateCheck
* @version $Rev$
*/
-public class SatelliteCertificateCheck extends SingleThreadedTask {
+public class SatelliteCertificateCheck extends RhnJavaJob {
- private static Logger log = Logger.getLogger(SatelliteCertificateCheck.class);
+ private Logger log = getLogger(SatelliteCertificateCheck.class);
public static final String DISPLAY_NAME = "satcert_check";
/**
* {@inheritDoc}
*/
- protected void run(JobExecutionContext ctx) throws JobExecutionException {
+ public void execute(JobExecutionContext ctx) throws JobExecutionException {
LocalizationService ls = LocalizationService.getInstance();
CertificateManager man = CertificateManager.getInstance();
diff --git a/schema/spacewalk/common/data/rhnTaskoBunch.sql
b/schema/spacewalk/common/data/rhnTaskoBunch.sql
index 4afdc88..9dad0f4 100644
--- a/schema/spacewalk/common/data/rhnTaskoBunch.sql
+++ b/schema/spacewalk/common/data/rhnTaskoBunch.sql
@@ -38,4 +38,7 @@ INSERT INTO rhnTaskoBunch (id, name, description, org_bunch,
active_from)
INSERT INTO rhnTaskoBunch (id, name, description, org_bunch, active_from)
VALUES (rhn_tasko_bunch_id_seq.nextval, 'session-cleanup-bunch',
'Deletes expired rows from the PXTSessions table to keep it from growing too
large', '', sysdate);
+INSERT INTO rhnTaskoBunch (id, name, description, org_bunch, active_from)
+ VALUES (rhn_tasko_bunch_id_seq.nextval, 'cert-check-bunch',
'Satellite certificate check', '', sysdate);
+
commit;
diff --git a/schema/spacewalk/common/data/rhnTaskoTemplate.sql
b/schema/spacewalk/common/data/rhnTaskoTemplate.sql
index ce8df39..df2b410 100644
--- a/schema/spacewalk/common/data/rhnTaskoTemplate.sql
+++ b/schema/spacewalk/common/data/rhnTaskoTemplate.sql
@@ -77,4 +77,11 @@ INSERT INTO rhnTaskoTemplate (id, bunch_id, task_id, ordering,
start_if)
0,
'');
+INSERT INTO rhnTaskoTemplate (id, bunch_id, task_id, ordering, start_if)
+ VALUES (rhn_tasko_template_id_seq.nextval,
+ (SELECT id FROM rhnTaskoBunch WHERE
name='cert-check-bunch'),
+ (SELECT id FROM rhnTaskoTask WHERE
name='sat-cert-check'),
+ 0,
+ '');
+
commit;
commit 540e205ec77e85ce838452fc6b3f1a451497ef7e
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Thu Jul 8 17:25:21 2010 +0200
migrate SessionCleanup
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/SessionCleanup.java
b/java/code/src/com/redhat/rhn/taskomatic/task/SessionCleanup.java
index e5cd421..4c34bbb 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/SessionCleanup.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/SessionCleanup.java
@@ -32,19 +32,19 @@ import java.util.Map;
* growing too large.
* @version $Rev$
*/
-public class SessionCleanup extends SingleThreadedTask {
+public class SessionCleanup extends RhnJavaJob {
/**
* Used to log stats in the RHNDAEMONSTATE table
*/
public static final String DISPLAY_NAME = "session_cleanup";
- private static Logger log = Logger.getLogger(SessionCleanup.class);
+ private Logger log = getLogger(SessionCleanup.class);
/**
* {@inheritDoc}
*/
- protected void run(JobExecutionContext context)
+ public void execute(JobExecutionContext context)
throws JobExecutionException {
Config c = Config.get();
Map inParams = new HashMap();
diff --git a/schema/spacewalk/common/data/rhnTaskoBunch.sql
b/schema/spacewalk/common/data/rhnTaskoBunch.sql
index efe5b17..4afdc88 100644
--- a/schema/spacewalk/common/data/rhnTaskoBunch.sql
+++ b/schema/spacewalk/common/data/rhnTaskoBunch.sql
@@ -35,4 +35,7 @@ INSERT INTO rhnTaskoBunch (id, name, description, org_bunch,
active_from)
INSERT INTO rhnTaskoBunch (id, name, description, org_bunch, active_from)
VALUES (rhn_tasko_bunch_id_seq.nextval, 'sync-probe-bunch',
'Calls the synch probe state proc', '', sysdate);
+INSERT INTO rhnTaskoBunch (id, name, description, org_bunch, active_from)
+ VALUES (rhn_tasko_bunch_id_seq.nextval, 'session-cleanup-bunch',
'Deletes expired rows from the PXTSessions table to keep it from growing too
large', '', sysdate);
+
commit;
diff --git a/schema/spacewalk/common/data/rhnTaskoTemplate.sql
b/schema/spacewalk/common/data/rhnTaskoTemplate.sql
index 6525aad..ce8df39 100644
--- a/schema/spacewalk/common/data/rhnTaskoTemplate.sql
+++ b/schema/spacewalk/common/data/rhnTaskoTemplate.sql
@@ -70,4 +70,11 @@ INSERT INTO rhnTaskoTemplate (id, bunch_id, task_id, ordering,
start_if)
0,
'');
+INSERT INTO rhnTaskoTemplate (id, bunch_id, task_id, ordering, start_if)
+ VALUES (rhn_tasko_template_id_seq.nextval,
+ (SELECT id FROM rhnTaskoBunch WHERE
name='session-cleanup-bunch'),
+ (SELECT id FROM rhnTaskoTask WHERE
name='session-cleanup'),
+ 0,
+ '');
+
commit;
commit 59900c0037ba8b4148d5b58dc5739465fcc5578d
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Thu Jul 8 17:09:21 2010 +0200
migrate SynchProbeState
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/SynchProbeState.java
b/java/code/src/com/redhat/rhn/taskomatic/task/SynchProbeState.java
index 1da0cf4..f9a0efb 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/SynchProbeState.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/SynchProbeState.java
@@ -30,19 +30,19 @@ import java.util.HashMap;
* @version $Rev $
*/
-public class SynchProbeState extends SingleThreadedTask {
+public class SynchProbeState extends RhnJavaJob {
/**
* Used to log stats in the RHNDAEMONSTATE table
*/
public static final String DISPLAY_NAME = "synch_probe_state";
- private static Logger logger = Logger.getLogger(SynchProbeState.class);
+ private Logger logger = getLogger(SynchProbeState.class);
/**
* {@inheritDoc}
*/
- protected void run(JobExecutionContext context) throws JobExecutionException {
+ public void execute(JobExecutionContext context) throws JobExecutionException {
try {
if (logger.isDebugEnabled()) {
logger.debug("Starting probe state sync");
diff --git a/schema/spacewalk/common/data/rhnTaskoBunch.sql
b/schema/spacewalk/common/data/rhnTaskoBunch.sql
index edb02fb..efe5b17 100644
--- a/schema/spacewalk/common/data/rhnTaskoBunch.sql
+++ b/schema/spacewalk/common/data/rhnTaskoBunch.sql
@@ -32,4 +32,7 @@ INSERT INTO rhnTaskoBunch (id, name, description, org_bunch,
active_from)
INSERT INTO rhnTaskoBunch (id, name, description, org_bunch, active_from)
VALUES (rhn_tasko_bunch_id_seq.nextval, 'clean-alerts-bunch',
'Clears current monitoring alerts', '', sysdate);
+INSERT INTO rhnTaskoBunch (id, name, description, org_bunch, active_from)
+ VALUES (rhn_tasko_bunch_id_seq.nextval, 'sync-probe-bunch',
'Calls the synch probe state proc', '', sysdate);
+
commit;
diff --git a/schema/spacewalk/common/data/rhnTaskoTemplate.sql
b/schema/spacewalk/common/data/rhnTaskoTemplate.sql
index 817e1d1..6525aad 100644
--- a/schema/spacewalk/common/data/rhnTaskoTemplate.sql
+++ b/schema/spacewalk/common/data/rhnTaskoTemplate.sql
@@ -63,4 +63,11 @@ INSERT INTO rhnTaskoTemplate (id, bunch_id, task_id, ordering,
start_if)
0,
'');
+INSERT INTO rhnTaskoTemplate (id, bunch_id, task_id, ordering, start_if)
+ VALUES (rhn_tasko_template_id_seq.nextval,
+ (SELECT id FROM rhnTaskoBunch WHERE
name='sync-probe-bunch'),
+ (SELECT id FROM rhnTaskoTask WHERE
name='sync-probe-state'),
+ 0,
+ '');
+
commit;
commit ec5284bf633bcc3710269012af77da9bebd9d3c0
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Thu Jul 8 16:29:49 2010 +0200
handle commits in another way
after a task finishes, rollback all uncommited changes
diff --git a/java/code/src/com/redhat/rhn/taskomatic/TaskoJob.java
b/java/code/src/com/redhat/rhn/taskomatic/TaskoJob.java
index 4be4505..620ed68 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/TaskoJob.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/TaskoJob.java
@@ -110,7 +110,6 @@ public class TaskoJob implements Job {
TaskoRun taskRun = new TaskoRun(schedule.getOrgId(), template,
scheduleId);
TaskoFactory.save(taskRun);
taskRun.execute(context);
- TaskoFactory.commitTransaction();
log.debug(task.getName() +
" (" + schedule.getJobLabel() + ") ... " +
taskRun.getStatus());
previousRun = taskRun;
diff --git a/java/code/src/com/redhat/rhn/taskomatic/TaskoRun.java
b/java/code/src/com/redhat/rhn/taskomatic/TaskoRun.java
index 58cd822..e7262c9 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/TaskoRun.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/TaskoRun.java
@@ -117,7 +117,12 @@ public class TaskoRun implements Job {
}
try {
+ TaskoFactory.commitTransaction();
job.execute(context);
+ // rollback everything, what the application changed and didn't
committed
+ if (TaskoFactory.getSession().getTransaction().isActive()) {
+ TaskoFactory.rollbackTransaction();
+ }
saveStatus(STATUS_FINISHED);
}
catch (Exception e) {
@@ -125,6 +130,7 @@ public class TaskoRun implements Job {
saveStatus(STATUS_FAILED);
}
finished(job);
+ TaskoFactory.commitTransaction();
}
private void saveStdOutputLog(String out) {
commit e73e9a3ba8039be92dc6e87ae3d8498ba12ab953
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Thu Jul 8 16:28:32 2010 +0200
change comparism to be able to compare nulls
cannot call equals to null object
diff --git a/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java
b/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java
index 91986b7..58ca02d 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java
@@ -277,7 +277,7 @@ public class TaskoFactory extends HibernateFactory {
List<TaskoRun> runs = listRunsBySchedule(scheduleId.longValue());
// verify it belongs to the right org
for (Iterator<TaskoRun> iter = runs.iterator(); iter.hasNext();) {
- if (!iter.next().getOrgId().equals(orgId)) {
+ if (iter.next().getOrgId() != orgId) {
iter.remove();
}
}
commit 0a0b60d2d6370a85117a3a7af118a439f7d5bc2b
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Thu Jul 8 16:21:32 2010 +0200
CobblerSyncTask fix
taskomatic shall use taskomatic_user to authorize against cobbler
diff --git a/java/code/src/com/redhat/rhn/domain/kickstart/KickstartData.java
b/java/code/src/com/redhat/rhn/domain/kickstart/KickstartData.java
index c19e7ae..18234cf 100644
--- a/java/code/src/com/redhat/rhn/domain/kickstart/KickstartData.java
+++ b/java/code/src/com/redhat/rhn/domain/kickstart/KickstartData.java
@@ -1582,7 +1582,7 @@ public class KickstartData {
* @return the registration type
*/
public RegistrationType getRegistrationType(User user) {
- Profile prof = getCobblerObject(user);
+ Profile prof = getCobblerObject(null);
if (prof == null) {
return RegistrationType.getDefault();
}
commit 96b678368bd292aac861b745f42cefed0a491c88
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Fri Jul 2 14:33:46 2010 +0200
migrate SummaryPopulation & DailySummary
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/DailySummary.java
b/java/code/src/com/redhat/rhn/taskomatic/task/DailySummary.java
index dffafb0..6d793bd 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/DailySummary.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/DailySummary.java
@@ -32,7 +32,6 @@ import com.redhat.rhn.frontend.dto.ReportingUser;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.time.StopWatch;
import org.apache.log4j.Logger;
-import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
@@ -52,7 +51,7 @@ import java.util.TreeMap;
* queues org emails, mails queued emails, then dequeues the emails.
* @version $Rev$
*/
-public class DailySummary implements Job {
+public class DailySummary extends RhnJavaJob {
/**
* Used to log stats in the RHNDAEMONSTATE table
@@ -65,7 +64,7 @@ public class DailySummary implements Job {
private Mail mail;
- private static Logger log = Logger.getLogger(DailySummary.class);
+ private Logger log = getLogger(DailySummary.class);
/**
* Default constructor
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/SummaryPopulation.java
b/java/code/src/com/redhat/rhn/taskomatic/task/SummaryPopulation.java
index 999dc8d..55cc07c 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/SummaryPopulation.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/SummaryPopulation.java
@@ -23,7 +23,6 @@ import com.redhat.rhn.common.db.datasource.WriteMode;
import com.redhat.rhn.frontend.dto.OrgIdWrapper;
import org.apache.log4j.Logger;
-import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
@@ -39,14 +38,14 @@ import java.util.Set;
* daily summary email
* @version $Rev$
*/
-public class SummaryPopulation implements Job {
+public class SummaryPopulation extends RhnJavaJob {
/**
* Used to log stats in the RHNDAEMONSTATE table
*/
public static final String DISPLAY_NAME = "summary_populator";
- private static Logger log = Logger.getLogger(SummaryPopulation.class);
+ private Logger log = getLogger(SummaryPopulation.class);
/**
* {@inheritDoc}
diff --git a/schema/spacewalk/common/data/rhnTaskoBunch.sql
b/schema/spacewalk/common/data/rhnTaskoBunch.sql
index 6516af9..edb02fb 100644
--- a/schema/spacewalk/common/data/rhnTaskoBunch.sql
+++ b/schema/spacewalk/common/data/rhnTaskoBunch.sql
@@ -15,7 +15,7 @@
INSERT INTO rhnTaskoBunch (id, name, description, org_bunch, active_from)
- VALUES (rhn_tasko_bunch_id_seq.nextval, 'daily-status',
'daily-status description', '', sysdate);
+ VALUES (rhn_tasko_bunch_id_seq.nextval, 'daily-status-bunch',
'Sends daily report', '', sysdate);
INSERT INTO rhnTaskoBunch (id, name, description, org_bunch, active_from)
VALUES (rhn_tasko_bunch_id_seq.nextval, 'sat-sync', 'sat-sync
description', 'Y', sysdate);
diff --git a/schema/spacewalk/common/data/rhnTaskoTemplate.sql
b/schema/spacewalk/common/data/rhnTaskoTemplate.sql
index 68ffa50..817e1d1 100644
--- a/schema/spacewalk/common/data/rhnTaskoTemplate.sql
+++ b/schema/spacewalk/common/data/rhnTaskoTemplate.sql
@@ -16,14 +16,14 @@
INSERT INTO rhnTaskoTemplate (id, bunch_id, task_id, ordering, start_if)
VALUES (rhn_tasko_template_id_seq.nextval,
- (SELECT id FROM rhnTaskoBunch WHERE
name='daily-status'),
+ (SELECT id FROM rhnTaskoBunch WHERE
name='daily-status-bunch'),
(SELECT id FROM rhnTaskoTask WHERE
name='summary-population'),
0,
'');
INSERT INTO rhnTaskoTemplate (id, bunch_id, task_id, ordering, start_if)
VALUES (rhn_tasko_template_id_seq.nextval,
- (SELECT id FROM rhnTaskoBunch WHERE
name='daily-status'),
+ (SELECT id FROM rhnTaskoBunch WHERE
name='daily-status-bunch'),
(SELECT id FROM rhnTaskoTask WHERE
name='daily-summary'),
1,
'FINISHED');
commit 83d211c860d985bd50c3993c6f81b055f171fd18
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Fri Jul 2 14:32:37 2010 +0200
general backend fixes
diff --git a/java/code/src/com/redhat/rhn/taskomatic/TaskoJob.java
b/java/code/src/com/redhat/rhn/taskomatic/TaskoJob.java
index 2df4614..4be4505 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/TaskoJob.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/TaskoJob.java
@@ -85,7 +85,7 @@ public class TaskoJob implements Job {
for (TaskoTemplate template : schedule.getBunch().getTemplates()) {
if ((previousRun == null) ||
- (previousRun.getStatus() == template.getStartIf())) {
+ (previousRun.getStatus().equals(template.getStartIf()))) {
TaskoTask task = template.getTask();
Object lock = locks.get(task.getName());
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/RhnExtCmdJob.java
b/java/code/src/com/redhat/rhn/taskomatic/task/RhnExtCmdJob.java
index 5173363..b5a0721 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/RhnExtCmdJob.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/RhnExtCmdJob.java
@@ -25,7 +25,7 @@ import org.apache.log4j.Logger;
*/
public abstract class RhnExtCmdJob implements RhnJob {
- protected Logger log = null;
+ private Logger log = null;
private String stdOutput;
private String stdError;
diff --git a/schema/spacewalk/common/tables/rhnTaskoRun.sql
b/schema/spacewalk/common/tables/rhnTaskoRun.sql
index 32f5b9a..9056aab 100644
--- a/schema/spacewalk/common/tables/rhnTaskoRun.sql
+++ b/schema/spacewalk/common/tables/rhnTaskoRun.sql
@@ -29,7 +29,7 @@ CREATE TABLE rhnTaskoRun
end_time DATE,
std_output_path VARCHAR2(100),
std_error_path VARCHAR2(100),
- status CHAR(10),
+ status VARCHAR2(10),
created DATE
DEFAULT (sysdate) NOT NULL,
modified DATE
diff --git a/schema/spacewalk/common/tables/rhnTaskoTemplate.sql
b/schema/spacewalk/common/tables/rhnTaskoTemplate.sql
index 03684b0..79bc746 100644
--- a/schema/spacewalk/common/tables/rhnTaskoTemplate.sql
+++ b/schema/spacewalk/common/tables/rhnTaskoTemplate.sql
@@ -25,7 +25,7 @@ CREATE TABLE rhnTaskoTemplate
CONSTRAINT rhn_tasko_template_task_fk
REFERENCES rhnTaskoTask (id),
ordering NUMBER NOT NULL,
- start_if CHAR(10),
+ start_if VARCHAR2(10),
created DATE
DEFAULT (sysdate) NOT NULL,
modified DATE
commit 3715e8f4a7f118ff67009093f22391b73de0b6e0
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Fri Jul 2 13:41:20 2010 +0200
migrate CleanCurrentAlerts
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/CleanCurrentAlerts.java
b/java/code/src/com/redhat/rhn/taskomatic/task/CleanCurrentAlerts.java
index 71468bf..8670c4c 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/CleanCurrentAlerts.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/CleanCurrentAlerts.java
@@ -28,19 +28,19 @@ import java.util.HashMap;
* Cleans the RHN_CURRENT_ALERTS table
* @version $Rev$
*/
-public class CleanCurrentAlerts extends SingleThreadedTask {
+public class CleanCurrentAlerts extends RhnJavaJob {
/**
* Used to log stats in the RHNDAEMONSTATE table
*/
public static final String DISPLAY_NAME = "clean_current_alerts";
- private static Logger log = Logger.getLogger(CleanCurrentAlerts.class);
+ private Logger log = getLogger(CleanCurrentAlerts.class);
/**
* {@inheritDoc}
*/
- protected void run(JobExecutionContext contextIn)
+ public void execute(JobExecutionContext contextIn)
throws JobExecutionException {
if (log.isDebugEnabled()) {
diff --git a/schema/spacewalk/common/data/rhnTaskoBunch.sql
b/schema/spacewalk/common/data/rhnTaskoBunch.sql
index 62360cf..6516af9 100644
--- a/schema/spacewalk/common/data/rhnTaskoBunch.sql
+++ b/schema/spacewalk/common/data/rhnTaskoBunch.sql
@@ -29,4 +29,7 @@ INSERT INTO rhnTaskoBunch (id, name, description, org_bunch,
active_from)
INSERT INTO rhnTaskoBunch (id, name, description, org_bunch, active_from)
VALUES (rhn_tasko_bunch_id_seq.nextval, 'compare-configs-bunch',
'Schedules a comparison of config files on all systems', '', sysdate);
+INSERT INTO rhnTaskoBunch (id, name, description, org_bunch, active_from)
+ VALUES (rhn_tasko_bunch_id_seq.nextval, 'clean-alerts-bunch',
'Clears current monitoring alerts', '', sysdate);
+
commit;
diff --git a/schema/spacewalk/common/data/rhnTaskoTemplate.sql
b/schema/spacewalk/common/data/rhnTaskoTemplate.sql
index dd891fb..68ffa50 100644
--- a/schema/spacewalk/common/data/rhnTaskoTemplate.sql
+++ b/schema/spacewalk/common/data/rhnTaskoTemplate.sql
@@ -55,4 +55,12 @@ INSERT INTO rhnTaskoTemplate (id, bunch_id, task_id, ordering,
start_if)
(SELECT id FROM rhnTaskoTask WHERE
name='compare-config-files'),
0,
'');
+
+INSERT INTO rhnTaskoTemplate (id, bunch_id, task_id, ordering, start_if)
+ VALUES (rhn_tasko_template_id_seq.nextval,
+ (SELECT id FROM rhnTaskoBunch WHERE
name='clean-alerts-bunch'),
+ (SELECT id FROM rhnTaskoTask WHERE
name='clean-current-alerts'),
+ 0,
+ '');
+
commit;
commit a4084b3b5a3a3c6bea153484096e6d8155aabeac
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Thu Jul 1 18:38:07 2010 +0200
migrate CompareConfigFilesTask
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/CompareConfigFilesTask.java
b/java/code/src/com/redhat/rhn/taskomatic/task/CompareConfigFilesTask.java
index faa3e61..29098c2 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/CompareConfigFilesTask.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/CompareConfigFilesTask.java
@@ -38,14 +38,14 @@ import java.util.Set;
*
* @version $Rev$
*/
-public class CompareConfigFilesTask extends SingleThreadedTask {
+public class CompareConfigFilesTask extends RhnJavaJob {
/**
* Used to log stats in the RHNDAEMONSTATE table
*/
public static final String DISPLAY_NAME = "compare_config_files";
- private static Logger log = Logger.getLogger(CompareConfigFilesTask.class);
+ private Logger log = getLogger(CompareConfigFilesTask.class);
/**
* Default constructor
@@ -56,7 +56,7 @@ public class CompareConfigFilesTask extends SingleThreadedTask {
/**
* {@inheritDoc}
*/
- public void run(JobExecutionContext context)
+ public void execute(JobExecutionContext context)
throws JobExecutionException {
log.info("running config compare");
diff --git a/schema/spacewalk/common/data/rhnTaskoBunch.sql
b/schema/spacewalk/common/data/rhnTaskoBunch.sql
index 83dc24a..62360cf 100644
--- a/schema/spacewalk/common/data/rhnTaskoBunch.sql
+++ b/schema/spacewalk/common/data/rhnTaskoBunch.sql
@@ -24,6 +24,9 @@ INSERT INTO rhnTaskoBunch (id, name, description, org_bunch,
active_from)
VALUES (rhn_tasko_bunch_id_seq.nextval, 'clear-tasko-log-history',
'Clears taskomatic run log history', '', sysdate);
INSERT INTO rhnTaskoBunch (id, name, description, org_bunch, active_from)
- VALUES (rhn_tasko_bunch_id_seq.nextval, 'cobbler-sync-bunch',
'Applies any cobbler configuration changes,', '', sysdate);
+ VALUES (rhn_tasko_bunch_id_seq.nextval, 'cobbler-sync-bunch',
'Applies any cobbler configuration changes', '', sysdate);
+
+INSERT INTO rhnTaskoBunch (id, name, description, org_bunch, active_from)
+ VALUES (rhn_tasko_bunch_id_seq.nextval, 'compare-configs-bunch',
'Schedules a comparison of config files on all systems', '', sysdate);
commit;
diff --git a/schema/spacewalk/common/data/rhnTaskoTemplate.sql
b/schema/spacewalk/common/data/rhnTaskoTemplate.sql
index e657556..dd891fb 100644
--- a/schema/spacewalk/common/data/rhnTaskoTemplate.sql
+++ b/schema/spacewalk/common/data/rhnTaskoTemplate.sql
@@ -48,4 +48,11 @@ INSERT INTO rhnTaskoTemplate (id, bunch_id, task_id, ordering,
start_if)
(SELECT id FROM rhnTaskoTask WHERE name='cobbler-sync'),
0,
'');
+
+INSERT INTO rhnTaskoTemplate (id, bunch_id, task_id, ordering, start_if)
+ VALUES (rhn_tasko_template_id_seq.nextval,
+ (SELECT id FROM rhnTaskoBunch WHERE
name='compare-configs-bunch'),
+ (SELECT id FROM rhnTaskoTask WHERE
name='compare-config-files'),
+ 0,
+ '');
commit;
commit 4231de42e6713df175a3fd942092560cda084409
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Thu Jul 1 17:58:51 2010 +0200
migrate CobblerSyncTask
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/CobblerSyncTask.java
b/java/code/src/com/redhat/rhn/taskomatic/task/CobblerSyncTask.java
index 423e290..0d6b56b 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/CobblerSyncTask.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/CobblerSyncTask.java
@@ -33,14 +33,11 @@ import java.util.concurrent.atomic.AtomicLong;
import redstone.xmlrpc.XmlRpcFault;
/**
- * DailySummary task.
- * sends daily report of stats. reaps org suggestions
- * from rhnDailySummaryQueue. Not very "daily" since it runs every
- * 30 seconds. Need to look at RHN::DailySummaryEngine. This task
- * queues org emails, mails queued emails, then dequeues the emails.
+ * CobblerSyncTask
+ * synces cobbler
* @version $Rev$
*/
-public class CobblerSyncTask extends SingleThreadedTestableTask {
+public class CobblerSyncTask extends RhnJavaJob {
private static final AtomicLong LAST_UPDATED = new AtomicLong();
private long errorCount;
@@ -51,7 +48,7 @@ public class CobblerSyncTask extends SingleThreadedTestableTask {
*/
public static final String DISPLAY_NAME = "sync_from_cobbler";
- private static Logger log = Logger.getLogger(CobblerSyncTask.class);
+ private Logger log = getLogger(CobblerSyncTask.class);
/**
* Default constructor
@@ -64,7 +61,7 @@ public class CobblerSyncTask extends SingleThreadedTestableTask {
/**
* {@inheritDoc}
*/
- public void execute(JobExecutionContext ctxIn, boolean testContextIn)
+ public void execute(JobExecutionContext ctxIn)
throws JobExecutionException {
try {
diff --git a/schema/spacewalk/common/data/rhnTaskoBunch.sql
b/schema/spacewalk/common/data/rhnTaskoBunch.sql
index b833a76..83dc24a 100644
--- a/schema/spacewalk/common/data/rhnTaskoBunch.sql
+++ b/schema/spacewalk/common/data/rhnTaskoBunch.sql
@@ -23,4 +23,7 @@ INSERT INTO rhnTaskoBunch (id, name, description, org_bunch,
active_from)
INSERT INTO rhnTaskoBunch (id, name, description, org_bunch, active_from)
VALUES (rhn_tasko_bunch_id_seq.nextval, 'clear-tasko-log-history',
'Clears taskomatic run log history', '', sysdate);
+INSERT INTO rhnTaskoBunch (id, name, description, org_bunch, active_from)
+ VALUES (rhn_tasko_bunch_id_seq.nextval, 'cobbler-sync-bunch',
'Applies any cobbler configuration changes,', '', sysdate);
+
commit;
diff --git a/schema/spacewalk/common/data/rhnTaskoTemplate.sql
b/schema/spacewalk/common/data/rhnTaskoTemplate.sql
index 903009f..e657556 100644
--- a/schema/spacewalk/common/data/rhnTaskoTemplate.sql
+++ b/schema/spacewalk/common/data/rhnTaskoTemplate.sql
@@ -41,4 +41,11 @@ INSERT INTO rhnTaskoTemplate (id, bunch_id, task_id, ordering,
start_if)
(SELECT id FROM rhnTaskoTask WHERE
name='clear-log-history'),
0,
'');
+
+INSERT INTO rhnTaskoTemplate (id, bunch_id, task_id, ordering, start_if)
+ VALUES (rhn_tasko_template_id_seq.nextval,
+ (SELECT id FROM rhnTaskoBunch WHERE
name='cobbler-sync-bunch'),
+ (SELECT id FROM rhnTaskoTask WHERE name='cobbler-sync'),
+ 0,
+ '');
commit;
commit de6c9e699387173c4d691ef3e14723f71f63cc1c
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Thu Jul 1 17:30:37 2010 +0200
change static TaskoRun methods to instance
diff --git a/java/code/src/com/redhat/rhn/taskomatic/TaskoRun.java
b/java/code/src/com/redhat/rhn/taskomatic/TaskoRun.java
index ebb6fda..58cd822 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/TaskoRun.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/TaskoRun.java
@@ -63,7 +63,7 @@ public class TaskoRun implements Job {
setOrgId(orgIdIn);
setTemplate(templateIn);
setScheduleId(scheduleIdIn);
- File logDir = new File(getStdLogDirName(orgId));
+ File logDir = new File(getStdLogDirName());
if (!logDir.isDirectory()) {
if (!logDir.exists()) {
logDir.mkdirs();
@@ -80,25 +80,23 @@ public class TaskoRun implements Job {
public void finished(RhnJob job) {
setEndTime(new Date());
String out = job.getLogOutput();
- if (new File(getStdLogDirName(orgId)).isDirectory()) {
+ if (new File(getStdLogDirName()).isDirectory()) {
if ((out != null) && (!out.isEmpty())) {
- setStdOutputPath(getStdOutputLog(orgId, template, this));
- saveLogToFile(getStdOutputPath(), out);
+ saveStdOutputLog(out);
}
else {
setStdOutputPath("");
}
String err = job.getLogError();
if ((err != null) && (!err.isEmpty())) {
- setStdErrorPath(getStdErrorLog(orgId, template, this));
- saveLogToFile(getStdErrorPath(), err);
+ saveErrorLog(err);
}
else {
setStdErrorPath("");
}
}
else {
- log.warn("Logging disabled. No directory " +
getStdLogDirName(orgId));
+ log.warn("Logging disabled. No directory " + getStdLogDirName());
}
}
@@ -110,6 +108,15 @@ public class TaskoRun implements Job {
try {
jobClass = Class.forName(template.getTask().getTaskClass());
job = (RhnJob) jobClass.newInstance();
+ }
+ catch (Exception e) {
+ String errorLog = e.getMessage() + '\n' + e.getCause() +
'\n';
+ saveErrorLog(errorLog);
+ saveStatus(STATUS_FAILED);
+ return;
+ }
+
+ try {
job.execute(context);
saveStatus(STATUS_FINISHED);
}
@@ -120,17 +127,14 @@ public class TaskoRun implements Job {
finished(job);
}
- private void saveToStdError(String message) {
- if (stdErrorPath != null) {
- try {
- BufferedWriter out = new BufferedWriter(new FileWriter(stdErrorPath));
- out.write(message);
- out.close();
- }
- catch (IOException io) {
- log.error("Cannot save traceback to " + stdErrorPath);
- }
- }
+ private void saveStdOutputLog(String out) {
+ setStdOutputPath(buildStdOutputLogPath());
+ saveLogToFile(getStdOutputPath(), out);
+ }
+
+ private void saveErrorLog(String errorLog) {
+ setStdErrorPath(buildStdErrorLogPath());
+ saveLogToFile(getStdErrorPath(), errorLog);
}
private void saveStatus(String statusIn) {
@@ -163,15 +167,15 @@ public class TaskoRun implements Job {
}
}
- public static String getStdOutputLog(Integer orgId, TaskoTemplate templ, TaskoRun
run) {
- return getStdLogDirName(orgId) + getStdLogFileName(templ, run) +
"_out";
+ private String buildStdOutputLogPath() {
+ return getStdLogDirName() + getStdLogFileName() + "_out";
}
- public static String getStdErrorLog(Integer orgId, TaskoTemplate templ, TaskoRun run)
{
- return getStdLogDirName(orgId) + getStdLogFileName(templ, run) +
"_err";
+ private String buildStdErrorLogPath() {
+ return getStdLogDirName() + getStdLogFileName() + "_err";
}
- private static String getStdLogDirName(Integer orgId) {
+ private String getStdLogDirName() {
String dirName = STD_LOG_PREFIX;
if (orgId == null) {
dirName += "sat";
@@ -183,9 +187,9 @@ public class TaskoRun implements Job {
return dirName;
}
- private static String getStdLogFileName(TaskoTemplate templ, TaskoRun run) {
- return templ.getBunch().getName() + "_" + templ.getTask().getName() +
- "_" + run.getId();
+ private String getStdLogFileName() {
+ return template.getBunch().getName() + "_" +
template.getTask().getName() +
+ "_" + getId();
}
private void saveLogToFile(String fileName, String logContent) {