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@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";
spacewalk-commits@lists.fedorahosted.org