java/code/src/com/redhat/rhn/frontend/xmlrpc/configchannel/ConfigChannelHandler.java
| 2 +
java/code/src/com/redhat/rhn/frontend/xmlrpc/configchannel/XmlRpcConfigChannelHelper.java
| 14 ++++++++++
java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/ConfigRevisionSerializer.java
| 1
java/code/src/com/redhat/rhn/frontend/xmlrpc/system/config/ServerConfigHandler.java
| 2 +
4 files changed, 19 insertions(+)
New commits:
commit f771ac7d4a544a07d853549fa4194fd7020b732a
Author: Lukas Zapletal <lzap+git(a)redhat.com>
Date: Wed Sep 15 16:20:13 2010 +0200
595500 - added contents_enc64 param to createOrUpdatePath XMLAPI
diff --git
a/java/code/src/com/redhat/rhn/frontend/xmlrpc/configchannel/ConfigChannelHandler.java
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/configchannel/ConfigChannelHandler.java
index 9d7d8d6..b82a67e 100644
---
a/java/code/src/com/redhat/rhn/frontend/xmlrpc/configchannel/ConfigChannelHandler.java
+++
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/configchannel/ConfigChannelHandler.java
@@ -248,6 +248,7 @@ public class ConfigChannelHandler extends BaseHandler {
* #prop_desc("string","contents",
* "Contents of the file (text or base64 encoded if binary).
* (ignored for directories)")
+ * #prop_desc("boolean","contents_enc64", "Identifies
base64 encoded content (default: disabled).")
* #prop_desc("string", "owner", "Owner of the
file/directory.")
* #prop_desc("string", "group", "Group name of the
file/directory.")
* #prop_desc("string", "permissions",
@@ -275,6 +276,7 @@ public class ConfigChannelHandler extends BaseHandler {
// confirm that the user only provided valid keys in the map
Set<String> validKeys = new HashSet<String>();
validKeys.add(ConfigRevisionSerializer.CONTENTS);
+ validKeys.add(ConfigRevisionSerializer.CONTENTS_ENC64);
validKeys.add(ConfigRevisionSerializer.OWNER);
validKeys.add(ConfigRevisionSerializer.GROUP);
validKeys.add(ConfigRevisionSerializer.PERMISSIONS);
diff --git
a/java/code/src/com/redhat/rhn/frontend/xmlrpc/configchannel/XmlRpcConfigChannelHelper.java
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/configchannel/XmlRpcConfigChannelHelper.java
index 1d541f5..c7c004a 100644
---
a/java/code/src/com/redhat/rhn/frontend/xmlrpc/configchannel/XmlRpcConfigChannelHelper.java
+++
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/configchannel/XmlRpcConfigChannelHelper.java
@@ -30,10 +30,12 @@ import com.redhat.rhn.manager.configuration.file.DirectoryData;
import com.redhat.rhn.manager.configuration.file.SymlinkData;
import com.redhat.rhn.manager.configuration.file.TextFileData;
+import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang.StringUtils;
import java.io.ByteArrayInputStream;
import java.io.IOException;
+import java.io.UnsupportedEncodingException;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -113,12 +115,24 @@ public class XmlRpcConfigChannelHelper {
if (ConfigFileType.file().equals(type)) {
if (data.get(ConfigRevisionSerializer.CONTENTS) instanceof String) {
String content = (String)data.get(ConfigRevisionSerializer.CONTENTS);
+ if (data.containsKey(ConfigRevisionSerializer.CONTENTS_ENC64)) {
+ try {
+ content = new
String(Base64.decodeBase64(content.getBytes("UTF-8")), "UTF-8");
+ } catch (UnsupportedEncodingException e) {
+ String msg = "Following errors were encountered " +
+ "when creating the config file.\n" +
e.getMessage();
+ throw new FaultException(1023, "ConfgFileError", msg);
+ }
+ }
form = new TextFileData();
((TextFileData)form).setContents(content);
}
else {
byte[] content = (byte[])data.get(ConfigRevisionSerializer.CONTENTS);
if (content != null) {
+ if (data.containsKey(ConfigRevisionSerializer.CONTENTS_ENC64)) {
+ content = Base64.decodeBase64(content);
+ }
form = new BinaryFileData(new ByteArrayInputStream(content),
content.length);
}
diff --git
a/java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/ConfigRevisionSerializer.java
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/ConfigRevisionSerializer.java
index 6955341..1c0bfa0 100644
---
a/java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/ConfigRevisionSerializer.java
+++
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/ConfigRevisionSerializer.java
@@ -64,6 +64,7 @@ import redstone.xmlrpc.XmlRpcSerializer;
public class ConfigRevisionSerializer implements XmlRpcCustomSerializer {
public static final String CONTENTS = "contents";
+ public static final String CONTENTS_ENC64 = "contents_enc64";
public static final String PATH = "path";
public static final String TARGET_PATH = "target_path";
public static final String OWNER = "owner";
diff --git
a/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/config/ServerConfigHandler.java
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/config/ServerConfigHandler.java
index fdde269..bee673d 100644
--- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/config/ServerConfigHandler.java
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/config/ServerConfigHandler.java
@@ -133,6 +133,7 @@ public class ServerConfigHandler extends BaseHandler {
* #prop_desc("string","contents",
* "Contents of the file (text or base64 encoded if binary).
* (ignored for directories)")
+ * #prop_desc("boolean","contents_enc64", "Identifies
base64 encoded content (default: disabled).")
* #prop_desc("string","owner", "Owner of the
file/directory.")
* #prop_desc("string","group", "Group name of the
file/directory.")
* #prop_desc("string","permissions",
@@ -167,6 +168,7 @@ public class ServerConfigHandler extends BaseHandler {
// confirm that the user only provided valid keys in the map
Set<String> validKeys = new HashSet<String>();
validKeys.add(ConfigRevisionSerializer.CONTENTS);
+ validKeys.add(ConfigRevisionSerializer.CONTENTS_ENC64);
validKeys.add(ConfigRevisionSerializer.OWNER);
validKeys.add(ConfigRevisionSerializer.GROUP);
validKeys.add(ConfigRevisionSerializer.PERMISSIONS);
Show replies by date