java/code/src/com/redhat/rhn/common/db/datasource/xml/Task_queries.xml
| 12 ++
java/code/src/com/redhat/rhn/taskomatic/task/TaskConstants.java
| 3
java/code/src/com/redhat/rhn/taskomatic/task/TimeSeriesCleanUp.java
| 50 ++++++++++
schema/spacewalk/common/data/rhnTaskoBunch.sql
| 3
schema/spacewalk/common/data/rhnTaskoTask.sql
| 3
schema/spacewalk/oracle/data/rhnTaskoSchedule.sql
| 5 +
schema/spacewalk/oracle/data/rhnTaskoTemplate.sql
| 7 +
schema/spacewalk/postgres/data/rhnTaskoSchedule.sql
| 6 +
schema/spacewalk/postgres/data/rhnTaskoTemplate.sql
| 8 +
schema/spacewalk/upgrade/spacewalk-schema-1.1-to-spacewalk-schema-1.2/020-rhnTaskoBunch_data.sql
| 3
schema/spacewalk/upgrade/spacewalk-schema-1.1-to-spacewalk-schema-1.2/021-rhnTaskoTask_data.sql
| 3
schema/spacewalk/upgrade/spacewalk-schema-1.1-to-spacewalk-schema-1.2/022-rhnTaskoTemplate_data.sql
| 7 +
schema/spacewalk/upgrade/spacewalk-schema-1.1-to-spacewalk-schema-1.2/023-rhnTaskoSchedule_data.sql
| 5 +
13 files changed, 115 insertions(+)
New commits:
commit 8eeed91a3d90d1582c033fbffe3b0fb2216c3057
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Mon Nov 1 16:36:11 2010 +0100
adding new TimeSeriesCleanUp taskomatic task
- task deletes orphaned time_series entries and is scheduled once a day
diff --git a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Task_queries.xml
b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Task_queries.xml
index 32a9be9..1affa44 100644
--- a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Task_queries.xml
+++ b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Task_queries.xml
@@ -232,6 +232,18 @@ SELECT id, channel_label, client, reason, force, bypass_filters,
next_action
</query>
</write-mode>
+<write-mode name="taskomatic_time_series_cleanup">
+ <query params="">
+ DELETE FROM time_series
+ WHERE NOT EXISTS (
+ SELECT 1 FROM rhn_probe
+ WHERE substr(time_series.o_id, instr(time_series.o_id,'-')+1,
+ (instr(time_series.o_id,'-',
+
instr(time_series.o_id,'-')+1)-instr(time_series.o_id,'-'))-1)
+ = rhn_probe.recid)
+ </query>
+</write-mode>
+
<callable-mode name="synchprobestate_synch_proc">
<query params="">
{ call rhn_synch_probe_state() }
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/TaskConstants.java
b/java/code/src/com/redhat/rhn/taskomatic/task/TaskConstants.java
index a85c29e..f602ea8 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/TaskConstants.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/TaskConstants.java
@@ -50,6 +50,9 @@ public class TaskConstants {
public static final String TASK_QUERY_SESSION_CLEANUP =
"taskomatic_session_cleanup";
+ public static final String TASK_QUERY_TIME_SERIES_CLEANUP =
+ "taskomatic_time_series_cleanup";
+
public static final String TASK_QUERY_ERRATA_QUEUE_FIND_CANDIDATES =
"errataqueue_find_candidates";
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/TimeSeriesCleanUp.java
b/java/code/src/com/redhat/rhn/taskomatic/task/TimeSeriesCleanUp.java
new file mode 100644
index 0000000..39d0d6e
--- /dev/null
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/TimeSeriesCleanUp.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2008 Red Hat, Inc.
+ *
+ * This software is licensed to you under the GNU General Public License,
+ * version 2 (GPLv2). There is NO WARRANTY for this software, express or
+ * implied, including the implied warranties of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
+ * along with this software; if not, see
+ *
http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
+ *
+ * Red Hat trademarks are not licensed under GPLv2. No permission is
+ * granted to use or replicate Red Hat trademarks that are incorporated
+ * in this software or its documentation.
+ */
+package com.redhat.rhn.taskomatic.task;
+
+import com.redhat.rhn.common.db.datasource.ModeFactory;
+import com.redhat.rhn.common.db.datasource.WriteMode;
+
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+
+import java.util.HashMap;
+
+
+/**
+ * TimeSeriesCleanUp
+ * Cleans up orphaned monitoring data from the time_series table
+ * @version $Rev$
+ */
+public class TimeSeriesCleanUp extends RhnJavaJob {
+
+ /**
+ * {@inheritDoc}
+ */
+ public void execute(JobExecutionContext arg0In)
+ throws JobExecutionException {
+ // TODO Auto-generated method stub
+ int rowsDeleted = deleteOrphanedData();
+ if (rowsDeleted > 0) {
+ log.info("Deleted " + rowsDeleted + " row(s) of orphaned
monitoring data.");
+ }
+ }
+
+ private int deleteOrphanedData() {
+ WriteMode m = ModeFactory.getWriteMode(TaskConstants.MODE_NAME,
+ TaskConstants.TASK_QUERY_TIME_SERIES_CLEANUP);
+ return m.executeUpdate(new HashMap());
+ }
+}
diff --git a/schema/spacewalk/common/data/rhnTaskoBunch.sql
b/schema/spacewalk/common/data/rhnTaskoBunch.sql
index 2720f49..e4d6251 100644
--- a/schema/spacewalk/common/data/rhnTaskoBunch.sql
+++ b/schema/spacewalk/common/data/rhnTaskoBunch.sql
@@ -72,4 +72,7 @@ INSERT INTO rhnTaskoBunch (id, name, description, org_bunch)
INSERT INTO rhnTaskoBunch (id, name, description, org_bunch)
VALUES (rhn_tasko_bunch_id_seq.nextval, 'satcert-check-bunch',
'Checks whether satellite certificate has not expired', null);
+INSERT INTO rhnTaskoBunch (id, name, description, org_bunch)
+ VALUES (rhn_tasko_bunch_id_seq.nextval, 'cleanup-data-bunch',
'Cleans up orphaned and outdated data', null);
+
commit;
diff --git a/schema/spacewalk/common/data/rhnTaskoTask.sql
b/schema/spacewalk/common/data/rhnTaskoTask.sql
index 7d6e07e..8642876 100644
--- a/schema/spacewalk/common/data/rhnTaskoTask.sql
+++ b/schema/spacewalk/common/data/rhnTaskoTask.sql
@@ -71,4 +71,7 @@ INSERT INTO rhnTaskoTask (id, name, class)
INSERT INTO rhnTaskoTask (id, name, class)
VALUES (rhn_tasko_task_id_seq.nextval, 'clear-log-history',
'com.redhat.rhn.taskomatic.task.ClearLogHistory');
+INSERT INTO rhnTaskoTask (id, name, class)
+ VALUES (rhn_tasko_task_id_seq.nextval, 'cleanup-timeseries-data',
'com.redhat.rhn.taskomatic.task.TimeSeriesCleanUp');
+
commit;
diff --git a/schema/spacewalk/oracle/data/rhnTaskoSchedule.sql
b/schema/spacewalk/oracle/data/rhnTaskoSchedule.sql
index 555d782..e17f8ca 100644
--- a/schema/spacewalk/oracle/data/rhnTaskoSchedule.sql
+++ b/schema/spacewalk/oracle/data/rhnTaskoSchedule.sql
@@ -98,3 +98,8 @@ INSERT INTO rhnTaskoSchedule (id, job_label, bunch_id, active_from,
cron_expr)
VALUES(rhn_tasko_schedule_id_seq.nextval, 'clear-taskologs-default',
(SELECT id FROM rhnTaskoBunch WHERE name='clear-taskologs-bunch'),
sysdate, '0 0 23 ? * *');
+
+INSERT INTO rhnTaskoSchedule (id, job_label, bunch_id, active_from, cron_expr)
+ VALUES(rhn_tasko_schedule_id_seq.nextval, 'cleanup-data-default',
+ (SELECT id FROM rhnTaskoBunch WHERE name='cleanup-data-bunch'),
+ sysdate, '0 0 23 ? * *');
diff --git a/schema/spacewalk/oracle/data/rhnTaskoTemplate.sql
b/schema/spacewalk/oracle/data/rhnTaskoTemplate.sql
index 3bf7a42..e8cc78a 100644
--- a/schema/spacewalk/oracle/data/rhnTaskoTemplate.sql
+++ b/schema/spacewalk/oracle/data/rhnTaskoTemplate.sql
@@ -147,4 +147,11 @@ INSERT INTO rhnTaskoTemplate (id, bunch_id, task_id, ordering,
start_if)
1,
'FINISHED');
+INSERT INTO rhnTaskoTemplate (id, bunch_id, task_id, ordering, start_if)
+ VALUES (rhn_tasko_template_id_seq.nextval,
+ (SELECT id FROM rhnTaskoBunch WHERE
name='cleanup-data-bunch'),
+ (SELECT id FROM rhnTaskoTask WHERE
name='cleanup-timeseries-data'),
+ 0,
+ null);
+
commit;
diff --git a/schema/spacewalk/postgres/data/rhnTaskoSchedule.sql
b/schema/spacewalk/postgres/data/rhnTaskoSchedule.sql
index 32c7186..df11b8a 100644
--- a/schema/spacewalk/postgres/data/rhnTaskoSchedule.sql
+++ b/schema/spacewalk/postgres/data/rhnTaskoSchedule.sql
@@ -1,3 +1,4 @@
+-- oracle equivalent source sha1 e15471c8a2e037d40e13886d1cfc8d23a7a0ba16
--
-- Copyright (c) 2010 Red Hat, Inc.
--
@@ -98,3 +99,8 @@ INSERT INTO rhnTaskoSchedule (id, job_label, bunch_id, active_from,
cron_expr)
VALUES(nextval('rhn_tasko_schedule_id_seq'),
'clear-taskologs-default',
(SELECT id FROM rhnTaskoBunch WHERE name='clear-taskologs-bunch'),
current_timestamp, '0 0 23 ? * *');
+
+INSERT INTO rhnTaskoSchedule (id, job_label, bunch_id, active_from, cron_expr)
+ VALUES(rhn_tasko_schedule_id_seq.nextval, 'cleanup-data-default',
+ (SELECT id FROM rhnTaskoBunch WHERE name='cleanup-data-bunch'),
+ current_timestamp, '0 0 23 ? * *');
diff --git a/schema/spacewalk/postgres/data/rhnTaskoTemplate.sql
b/schema/spacewalk/postgres/data/rhnTaskoTemplate.sql
index 980af96..565730e 100644
--- a/schema/spacewalk/postgres/data/rhnTaskoTemplate.sql
+++ b/schema/spacewalk/postgres/data/rhnTaskoTemplate.sql
@@ -1,3 +1,4 @@
+-- oracle equivalent source sha1 09b2c0541a5b55f0347067f741b5efe12e591a46
--
-- Copyright (c) 2010 Red Hat, Inc.
--
@@ -147,4 +148,11 @@ INSERT INTO rhnTaskoTemplate (id, bunch_id, task_id, ordering,
start_if)
1,
'FINISHED');
+INSERT INTO rhnTaskoTemplate (id, bunch_id, task_id, ordering, start_if)
+ VALUES (rhn_tasko_template_id_seq.nextval,
+ (SELECT id FROM rhnTaskoBunch WHERE
name='cleanup-data-bunch'),
+ (SELECT id FROM rhnTaskoTask WHERE
name='cleanup-timeseries-data'),
+ 0,
+ null);
+
commit;
diff --git
a/schema/spacewalk/upgrade/spacewalk-schema-1.1-to-spacewalk-schema-1.2/020-rhnTaskoBunch_data.sql
b/schema/spacewalk/upgrade/spacewalk-schema-1.1-to-spacewalk-schema-1.2/020-rhnTaskoBunch_data.sql
index b4dbc1d..e618870 100644
---
a/schema/spacewalk/upgrade/spacewalk-schema-1.1-to-spacewalk-schema-1.2/020-rhnTaskoBunch_data.sql
+++
b/schema/spacewalk/upgrade/spacewalk-schema-1.1-to-spacewalk-schema-1.2/020-rhnTaskoBunch_data.sql
@@ -72,4 +72,7 @@ INSERT INTO rhnTaskoBunch (id, name, description, org_bunch)
INSERT INTO rhnTaskoBunch (id, name, description, org_bunch)
VALUES (rhn_tasko_bunch_id_seq.nextval, 'satcert-check-bunch',
'Checks whether satellite certificate has not expired', '');
+INSERT INTO rhnTaskoBunch (id, name, description, org_bunch)
+ VALUES (rhn_tasko_bunch_id_seq.nextval, 'cleanup-data-bunch',
'Cleans up orpaned and outdated data', null);
+
commit;
diff --git
a/schema/spacewalk/upgrade/spacewalk-schema-1.1-to-spacewalk-schema-1.2/021-rhnTaskoTask_data.sql
b/schema/spacewalk/upgrade/spacewalk-schema-1.1-to-spacewalk-schema-1.2/021-rhnTaskoTask_data.sql
index 7d6e07e..8642876 100644
---
a/schema/spacewalk/upgrade/spacewalk-schema-1.1-to-spacewalk-schema-1.2/021-rhnTaskoTask_data.sql
+++
b/schema/spacewalk/upgrade/spacewalk-schema-1.1-to-spacewalk-schema-1.2/021-rhnTaskoTask_data.sql
@@ -71,4 +71,7 @@ INSERT INTO rhnTaskoTask (id, name, class)
INSERT INTO rhnTaskoTask (id, name, class)
VALUES (rhn_tasko_task_id_seq.nextval, 'clear-log-history',
'com.redhat.rhn.taskomatic.task.ClearLogHistory');
+INSERT INTO rhnTaskoTask (id, name, class)
+ VALUES (rhn_tasko_task_id_seq.nextval, 'cleanup-timeseries-data',
'com.redhat.rhn.taskomatic.task.TimeSeriesCleanUp');
+
commit;
diff --git
a/schema/spacewalk/upgrade/spacewalk-schema-1.1-to-spacewalk-schema-1.2/022-rhnTaskoTemplate_data.sql
b/schema/spacewalk/upgrade/spacewalk-schema-1.1-to-spacewalk-schema-1.2/022-rhnTaskoTemplate_data.sql
index 7f6f93b..00b7d32 100644
---
a/schema/spacewalk/upgrade/spacewalk-schema-1.1-to-spacewalk-schema-1.2/022-rhnTaskoTemplate_data.sql
+++
b/schema/spacewalk/upgrade/spacewalk-schema-1.1-to-spacewalk-schema-1.2/022-rhnTaskoTemplate_data.sql
@@ -140,4 +140,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='cleanup-data-bunch'),
+ (SELECT id FROM rhnTaskoTask WHERE
name='cleanup-timeseries-data'),
+ 0,
+ null);
+
commit;
diff --git
a/schema/spacewalk/upgrade/spacewalk-schema-1.1-to-spacewalk-schema-1.2/023-rhnTaskoSchedule_data.sql
b/schema/spacewalk/upgrade/spacewalk-schema-1.1-to-spacewalk-schema-1.2/023-rhnTaskoSchedule_data.sql
index 95516b5..879f0d6 100644
---
a/schema/spacewalk/upgrade/spacewalk-schema-1.1-to-spacewalk-schema-1.2/023-rhnTaskoSchedule_data.sql
+++
b/schema/spacewalk/upgrade/spacewalk-schema-1.1-to-spacewalk-schema-1.2/023-rhnTaskoSchedule_data.sql
@@ -103,3 +103,8 @@ INSERT INTO rhnTaskoSchedule (id, job_label, bunch_id, active_from,
cron_expr)
VALUES(rhn_tasko_schedule_id_seq.nextval, 'clear-taskologs-default',
(SELECT id FROM rhnTaskoBunch WHERE name='clear-taskologs-bunch'),
sysdate, '0 0 23 ? * *');
+
+INSERT INTO rhnTaskoSchedule (id, job_label, bunch_id, active_from, cron_expr)
+ VALUES(rhn_tasko_schedule_id_seq.nextval, 'cleanup-data-default',
+ (SELECT id FROM rhnTaskoBunch WHERE name='cleanup-data-bunch'),
+ sysdate, '0 0 23 ? * *');