java/code/src/com/redhat/rhn/domain/kickstart/KickstartableTree.java
| 4
java/code/src/com/redhat/rhn/frontend/dto/kickstart/KickstartableTreeDetail.java
| 42 ++++++
java/code/src/com/redhat/rhn/frontend/xmlrpc/kickstart/tree/KickstartTreeHandler.java
| 7 -
java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/KickstartTreeDetailSerializer.java
| 70 ++++++++++
java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/SerializerRegistry.java
| 1
5 files changed, 119 insertions(+), 5 deletions(-)
New commits:
commit 951c44cfff631ef80a43a3a3c6d534578187ac84
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Wed Feb 24 17:15:29 2010 +0100
493176 - kickstart.tree.getDetails API changes
- introducing install_type
- introducing abs_patch instead of the base_path
diff --git a/java/code/src/com/redhat/rhn/domain/kickstart/KickstartableTree.java
b/java/code/src/com/redhat/rhn/domain/kickstart/KickstartableTree.java
index 88e665a..72db2ea 100644
--- a/java/code/src/com/redhat/rhn/domain/kickstart/KickstartableTree.java
+++ b/java/code/src/com/redhat/rhn/domain/kickstart/KickstartableTree.java
@@ -247,12 +247,12 @@ public class KickstartableTree extends BaseDomainHelper {
/**
* Basically returns the actual basepath
- * we need this method becasue the
+ * we need this method because the
* database stores rhn/.... as basepath for redhat channels
* and actual path for non redhat channels...
* @return the actual basepath.
*/
- private String getAbsolutePath() {
+ public String getAbsolutePath() {
if (isRhnTree()) {
//redhat channel append the mount point to
//base path...
diff --git
a/java/code/src/com/redhat/rhn/frontend/dto/kickstart/KickstartableTreeDetail.java
b/java/code/src/com/redhat/rhn/frontend/dto/kickstart/KickstartableTreeDetail.java
new file mode 100644
index 0000000..91ab266
--- /dev/null
+++ b/java/code/src/com/redhat/rhn/frontend/dto/kickstart/KickstartableTreeDetail.java
@@ -0,0 +1,42 @@
+/**
+ * Copyright (c) 2010 Red Hat, Inc.
+ *
+ * This software is licensed to you under the GNU General Public License,
+ * version 2 (GPLv2). There is NO WARRANTY for this software, express or
+ * implied, including the implied warranties of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
+ * along with this software; if not, see
+ *
http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
+ *
+ * Red Hat trademarks are not licensed under GPLv2. No permission is
+ * granted to use or replicate Red Hat trademarks that are incorporated
+ * in this software or its documentation.
+ */
+package com.redhat.rhn.frontend.dto.kickstart;
+
+import com.redhat.rhn.domain.kickstart.KickstartableTree;
+
+
+/**
+ * KickstartableTreeDetail
+ * @version $Rev$
+ */
+public class KickstartableTreeDetail extends KickstartableTree {
+
+ /**
+ * @param tree kickstart tree as origin
+ */
+ public KickstartableTreeDetail(KickstartableTree tree) {
+ this.setBasePath(tree.getBasePath());
+ this.setChannel(tree.getChannel());
+ this.setId(tree.getId());
+ this.setInstallType(tree.getInstallType());
+ this.setLabel(tree.getLabel());
+ this.setLastModified(tree.getLastModified());
+ this.setCobblerId(tree.getCobblerId());
+ this.setCobblerXenId(tree.getCobblerXenId());
+ this.setOrg(tree.getOrg());
+ this.setTreeType(tree.getTreeType());
+ }
+
+}
diff --git
a/java/code/src/com/redhat/rhn/frontend/xmlrpc/kickstart/tree/KickstartTreeHandler.java
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/kickstart/tree/KickstartTreeHandler.java
index 1f0113e..1500a08 100644
---
a/java/code/src/com/redhat/rhn/frontend/xmlrpc/kickstart/tree/KickstartTreeHandler.java
+++
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/kickstart/tree/KickstartTreeHandler.java
@@ -21,6 +21,7 @@ import com.redhat.rhn.domain.kickstart.KickstartFactory;
import com.redhat.rhn.domain.kickstart.KickstartInstallType;
import com.redhat.rhn.domain.kickstart.KickstartableTree;
import com.redhat.rhn.domain.user.User;
+import com.redhat.rhn.frontend.dto.kickstart.KickstartableTreeDetail;
import com.redhat.rhn.frontend.xmlrpc.BaseHandler;
import com.redhat.rhn.frontend.xmlrpc.InvalidChannelLabelException;
import com.redhat.rhn.manager.channel.ChannelManager;
@@ -49,9 +50,9 @@ public class KickstartTreeHandler extends BaseHandler {
* @xmlrpc.param #param("string", "sessionKey")
* @xmlrpc.param #param_desc("string", "treeLabel", "Label
of kickstartable tree to
* search.")
- * @xmlrpc.returntype $KickstartTreeSerializer
+ * @xmlrpc.returntype $KickstartTreeDetailSerializer
*/
- public KickstartableTree getDetails(String sessionKey, String treeLabel) {
+ public KickstartableTreeDetail getDetails(String sessionKey, String treeLabel) {
User loggedInUser = getLoggedInUser(sessionKey);
ensureConfigAdmin(loggedInUser);
@@ -60,7 +61,7 @@ public class KickstartTreeHandler extends BaseHandler {
throw new InvalidChannelLabelException();
}
- return tree;
+ return new KickstartableTreeDetail(tree);
}
/**
diff --git
a/java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/KickstartTreeDetailSerializer.java
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/KickstartTreeDetailSerializer.java
new file mode 100644
index 0000000..f80e55e
--- /dev/null
+++
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/KickstartTreeDetailSerializer.java
@@ -0,0 +1,70 @@
+/**
+ * Copyright (c) 2010 Red Hat, Inc.
+ *
+ * This software is licensed to you under the GNU General Public License,
+ * version 2 (GPLv2). There is NO WARRANTY for this software, express or
+ * implied, including the implied warranties of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
+ * along with this software; if not, see
+ *
http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
+ *
+ * Red Hat trademarks are not licensed under GPLv2. No permission is
+ * granted to use or replicate Red Hat trademarks that are incorporated
+ * in this software or its documentation.
+ */
+package com.redhat.rhn.frontend.xmlrpc.serializer;
+
+import com.redhat.rhn.frontend.dto.kickstart.KickstartableTreeDetail;
+import com.redhat.rhn.frontend.xmlrpc.serializer.util.SerializerHelper;
+
+import java.io.IOException;
+import java.io.Writer;
+
+import redstone.xmlrpc.XmlRpcCustomSerializer;
+import redstone.xmlrpc.XmlRpcException;
+import redstone.xmlrpc.XmlRpcSerializer;
+
+
+/**
+ * KickstartTreeDetailSerializer
+ * @version $Rev$
+ *
+ * @xmlrpc.doc
+ *
+ * #struct("kickstartable tree")
+ * #prop("int", "id")
+ * #prop("string", "label")
+ * #prop("string", "abs_path")
+ * #prop("int", "channel_id")
+ * $KickstartInstallTypeSerializer
+ * #struct_end()
+ */
+public class KickstartTreeDetailSerializer implements XmlRpcCustomSerializer {
+
+ /**
+ * {@inheritDoc}
+ */
+ public Class getSupportedClass() {
+ return KickstartableTreeDetail.class;
+ }
+
+ /**
+ * {@inheritDoc}
+ * @throws IOException
+ */
+ public void serialize(Object value, Writer output,
+ XmlRpcSerializer builtInSerializer)
+ throws XmlRpcException, IOException {
+
+ KickstartableTreeDetail treeDetail = (KickstartableTreeDetail) value;
+ SerializerHelper helper = new SerializerHelper(builtInSerializer);
+
+ helper.add("id", treeDetail.getId());
+ helper.add("label", treeDetail.getLabel());
+ helper.add("abs_path", treeDetail.getAbsolutePath());
+ helper.add("channel_id", treeDetail.getChannel().getId());
+ helper.add("install_type", treeDetail.getInstallType());
+ helper.writeTo(output);
+ }
+
+}
diff --git
a/java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/SerializerRegistry.java
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/SerializerRegistry.java
index 6bcae3c..6060ca4 100644
--- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/SerializerRegistry.java
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/SerializerRegistry.java
@@ -65,6 +65,7 @@ public class SerializerRegistry {
SERIALIZER_CLASSES.add(SystemOverviewSerializer.class);
SERIALIZER_CLASSES.add(UserSerializer.class);
SERIALIZER_CLASSES.add(KickstartTreeSerializer.class);
+ SERIALIZER_CLASSES.add(KickstartTreeDetailSerializer.class);
SERIALIZER_CLASSES.add(BigDecimalSerializer.class);
SERIALIZER_CLASSES.add(ConfigRevisionSerializer.class);
SERIALIZER_CLASSES.add(ConfigChannelSerializer.class);