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
