[prev in list] [next in list] [prev in thread] [next in thread] 

List:       spacewalk-commits
Subject:    java/code
From:       jlsherrill () fedoraproject ! org (Justin Sherrill)
Date:       2009-11-30 22:01:39
Message-ID: 20091130220139.9C82D12015A () lists ! fedorahosted ! org
[Download RAW message or body]

 java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java |    8 ++--
 java/code/src/com/redhat/rhn/manager/system/SystemManager.java         |   17 \
++++++++++  2 files changed, 22 insertions(+), 3 deletions(-)

New commits:
commit 83f534f7dac8430e19c846cbaa698a49b379e848
Author: Justin Sherrill <jsherril at redhat.com>
Date:   Mon Nov 30 17:01:21 2009 -0500

    542830 - fixing three api calls that were using very inefficient queries to use \
the same queries that were used in sat 5.2

diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java \
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java index \
                d8b2ca6..7c15aec 100644
--- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java
@@ -521,7 +521,7 @@ public class SystemHandler extends BaseHandler {
      */
     public Object[] listSystems(String sessionKey) throws FaultException {
         User loggedInUser = getLoggedInUser(sessionKey);
-        DataResult<SystemOverview> dr = SystemManager.systemList(loggedInUser, \
null); +        DataResult<SystemOverview> dr = \
SystemManager.systemListShort(loggedInUser, null);  dr.elaborate();
         return dr.toArray();
     }
@@ -1323,7 +1323,7 @@ public class SystemHandler extends BaseHandler {
         // Get the logged in user
         User loggedInUser = getLoggedInUser(sessionKey);
         User target = XmlRpcUserHelper.getInstance().lookupTargetUser(loggedInUser, \
                login);
-        return getUserSystemsList(target);
+        return SystemManager.systemListShort(target, null);
     }
     
     /**
@@ -1341,11 +1341,13 @@ public class SystemHandler extends BaseHandler {
     public List listUserSystems(String sessionKey) {
         // Get the logged in user
         User loggedInUser = getLoggedInUser(sessionKey);
-        return getUserSystemsList(loggedInUser);
+        return SystemManager.systemListShort(loggedInUser, null);
     }
     
     /**
      * Private helper method to get a list of systems for a particular user
+     *   The query used is very inefficient.  Only use it when you need a lot
+     *   of information about the systems.
      * @param user The user to lookup
      * @return An array of SystemOverview objects representing a system
      */
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 \
                8f2bc99..74a3b2c 100644
--- a/java/code/src/com/redhat/rhn/manager/system/SystemManager.java
+++ b/java/code/src/com/redhat/rhn/manager/system/SystemManager.java
@@ -287,6 +287,23 @@ public class SystemManager extends BaseManager {
         Map elabParams = new HashMap();
         return makeDataResult(params, elabParams, pc, m);
     }
+    
+    /**
+     * Returns list of all systems visible to user.
+     *    This is meant to be fast and only gets the id, name, and last checkin
+     * @param user Currently logged in user.
+     * @param pc PageControl
+     * @return list of SystemOverviews.
+     */
+    public static DataResult systemListShort(User user, PageControl pc) {
+        SelectMode m = ModeFactory.getMode("System_queries", \
"xmlrpc_visible_to_user",  +                SystemOverview.class);
+        Map params = new HashMap();
+        params.put("user_id", user.getId());
+        Map elabParams = new HashMap();
+        
+        return makeDataResult(params, elabParams, pc, m);
+    }
 
     /**
      * Returns a list of all systems


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic