java/code/src/com/redhat/rhn/domain/channel/ChannelArch.hbm.xml | 3 ++
java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java | 12 ++++++++++
java/code/src/com/redhat/rhn/frontend/xmlrpc/distchannel/DistChannelHandler.java | 2 -
schema/spacewalk/common/tables/rhnChannelArch.sql | 3 ++
schema/spacewalk/upgrade/spacewalk-schema-1.7-to-spacewalk-schema-1.8/034-rhnChannelArch.sql | 3 ++
5 files changed, 22 insertions(+), 1 deletion(-)
New commits:
commit b7783bb27ab216c20cc9a7086862b7dbc387bfb4
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Fri Apr 27 11:16:36 2012 +0200
use arch label in distchannel.setDefaultMap API as stated in the API doc
diff --git a/java/code/src/com/redhat/rhn/domain/channel/ChannelArch.hbm.xml b/java/code/src/com/redhat/rhn/domain/channel/ChannelArch.hbm.xml
index 411e6b4..5cc2537 100644
--- a/java/code/src/com/redhat/rhn/domain/channel/ChannelArch.hbm.xml
+++ b/java/code/src/com/redhat/rhn/domain/channel/ChannelArch.hbm.xml
@@ -47,4 +47,7 @@ PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
<query name="ChannelArch.findByName">
<![CDATA[from com.redhat.rhn.domain.channel.ChannelArch as c where c.name = :name]]>
</query>
+ <query name="ChannelArch.findByLabel">
+ <![CDATA[from com.redhat.rhn.domain.channel.ChannelArch as c where c.label = :label]]>
+ </query>
</hibernate-mapping>
diff --git a/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java b/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java
index 6eb274e..9e8d93b 100644
--- a/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java
+++ b/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java
@@ -697,6 +697,18 @@ public class ChannelFactory extends HibernateFactory {
}
/**
+ * Lookup a ChannelArch based on its label
+ * @param label arch label
+ * @return ChannelArch if found, otherwise null
+ */
+ public static ChannelArch lookupArchByLabel(String label) {
+ Map params = new HashMap();
+ params.put("label", label);
+ return (ChannelArch)
+ singleton.lookupObjectByNamedQuery("ChannelArch.findByLabel", params);
+ }
+
+ /**
* Get package ids for a channel
* @param cid the channel id
* @return List of package ids
diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/distchannel/DistChannelHandler.java b/java/code/src/com/redhat/rhn/frontend/xmlrpc/distchannel/DistChannelHandler.java
index c75b2f3..c8553eb 100644
--- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/distchannel/DistChannelHandler.java
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/distchannel/DistChannelHandler.java
@@ -74,7 +74,7 @@ public class DistChannelHandler extends BaseHandler {
throw new PermissionException(RoleFactory.SAT_ADMIN);
}
- ChannelArch channelArch = ChannelFactory.lookupArchByName(archLabel);
+ ChannelArch channelArch = ChannelFactory.lookupArchByLabel(archLabel);
if (channelArch == null) {
throw new InvalidChannelArchException(archLabel);
}
commit 75b95280e2b7b405fb49be3e3514f0973587baa8
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Fri Apr 27 11:11:21 2012 +0200
add unique constraint on rhnChannelArch.name
diff --git a/schema/spacewalk/common/tables/rhnChannelArch.sql b/schema/spacewalk/common/tables/rhnChannelArch.sql
index 018b878..9464610 100644
--- a/schema/spacewalk/common/tables/rhnChannelArch.sql
+++ b/schema/spacewalk/common/tables/rhnChannelArch.sql
@@ -39,3 +39,6 @@ ALTER TABLE rhnChannelArch
ADD CONSTRAINT rhn_carch_label_uq UNIQUE (label)
USING INDEX TABLESPACE [[2m_tbs]];
+ALTER TABLE rhnChannelArch
+ ADD CONSTRAINT rhn_carch_name_uq UNIQUE (name)
+ USING INDEX TABLESPACE [[2m_tbs]];
diff --git a/schema/spacewalk/upgrade/spacewalk-schema-1.7-to-spacewalk-schema-1.8/034-rhnChannelArch.sql b/schema/spacewalk/upgrade/spacewalk-schema-1.7-to-spacewalk-schema-1.8/034-rhnChannelArch.sql
new file mode 100644
index 0000000..08a314a
--- /dev/null
+++ b/schema/spacewalk/upgrade/spacewalk-schema-1.7-to-spacewalk-schema-1.8/034-rhnChannelArch.sql
@@ -0,0 +1,3 @@
+ALTER TABLE rhnChannelArch
+ ADD CONSTRAINT rhn_carch_name_uq UNIQUE (name)
+ USING INDEX TABLESPACE [[2m_tbs]];