[Spacewalk-devel] Cloned Channel Problems - SW 0.6

Pradeep Kilambi pkilambi at redhat.com
Tue Aug 11 16:42:07 EDT 2009


Andy Speagle wrote:
> On Tue, 2009-08-11 at 14:59 -0500, Pradeep Kilambi wrote:
>   
>> If you ran the upgrade scripts, there should a update table to
>> default 
>> to sha1 for existing channels.
>>
>> spacewalk-schema-0.5-to-spacewalk-schema-0.6/191-rhnChannel.sql is
>> the 
>> one I believe.
>>
>> ~ Prad
>>     
>
> I ran all of the upgrade scripts per the upgrade documentation.  This
> was the output in the logs.
>
> SQL> select
> 'spacewalk-schema-0.5-to-spacewalk-schema-0.6/191-rhnChannel.sql' from
> dual;
>
> 'SPACEWALK-SCHEMA-0.5-TO-SPACEWALK-SCHEMA-0.6/191-RHNCHANNEL.SQ                 
> ---------------------------------------------------------------                 
> spacewalk-schema-0.5-to-spacewalk-schema-0.6/191-rhnChannel.sql                 
>
> SQL> -- Add a checksum_type_id column, and fk to rhnChecksumType
> SQL> ALTER TABLE rhnChannel
>   2    ADD checksum_type_id number
>   3  CONSTRAINT rhn_channel_checksum_fk
>   4      REFERENCES rhnChecksumType(id);
>
> Table altered.
>
> SQL> 
> SQL> -- Update any existing channels that are not set
> SQL> UPDATE rhnChannel SET
>   2    checksum_type_id = (select id
>   3                          from rhnChecksumType
>   4                         where LABEL = 'sha1')
>   5  WHERE checksum_type_id is null;
>
> 23 rows updated.
>
> SQL> 
> SQL> show errors
> No errors.
> SQL> commit;
>
> Commit complete.
>
> Thoughts?
>
> Andy
>   

So lookong through the code, I think I know what I problem is. The perl 
code when settup up the channel cloning process does'nt not account for 
checksum value. So what ends up happening is, after the perl pxt setup 
page it navigates to edit.do which makes assumptions based on channel 
creation and edits and ends up trying to set the value thats not in the 
form to being with. A workaround fix to get the cloning working for now 
is to do something like,

--- 
a/java/code/src/com/redhat/rhn/frontend/action/channel/manage/EditChannelAct
+++ 
b/java/code/src/com/redhat/rhn/frontend/action/channel/manage/EditChannelAct
@@ -568,7 +568,9 @@ public class EditChannelAction extends RhnAction 
implements
             form.set("maintainer_phone", c.getMaintainerPhone());
             form.set("maintainer_email", c.getMaintainerEmail());
             form.set("support_policy", c.getSupportPolicy());
-            form.set("checksum", c.getChecksum().getLabel());
+            if (!c.isCloned()) {
+                form.set("checksum", c.getChecksum().getLabel());
+            }
             if (c.isGloballySubscribable(ctx.getLoggedInUser().getOrg())) {
                 form.set("per_user_subscriptions", "all");
             }

eventually once the cloning logic in perl supports the checksum stuff, 
we can remove this additional check.

I'll looking into adding this ability for the cloned channels. Please 
open a bug on this and I'll knock it out asap.

Thanks,
~ Prad

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




More information about the Spacewalk-devel mailing list