Hi all

As per the API Addition page, I've added 'arch' to the
channel.list*Channels API calls.

Comments/criticisms welcome

CC

-- 
RHCE#805007969328369
From 89ff55c80929fd5d241c18026b404cc1e027036b Mon Sep 17 00:00:00 2001
From: Colin Coe <colin....@gmail.com>
Date: Tue, 6 Apr 2010 21:40:59 +0800
Subject: [PATCH] Add 'arch' to channel.list*Channels

---
 .../common/db/datasource/xml/Channel_queries.xml   |   18 ++++++++++++------
 .../serializer/ChannelTreeNodeSerializer.java      |    6 ++++++
 2 files changed, 18 insertions(+), 6 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 b165f76..beb4b06 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
@@ -410,7 +410,8 @@ SELECT CFO.id, CFO.org_id, CFO.name, CFO.label, CFO.current_members, CFO.max_mem
          C.org_id,
          (select org.name 
             from web_customer org
-            where org.id = C.org_id) as org_name
+            where org.id = C.org_id) as org_name,
+         C.channel_arch_id
 	from rhnChannel C inner join 
 	 rhnUserChannel UC on UC.channel_id = C.id  
 	 where UC.user_id = :user_id
@@ -431,7 +432,8 @@ SELECT CFO.id, CFO.org_id, CFO.name, CFO.label, CFO.current_members, CFO.max_mem
          C.org_id,
          (select org.name 
             from web_customer org
-            where org.id = C.org_id) as org_name
+            where org.id = C.org_id) as org_name,
+         C.channel_arch_id
     from rhnSharedChannelView C inner join 
     rhnUserChannel UC on UC.channel_id = C.id  
     where UC.user_id = :user_id
@@ -452,7 +454,8 @@ SELECT CFO.id, CFO.org_id, CFO.name, CFO.label, CFO.current_members, CFO.max_mem
          C.org_id,
          (select org.name 
             from web_customer org
-            where org.id = C.org_id) as org_name
+            where org.id = C.org_id) as org_name,
+         C.channel_arch_id
 	 from rhnChannel C inner join 
 	 rhnUserChannel UC on UC.channel_id = C.id  
 	 where UC.user_id = :user_id  AND 
@@ -479,7 +482,8 @@ SELECT CFO.id, CFO.org_id, CFO.name, CFO.label, CFO.current_members, CFO.max_mem
          C.org_id,
          (select org.name 
             from web_customer org
-            where org.id = C.org_id) as org_name
+            where org.id = C.org_id) as org_name,
+         C.channel_arch_id
 	from rhnChannel C inner join 
 	 rhnUserChannel UC on UC.channel_id = C.id  
 	 where UC.user_id = :user_id  and
@@ -499,7 +503,8 @@ SELECT CFO.id, CFO.org_id, CFO.name, CFO.label, CFO.current_members, CFO.max_mem
 			(SELECT COUNT(P.package_id)
 			  FROM rhnChannelPackage P
 			  WHERE P.channel_id = C.id
-			        ) AS package_count
+			        ) AS package_count,
+                   C.channel_arch_id
 	from rhnChannel C inner join 
 	 rhnUserChannel UC on UC.channel_id = C.id left join
 	 rhnChannel C2 on C.parent_channel = C2.id  
@@ -518,7 +523,8 @@ SELECT CFO.id, CFO.org_id, CFO.name, CFO.label, CFO.current_members, CFO.max_mem
 			(SELECT COUNT(P.package_id)
 			  FROM rhnChannelPackage P
 			  WHERE P.channel_id = C.id
-			        ) AS package_count
+			        ) AS package_count,
+                   C.channel_arch_id
 	from rhnChannel C inner join 
 	 rhnUserChannel UC on UC.channel_id = C.id left join
 	 rhnChannel C2 on C2.parent_channel = C.id  
diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/ChannelTreeNodeSerializer.java b/java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/ChannelTreeNodeSerializer.java
index 461bd6a..1889b96 100644
--- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/ChannelTreeNodeSerializer.java
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/ChannelTreeNodeSerializer.java
@@ -14,6 +14,8 @@
  */
 package com.redhat.rhn.frontend.xmlrpc.serializer;
 
+import com.redhat.rhn.domain.channel.Channel;
+import com.redhat.rhn.domain.channel.ChannelFactory;
 import com.redhat.rhn.frontend.dto.ChannelTreeNode;
 import com.redhat.rhn.frontend.xmlrpc.serializer.util.SerializerHelper;
 
@@ -37,6 +39,7 @@ import redstone.xmlrpc.XmlRpcSerializer;
  *     #prop("string", "provider_name")
  *     #prop("int", "packages")
  *     #prop("int", "systems")
+ *     #prop("string", "arch")
  *   #struct_end()
  */
 public class ChannelTreeNodeSerializer implements XmlRpcCustomSerializer {
@@ -80,6 +83,9 @@ public class ChannelTreeNodeSerializer implements XmlRpcCustomSerializer {
             helper.add("systems", ctn.getSystemCount());
         }
 
+        Channel c = ChannelFactory.lookupById(ctn.getId());
+        helper.add("arch", c.getChannelArch().getName());
+
         helper.writeTo(output);
     }
 }
-- 
1.5.5.6

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

Reply via email to