java/code
by Justin Sherrill
java/code/src/com/redhat/rhn/common/db/datasource/xml/Errata_queries.xml | 5
java/code/src/com/redhat/rhn/frontend/action/channel/manage/ConfirmErrataAction.java | 57 ----------
java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java | 1
3 files changed, 7 insertions(+), 56 deletions(-)
New commits:
commit 2d59d874019b71e66aff43e16cc28f831052d212
Author: Justin Sherrill <jsherril(a)redhat.com>
Date: Wed Jun 30 10:52:50 2010 -0400
605383 - fixing issue where adding errata to a channel with 'package association' unchecked wouldn't handle arches correctly
diff --git a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Errata_queries.xml b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Errata_queries.xml
index 674f55f..403bf5b 100644
--- a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Errata_queries.xml
+++ b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Errata_queries.xml
@@ -596,7 +596,7 @@ SELECT DISTINCT E.id , E.advisory_name AS advisory,
</mode>
<mode name="find_packages_for_errata_set_with_assoc" class="com.redhat.rhn.frontend.dto.PackageOverview">
- <query params="src_cid, uid, set">
+ <query params="src_cid, uid, set, dest_cid">
select distinct P.id, PN.name package_name, PA.label as package_arch,
EVR.version
|| '-' || EVR.release || (CASE WHEN EVR.epoch IS NULL THEN '' ELSE ':' || EVR.epoch END)
@@ -609,9 +609,12 @@ SELECT DISTINCT E.id , E.advisory_name AS advisory,
rhnPackage P on P.id = EP.package_id inner join
rhnPackageArch PA on PA.id = P.package_arch_id inner join
rhnPackageEvr EVR on Evr.id = P.evr_id inner join
+ rhnChannelPackageArchCompat COMPAT on P.package_arch_id = COMPAT.package_arch_id inner join
+ rhnChannel C on C.channel_arch_id = COMPAT.channel_arch_id inner join
rhnChannelPackage CP on CP.package_id = P.id inner join
rhnPackageName PN on PN.id = P.name_id
where S.label = :set
+ and C.id = :dest_cid
and S.user_id = :uid
and CP.channel_id = :src_cid
</query>
diff --git a/java/code/src/com/redhat/rhn/frontend/action/channel/manage/ConfirmErrataAction.java b/java/code/src/com/redhat/rhn/frontend/action/channel/manage/ConfirmErrataAction.java
index 2bcd769..7081ca6 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/channel/manage/ConfirmErrataAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/channel/manage/ConfirmErrataAction.java
@@ -142,14 +142,8 @@ public class ConfirmErrataAction extends RhnListAction {
getSetDecl(currentChan).getLabel());
-
- //if we are not using package association (and thus the queries aren't handling
- //arch solving, then we need to validate the packages
List<PackageOverview> validList = packageResult;
- if (!packageAssoc) {
- validList = validatePackages(packageResult,
- currentChan);
- }
+
storePackagesInSet(user, validList, currentChan);
@@ -181,54 +175,7 @@ public class ConfirmErrataAction extends RhnListAction {
return RhnSetDecl.setForChannelErrata(chan);
}
-
- private List validatePackages(DataResult<PackageOverview> dr, Channel chan) {
- Map<String, PackageOverview> packMap = new HashMap();
-
-
- Set<String> compatArchesLabels = new HashSet<String>();
- for (PackageArch arch : (Set<PackageArch>)
- chan.getChannelArch().getCompatiblePackageArches()) {
- compatArchesLabels.add(arch.getLabel());
- }
-
- for (PackageOverview pack : dr) {
- String label = pack.getPackageName() + "-" + pack.getPackageNvre();
-
- //if the package isn't compatible with the current channel
- if (!compatArchesLabels.contains(pack.getPackageArch())) {
- continue;
- }
-
-
- if (!packMap.containsKey(label)) {
- packMap.put(label, pack);
- }
- else {
- //Here we narrow down the higher level arches
- PackageOverview packIn = packMap.get(label);
-
- if (packIn.getPackageArch().equals("ia64")) {
- packMap.put(label, pack);
- }
- else if (packIn.getPackageArch().equals("x86_64")) {
- packMap.put(label, pack);
- }
- else if (packIn.getPackageArch().equals("ppc64")) {
- packMap.put(label, pack);
- }
- else if (packIn.getPackageArch().equals("i686") &&
- pack.getPackageArch().equals("i386")) {
- packMap.put(label, pack);
- }
- }
- }
-
-
-
- return new ArrayList(packMap.values());
- }
-
+
diff --git a/java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java b/java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java
index a347040..65c8b6b 100644
--- a/java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java
+++ b/java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java
@@ -1079,6 +1079,7 @@ public class ErrataManager extends BaseManager {
if (srcChan != null) {
mode = "find_packages_for_errata_set_with_assoc";
params.put("src_cid", srcChan.getId());
+ params.put("dest_cid", destChan.getId());
}
else {
mode = "find_packages_for_errata_set_no_chan";
13 years, 10 months
Branch 'taskomatic' - 6 commits - java/code schema/spacewalk
by Tomas Lestach
java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java | 93 +++++----
java/code/src/com/redhat/rhn/taskomatic/TaskoJob.java | 98 +++++-----
java/code/src/com/redhat/rhn/taskomatic/TaskoRun.hbm.xml | 4
java/code/src/com/redhat/rhn/taskomatic/TaskoRun.java | 37 +--
java/code/src/com/redhat/rhn/taskomatic/TaskoSchedule.hbm.xml | 12 +
java/code/src/com/redhat/rhn/taskomatic/TaskoXmlRpcHandler.java | 36 ++-
java/code/src/com/redhat/rhn/taskomatic/task/ClearLogHistory.java | 80 ++++++++
java/code/src/com/redhat/rhn/taskomatic/task/RhnExtCmdJob.java | 68 ++++++
java/code/src/com/redhat/rhn/taskomatic/task/RhnJavaJob.java | 50 +++++
java/code/src/com/redhat/rhn/taskomatic/task/RhnJob.java | 17 +
java/code/src/com/redhat/rhn/taskomatic/task/RhnJobAppender.java | 65 ++++++
java/code/src/com/redhat/rhn/taskomatic/task/SatSyncTask.java | 14 -
schema/spacewalk/common/data/rhnTaskoBunch.sql | 3
schema/spacewalk/common/data/rhnTaskoTask.sql | 3
schema/spacewalk/common/data/rhnTaskoTemplate.sql | 7
15 files changed, 453 insertions(+), 134 deletions(-)
New commits:
commit eb826c50e3dcf22de6307af427f5d2b742152144
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Wed Jun 30 14:44:17 2010 +0200
update SatSyncTask task
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/SatSyncTask.java b/java/code/src/com/redhat/rhn/taskomatic/task/SatSyncTask.java
index 42961f9..95f9c05 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/SatSyncTask.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/SatSyncTask.java
@@ -14,9 +14,7 @@
*/
package com.redhat.rhn.taskomatic.task;
-import com.redhat.rhn.manager.satellite.SystemCommandExecutor;
-
-import org.quartz.Job;
+import org.apache.log4j.Logger;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
@@ -25,7 +23,9 @@ import org.quartz.JobExecutionException;
* SatSyncTask
* @version $Rev$
*/
-public class SatSyncTask implements Job {
+public class SatSyncTask extends RhnExtCmdJob {
+
+ private Logger log = getLogger(SatSyncTask.class);
/**
* {@inheritDoc}
@@ -36,10 +36,6 @@ public class SatSyncTask implements Job {
args[1] = "satellite-sync";
args[2] = "-l";
- SystemCommandExecutor ce = new SystemCommandExecutor();
- ce.execute(args);
-
- ctx.getJobDetail().getJobDataMap().put("stdOutput", ce.getLastCommandOutput());
- ctx.getJobDetail().getJobDataMap().put("stdError", ce.getLastCommandErrorMessage());
+ executeExtCmd(args);
}
}
commit c3e2f0589883f0af323ae630f59fb93b5d3169ac
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Wed Jun 30 14:40:19 2010 +0200
adding ClearLogHistory satellite task
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/ClearLogHistory.java b/java/code/src/com/redhat/rhn/taskomatic/task/ClearLogHistory.java
new file mode 100644
index 0000000..8c65ecd
--- /dev/null
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/ClearLogHistory.java
@@ -0,0 +1,80 @@
+/**
+ * Copyright (c) 2010 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.localization.LocalizationService;
+import com.redhat.rhn.taskomatic.TaskoFactory;
+import com.redhat.rhn.taskomatic.TaskoRun;
+import com.redhat.rhn.taskomatic.TaskoSchedule;
+
+import org.apache.log4j.Logger;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * ClearRunHistory
+ * @version $Rev$
+ */
+public class ClearLogHistory extends RhnJavaJob {
+ private Logger log = getLogger(ClearLogHistory.class);
+ /**
+ * {@inheritDoc}
+ * @throws InvalidParamException
+ */
+ public void execute(JobExecutionContext context)
+ throws JobExecutionException {
+ Integer days = null;
+ try {
+ days = context.getJobDetail().getJobDataMap().getInt("days");
+ }
+ catch (java.lang.ClassCastException cce) {
+ // do nothing, days stays unset
+ }
+ if (days == null) {
+ throw new JobExecutionException("Invalid argument: days");
+ }
+ Calendar now = Calendar.getInstance();
+ now.add(Calendar.DATE, -days);
+ now.set(Calendar.HOUR_OF_DAY, 0);
+ now.set(Calendar.MINUTE, 0);
+ now.set(Calendar.SECOND, 0);
+ now.set(Calendar.MILLISECOND, 0);
+ Date limitTime = now.getTime();
+
+ log.info("Clearing log history older than: " +
+ LocalizationService.getInstance().formatCustomDate(limitTime));
+ // loop accross all the orgs
+ List<TaskoRun> runList = TaskoFactory.listRunsOlderThan(limitTime);
+ for (TaskoRun run : runList) {
+ // delete history of runs
+ TaskoFactory.deleteLogFiles(run);
+ TaskoFactory.delete(run);
+ }
+
+ // delete outdated schedules
+ List<TaskoSchedule> scheduleList = TaskoFactory.listSchedulesOlderThan(limitTime);
+ for (TaskoSchedule schedule : scheduleList) {
+ Date endTime = schedule.getActiveTill();
+ if (TaskoFactory.listRunsBySchedule(schedule.getId()).isEmpty()) {
+ TaskoFactory.delete(schedule);
+ }
+ }
+ }
+}
diff --git a/schema/spacewalk/common/data/rhnTaskoBunch.sql b/schema/spacewalk/common/data/rhnTaskoBunch.sql
index 9f83e28..b833a76 100644
--- a/schema/spacewalk/common/data/rhnTaskoBunch.sql
+++ b/schema/spacewalk/common/data/rhnTaskoBunch.sql
@@ -20,4 +20,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, 'sat-sync', 'sat-sync description', 'Y', sysdate);
+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);
+
commit;
diff --git a/schema/spacewalk/common/data/rhnTaskoTask.sql b/schema/spacewalk/common/data/rhnTaskoTask.sql
index fb4d0fc..7d6e07e 100644
--- a/schema/spacewalk/common/data/rhnTaskoTask.sql
+++ b/schema/spacewalk/common/data/rhnTaskoTask.sql
@@ -68,4 +68,7 @@ INSERT INTO rhnTaskoTask (id, name, class)
INSERT INTO rhnTaskoTask (id, name, class)
VALUES (rhn_tasko_task_id_seq.nextval, 'sat-cert-check', 'com.redhat.rhn.taskomatic.task.SatelliteCertificateCheck');
+INSERT INTO rhnTaskoTask (id, name, class)
+ VALUES (rhn_tasko_task_id_seq.nextval, 'clear-log-history', 'com.redhat.rhn.taskomatic.task.ClearLogHistory');
+
commit;
diff --git a/schema/spacewalk/common/data/rhnTaskoTemplate.sql b/schema/spacewalk/common/data/rhnTaskoTemplate.sql
index 2f6b351..903009f 100644
--- a/schema/spacewalk/common/data/rhnTaskoTemplate.sql
+++ b/schema/spacewalk/common/data/rhnTaskoTemplate.sql
@@ -34,4 +34,11 @@ INSERT INTO rhnTaskoTemplate (id, bunch_id, task_id, ordering, start_if)
(SELECT id FROM rhnTaskoTask WHERE name='satellite-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='clear-tasko-log-history'),
+ (SELECT id FROM rhnTaskoTask WHERE name='clear-log-history'),
+ 0,
+ '');
commit;
commit d1871887c80cc00db6ef1ef11bb858505002adba
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Wed Jun 30 14:39:40 2010 +0200
make satellite tasks working
diff --git a/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java b/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java
index c39f04b..91986b7 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/TaskoFactory.java
@@ -16,12 +16,13 @@ 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.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
@@ -52,6 +53,13 @@ public class TaskoFactory extends HibernateFactory {
"TaskoBunch.lookupOrgBunchByName", params);
}
+ public static TaskoBunch lookupSatBunchByName(String bunchName) {
+ Map params = new HashMap();
+ params.put("name", bunchName);
+ return (TaskoBunch) singleton.lookupObjectByNamedQuery(
+ "TaskoBunch.lookupSatBunchByName", params);
+ }
+
public static TaskoTemplate lookupTemplateByBunchAndOrder(Long bunchId, Long order) {
Map params = new HashMap();
params.put("bunch_id", bunchId);
@@ -104,20 +112,27 @@ public class TaskoFactory extends HibernateFactory {
"TaskoTask.listTasks", new HashMap());
}
- public static List<TaskoRun> listRunsOlderThan(Integer orgId, Date limitTime) {
+ public static List<TaskoRun> listRunsOlderThan(Date limitTime) {
Map params = new HashMap();
- params.put("org_id", orgId);
params.put("limit_time", limitTime);
return (List<TaskoRun>) singleton.listObjectsByNamedQuery(
"TaskoRun.listOlderThan", params);
}
+ public static List<TaskoRun> listOrgRunsOlderThan(Integer orgId, Date limitTime) {
+ Map params = new HashMap();
+ params.put("org_id", orgId);
+ params.put("limit_time", limitTime);
+ return (List<TaskoRun>) singleton.listObjectsByNamedQuery(
+ "TaskoRun.listOrgRunsOlderThan", params);
+ }
+
public static void clearOrgRunHistory(Integer orgId, Date limitTime)
throws InvalidParamException {
if (limitTime == null) {
throw new InvalidParamException("Invalid limit date");
}
- List<TaskoRun> runList = listRunsOlderThan(orgId, limitTime);
+ List<TaskoRun> runList = listOrgRunsOlderThan(orgId, limitTime);
for (TaskoRun run : runList) {
// delete history of runs
TaskoFactory.deleteLogFiles(run);
@@ -158,20 +173,32 @@ public class TaskoFactory extends HibernateFactory {
public static List<TaskoSchedule> listActiveSchedulesByOrg(Integer orgId) {
Map params = new HashMap();
- params.put("org_id", orgId);
params.put("timestamp", new Date()); // use server time, not DB time
- return (List<TaskoSchedule>) singleton.listObjectsByNamedQuery(
+ if (orgId == null) {
+ return (List<TaskoSchedule>) singleton.listObjectsByNamedQuery(
+ "TaskoSchedule.listActiveInSat", params);
+ }
+ else {
+ params.put("org_id", orgId);
+ return (List<TaskoSchedule>) singleton.listObjectsByNamedQuery(
"TaskoSchedule.listActiveByOrg", params);
+ }
}
public static List<TaskoSchedule> listActiveSchedulesByOrgAndLabel(Integer orgId,
String jobLabel) {
Map params = new HashMap();
- params.put("org_id", orgId);
params.put("job_label", jobLabel);
params.put("timestamp", new Date()); // use server time, not DB time
- return (List<TaskoSchedule>) singleton.listObjectsByNamedQuery(
- "TaskoSchedule.listActiveByOrgAndLabel", params);
+ if (orgId == null) {
+ return (List<TaskoSchedule>) singleton.listObjectsByNamedQuery(
+ "TaskoSchedule.listActiveInSatByLabel", params);
+ }
+ else {
+ params.put("org_id", orgId);
+ return (List<TaskoSchedule>) singleton.listObjectsByNamedQuery(
+ "TaskoSchedule.listActiveByOrgAndLabel", params);
+ }
}
public static TaskoSchedule lookupScheduleById(Long scheduleId) {
@@ -195,6 +222,13 @@ public class TaskoFactory extends HibernateFactory {
"TaskoRun.listBySchedule", params);
}
+ public static List<TaskoSchedule> listSchedulesOlderThan(Date limitTime) {
+ Map params = new HashMap();
+ params.put("limit_time", limitTime);
+ return singleton.listObjectsByNamedQuery(
+ "TaskoSchedule.listOlderThan", params);
+ }
+
public static List<TaskoSchedule> listSchedulesByOrgAndBunch(Integer orgId,
TaskoBunch bunch) {
Map params = new HashMap();
@@ -220,34 +254,6 @@ public class TaskoFactory extends HibernateFactory {
"TaskoRun.lookupById", params);
}
- public static Boolean isTaskParalelizable(TaskoTask task) {
- Class taskClass;
- try {
- taskClass = Class.forName(task.getTaskClass());
- Method isParallelizableMethod = taskClass.getMethod("isParallelizable",
- (Class[]) null);
- return (Boolean) isParallelizableMethod.invoke(null, (Object[]) null);
- }
- catch (ClassNotFoundException e) {
- return false;
- }
- catch (SecurityException e) {
- return false;
- }
- catch (NoSuchMethodException e) {
- return false;
- }
- catch (IllegalArgumentException e) {
- return false;
- }
- catch (IllegalAccessException e) {
- return false;
- }
- catch (InvocationTargetException e) {
- return false;
- }
- }
-
public static TaskoRun getRunByOrgAndId(Integer orgId, Long runId)
throws InvalidParamException {
TaskoRun run = lookupRunById(runId);
@@ -277,4 +283,15 @@ public class TaskoFactory extends HibernateFactory {
}
return runs;
}
+
+ public static void unscheduleTrigger(Trigger trigger) {
+ try {
+ log.warn("Removing trigger " + trigger.getGroup() + "." + trigger.getName());
+ SchedulerKernel.getScheduler().unscheduleJob(trigger.getName(),
+ trigger.getGroup());
+ }
+ catch (SchedulerException e) {
+ // be silent
+ }
+ }
}
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 f3b4058..852d8ef 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/TaskoRun.hbm.xml
+++ b/java/code/src/com/redhat/rhn/taskomatic/TaskoRun.hbm.xml
@@ -46,6 +46,10 @@ PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
</query>
<query name="TaskoRun.listOlderThan">
+ <![CDATA[FROM com.redhat.rhn.taskomatic.TaskoRun WHERE endTime < :limit_time]]>
+ </query>
+
+ <query name="TaskoRun.listOrgRunsOlderThan">
<![CDATA[FROM com.redhat.rhn.taskomatic.TaskoRun WHERE orgId = :org_id AND endTime < :limit_time]]>
</query>
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 f8312f8..8009d15 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/TaskoSchedule.hbm.xml
+++ b/java/code/src/com/redhat/rhn/taskomatic/TaskoSchedule.hbm.xml
@@ -36,6 +36,10 @@ PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
<![CDATA[FROM com.redhat.rhn.taskomatic.TaskoSchedule WHERE id = :schedule_id]]>
</query>
+ <query name="TaskoSchedule.listOlderThan">
+ <![CDATA[FROM com.redhat.rhn.taskomatic.TaskoSchedule WHERE activeTill < :limit_time]]>
+ </query>
+
<query name="TaskoSchedule.listByOrg">
<![CDATA[FROM com.redhat.rhn.taskomatic.TaskoSchedule WHERE orgId = :org_id]]>
</query>
@@ -52,8 +56,16 @@ 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.listActiveInSat">
+ <![CDATA[FROM com.redhat.rhn.taskomatic.TaskoSchedule WHERE orgId is null AND activeFrom < :timestamp AND (activeTill is null OR :timestamp < activeTill)]]>
+ </query>
+
<query name="TaskoSchedule.listActiveByOrgAndLabel">
<![CDATA[FROM com.redhat.rhn.taskomatic.TaskoSchedule WHERE orgId = :org_id AND jobLabel = :job_label AND (activeFrom < :timestamp AND (activeTill is null OR :timestamp < activeTill))]]>
</query>
+ <query name="TaskoSchedule.listActiveInSatByLabel">
+ <![CDATA[FROM com.redhat.rhn.taskomatic.TaskoSchedule WHERE orgId is null AND jobLabel = :job_label AND activeFrom < :timestamp AND (activeTill is null OR :timestamp < activeTill)]]>
+ </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 73d5421..5d142d6 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/TaskoXmlRpcHandler.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/TaskoXmlRpcHandler.java
@@ -88,10 +88,12 @@ public class TaskoXmlRpcHandler {
private TaskoBunch doBasicCheck(Integer orgId, String bunchName,
String jobLabel)
throws NoSuchBunchTaskException, InvalidParamException, SchedulerException {
- TaskoBunch bunch = checkBunchName(bunchName);
+ TaskoBunch bunch = checkBunchName(orgId, bunchName);
if (!TaskoFactory.listActiveSchedulesByOrgAndLabel(orgId, jobLabel).isEmpty() ||
- (SchedulerKernel.getScheduler().getTrigger(jobLabel, orgId.toString()) !=
+ (SchedulerKernel.getScheduler().getTrigger(jobLabel, getGroupName(orgId)) !=
null)) {
+ String[] triggerNames =
+ SchedulerKernel.getScheduler().getTriggerNames(getGroupName(orgId));
throw new InvalidParamException("jobLabel already in use");
}
return bunch;
@@ -103,7 +105,8 @@ public class TaskoXmlRpcHandler {
TaskoFactory.listActiveSchedulesByOrgAndLabel(orgId, jobLabel);
Trigger trigger;
try {
- trigger = SchedulerKernel.getScheduler().getTrigger(jobLabel, orgId.toString());
+ trigger = SchedulerKernel.getScheduler().getTrigger(jobLabel,
+ getGroupName(orgId));
}
catch (SchedulerException e) {
trigger = null;
@@ -165,7 +168,7 @@ public class TaskoXmlRpcHandler {
while (!TaskoFactory.listSchedulesByOrgAndLabel(orgId,
jobLabel + count.toString()).isEmpty() ||
(SchedulerKernel.getScheduler().getTrigger(jobLabel + count.toString(),
- orgId.toString()) != null)) {
+ getGroupName(orgId)) != null)) {
count++;
}
return jobLabel + count.toString();
@@ -176,13 +179,13 @@ public class TaskoXmlRpcHandler {
Trigger trigger = null;
if (schedule.getCronExpr().isEmpty()) {
trigger = new SimpleTrigger(schedule.getJobLabel(),
- schedule.getOrgId().toString(), 1, 1);
+ getGroupName(schedule.getOrgId()), 1, 1);
trigger.setEndTime(new Date());
}
else {
try {
trigger = new CronTrigger(schedule.getJobLabel(),
- schedule.getOrgId().toString(), schedule.getCronExpr());
+ getGroupName(schedule.getOrgId()), schedule.getCronExpr());
trigger.setStartTime(schedule.getActiveFrom());
trigger.setEndTime(schedule.getActiveTill());
}
@@ -193,7 +196,7 @@ public class TaskoXmlRpcHandler {
}
// create job
JobDetail jobDetail = new JobDetail(schedule.getJobLabel(),
- schedule.getOrgId().toString(), TaskoJob.class);
+ getGroupName(schedule.getOrgId()), TaskoJob.class);
// set job params
jobDetail.getJobDataMap().putAll(schedule.getDataMap());
jobDetail.getJobDataMap().put("schedule_id", schedule.getId());
@@ -209,7 +212,7 @@ public class TaskoXmlRpcHandler {
private Integer destroyJob(Integer orgId, String jobLabel) {
try {
- SchedulerKernel.getScheduler().unscheduleJob(jobLabel, orgId.toString());
+ SchedulerKernel.getScheduler().unscheduleJob(jobLabel, getGroupName(orgId));
return 1;
}
catch (SchedulerException e) {
@@ -217,9 +220,15 @@ public class TaskoXmlRpcHandler {
}
}
- private TaskoBunch checkBunchName(String bunchName)
+ private TaskoBunch checkBunchName(Integer orgId, String bunchName)
throws NoSuchBunchTaskException {
- TaskoBunch bunch = TaskoFactory.lookupOrgBunchByName(bunchName);
+ TaskoBunch bunch = null;
+ if (orgId == null) {
+ bunch = TaskoFactory.lookupSatBunchByName(bunchName);
+ }
+ else {
+ bunch = TaskoFactory.lookupOrgBunchByName(bunchName);
+ }
if (bunch == null) {
throw new NoSuchBunchTaskException(bunchName);
}
@@ -281,4 +290,11 @@ public class TaskoXmlRpcHandler {
throws InvalidParamException {
return getRunStdErrorLog(null, runId, nBytes);
}
+
+ private String getGroupName(Integer orgId) {
+ if (orgId == null) {
+ return null;
+ }
+ return orgId.toString();
+ }
}
commit 63d9f782a572797b99a887b7d891661bb63df3e2
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Wed Jun 30 14:38:13 2010 +0200
enhance task synchronization
diff --git a/java/code/src/com/redhat/rhn/taskomatic/TaskoJob.java b/java/code/src/com/redhat/rhn/taskomatic/TaskoJob.java
index 26752a9..2df4614 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/TaskoJob.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/TaskoJob.java
@@ -49,16 +49,17 @@ public class TaskoJob implements Job {
}
private boolean isTaskThreadAvailable(TaskoTask task) {
- return tasks.get(task.getName()) < Config.get().getInt("taskomatic." + task.getTaskClass() + ".parallel_threads", 1);
+ return tasks.get(task.getName()) < Config.get().getInt("taskomatic." +
+ task.getTaskClass() + ".parallel_threads", 1);
}
- synchronized private static void markTaskRunning(TaskoTask task) {
+ private static synchronized void markTaskRunning(TaskoTask task) {
int count = tasks.get(task.getName());
count++;
tasks.put(task.getName(), count);
}
- synchronized private static void unmarkTaskRunning(TaskoTask task) {
+ private static synchronized void unmarkTaskRunning(TaskoTask task) {
int count = tasks.get(task.getName());
count--;
tasks.put(task.getName(), count);
@@ -73,8 +74,10 @@ public class TaskoJob implements Job {
TaskoSchedule schedule = TaskoFactory.lookupScheduleById(scheduleId);
if (schedule == null) {
- log.error("No such schedule with id " + scheduleId);
- return;
+ // means, that schedule was deleted (in the DB), but quartz still schedules it
+ log.error("No such schedule with id " + scheduleId);
+ TaskoFactory.unscheduleTrigger(context.getTrigger());
+ return;
}
log.info(schedule.getJobLabel() + ":" + " bunch " + schedule.getBunch().getName() +
@@ -88,27 +91,30 @@ public class TaskoJob implements Job {
Object lock = locks.get(task.getName());
synchronized (lock) {
while (!isTaskThreadAvailable(task)) {
- log.debug(schedule.getJobLabel() + ":" + " task " + task.getName() +
- " all allowed threads running ... WAITING");
+ log.debug(schedule.getJobLabel() + ":" + " task " +
+ task.getName() +
+ " all allowed threads running ... WAITING");
try {
lock.wait();
- log.debug(schedule.getJobLabel() + ":" + " task " + task.getName() +
- " ... AWAKE");
+ log.debug(schedule.getJobLabel() + ":" + " task " +
+ task.getName() + " ... AWAKE");
}
catch (InterruptedException e) {
// ok
}
}
markTaskRunning(task);
- log.debug(schedule.getJobLabel() + ":" + " task " + task.getName() +
- " STARTED");
- 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;
+ }
+ log.debug(schedule.getJobLabel() + ":" + " task " + task.getName() +
+ " STARTED");
+ 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;
+ synchronized (lock) {
unmarkTaskRunning(task);
lock.notify();
}
@@ -125,7 +131,7 @@ public class TaskoJob implements Job {
}
/**
- * @param scheduleId The scheduleId to set.
+ * @param scheduleIdIn The scheduleId to set.
*/
public void setScheduleId(Long scheduleIdIn) {
this.scheduleId = scheduleIdIn;
commit 4cf1e3f7fd4fd3579dcaf911aa4721593ffbeef0
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Wed Jun 30 14:35:29 2010 +0200
add logging support
- differentiate internal java and external command tasks
diff --git a/java/code/src/com/redhat/rhn/taskomatic/TaskoRun.java b/java/code/src/com/redhat/rhn/taskomatic/TaskoRun.java
index 387fe89..ebb6fda 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/TaskoRun.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/TaskoRun.java
@@ -14,6 +14,8 @@
*/
package com.redhat.rhn.taskomatic;
+import com.redhat.rhn.taskomatic.task.RhnJob;
+
import org.apache.log4j.Logger;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
@@ -75,9 +77,9 @@ public class TaskoRun implements Job {
saveStatus(STATUS_RUNNING);
}
- public void finished(JobExecutionContext context) {
+ public void finished(RhnJob job) {
setEndTime(new Date());
- String out = (String) context.getJobDetail().getJobDataMap().get("stdOutput");
+ String out = job.getLogOutput();
if (new File(getStdLogDirName(orgId)).isDirectory()) {
if ((out != null) && (!out.isEmpty())) {
setStdOutputPath(getStdOutputLog(orgId, template, this));
@@ -86,7 +88,7 @@ public class TaskoRun implements Job {
else {
setStdOutputPath("");
}
- String err = (String) context.getJobDetail().getJobDataMap().get("stdError");
+ String err = job.getLogError();
if ((err != null) && (!err.isEmpty())) {
setStdErrorPath(getStdErrorLog(orgId, template, this));
saveLogToFile(getStdErrorPath(), err);
@@ -98,39 +100,24 @@ public class TaskoRun implements Job {
else {
log.warn("Logging disabled. No directory " + getStdLogDirName(orgId));
}
- saveStatus(STATUS_FINISHED);
}
public void execute(JobExecutionContext context)
throws JobExecutionException {
start();
Class jobClass = null;
- Job job = null;
+ RhnJob job = null;
try {
jobClass = Class.forName(template.getTask().getTaskClass());
- job = (Job) jobClass.newInstance();
- }
- catch (ClassNotFoundException cnfe) {
- log.warn("Internal task error.");
- saveToStdError(cnfe.toString());
- saveStatus(STATUS_FAILED);
- return;
+ job = (RhnJob) jobClass.newInstance();
+ job.execute(context);
+ saveStatus(STATUS_FINISHED);
}
- catch (InstantiationException ie) {
- log.warn("Internal task error.");
- saveToStdError(ie.toString());
+ catch (Exception e) {
+ job.appendExceptionToLogError(e);
saveStatus(STATUS_FAILED);
- return;
}
- catch (IllegalAccessException iae) {
- log.warn("Internal task error.");
- saveToStdError(iae.toString());
- saveStatus(STATUS_FAILED);
- return;
- }
-
- job.execute(context);
- finished(context);
+ finished(job);
}
private void saveToStdError(String message) {
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/RhnExtCmdJob.java b/java/code/src/com/redhat/rhn/taskomatic/task/RhnExtCmdJob.java
new file mode 100644
index 0000000..5173363
--- /dev/null
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/RhnExtCmdJob.java
@@ -0,0 +1,68 @@
+/**
+ * Copyright (c) 2010 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.manager.satellite.SystemCommandExecutor;
+
+import org.apache.log4j.Logger;
+
+
+/**
+ * RhnExtCmdJob
+ * @version $Rev$
+ */
+public abstract class RhnExtCmdJob implements RhnJob {
+
+ protected Logger log = null;
+ private String stdOutput;
+ private String stdError;
+
+ public Logger getLogger(Class clazz) {
+ if (log == null) {
+ log = Logger.getLogger(clazz);
+ }
+ return log;
+ }
+
+ protected void executeExtCmd(String[] args) {
+ SystemCommandExecutor ce = new SystemCommandExecutor();
+ ce.execute(args);
+
+ setStdOutput(ce.getLastCommandOutput());
+ setStdError(ce.getLastCommandErrorMessage());
+ }
+
+ private void setStdError(String stdErrorIn) {
+ stdError = stdErrorIn;
+ }
+
+ private void setStdOutput(String stdOutputIn) {
+ stdOutput = stdOutputIn;
+ }
+
+ public String getLogOutput() {
+ return stdOutput;
+ }
+
+ public String getLogError() {
+ return stdError;
+ }
+
+ public void appendExceptionToLogError(Exception e) {
+ e.printStackTrace();
+ stdError += e.getMessage();
+ stdError += e.getCause();
+ }
+}
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/RhnJavaJob.java b/java/code/src/com/redhat/rhn/taskomatic/task/RhnJavaJob.java
new file mode 100644
index 0000000..52ddbdc
--- /dev/null
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/RhnJavaJob.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2010 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 org.apache.log4j.Logger;
+
+
+/**
+ * RhnJavaJob
+ * @version $Rev$
+ */
+public abstract class RhnJavaJob implements RhnJob {
+
+ private Logger log = null;
+ private RhnJobAppender appender = null;
+
+ public Logger getLogger(Class clazz) {
+ if (log == null) {
+ log = Logger.getLogger(clazz);
+ appender = new RhnJobAppender();
+ log.addAppender(appender);
+ }
+ return log;
+ }
+
+ public String getLogOutput() {
+ return appender.getOutputContent();
+ }
+
+ public String getLogError() {
+ return appender.getErrorContent();
+ }
+
+ public void appendExceptionToLogError(Exception e) {
+ log.error(e.getMessage());
+ log.error(e.getCause());
+ }
+}
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/RhnJob.java b/java/code/src/com/redhat/rhn/taskomatic/task/RhnJob.java
index 9d39292..9e9e77b 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/RhnJob.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/RhnJob.java
@@ -14,17 +14,22 @@
*/
package com.redhat.rhn.taskomatic.task;
+import org.apache.log4j.Logger;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
-public abstract class RhnJob implements Job {
+public abstract interface RhnJob extends Job {
- public static boolean isParallelizable() {
- return false;
- }
-
- public abstract void execute(JobExecutionContext context)
+ void execute(JobExecutionContext context)
throws JobExecutionException;
+
+ Logger getLogger(Class clazz);
+
+ String getLogOutput();
+
+ String getLogError();
+
+ void appendExceptionToLogError(Exception e);
}
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/RhnJobAppender.java b/java/code/src/com/redhat/rhn/taskomatic/task/RhnJobAppender.java
new file mode 100644
index 0000000..c88b084
--- /dev/null
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/RhnJobAppender.java
@@ -0,0 +1,65 @@
+/**
+ * Copyright (c) 2010 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.localization.LocalizationService;
+
+import org.apache.log4j.AppenderSkeleton;
+import org.apache.log4j.Level;
+import org.apache.log4j.spi.LoggingEvent;
+
+import java.util.Date;
+
+
+/**
+ * RhnJobAppender
+ * @version $Rev$
+ */
+public class RhnJobAppender extends AppenderSkeleton {
+ private StringBuffer outputBuffer = new StringBuffer();
+ private StringBuffer errorBuffer = new StringBuffer();
+
+ public String getOutputContent() {
+ return outputBuffer.toString();
+ }
+
+ public String getErrorContent() {
+ return errorBuffer.toString();
+ }
+
+ @Override
+ protected void append(LoggingEvent event) {
+ if (Level.INFO.isGreaterOrEqual(event.getLevel())) {
+ outputBuffer.append(logEvent(event));
+ }
+ else {
+ errorBuffer.append(logEvent(event));
+ }
+ }
+
+ private String logEvent(LoggingEvent event) {
+ return LocalizationService.getInstance().formatCustomDate(
+ new Date(LoggingEvent.getStartTime())) + " [" + event.getThreadName() +
+ "] " + event.getLevel() + " " + event.getClass().getName() + " " +
+ event.getRenderedMessage() + '\n';
+ }
+
+ public void close() {
+ }
+
+ public boolean requiresLayout() {
+ return false;
+ }
+}
commit 9abf02eda0f17adb6302e1d0ee771dc75b35eac6
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Mon Jun 28 14:22:57 2010 +0200
make number of threads per task configurable
diff --git a/java/code/src/com/redhat/rhn/taskomatic/TaskoJob.java b/java/code/src/com/redhat/rhn/taskomatic/TaskoJob.java
index 3b9ae41..26752a9 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/TaskoJob.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/TaskoJob.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2008 Red Hat, Inc.
+ * Copyright (c) 2010 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
@@ -14,6 +14,7 @@
*/
package com.redhat.rhn.taskomatic;
+import com.redhat.rhn.common.conf.Config;
import com.redhat.rhn.common.hibernate.HibernateFactory;
import org.apache.log4j.Logger;
@@ -47,6 +48,10 @@ public class TaskoJob implements Job {
return tasks.get(task.getName()) > 0;
}
+ private boolean isTaskThreadAvailable(TaskoTask task) {
+ return tasks.get(task.getName()) < Config.get().getInt("taskomatic." + task.getTaskClass() + ".parallel_threads", 1);
+ }
+
synchronized private static void markTaskRunning(TaskoTask task) {
int count = tasks.get(task.getName());
count++;
@@ -69,57 +74,52 @@ public class TaskoJob implements Job {
TaskoSchedule schedule = TaskoFactory.lookupScheduleById(scheduleId);
if (schedule == null) {
log.error("No such schedule with id " + scheduleId);
+ return;
}
log.info(schedule.getJobLabel() + ":" + " bunch " + schedule.getBunch().getName() +
" started");
- // wait until the same schedule finishes
- //synchronized (schedule) {
- for (TaskoTemplate template : schedule.getBunch().getTemplates()) {
- if ((previousRun == null) ||
- (previousRun.getStatus() == template.getStartIf())) {
- TaskoTask task = template.getTask();
-
- Object lock = locks.get(task.getName());
- synchronized (lock) {
- if (!TaskoFactory.isTaskParalelizable(task)) {
- while (isTaskRunning(task)) {
- log.debug(schedule.getJobLabel() + ":" + " task " + task.getName() +
- " currenty running ... WAITING");
- // TaskoFactory.sleep(10000);
- try {
- lock.wait();
- log.debug(schedule.getJobLabel() + ":" + " task " + task.getName() +
- " ... AWAKE");
- }
- catch (InterruptedException e) {
- // ok
- }
- }
- }
- markTaskRunning(task);
+ for (TaskoTemplate template : schedule.getBunch().getTemplates()) {
+ if ((previousRun == null) ||
+ (previousRun.getStatus() == template.getStartIf())) {
+ TaskoTask task = template.getTask();
+
+ Object lock = locks.get(task.getName());
+ synchronized (lock) {
+ while (!isTaskThreadAvailable(task)) {
log.debug(schedule.getJobLabel() + ":" + " task " + task.getName() +
- " STARTED");
- 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;
- unmarkTaskRunning(task);
- lock.notify();
+ " all allowed threads running ... WAITING");
+ try {
+ lock.wait();
+ log.debug(schedule.getJobLabel() + ":" + " task " + task.getName() +
+ " ... AWAKE");
+ }
+ catch (InterruptedException e) {
+ // ok
+ }
}
- }
- else {
- log.info("Interrupting " + schedule.getBunch().getName() +
- " (" + schedule.getJobLabel() + ")");
- break;
+ markTaskRunning(task);
+ log.debug(schedule.getJobLabel() + ":" + " task " + task.getName() +
+ " STARTED");
+ 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;
+ unmarkTaskRunning(task);
+ lock.notify();
}
}
- HibernateFactory.closeSession();
- //}
+ else {
+ log.info("Interrupting " + schedule.getBunch().getName() +
+ " (" + schedule.getJobLabel() + ")");
+ break;
+ }
+ }
+ HibernateFactory.closeSession();
log.info(schedule.getJobLabel() + ":" + " bunch " + schedule.getBunch().getName() +
" finished");
}
13 years, 10 months
Changes to 'refs/tags/spacewalk-java-1.1.16-1'
by Tomas Lestach
Tag 'spacewalk-java-1.1.16-1' created by Tomas Lestach <tlestach(a)redhat.com> at 2010-06-30 08:15 +0000
Tagging package [spacewalk-java] version [1.1.16-1] in directory [java/].
Changes since spacewalk-proxy-1.1.2-1:
Justin Sherrill (3):
adding wsgi to backend script
adding removed option during alphabetization of command line arguments
fixing small issue with wsgi handler where status was not a string
Partha Aji (7):
Fixed a dupe key issue
Fixed fve unit tests Hopefully...
Fixed a checkstyle issue
Speeded up a unit test ....
Fixed another checkstyle issue
Cleared more unit test
More unit test fixes
Tomas Lestach (3):
remove exceptions from method definitions that aren't thrown
591291 - fix also mergeErrata with given start and end date
Automatic commit of package [spacewalk-java] release [1.1.16-1].
---
backend/satellite_tools/satsync.py | 2
backend/wsgi/wsgiRequest.py | 2
java/code/src/com/redhat/rhn/common/security/acl/test/AccessTest.java | 8 +
java/code/src/com/redhat/rhn/common/util/test/ServletUtilsTest.java | 14 +-
java/code/src/com/redhat/rhn/domain/channel/test/ChannelFactoryTest.java | 15 ---
java/code/src/com/redhat/rhn/domain/server/Server.java | 4
java/code/src/com/redhat/rhn/domain/server/test/HostBuilder.java | 7 -
java/code/src/com/redhat/rhn/domain/server/test/ServerFactoryTest.java | 39 ++++++--
java/code/src/com/redhat/rhn/domain/server/test/ServerFactoryVirtualizationTest.java | 29 ++----
java/code/src/com/redhat/rhn/domain/server/test/ServerGroupTest.java | 44 +++------
java/code/src/com/redhat/rhn/domain/server/test/ServerTest.java | 3
java/code/src/com/redhat/rhn/frontend/action/channel/test/ChannelEntitlementSetupActionTest.java | 3
java/code/src/com/redhat/rhn/frontend/action/common/DownloadFile.java | 3
java/code/src/com/redhat/rhn/frontend/action/multiorg/test/OrgSoftwareSubscriptionsActionTest.java | 19 +++
java/code/src/com/redhat/rhn/frontend/action/multiorg/test/SoftwareEntitlementsActionTest.java | 4
java/code/src/com/redhat/rhn/frontend/action/rhnset/SetItemSelectionAction.java | 4
java/code/src/com/redhat/rhn/frontend/action/systems/entitlements/test/SystemEntitlementsSubmitActionTest.java | 38 -------
java/code/src/com/redhat/rhn/frontend/action/systems/sdc/test/SystemDetailsEditActionTest.java | 14 ++
java/code/src/com/redhat/rhn/frontend/configuration/tags/ConfigChannelTag.java | 2
java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml | 16 ---
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/frontend/xmlrpc/channel/software/ChannelSoftwareHandler.java | 3
java/code/src/com/redhat/rhn/manager/system/SystemManager.java | 2
java/code/src/com/redhat/rhn/manager/system/test/SystemManagerTest.java | 5 -
java/code/src/com/redhat/rhn/taskomatic/task/test/DailySummaryTest.java | 4
java/code/src/com/redhat/rhn/testing/RhnBaseTestCase.java | 3
java/code/src/com/redhat/rhn/testing/ServerGroupTestUtils.java | 1
java/spacewalk-java.spec | 48 +++++++++-
rel-eng/packages/spacewalk-java | 2
scripts/setup-backend-devel.sh | 2
32 files changed, 180 insertions(+), 168 deletions(-)
---
13 years, 10 months
java/spacewalk-java.spec rel-eng/packages
by Tomas Lestach
java/spacewalk-java.spec | 48 +++++++++++++++++++++++++++++++++++++++-
rel-eng/packages/spacewalk-java | 2 -
2 files changed, 48 insertions(+), 2 deletions(-)
New commits:
commit 09ebe748dd0e66cb518763383e802fa1b6774064
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Wed Jun 30 10:15:59 2010 +0200
Automatic commit of package [spacewalk-java] release [1.1.16-1].
diff --git a/java/spacewalk-java.spec b/java/spacewalk-java.spec
index ecbbf3a..cc3fffa 100644
--- a/java/spacewalk-java.spec
+++ b/java/spacewalk-java.spec
@@ -19,7 +19,7 @@ Name: spacewalk-java
Summary: Spacewalk Java site packages
Group: Applications/Internet
License: GPLv2
-Version: 1.1.15
+Version: 1.1.16
Release: 1%{?dist}
URL: https://fedorahosted.org/spacewalk
Source0: https://fedorahosted.org/releases/s/p/spacewalk/%{name}-%{version}.tar.gz
@@ -321,6 +321,52 @@ fi
%{jardir}/postgresql-jdbc.jar
%changelog
+* Wed Jun 30 2010 Tomas Lestach <tlestach(a)redhat.com> 1.1.16-1
+- 591291 - fix also mergeErrata with given start and end date
+ (tlestach(a)redhat.com)
+- remove exceptions from method definitions that aren't thrown
+ (tlestach(a)redhat.com)
+- More unit test fixes (paji(a)redhat.com)
+- Cleared more unit test (paji(a)redhat.com)
+- Fixed another checkstyle issue (paji(a)redhat.com)
+- Speeded up a unit test .... (paji(a)redhat.com)
+- Fixed a checkstyle issue (paji(a)redhat.com)
+- Fixed fve unit tests Hopefully... (paji(a)redhat.com)
+- Fixed a dupe key issue (paji(a)redhat.com)
+- if file is rpm package, use checksum from db, otherwise read whole file
+ (msuchy(a)redhat.com)
+- Fixed a compile error.... (paji(a)redhat.com)
+- Added more tests on Orphaned gets entitlements (paji(a)redhat.com)
+- Added unit tests for VirtEntitlementsManager (paji(a)redhat.com)
+- Fixed some typos (paji(a)redhat.com)
+- Added page sizes to flex multiorg pages (paji(a)redhat.com)
+- fixed a line typo where I forgot to clear the map create in session
+ (paji(a)redhat.com)
+- Added sorting to channel family-> orgs page (paji(a)redhat.com)
+- Added flex magic to ChannelFamily -> Orgs page (paji(a)redhat.com)
+- Added alphabar columns for the mutli org pages (paji(a)redhat.com)
+- More verbiage on software entitlements page (paji(a)redhat.com)
+- Updated the software entitlements page to deal with FVE (paji(a)redhat.com)
+- Added a couple of enhancements on the Org software subs pager
+ (paji(a)redhat.com)
+- Fixed checkstyle errors (paji(a)redhat.com)
+- Added code to get multiorgs org -> software channel ents page work with flex
+ entitlements (paji(a)redhat.com)
+- Forgot to commit EligibleFlexGuestAction (paji(a)redhat.com)
+- Added the convert to flex plsql operation (paji(a)redhat.com)
+- More updates to the UI (paji(a)redhat.com)
+- More UI updates on the Flex Guest Pages added Nav stuff (paji(a)redhat.com)
+- Made the Flexguest page show entitlements (paji(a)redhat.com)
+- Initial cut to list eligible flex guests page (paji(a)redhat.com)
+- Slight refactoring of Virtual Enttitlements (paji(a)redhat.com)
+- Initial cut of the Flex Guests Page (paji(a)redhat.com)
+- adding flex guest entitlement columns on the org entitlments page
+ (jsherril(a)redhat.com)
+- updating rhn_entitlement package for cert activation (jsherril(a)redhat.com)
+- having setters do the right thing (jsherril(a)redhat.com)
+- matching hosteds column names for flex guests (jsherril(a)redhat.com)
+- adding hibernate mapping for flex guests (jsherril(a)redhat.com)
+
* Wed Jun 23 2010 Jan Pazdziora 1.1.15-1
- Fixed a couple of checkstyle errors (paji(a)redhat.com)
diff --git a/rel-eng/packages/spacewalk-java b/rel-eng/packages/spacewalk-java
index ab8d625..d300df0 100644
--- a/rel-eng/packages/spacewalk-java
+++ b/rel-eng/packages/spacewalk-java
@@ -1 +1 @@
-1.1.15-1 java/
+1.1.16-1 java/
13 years, 10 months
2 commits - java/code
by Tomas Lestach
java/code/src/com/redhat/rhn/common/util/test/ServletUtilsTest.java | 14 +++-------
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/frontend/xmlrpc/channel/software/ChannelSoftwareHandler.java | 3 --
java/code/src/com/redhat/rhn/taskomatic/task/test/DailySummaryTest.java | 4 --
java/code/src/com/redhat/rhn/testing/RhnBaseTestCase.java | 3 --
9 files changed, 14 insertions(+), 24 deletions(-)
New commits:
commit bc0f1dfe1ca5c7c9910e8c44a2711570f90bb6ae
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Wed Jun 30 10:12:41 2010 +0200
591291 - fix also mergeErrata with given start and end date
diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/channel/software/ChannelSoftwareHandler.java b/java/code/src/com/redhat/rhn/frontend/xmlrpc/channel/software/ChannelSoftwareHandler.java
index 92767ef..4253701 100644
--- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/channel/software/ChannelSoftwareHandler.java
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/channel/software/ChannelSoftwareHandler.java
@@ -1806,12 +1806,11 @@ public class ChannelSoftwareHandler extends BaseHandler {
throw new PermissionCheckFailureException();
}
- Set<Errata> toErrata = mergeTo.getErratas();
List<Errata> fromErrata = ErrataFactory.lookupByChannelBetweenDates(
loggedInUser.getOrg(), mergeFrom, startDate, endDate);
Set<Errata> mergedErrata =
- mergeErrataToChannel(loggedInUser, mergeFrom.getErratas(), mergeTo);
+ mergeErrataToChannel(loggedInUser, new HashSet<Errata>(fromErrata), mergeTo);
return mergedErrata.toArray();
}
commit 6ddc1ee7b8e2569f434662463924f6ce97c72a5c
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Wed Jun 30 10:07:35 2010 +0200
remove exceptions from method definitions that aren't thrown
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/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";
13 years, 10 months
java/code
by Partha Aji
java/code/src/com/redhat/rhn/domain/server/Server.java | 2 -
java/code/src/com/redhat/rhn/domain/server/test/ServerFactoryTest.java | 17 +++++++---
java/code/src/com/redhat/rhn/manager/system/SystemManager.java | 2 -
java/code/src/com/redhat/rhn/manager/system/test/SystemManagerTest.java | 5 +-
4 files changed, 17 insertions(+), 9 deletions(-)
New commits:
commit 57bf2f53af37fae61efd22abe98b1fcc81e41087
Author: Partha Aji <paji(a)redhat.com>
Date: Tue Jun 29 21:28:29 2010 -0400
More unit test fixes
diff --git a/java/code/src/com/redhat/rhn/domain/server/Server.java b/java/code/src/com/redhat/rhn/domain/server/Server.java
index 9344469..0c18647 100644
--- a/java/code/src/com/redhat/rhn/domain/server/Server.java
+++ b/java/code/src/com/redhat/rhn/domain/server/Server.java
@@ -1662,7 +1662,7 @@ public class Server extends BaseDomainHelper implements Identifiable {
/**
* @return this list of history events for this server
*/
- public Set getHistory() {
+ public Set<ServerHistoryEvent> getHistory() {
return history;
}
diff --git a/java/code/src/com/redhat/rhn/domain/server/test/ServerFactoryTest.java b/java/code/src/com/redhat/rhn/domain/server/test/ServerFactoryTest.java
index 30e2c0b..0c3ddd2 100644
--- a/java/code/src/com/redhat/rhn/domain/server/test/ServerFactoryTest.java
+++ b/java/code/src/com/redhat/rhn/domain/server/test/ServerFactoryTest.java
@@ -865,10 +865,19 @@ public class ServerFactoryTest extends RhnBaseTestCase {
ServerFactory.save(serverTest);
TestUtils.saveAndFlush(event1);
- event1 = (ServerHistoryEvent) reload(event1);
-
- assertEquals(((ServerHistoryEvent) serverTest.getHistory().toArray()[0]),
- event1);
+ Long eventId = event1.getId();
+ Long sid = serverTest.getId();
+
+ HibernateFactory.getSession().clear();
+ serverTest = ServerFactory.lookupById(sid);
+ boolean hasEvent = false;
+ for (ServerHistoryEvent she : serverTest.getHistory()) {
+ if (eventId.equals(she.getId())) {
+ hasEvent = true;
+ break;
+ }
+ }
+ assertTrue(hasEvent);
}
diff --git a/java/code/src/com/redhat/rhn/manager/system/SystemManager.java b/java/code/src/com/redhat/rhn/manager/system/SystemManager.java
index 2b2e47c..45fcd76 100644
--- a/java/code/src/com/redhat/rhn/manager/system/SystemManager.java
+++ b/java/code/src/com/redhat/rhn/manager/system/SystemManager.java
@@ -969,7 +969,7 @@ public class SystemManager extends BaseManager {
* @param sid Server id
* @return entitlements - ArrayList of entitlements
*/
- public static ArrayList getServerEntitlements(Long sid) {
+ public static List getServerEntitlements(Long sid) {
ArrayList entitlements = new ArrayList();
SelectMode m = ModeFactory.getMode("General_queries", "system_entitlements");
diff --git a/java/code/src/com/redhat/rhn/manager/system/test/SystemManagerTest.java b/java/code/src/com/redhat/rhn/manager/system/test/SystemManagerTest.java
index fc46a56..7288de3 100644
--- a/java/code/src/com/redhat/rhn/manager/system/test/SystemManagerTest.java
+++ b/java/code/src/com/redhat/rhn/manager/system/test/SystemManagerTest.java
@@ -94,7 +94,6 @@ import org.hibernate.Hibernate;
import org.hibernate.Session;
import java.sql.SQLException;
-import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
@@ -579,9 +578,9 @@ public class SystemManagerTest extends RhnBaseTestCase {
// create a new server
User user = UserTestUtils.findNewUser("testUser", "testOrg");
Server server = ServerFactoryTest.createTestServer(user);
- ArrayList entitlements = SystemManager.getServerEntitlements(server.getId());
+ List entitlements = SystemManager.getServerEntitlements(server.getId());
assertFalse(entitlements.isEmpty());
- assertTrue(entitlements.contains(EntitlementManager.UPDATE));
+ assertTrue(entitlements.contains(EntitlementManager.MANAGEMENT));
}
public void testClientCapability() throws Exception {
13 years, 10 months
java/code
by Partha Aji
java/code/src/com/redhat/rhn/domain/server/Server.java | 2
java/code/src/com/redhat/rhn/domain/server/test/ServerFactoryVirtualizationTest.java | 29 +++----
java/code/src/com/redhat/rhn/domain/server/test/ServerTest.java | 3
java/code/src/com/redhat/rhn/frontend/action/channel/test/ChannelEntitlementSetupActionTest.java | 3
java/code/src/com/redhat/rhn/frontend/action/multiorg/test/OrgSoftwareSubscriptionsActionTest.java | 19 ++++-
java/code/src/com/redhat/rhn/frontend/action/multiorg/test/SoftwareEntitlementsActionTest.java | 4 -
java/code/src/com/redhat/rhn/frontend/action/systems/entitlements/test/SystemEntitlementsSubmitActionTest.java | 38 ----------
java/code/src/com/redhat/rhn/frontend/action/systems/sdc/test/SystemDetailsEditActionTest.java | 14 ++-
8 files changed, 48 insertions(+), 64 deletions(-)
New commits:
commit 6f7dadd39aa633e627a56e38d48c38582c509abe
Author: Partha Aji <paji(a)redhat.com>
Date: Tue Jun 29 19:03:58 2010 -0400
Cleared more unit test
diff --git a/java/code/src/com/redhat/rhn/domain/server/Server.java b/java/code/src/com/redhat/rhn/domain/server/Server.java
index 3ee4e16..9344469 100644
--- a/java/code/src/com/redhat/rhn/domain/server/Server.java
+++ b/java/code/src/com/redhat/rhn/domain/server/Server.java
@@ -1404,7 +1404,7 @@ public class Server extends BaseDomainHelper implements Identifiable {
}
private boolean canDeleteGuest(VirtualInstance guest) {
- for (VirtualInstance g : guests) {
+ for (VirtualInstance g : getGuests()) {
if (g.getId().equals(guest.getId())) {
return true;
}
diff --git a/java/code/src/com/redhat/rhn/domain/server/test/ServerFactoryVirtualizationTest.java b/java/code/src/com/redhat/rhn/domain/server/test/ServerFactoryVirtualizationTest.java
index 55b7f6d..d915982 100644
--- a/java/code/src/com/redhat/rhn/domain/server/test/ServerFactoryVirtualizationTest.java
+++ b/java/code/src/com/redhat/rhn/domain/server/test/ServerFactoryVirtualizationTest.java
@@ -14,6 +14,7 @@
*/
package com.redhat.rhn.domain.server.test;
+import com.redhat.rhn.common.hibernate.HibernateFactory;
import com.redhat.rhn.domain.server.Server;
import com.redhat.rhn.domain.server.ServerFactory;
import com.redhat.rhn.domain.server.VirtualInstance;
@@ -65,28 +66,26 @@ public class ServerFactoryVirtualizationTest extends RhnBaseTestCase {
}
public void testDeleteGuestFromHostAndSaveHost() throws Exception {
- VirtualInstance virtualInstance =
+ VirtualInstance guest =
virtualInstanceFactory.newRegisteredGuestWithHost();
-
- Server host = virtualInstance.getHostSystem();
-
+ Long guestId = guest.getGuestSystem().getId();
+ Server host = guest.getHostSystem();
ServerFactory.save(host);
- flushAndEvict(host);
- flushAndEvict(virtualInstance);
+ Long hostId = host.getId();
- Long guestId = virtualInstance.getGuestSystem().getId();
+ HibernateFactory.getSession().save(guest);
+ HibernateFactory.getSession().clear();
- Server retrievedHost = ServerFactory.lookupById(host.getId());
- retrievedHost.deleteGuest(virtualInstance);
+ Server retrievedHost = ServerFactory.lookupById(hostId);
+ assertFalse(retrievedHost.getGuests().isEmpty());
- //ServerFactory.save(retrievedHost);
- flushAndEvict(virtualInstance);
- flushAndEvict(retrievedHost);
-
- Server serverWithoutGuest = ServerFactory.lookupById(host.getId());
+ assertTrue(retrievedHost.deleteGuest(guest));
+
+ HibernateFactory.getSession().clear();
+ Server serverWithoutGuest = ServerFactory.lookupById(hostId);
Server deletedGuest = ServerFactory.lookupById(guestId);
- assertFalse(serverWithoutGuest.getGuests().contains(virtualInstance));
+ assertFalse(serverWithoutGuest.getGuests().contains(deletedGuest));
assertNull("guest system was not deleted", deletedGuest);
}
diff --git a/java/code/src/com/redhat/rhn/domain/server/test/ServerTest.java b/java/code/src/com/redhat/rhn/domain/server/test/ServerTest.java
index 96f5a1c..996ca5b 100644
--- a/java/code/src/com/redhat/rhn/domain/server/test/ServerTest.java
+++ b/java/code/src/com/redhat/rhn/domain/server/test/ServerTest.java
@@ -14,6 +14,7 @@
*/
package com.redhat.rhn.domain.server.test;
+import com.redhat.rhn.common.hibernate.HibernateFactory;
import com.redhat.rhn.domain.role.RoleFactory;
import com.redhat.rhn.domain.server.Capability;
import com.redhat.rhn.domain.server.EntitlementServerGroup;
@@ -60,6 +61,8 @@ public class ServerTest extends BaseTestCaseWithUser {
Server s = ServerTestUtils.createTestSystem(user);
SystemManager.removeAllServerEntitlements(s.getId());
UserTestUtils.addManagement(s.getCreator().getOrg());
+ HibernateFactory.getSession().clear();
+ s = ServerFactory.lookupById(s.getId());
s.setBaseEntitlement(EntitlementManager.MANAGEMENT);
TestUtils.saveAndFlush(s);
s = (Server) reload(s);
diff --git a/java/code/src/com/redhat/rhn/frontend/action/channel/test/ChannelEntitlementSetupActionTest.java b/java/code/src/com/redhat/rhn/frontend/action/channel/test/ChannelEntitlementSetupActionTest.java
index 2540bf6..1718f82 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/channel/test/ChannelEntitlementSetupActionTest.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/channel/test/ChannelEntitlementSetupActionTest.java
@@ -21,6 +21,7 @@ import com.redhat.rhn.domain.role.RoleFactory;
import com.redhat.rhn.domain.user.User;
import com.redhat.rhn.frontend.action.channel.ChannelEntitlementSetupAction;
import com.redhat.rhn.frontend.struts.RequestContext;
+import com.redhat.rhn.frontend.taglibs.list.helper.ListHelper;
import com.redhat.rhn.testing.ActionHelper;
import com.redhat.rhn.testing.RhnBaseTestCase;
@@ -45,7 +46,7 @@ public class ChannelEntitlementSetupActionTest extends RhnBaseTestCase {
sah.setupProcessPagination();
sah.setupClampListBounds();
sah.executeAction();
- DataResult dr = (DataResult) sah.getRequest().getAttribute("pageList");
+ DataResult dr = (DataResult) sah.getRequest().getAttribute(ListHelper.DATA_SET);
assertNotEmpty(dr);
}
}
diff --git a/java/code/src/com/redhat/rhn/frontend/action/multiorg/test/OrgSoftwareSubscriptionsActionTest.java b/java/code/src/com/redhat/rhn/frontend/action/multiorg/test/OrgSoftwareSubscriptionsActionTest.java
index 796d5d7..1a59843 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/multiorg/test/OrgSoftwareSubscriptionsActionTest.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/multiorg/test/OrgSoftwareSubscriptionsActionTest.java
@@ -14,17 +14,21 @@
*/
package com.redhat.rhn.frontend.action.multiorg.test;
+import com.redhat.rhn.common.localization.LocalizationService;
import com.redhat.rhn.domain.channel.ChannelFamily;
import com.redhat.rhn.domain.channel.test.ChannelFamilyFactoryTest;
import com.redhat.rhn.domain.org.OrgFactory;
import com.redhat.rhn.domain.role.RoleFactory;
import com.redhat.rhn.domain.user.UserFactory;
import com.redhat.rhn.frontend.struts.RequestContext;
+import com.redhat.rhn.frontend.taglibs.list.helper.ListHelper;
import com.redhat.rhn.testing.RhnMockStrutsTestCase;
import com.redhat.rhn.testing.TestUtils;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
/**
* OrgSoftwareSubscriptionsActionTest
@@ -38,8 +42,10 @@ public class OrgSoftwareSubscriptionsActionTest extends RhnMockStrutsTestCase {
addRequestParameter(RequestContext.ORG_ID, user.getOrg().getId().toString());
setRequestPathInfo("/admin/multiorg/OrgSoftwareSubscriptions");
actionPerform();
- assertTrue(getActualForward().contains("oid=" + user.getOrg().getId()));
assertNotNull(request.getAttribute("org"));
+ assertNotNull(request.getAttribute(ListHelper.DATA_SET));
+ List pl = (List) request.getAttribute(ListHelper.DATA_SET);
+ assertTrue(pl.size() > 0);
}
public void testExecuteSubmit() throws Exception {
@@ -51,7 +57,14 @@ public class OrgSoftwareSubscriptionsActionTest extends RhnMockStrutsTestCase {
System.out.println("CFM TEST ID is " + cfm.getId().toString());
addRequestParameter(cfm.getId().toString(), "10");
addRequestParameter("updateOrganizations", "1");
+ LocalizationService ls = LocalizationService.getInstance();
+ addRequestParameter("dispatch", ls.getMessage("orgdetails.jsp.submit"));
+ Map<String, String> subsMap = new HashMap<String, String>();
+ subsMap.put(cfm.getId().toString(), "10");
+ request.getSession().setAttribute("OrgSoftwareSubscriptions" +
+ user.getOrg().getId().toString(), subsMap);
setRequestPathInfo("/admin/multiorg/OrgSoftwareSubscriptions");
+
addSubmitted();
actionPerform();
assertTrue(getActualForward().contains("oid=" + user.getOrg().getId()));
@@ -64,8 +77,8 @@ public class OrgSoftwareSubscriptionsActionTest extends RhnMockStrutsTestCase {
assertEquals(10, cfm.getMaxMembers(user.getOrg()).longValue());
// Check the setup request params
- assertNotNull(request.getAttribute("pageList"));
- List pl = (List) request.getAttribute("pageList");
+ assertNotNull(request.getAttribute(ListHelper.DATA_SET));
+ List pl = (List) request.getAttribute(ListHelper.DATA_SET);
assertTrue(pl.size() > 0);
}
}
diff --git a/java/code/src/com/redhat/rhn/frontend/action/multiorg/test/SoftwareEntitlementsActionTest.java b/java/code/src/com/redhat/rhn/frontend/action/multiorg/test/SoftwareEntitlementsActionTest.java
index 117052e..9785552 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/multiorg/test/SoftwareEntitlementsActionTest.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/multiorg/test/SoftwareEntitlementsActionTest.java
@@ -17,7 +17,7 @@ package com.redhat.rhn.frontend.action.multiorg.test;
import com.redhat.rhn.domain.role.RoleFactory;
import com.redhat.rhn.domain.server.test.ServerFactoryTest;
import com.redhat.rhn.frontend.dto.SoftwareEntitlementDto;
-import com.redhat.rhn.frontend.struts.RequestContext;
+import com.redhat.rhn.frontend.taglibs.list.helper.ListHelper;
import com.redhat.rhn.testing.RhnMockStrutsTestCase;
import com.redhat.rhn.testing.TestUtils;
@@ -38,7 +38,7 @@ public class SoftwareEntitlementsActionTest extends RhnMockStrutsTestCase {
setRequestPathInfo("/admin/multiorg/SoftwareEntitlements");
actionPerform();
List<SoftwareEntitlementDto> entitlements = (List<SoftwareEntitlementDto>)
- request.getAttribute(RequestContext.PAGE_LIST);
+ request.getAttribute(ListHelper.DATA_SET);
assertNotNull(entitlements);
}
}
diff --git a/java/code/src/com/redhat/rhn/frontend/action/systems/entitlements/test/SystemEntitlementsSubmitActionTest.java b/java/code/src/com/redhat/rhn/frontend/action/systems/entitlements/test/SystemEntitlementsSubmitActionTest.java
index 715a1c7..cbb71b1 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/systems/entitlements/test/SystemEntitlementsSubmitActionTest.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/systems/entitlements/test/SystemEntitlementsSubmitActionTest.java
@@ -201,25 +201,6 @@ public class SystemEntitlementsSubmitActionTest extends RhnMockStrutsTestCase {
verifyActionMessage(failure(MANAGEMENT));
}
-
-
-
- /**
- * @throws Exception on server init failure
- */
- public void testUpdateOnly() throws Exception {
- Server server = ServerFactoryTest.createTestServer(user, true,
- ServerConstants.getServerGroupTypeUpdateEntitled());
- /*
- * this should Succeed because the org only has groups type = Update
- * that has available subscriptions > 0..
- */
- dispatch(SystemEntitlementsSubmitAction.KEY_UPDATE_ENTITLED, server);
- assertTrue(SystemManager.hasEntitlement(server.getId(),
- EntitlementManager.UPDATE));
- verifyActionMessage(success(UPDATE));
- }
-
/**
* @throws Exception on server init failure
@@ -338,25 +319,6 @@ public class SystemEntitlementsSubmitActionTest extends RhnMockStrutsTestCase {
*
* @throws Exception on server init failure
*/
- public void testUnentitleForUpdate() throws Exception {
- Server server1 = ServerFactoryTest.createTestServer(user, true,
- ServerConstants.getServerGroupTypeUpdateEntitled());
-
- assertTrue(SystemManager.hasEntitlement(server1.getId(),
- EntitlementManager.UPDATE));
-
-
-
- dispatch(SystemEntitlementsSubmitAction.KEY_UNENTITLED, server1);
- verifyActionMessage(success(UNENTITLED));
- assertFalse(SystemManager.hasEntitlement(server1.getId(),
- EntitlementManager.UPDATE));
- }
-
- /**
- *
- * @throws Exception on server init failure
- */
public void testUnentitleForManagement() throws Exception {
Server server1 = ServerFactoryTest.createTestServer(user, true,
ServerConstants.getServerGroupTypeEnterpriseEntitled());
diff --git a/java/code/src/com/redhat/rhn/frontend/action/systems/sdc/test/SystemDetailsEditActionTest.java b/java/code/src/com/redhat/rhn/frontend/action/systems/sdc/test/SystemDetailsEditActionTest.java
index 2a2ee18..274d442 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/systems/sdc/test/SystemDetailsEditActionTest.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/systems/sdc/test/SystemDetailsEditActionTest.java
@@ -14,6 +14,7 @@
*/
package com.redhat.rhn.frontend.action.systems.sdc.test;
+import com.redhat.rhn.common.hibernate.HibernateFactory;
import com.redhat.rhn.domain.entitlement.Entitlement;
import com.redhat.rhn.domain.entitlement.VirtualizationEntitlement;
import com.redhat.rhn.domain.server.Server;
@@ -174,14 +175,19 @@ public class SystemDetailsEditActionTest extends RhnMockStrutsTestCase {
public void testSetBaseEntitlement() throws Exception {
UserTestUtils.addManagement(user.getOrg());
- SystemManager.removeAllServerEntitlements(s.getId());
- request.addParameter(SystemDetailsEditAction.NAME, s.getName());
+ Long id = s.getId();
+ String name = s.getName();
+ HibernateFactory.getSession().clear();
+ SystemManager.removeAllServerEntitlements(id);
+ s = ServerFactory.lookupById(id);
+ assertTrue(s.getBaseEntitlement() == null);
+
+ request.addParameter(SystemDetailsEditAction.NAME, name);
request.addParameter(SystemDetailsEditAction.BASE_ENTITLEMENT,
EntitlementManager.MANAGEMENT.getLabel());
addSubmitted();
actionPerform();
- s = (Server) TestUtils.reload(s);
-
+ s = ServerFactory.lookupById(id);
assertTrue(s.getBaseEntitlement().equals(EntitlementManager.MANAGEMENT));
}
13 years, 10 months
java/code
by Partha Aji
java/code/src/com/redhat/rhn/domain/channel/test/ChannelFactoryTest.java | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
New commits:
commit 85b66137e189fb70ff819b6de02bdbb01cc4601d
Author: Partha Aji <paji(a)redhat.com>
Date: Tue Jun 29 17:18:43 2010 -0400
Fixed another checkstyle issue
diff --git a/java/code/src/com/redhat/rhn/domain/channel/test/ChannelFactoryTest.java b/java/code/src/com/redhat/rhn/domain/channel/test/ChannelFactoryTest.java
index e497789..a47fdb7 100644
--- a/java/code/src/com/redhat/rhn/domain/channel/test/ChannelFactoryTest.java
+++ b/java/code/src/com/redhat/rhn/domain/channel/test/ChannelFactoryTest.java
@@ -38,7 +38,6 @@ import com.redhat.rhn.testing.UserTestUtils;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
-import java.util.Iterator;
import java.util.List;
/**
@@ -339,9 +338,8 @@ public class ChannelFactoryTest extends RhnBaseTestCase {
// base channel NOT a user owned base channel.
Channel base = createTestChannel(user);
List<Channel> channels = ChannelFactory.listAllBaseChannels(user);
- assertEquals(1, channels.size());
-
assertNotNull(channels);
+ assertEquals(1, channels.size());
}
public void testLookupPackageByFileName() throws Exception {
13 years, 10 months
java/code
by Partha Aji
java/code/src/com/redhat/rhn/domain/channel/test/ChannelFactoryTest.java | 15 +---------
1 file changed, 2 insertions(+), 13 deletions(-)
New commits:
commit 585bf94041d747d54bc7d9d6c5b9f8eda28f017e
Author: Partha Aji <paji(a)redhat.com>
Date: Tue Jun 29 16:56:06 2010 -0400
Speeded up a unit test ....
diff --git a/java/code/src/com/redhat/rhn/domain/channel/test/ChannelFactoryTest.java b/java/code/src/com/redhat/rhn/domain/channel/test/ChannelFactoryTest.java
index d33e07c..e497789 100644
--- a/java/code/src/com/redhat/rhn/domain/channel/test/ChannelFactoryTest.java
+++ b/java/code/src/com/redhat/rhn/domain/channel/test/ChannelFactoryTest.java
@@ -339,20 +339,9 @@ public class ChannelFactoryTest extends RhnBaseTestCase {
// base channel NOT a user owned base channel.
Channel base = createTestChannel(user);
List<Channel> channels = ChannelFactory.listAllBaseChannels(user);
- List<Channel> rhbases = ChannelFactory.listRedHatBaseChannels();
- int rbsize = 0;
- for (Iterator itr = rhbases.iterator(); itr.hasNext();) {
- Channel c = (Channel)itr.next();
- if (ChannelManager.verifyChannelSubscribe(user, c.getId())) {
- rbsize++;
- }
- }
+ assertEquals(1, channels.size());
+
assertNotNull(channels);
- int size = 1; // include the one we created
- if (rhbases != null) {
- size = size + rbsize;
- }
- assertEquals(channels.size(), size);
}
public void testLookupPackageByFileName() throws Exception {
13 years, 10 months
java/code
by Partha Aji
java/code/src/com/redhat/rhn/frontend/action/common/DownloadFile.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
New commits:
commit 116c7cb05188a747a7b1a9c5f12b97932dc479c4
Author: Partha Aji <paji(a)redhat.com>
Date: Tue Jun 29 15:41:40 2010 -0400
Fixed a checkstyle issue
diff --git a/java/code/src/com/redhat/rhn/frontend/action/common/DownloadFile.java b/java/code/src/com/redhat/rhn/frontend/action/common/DownloadFile.java
index a07ce16..96e137b 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/common/DownloadFile.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/common/DownloadFile.java
@@ -574,7 +574,8 @@ public class DownloadFile extends DownloadAction {
if (rpmPackage != null && rpmPackage.getChecksum() != null &&
rpmPackage.getChecksum().getChecksum() != null) {
checksum = rpmPackage.getChecksum().getChecksum();
- } else {
+ }
+ else {
File f = new File(diskPath);
if (!f.exists()) {
log.error("manualServeChecksum :: File not found: " + diskPath);
13 years, 10 months