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";
Show replies by date