OK, I think this patch is OK now.

CC

On Thu, Apr 8, 2010 at 9:10 PM, Colin Coe <colin....@gmail.com> wrote:
> Hi Justin
>
> Is this a bit better?  http://fpaste.org/LJwb/
>
> Thanks
>
> CC
>
>
>
> On Thu, Apr 8, 2010 at 5:49 AM, Colin Coe <colin....@gmail.com> wrote:
>> Hi Justin
>>
>> Thanks for the feedback.  I'll have another look at this and re-submit.
>>
>> CC
>>
>> On Thu, Apr 8, 2010 at 1:21 AM, Justin Sherrill <jsher...@redhat.com> wrote:
>>> On 4/6/10 9:55 AM, Colin Coe wrote:
>>>> Hi all
>>>>
>>>> As per the API Addition page, I've added 'arch' to the
>>>> channel.list*Channels API calls.
>>>>
>>>> Comments/criticisms welcome
>>>>
>>>> CC
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Spacewalk-devel mailing list
>>>> Spacewalk-devel@redhat.com
>>>> https://www.redhat.com/mailman/listinfo/spacewalk-devel
>>> Hey Colin,
>>>
>>> Having it do the lookups of package Arch in the Serializer really isn't
>>> the right way to do it as Serializers are just meant to translate the
>>> existing data.
>>>
>>> I would either add joins to rhnChannelArch to get the label in each of
>>> the queries or write a elaborator that just gets the channel arch and
>>> make each of those queries use the elaborator.
>>>
>>> Thanks,
>>>
>>> -Justin
>>>
>>>
>>> --
>>> Justin Sherrill, RHCA          1801 Varsity Drive.
>>> Software Engineer                Raleigh, NC 27603
>>> Red Hat, Inc.
>>>
>>> _______________________________________________
>>> Spacewalk-devel mailing list
>>> Spacewalk-devel@redhat.com
>>> https://www.redhat.com/mailman/listinfo/spacewalk-devel
>>>
>>
>
>
>
> --
> RHCE#805007969328369
>



-- 
RHCE#805007969328369
From cf421954e3eaa908d447bfe95fec1119fd4e5c03 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 ++++++++++++------
 .../redhat/rhn/frontend/dto/ChannelTreeNode.java   |   15 +++++++++++++++
 .../serializer/ChannelTreeNodeSerializer.java      |    5 +++++
 3 files changed, 32 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..784fa57 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,
+         (select CA.name from rhnChannelArch CA where CA.ID = C.channel_arch_id) arch_name
 	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,
+         (select CA.name from rhnChannelArch CA where CA.ID = C.channel_arch_id) arch_name
     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,
+         (select CA.name from rhnChannelArch CA where CA.ID = C.channel_arch_id) arch_name
 	 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,
+         (select CA.name from rhnChannelArch CA where CA.ID = C.channel_arch_id) arch_name
 	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,
+                   (select CA.name from rhnChannelArch CA where CA.ID = C.channel_arch_id) arch_name
 	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,
+                  (select CA.name from rhnChannelArch CA where CA.ID = C.channel_arch_id) arch_name
 	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/dto/ChannelTreeNode.java b/java/code/src/com/redhat/rhn/frontend/dto/ChannelTreeNode.java
index 4c0ba0e..c173811 100644
--- a/java/code/src/com/redhat/rhn/frontend/dto/ChannelTreeNode.java
+++ b/java/code/src/com/redhat/rhn/frontend/dto/ChannelTreeNode.java
@@ -46,6 +46,7 @@ public class ChannelTreeNode extends BaseDto implements BaseListDto,
     private Long parentId;
     private Long orgId;
     private String orgName;
+    private String archName;
     
 
     
@@ -458,4 +459,18 @@ public class ChannelTreeNode extends BaseDto implements BaseListDto,
         orgName = orgname;
     }
     
+    /**
+     * @return Returns the archName.
+     */
+    public String getArchName() {
+        return archName;
+    }
+
+    /**
+     * @param archNameIn The archName to set.
+     */
+    public void setArchName(String archNameIn) {
+        this.archName = archNameIn;
+    }
+
 }
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..3dd574f 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_name")
  *   #struct_end()
  */
 public class ChannelTreeNodeSerializer implements XmlRpcCustomSerializer {
@@ -80,6 +83,8 @@ public class ChannelTreeNodeSerializer implements XmlRpcCustomSerializer {
             helper.add("systems", ctn.getSystemCount());
         }
 
+        helper.add("arch_name", ctn.getArchName());
+
         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