Hi Tomas

Thank you for your comments.  I have re-implemented this API call
using ChannelFactory.getAccessibleChildChannels.

CC

On Fri, Mar 26, 2010 at 10:39 PM, Tomas Lestach <[email protected]> wrote:
> Hey Colin,
>
> channel.software.listChildren could be useful.
>
> I check your patch and here are my comments:
>
> We already have methods to list child channels. So there's no need to 
> implement new ways.
> Just check java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java for
>
> * listAllChildrenForChannel(Channel parent) {
> * getAccessibleChildChannels(Channel baseChannel, User user)
>
> Because the api calls are based on the authenticated user, I'd use the 2nd 
> option to list only the accessible channels to the authenticated user.
>
> Regards,
> Tomas
>
> --
> Tomas Lestach
> RHN Satellite Engineering, Red Hat
>
> ----- "Colin Coe" <[email protected]> wrote:
>
>> Hi all
>>
>> Attached is a patch to implement this API call.
>>
>> Comments/criticisms welcome.
>>
>> CC
>>
>> --
>> RHCE#805007969328369
>>
>> _______________________________________________
>> Spacewalk-devel mailing list
>> [email protected]
>> https://www.redhat.com/mailman/listinfo/spacewalk-devel
>
> _______________________________________________
> Spacewalk-devel mailing list
> [email protected]
> https://www.redhat.com/mailman/listinfo/spacewalk-devel
>



-- 
RHCE#805007969328369
From 970758ea6bb35d87e90cf73fa6c94cfed9679bd6 Mon Sep 17 00:00:00 2001
From: Colin Coe <[email protected]>
Date: Wed, 31 Mar 2010 21:22:17 +0800
Subject: [PATCH] Re-implement channel.software.listChildren

---
 .../common/db/datasource/xml/Channel_queries.xml   |    9 ---------
 .../channel/software/ChannelSoftwareHandler.java   |    7 ++++---
 .../redhat/rhn/manager/channel/ChannelManager.java |   14 --------------
 3 files changed, 4 insertions(+), 26 deletions(-)

diff --git a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Channel_queries.xml b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Channel_queries.xml
index 42a1c7b..b165f76 100644
--- a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Channel_queries.xml
+++ b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Channel_queries.xml
@@ -1172,14 +1172,5 @@ GROUP BY C.id, C.name
   </query>
 </mode>
 
-<mode name="child_channels_of_channel" class="com.redhat.rhn.frontend.dto.ChildChannelDto">
-  <query params="cid">
-  SELECT DISTINCT id, label
-  FROM rhnChannel
-  WHERE parent_channel = :cid
-  ORDER BY id
-  </query>
-</mode>
-
 </datasource_modes>
 
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 bf3faa8..7a5d901 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
@@ -2004,14 +2004,15 @@ public class ChannelSoftwareHandler extends BaseHandler {
      *
      */
 
-    public Object[] listChildren(String sessionKey, String channelLabel) {
+    public List<Channel> listChildren(String sessionKey, String channelLabel) {
         // Get Logged in user
         User loggedInUser = getLoggedInUser(sessionKey);
         channelAdminPermCheck(loggedInUser);
         Channel chan = lookupChannelByLabel(loggedInUser, channelLabel);
 
-        DataResult dr = ChannelManager.childChannels(chan.getId());
-        return dr.toArray();
+//        DataResult dr = ChannelFactory.getAccessibleChildChannels(chan, loggedInUser);
+//        return dr.toArray();
+        return ChannelFactory.getAccessibleChildChannels(chan, loggedInUser);
     }
 
 }
diff --git a/java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java b/java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java
index f191786..66a51ee 100644
--- a/java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java
+++ b/java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java
@@ -2813,18 +2813,4 @@ public class ChannelManager extends BaseManager {
         return logPath + possibleList.get(possibleList.size() - 1);
     }
 
-    /**
-     * Returns a DataResult containing maps representing the child channels of a
-     * particular channel.
-     * @param channelId The server in question.
-     * @return Returns a DataResult of maps representing the child channels a
-     * particular channel.
-     */
-    public static DataResult childChannels(Long channelId) {
-        Map params = new HashMap();
-        params.put("cid", channelId);
-        SelectMode m = ModeFactory.getMode("Channel_queries", "child_channels_of_channel", Map.class);
-        return m.execute(params);
-    }
-
 }
-- 
1.5.5.6

_______________________________________________
Spacewalk-devel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/spacewalk-devel

Reply via email to