java/code/src/com/redhat/rhn/common/db/datasource/xml/Task_queries.xml |
4
java/code/src/com/redhat/rhn/manager/kickstart/cobbler/CobblerSystemCreateCommand.java |
14 ++-
java/code/src/com/redhat/rhn/taskomatic/task/errata/ErrataQueueWorker.java |
45 +++-------
3 files changed, 34 insertions(+), 29 deletions(-)
New commits:
commit f6e88462d6cf522c3bf8689f854d2dcb86fa6014
Author: Mike McCune <mmccune(a)gmail.com>
Date: Tue Apr 28 10:13:57 2009 -0700
497872 - skip 'fake' interfaces when looking up system records.
Since system records can contain non-real interfaces such as:
xenbr0: fe:ff:ff:ff:ff:ff
vif0.1: fe:ff:ff:ff:ff:ff
sit0 : 00:00:00:00:00:00
we want to skip these when looking up system records in cobbler
since they may exist in many records.
diff --git
a/java/code/src/com/redhat/rhn/manager/kickstart/cobbler/CobblerSystemCreateCommand.java
b/java/code/src/com/redhat/rhn/manager/kickstart/cobbler/CobblerSystemCreateCommand.java
index 4b2332d..a2a7214 100644
---
a/java/code/src/com/redhat/rhn/manager/kickstart/cobbler/CobblerSystemCreateCommand.java
+++
b/java/code/src/com/redhat/rhn/manager/kickstart/cobbler/CobblerSystemCreateCommand.java
@@ -123,7 +123,18 @@ public class CobblerSystemCreateCommand extends CobblerCommand {
// Build up list of mac addrs
List macs = new LinkedList();
for (NetworkInterface n : server.getNetworkInterfaces()) {
- macs.add(n.getHwaddr().toLowerCase());
+ // Skip localhost and non real interfaces
+ if (n.getHwaddr() == null ||
+ n.getHwaddr().equals("00:00:00:00:00:00") ||
+ n.getHwaddr().equals("fe:ff:ff:ff:ff:ff") ||
+ n.getIpaddr() == null ||
+ n.getIpaddr().equals("127.0.0.1")) {
+ log.debug("Skipping. not a real interface");
+ }
+ else {
+ macs.add(n.getHwaddr().toLowerCase());
+ }
+
}
List <String> args = new ArrayList();
@@ -143,6 +154,7 @@ public class CobblerSystemCreateCommand extends CobblerCommand {
String mac = (String) iface.get("mac_address");
log.debug("getSystemMapByMac.ROW: " + row +
" looking for: " + macs);
+
if (mac != null &&
macs.contains(mac.toLowerCase())) {
log.debug("getSystemMapByMac.found match.");
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/errata/ErrataQueueWorker.java
b/java/code/src/com/redhat/rhn/taskomatic/task/errata/ErrataQueueWorker.java
index 0160372..fba99e9 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/errata/ErrataQueueWorker.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/errata/ErrataQueueWorker.java
@@ -14,13 +14,6 @@
*/
package com.redhat.rhn.taskomatic.task.errata;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.log4j.Logger;
-
import com.redhat.rhn.common.db.datasource.ModeFactory;
import com.redhat.rhn.common.db.datasource.SelectMode;
import com.redhat.rhn.common.db.datasource.WriteMode;
@@ -40,6 +33,13 @@ import com.redhat.rhn.taskomatic.task.TaskConstants;
import com.redhat.rhn.taskomatic.task.threaded.QueueWorker;
import com.redhat.rhn.taskomatic.task.threaded.TaskQueue;
+import org.apache.log4j.Logger;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
/**
* Processes an errata for a single org
* ErrataQueueWorker
commit ab82cc97df777d7f4ab58a41ca8791224ea407f0
Author: Mike McCune <mmccune(a)gmail.com>
Date: Mon Apr 27 14:21:36 2009 -0700
485849 - merging RELEASE-5.1 bug into spacewalk
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 d921c76..698b727 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
@@ -154,6 +154,10 @@ SELECT DISTINCT
WHERE CE.errata_id = :errata_id
AND SC.channel_id = CE.channel_id
AND SC.server_id = S.id)
+ AND EXISTS
+ (SELECT 1 FROM rhnServerFeaturesView SFV WHERE
+ SFV.server_id = S.id AND SFV.label = 'ftr_auto_errata_updates')
+ AND s.auto_update IS NOT NULL AND UPPER(s.auto_update) = 'Y'
ORDER BY S.org_id
</query>
</mode>
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/errata/ErrataQueueWorker.java
b/java/code/src/com/redhat/rhn/taskomatic/task/errata/ErrataQueueWorker.java
index 0422c41..0160372 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/errata/ErrataQueueWorker.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/errata/ErrataQueueWorker.java
@@ -179,31 +179,20 @@ class ErrataQueueWorker implements QueueWorker {
org = OrgFactory.lookupById(convertedOrgId);
}
Long convertedServerId = new Long(serverId.longValue());
- Server server = ServerFactory.lookupById(convertedServerId);
- if (server == null) {
- logger.error("Server " + serverId + " not found.
" +
- "Aboring auto-errata processing");
- return;
- }
// Only schedule an Auto Update if the server supports the
// feature. We originally calculated this in the driving
// query but it wasn't performant.
- if (SystemManager.serverHasFeature(convertedServerId,
- "ftr_auto_errata_updates") &&
org.isPayingCustomer() &&
- server.getAutoUpdate() != null &&
- server.getAutoUpdate().equalsIgnoreCase("y")) {
- if (logger.isDebugEnabled()) {
- logger.debug("Scheduling auto update for Errata: " +
- errata.getId() + ", Server: " +
convertedServerId +
- ", Org: " + convertedOrgId);
- }
- ErrataAction errataAction = ActionManager.
- createErrataAction(org, errata);
- ActionManager.addServerToAction(convertedServerId, errataAction);
- ActionManager.storeAction(errataAction);
- HibernateFactory.commitTransaction();
- HibernateFactory.closeSession();
+ if (logger.isDebugEnabled()) {
+ logger.debug("Scheduling auto update for Errata: " +
+ errata.getId() + ", Server: " + convertedServerId +
+ ", Org: " + convertedOrgId);
}
+ ErrataAction errataAction = ActionManager.
+ createErrataAction(org, errata);
+ ActionManager.addServerToAction(convertedServerId, errataAction);
+ ActionManager.storeAction(errataAction);
+ HibernateFactory.commitTransaction();
+ HibernateFactory.closeSession();
}
HibernateFactory.commitTransaction();
HibernateFactory.closeSession();