java/code/src/com/redhat/rhn/frontend/xmlrpc/org/OrgHandler.java |
158 ++++++++++
java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/XccdfTestResultSerializer.java |
2
java/code/src/com/redhat/rhn/frontend/xmlrpc/system/scap/SystemScapHandler.java |
18 +
3 files changed, 178 insertions(+)
New commits:
commit 0f60532652c4e9ac38c10177f218b980c277f476
Author: Simon Lukasik <slukasik(a)redhat.com>
Date: Mon Aug 5 16:19:18 2013 +0200
Introduce API: org.setPolicyForScapResultDeletion()
diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/org/OrgHandler.java
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/org/OrgHandler.java
index 5978c67..eb236d5 100644
--- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/org/OrgHandler.java
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/org/OrgHandler.java
@@ -1148,4 +1148,53 @@ public class OrgHandler extends BaseHandler {
(retentionPeriod != null) ? retentionPeriod : new Long(0));
return result;
}
+
+ /**
+ * Set the status of SCAP result deletion settings for the given organization.
+ *
+ * @param sessionKey User's session key.
+ * @param orgId ID of organization to work with.
+ * @param newSettings New settings of the SCAP result deletion settings.
+ * @return Returns 1 for successfull change.
+ *
+ * @xmlrpc.doc Set the status of SCAP result deletion settins for the given
+ * organization.
+ *
+ * @xmlrpc.param #session_key()
+ * @xmlrpc.param #param("int", "orgId")
+ * @xmlrpc.param
+ * #struct("scap_deletion_info")
+ * #prop_desc("boolean", "enabled",
+ * "Deletion of SCAP results is enabled")
+ * #prop_desc("int", "retention_period",
+ * "Period (in days) after which a scan can be deleted (if
enabled).")
+ * #struct_end()
+ * @xmlrpc.returntype #return_int_success()
+ */
+ public int setPolicyForScapResultDeletion(String sessionKey, Integer orgId,
+ Map<String, Object> newSettings) {
+ Set<String> validKeys = new HashSet<String>();
+ validKeys.add("enabled");
+ validKeys.add("retention_period");
+ validateMap(validKeys, newSettings);
+
+ getSatAdmin(sessionKey);
+ OrgConfig orgConfig = verifyOrgExists(orgId).getOrgConfig();
+ if (newSettings.containsKey("enabled")) {
+ if ((Boolean) newSettings.get("enabled")) {
+ orgConfig.setScapRetentionPeriodDays(new Long(90));
+ }
+ else {
+ orgConfig.setScapRetentionPeriodDays(null);
+ }
+ }
+ if (newSettings.containsKey("retention_period")) {
+ Long retentionPeriod = new Long(((Integer)
+ newSettings.get("retention_period")).longValue());
+ if (orgConfig.getScapRetentionPeriodDays() != null) {
+ orgConfig.setScapRetentionPeriodDays(retentionPeriod);
+ }
+ }
+ return 1;
+ }
}
commit 7f64275764b6a30bb8497a155f38e1aa6fa1e906
Author: Simon Lukasik <slukasik(a)redhat.com>
Date: Mon Aug 5 15:41:26 2013 +0200
Introduce API: org.setPolicyForScapFileUpload()
diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/org/OrgHandler.java
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/org/OrgHandler.java
index b563006..5978c67 100644
--- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/org/OrgHandler.java
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/org/OrgHandler.java
@@ -26,6 +26,7 @@ import com.redhat.rhn.domain.channel.ChannelFamily;
import com.redhat.rhn.domain.channel.ChannelFamilyFactory;
import com.redhat.rhn.domain.entitlement.Entitlement;
import
com.redhat.rhn.domain.org.Org;
+import com.redhat.rhn.domain.org.OrgConfig;
import com.redhat.rhn.domain.org.OrgFactory;
import com.redhat.rhn.domain.role.RoleFactory;
import com.redhat.rhn.domain.server.Server;
@@ -62,9 +63,11 @@ import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.Set;
/**
* OrgHandler
@@ -1072,6 +1075,50 @@ public class OrgHandler extends BaseHandler {
}
/**
+ * Set the status of SCAP detailed result file upload settings for the given
+ * organization.
+ *
+ * @param sessionKey User's session key.
+ * @param orgId ID of organization to work with.
+ * @param newSettings New settings of the SCAP detailed result file upload.
+ * @return Returns 1 for successfull change.
+ *
+ * @xmlrpc.doc Set the status of SCAP detailed result file upload settings
+ * for the given organization.
+ *
+ * @xmlrpc.param #session_key()
+ * @xmlrpc.param #param("int", "orgId")
+ * @xmlrpc.param
+ * #struct("scap_upload_info")
+ * #prop_desc("boolean", "enabled",
+ * "Aggregation of detailed SCAP results is enabled.")
+ * #prop_desc("int", "size_limit",
+ * "Limit (in Bytes) for a single SCAP file upload.")
+ * #struct_end()
+ * @xmlrpc.returntype #return_int_success()
+ */
+ public int setPolicyForScapFileUpload(String sessionKey, Integer orgId,
+ Map<String, Object> newSettings) {
+ Set<String> validKeys = new HashSet<String>();
+ validKeys.add("enabled");
+ validKeys.add("size_limit");
+ validateMap(validKeys, newSettings);
+
+ getSatAdmin(sessionKey);
+ OrgConfig orgConfig = verifyOrgExists(orgId).getOrgConfig();
+ if (newSettings.containsKey("enabled")) {
+ Boolean enabled = (Boolean) newSettings.get("enabled");
+ orgConfig.setScapfileUploadEnabled(enabled);
+ }
+ if (newSettings.containsKey("size_limit")) {
+ Long sizeLimit = new Long(((Integer)
+ newSettings.get("size_limit")).longValue());
+ orgConfig.setScapFileSizelimit(sizeLimit);
+ }
+ return 1;
+ }
+
+ /**
* Get the status of SCAP result deletion settings for the given organization.
*
* @param sessionKey User's session key.
commit 0fbec1eed857b8a90e1fb461cfb4a20877fb3c9b
Author: Simon Lukasik <slukasik(a)redhat.com>
Date: Wed Jul 31 17:25:57 2013 +0200
Introduce API: org.getPolicyForScapResultDeletion()
diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/org/OrgHandler.java
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/org/OrgHandler.java
index c2a9227..b563006 100644
--- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/org/OrgHandler.java
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/org/OrgHandler.java
@@ -1070,4 +1070,35 @@ public class OrgHandler extends BaseHandler {
result.put("size_limit", org.getOrgConfig().getScapFileSizelimit());
return result;
}
+
+ /**
+ * Get the status of SCAP result deletion settings for the given organization.
+ *
+ * @param sessionKey User's session key.
+ * @param orgId ID of organization to query.
+ * @return Returns the status of SCAP result deletion settings.
+ *
+ * @xmlrpc.doc Get the status of SCAP result deletion settings for the given
+ * organization.
+ *
+ * @xmlrpc.param #session_key()
+ * @xmlrpc.param #param("int", "orgId")
+ * @xmlrpc.returntype
+ * #struct("scap_deletion_info")
+ * #prop_desc("boolean", "enabled", "Deletion of
SCAP results is enabled")
+ * #prop_desc("int", "retention_period",
+ * "Period (in days) after which a scan can be deleted (if
enabled).")
+ * #struct_end()
+ */
+ public Map<String, Object> getPolicyForScapResultDeletion(String sessionKey,
+ Integer orgId) {
+ getSatAdmin(sessionKey);
+ Org org = verifyOrgExists(orgId);
+ Long retentionPeriod = org.getOrgConfig().getScapRetentionPeriodDays();
+ Map<String, Object> result = new HashMap<String, Object>();
+ result.put("enabled", retentionPeriod != null);
+ result.put("retention_period",
+ (retentionPeriod != null) ? retentionPeriod : new Long(0));
+ return result;
+ }
}
commit 465910201d48a456ba6a4b4571c010fe7ad1e8cd
Author: Simon Lukasik <slukasik(a)redhat.com>
Date: Wed Jul 31 17:12:41 2013 +0200
Introduce API: org.getPolicyForScapFileUpload()
diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/org/OrgHandler.java
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/org/OrgHandler.java
index 31a6a0f..c2a9227 100644
--- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/org/OrgHandler.java
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/org/OrgHandler.java
@@ -1039,4 +1039,35 @@ public class OrgHandler extends BaseHandler {
return 1;
}
+
+ /**
+ * Get the status of SCAP detailed result file upload settings for the given
+ * organization.
+ *
+ * @param sessionKey User's session key.
+ * @param orgId ID of organization to query.
+ * @return Returns the status of SCAP detailed result file upload settings.
+ *
+ * @xmlrpc.doc Get the status of SCAP detailed result file upload settings
+ * for the given organization.
+ *
+ * @xmlrpc.param #session_key()
+ * @xmlrpc.param #param("int", "orgId")
+ * @xmlrpc.returntype
+ * #struct("scap_upload_info")
+ * #prop_desc("boolean", "enabled",
+ * "Aggregation of detailed SCAP results is enabled.")
+ * #prop_desc("int", "size_limit",
+ * "Limit (in Bytes) for a single SCAP file upload.")
+ * #struct_end()
+ */
+ public Map<String, Object> getPolicyForScapFileUpload(String sessionKey,
+ Integer orgId) {
+ getSatAdmin(sessionKey);
+ Org org = verifyOrgExists(orgId);
+ Map<String, Object> result = new HashMap<String, Object>();
+ result.put("enabled", org.getOrgConfig().isScapfileUploadEnabled());
+ result.put("size_limit", org.getOrgConfig().getScapFileSizelimit());
+ return result;
+ }
}
commit dd1d0122387a71a3737dd6f6981083d2af34a5f6
Author: Simon Lukasik <slukasik(a)redhat.com>
Date: Wed Jul 31 15:31:57 2013 +0200
Introduce API: system.scap.deleteXccdfScan()
diff --git
a/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/scap/SystemScapHandler.java
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/scap/SystemScapHandler.java
index b6ff28d..fb9ddbc 100644
--- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/scap/SystemScapHandler.java
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/scap/SystemScapHandler.java
@@ -104,6 +104,24 @@ public class SystemScapHandler extends BaseHandler {
}
/**
+ * Delete OpenSCAP XCCDF Scan from the Spacewalk database.
+ * @param sessionKey The session key.
+ * @param xid The id of XCCDF scan.
+ * @return a boolean indicating success of the operation.
+ *
+ * @xmlrpc.doc Delete OpenSCAP XCCDF Scan from Spacewalk database. Note that
+ * only those SCAP Scans can be deleted which have passed their retention period.
+ * @xmlrpc.param #session_key()
+ * @xmlrpc.param #param("int", "Id of XCCDF scan (xid).")
+ * @xmlrpc.returntype boolean - indicates success of the operation.
+ */
+ public Boolean deleteXccdfScan(String sessionKey, Integer xid) {
+ User loggedInUser = getLoggedInUser(sessionKey);
+ ScapManager.ensureAvailableToUser(loggedInUser, new Long(xid));
+ return ScapManager.deleteScan(new Long(xid));
+ }
+
+ /**
* Run OpenSCAP XCCDF Evaluation on a given list of servers
* @param sessionKey The session key.
* @param serverIds The list of server ids,
commit 7d06206839128dce15f44b0aed8c2d77444da9b4
Author: Simon Lukasik <slukasik(a)redhat.com>
Date: Wed Jul 31 15:01:17 2013 +0200
Export the 'deletable' property of TestResult through API.
diff --git
a/java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/XccdfTestResultSerializer.java
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/XccdfTestResultSerializer.java
index babc498..cf5f45e 100644
---
a/java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/XccdfTestResultSerializer.java
+++
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/XccdfTestResultSerializer.java
@@ -48,6 +48,7 @@ import com.redhat.rhn.frontend.xmlrpc.serializer.util.SerializerHelper;
* #prop_desc($date, "start_time", "Client machine time of scan
start.")
* #prop_desc($date, "end_time", "Client machine time of scan
completion.")
* #prop_desc("string", "errors", "Stderr output of
scan.")
+ * #prop_desc("bool", "deletable", "Indicates whether the scan
can be deleted.")
* #struct_end()
*/
public class XccdfTestResultSerializer implements XmlRpcCustomSerializer {
@@ -84,6 +85,7 @@ public class XccdfTestResultSerializer implements XmlRpcCustomSerializer
{
addToHelper(helper, "end_time", testResult.getEndTime());
addToHelper(helper, "errors", testResult.getErrrosContents());
addToHelper(helper, "action_id", parentAction.getId());
+ addToHelper(helper, "deletable", testResult.getDeletable());
helper.writeTo(output);
}