+++ This bug was initially created as a clone of Bug #735525 +++ --- Additional comment from Ashish Humbe on 2014-02-20 05:28:29 EST --- Hello Tomas and Cliff, Actually title is not very clear, here issue is that: The channel.software.getDetails API return the arch_name without 'channel-' string but while creating channel using channel.software.create API it need the channel architecture starting with 'channel-' . So customer think that the return values of the API and the values passed to the API for similar functionality should be equivalent. Thanks, Ashish --- Additional comment from Ashish Humbe on 2014-02-20 06:29:40 EST --- # spacewalk-api --server=<server> channel.software.getDetails "%session%" clone-rhel-test $result = { 'end_of_life' => '', 'summary' => 'clone-rhel-test', 'id' => '129', 'arch_name' => 'x86_64', 'name' => 'clone-rhel-test', 'label' => 'clone-rhel-test', }; As per API documentation parameters for channel.software.create API : Method: create Description: Creates a software channel Parameters: string sessionKey string label - label of the new channel string name - name of the new channel string summary - summary of the channel string archLabel - the label of the architecture the channel corresponds to channel-ia32 - For 32 bit channel architecture channel-ia64 - For 64 bit channel architecture channel-sparc - For Sparc channel architecture channel-alpha - For Alpha channel architecture channel-s390 - For s390 channel architecture channel-s390x - For s390x channel architecture channel-iSeries - For i-Series channel architecture channel-pSeries - For p-Series channel architecture channel-x86_64 - For x86_64 channel architecture while using these API calls in one script need manual changes to architecture parameter. Thanks, Ashish --- Additional comment from Tomas Lestach on 2014-02-20 07:37:42 EST --- Ah, I see. Thanks for the notice, Ashish. channel.software.create expects architecture label as parameter and channel.software.getDetails returns architecture name among the channel properties. I agree, this isn't very consistent, however it's quite common to use 'label' (that's typically unique in Spacewalk) as lookup field and then to use 'name' (as more human readable/friendly field) when presenting the information within the getDetails API. # select label, name from rhnChannelArch; label | name ---------------------------+--------------- channel-ia32 | IA-32 channel-ia64 | IA-64 channel-sparc | Sparc channel-alpha | Alpha channel-s390 | s390 channel-s390x | s390x channel-iSeries | iSeries channel-pSeries | pSeries channel-x86_64 | x86_64 channel-ppc | PPC channel-sparc-sun-solaris | Sparc Solaris channel-i386-sun-solaris | i386 Solaris channel-arm | ARM soft. FP channel-armhfp | ARM hard. FP (14 rows) The good thing is the architecture name is unique in rhnChannelArch table as well. This change would however break a lot of existing customer scripts. --- Additional comment from Stephen Herr on 2014-03-03 15:14:28 EST --- My proposed solution: The channel.software.getDetails method in addition to returning 'arch_name' => 'x86_64' (for example) should also return 'arch_label' => 'channel-x86_64'. Since it's a purely additive change it would not break any existing scripts, and it would give users the string they need to directly plug into channel.software.create.
3073ccd5138542746606afae963c8ba6c4165f8c
> The channel.software.getDetails method in addition to returning 'arch_name' > => 'x86_64' (for example) should also return 'arch_label' => > 'channel-x86_64'. Right. Thank you.
Spacewalk 2.2 has been released: https://fedorahosted.org/spacewalk/wiki/ReleaseNotes22