On 03/07/2012 10:04 AM, Tomas Lestach wrote:
>> I will find time for that in the next days and I can then come up with a new
>> patch for that file after I verified the behavior.
> 
> Great!
> Thank you Johannes,

So, AFAICS the rhnServerNeededCache table is there for caching which errata need
to be applied to a system together with the respective package ids. So I don't
really see how it makes sense to insert rows in there with errata id == null.

I compared the resulting cache entries with what we get when running the stored
procedure 'rhn_server.update_needed_cache' (with respective parameters of 
course).
The output was equal, but missing the 'null' rows.

Even if i think these 'null' entries don't hurt anybody I would propose to apply
the attached patch to PublishErrataAction.java (also the code was quite a mess).

Please tell me if this breaks anything and throw away my patch in this case ;-)

Thanks,
Johannes

P.S.: Further, if this is all true, I would actually question the whole method
'insertCacheForChannelPackagesAsync()' in ErrataCacheManager.java, since it does
exactly this:

...
uece.setErrataId(null);
...

But it's called in 3-4 other places as well, so you (or somebody else who knows)
should better have a look and verify this first, see the second patch.

-- 
SUSE LINUX Products GmbH, HRB 16746 (AG Nürnberg)
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer
>From 22cab15a789c1d8cc50f2efb8244fbec1c9a2236 Mon Sep 17 00:00:00 2001
From: Johannes Renner <jren...@suse.de>
Date: Thu, 8 Mar 2012 15:26:33 +0100
Subject: [PATCH] Remove obsolete cache insertion

---
 .../action/channel/manage/PublishErrataAction.java |   17 ++---------------
 1 files changed, 2 insertions(+), 15 deletions(-)

diff --git a/java/code/src/com/redhat/rhn/frontend/action/channel/manage/PublishErrataAction.java b/java/code/src/com/redhat/rhn/frontend/action/channel/manage/PublishErrataAction.java
index 7a24554..8d98e3d 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/channel/manage/PublishErrataAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/channel/manage/PublishErrataAction.java
@@ -22,7 +22,6 @@ import com.redhat.rhn.frontend.struts.RequestContext;
 import com.redhat.rhn.frontend.struts.RhnListAction;
 import com.redhat.rhn.manager.channel.ChannelManager;
 import com.redhat.rhn.manager.errata.ErrataManager;
-import com.redhat.rhn.manager.errata.cache.ErrataCacheManager;
 import com.redhat.rhn.manager.rhnset.RhnSetDecl;
 
 import org.apache.log4j.Logger;
@@ -79,9 +78,7 @@ public class PublishErrataAction extends RhnListAction {
 
         ErrataManager.publishErrataToChannelAsync(currentChan, errataIds, user);
 
-        //ErrataManager.publishErrataToChannel(currentChan, errataIds, user);
-
-
+        // Add missing packages to the channel
         List<Long> pidList = new ArrayList<Long>();
         pidList.addAll(packageIds);
 
@@ -93,28 +90,18 @@ public class PublishErrataAction extends RhnListAction {
             }
         }
 
-
-        //update the errata info
-        List chanList = new ArrayList();
-        chanList.add(currentChan.getId());
-        ErrataCacheManager.insertCacheForChannelPackagesAsync(chanList, pidList);
         ChannelManager.refreshWithNewestPackages(currentChan, "web.errata_push");
         request.setAttribute("cid", cid);
 
+        // Add success message
         ActionMessages msg = new ActionMessages();
         String[] params = {errataIds.size() + "", packageIds.size() + "",
                 currentChan.getName()};
         msg.add(ActionMessages.GLOBAL_MESSAGE,
                 new ActionMessage("frontend.actions.channels.manager.add.success",
                         params));
-
         getStrutsDelegate().saveMessages(requestContext.getRequest(), msg);
 
         return mapping.findForward("default");
     }
-
-
-
-
-
 }
-- 
1.7.7

>From dba13014a02468031faeab8700d0959f006946c3 Mon Sep 17 00:00:00 2001
From: Johannes Renner <jren...@suse.de>
Date: Thu, 8 Mar 2012 15:41:16 +0100
Subject: [PATCH] Remove obsolete cache insertion completely

---
 .../manage/ChannelPackagesAddConfirmAction.java    |    1 -
 .../action/errata/RemovePackagesAction.java        |    7 ------
 .../channel/software/ChannelSoftwareHandler.java   |    8 -------
 .../manager/errata/cache/ErrataCacheManager.java   |   21 --------------------
 4 files changed, 0 insertions(+), 37 deletions(-)

diff --git a/java/code/src/com/redhat/rhn/frontend/action/channel/manage/ChannelPackagesAddConfirmAction.java b/java/code/src/com/redhat/rhn/frontend/action/channel/manage/ChannelPackagesAddConfirmAction.java
index f98206a..77f69e7 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/channel/manage/ChannelPackagesAddConfirmAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/channel/manage/ChannelPackagesAddConfirmAction.java
@@ -125,7 +125,6 @@ public class ChannelPackagesAddConfirmAction extends RhnAction {
         List<Long> packList = new ArrayList<Long>();
         chanList.add(chan.getId());
         packList.addAll(set.getElementValues());
-        ErrataCacheManager.insertCacheForChannelPackagesAsync(chanList, packList);
         ChannelManager.refreshWithNewestPackages(chan, "web.channel_package_add");
         set.clear();
     }
diff --git a/java/code/src/com/redhat/rhn/frontend/action/errata/RemovePackagesAction.java b/java/code/src/com/redhat/rhn/frontend/action/errata/RemovePackagesAction.java
index be644c3..9bd2aca 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/errata/RemovePackagesAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/errata/RemovePackagesAction.java
@@ -110,17 +110,10 @@ public class RemovePackagesAction extends RhnSetAction {
         for (Channel chan : errata.getChannels()) {
             cList.add(chan.getId());
         }
-        List<Long> pList = new ArrayList<Long>();
-        pList.addAll(RhnSetDecl.PACKAGES_TO_REMOVE.get(user).getElementValues());
-        ErrataCacheManager.insertCacheForChannelPackagesAsync(cList, pList);
-
-
 
         //Clean up
         RhnSetDecl.PACKAGES_TO_REMOVE.clear(user);
 
-
-
         //Set the correct action message and return to the success mapping
         ActionMessages msgs = getMessages(packagesRemoved, errata.getAdvisory());
         strutsDelegate.saveMessages(request, msgs);
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 b116b9c..961117b 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
@@ -1218,10 +1218,6 @@ public class ChannelSoftwareHandler extends BaseHandler {
             // (RHEL5+, mostly)
             ChannelManager.queueChannelChange(channel.getLabel(), "java::removeErrata",
                                               user.getLogin());
-
-            List<Long> cids = new ArrayList();
-            cids.add(channel.getId());
-            ErrataCacheManager.insertCacheForChannelPackagesAsync(cids, packagesToRemove);
         }
 
         return 1;
@@ -2028,10 +2024,6 @@ public class ChannelSoftwareHandler extends BaseHandler {
         ChannelManager.queueChannelChange(mergeTo.getLabel(), "java::mergePackages",
             loggedInUser.getLogin());
 
-
-        List<Long> cids = new ArrayList<Long>();
-        cids.add(mergeTo.getId());
-        ErrataCacheManager.insertCacheForChannelPackagesAsync(cids, pids);
         return differentPackages.toArray();
     }
 
diff --git a/java/code/src/com/redhat/rhn/manager/errata/cache/ErrataCacheManager.java b/java/code/src/com/redhat/rhn/manager/errata/cache/ErrataCacheManager.java
index c05f096..dbce705 100644
--- a/java/code/src/com/redhat/rhn/manager/errata/cache/ErrataCacheManager.java
+++ b/java/code/src/com/redhat/rhn/manager/errata/cache/ErrataCacheManager.java
@@ -288,27 +288,6 @@ public class ErrataCacheManager extends HibernateFactory {
         }
     }
 
-
-    /**
-     * Asynchronusly updates the errata caches for the channels passed in.
-     *
-     * @param channelIdsToUpdate - channel IDs (Long) that need their errata
-     * caches updated
-     * @param packageIds list of package ids to insert cache entries for
-     */
-    public static void insertCacheForChannelPackagesAsync(
-            List<Long> channelIdsToUpdate, List<Long> packageIds) {
-        if (packageIds.isEmpty()) {
-            return;
-        }
-        UpdateErrataCacheEvent uece = new UpdateErrataCacheEvent(
-                UpdateErrataCacheEvent.TYPE_CHANNEL_ERRATA);
-        uece.setChannels(channelIdsToUpdate);
-        uece.setErrataId(null);
-        uece.setPackageIds(packageIds);
-        MessageQueue.publish(uece);
-    }
-
     /**
      * Insert the new cache entries for a list of packages
      * @param cid the channel where packages were added to
-- 
1.7.7

_______________________________________________
Spacewalk-devel mailing list
Spacewalk-devel@redhat.com
https://www.redhat.com/mailman/listinfo/spacewalk-devel

Reply via email to