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@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 ? * *');