java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java | 17 ++++++++++
1 file changed, 17 insertions(+)
New commits:
commit ca2274492a75db66e05e99e8a83f3feac7cd5694
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Fri Apr 13 17:32:48 2012 +0200
809579 - make system snapshot when changing server entitlements using API
system.addEntitlements
system.removeEntitlements
system.upgradeEntitlement
diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java
index e64ee9f..3aabcad 100644
--- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java
@@ -296,6 +296,8 @@ public class SystemHandler extends BaseHandler {
}
SystemManager.entitleServer(server, entitlement);
+ SystemManager.snapshotServer(server, LocalizationService.getInstance()
+ .getMessage("snapshots.entitlements"));
return 1;
}
@@ -3604,6 +3606,7 @@ public class SystemHandler extends BaseHandler {
* @xmlrpc.returntype #return_int_success()
*/
public int addEntitlements(String sessionKey, Integer serverId, List entitlements) {
+ boolean needsSnapshot = false;
User loggedInUser = getLoggedInUser(sessionKey);
Server server = null;
try {
@@ -3656,6 +3659,7 @@ public class SystemHandler extends BaseHandler {
if (SystemManager.canEntitleServer(server, ent)) {
ValidatorResult vr = SystemManager.entitleServer(server, ent);
+ needsSnapshot = true;
if (vr.getErrors().size() > 0) {
throw new InvalidEntitlementException();
}
@@ -3665,6 +3669,11 @@ public class SystemHandler extends BaseHandler {
}
}
+ if (needsSnapshot) {
+ SystemManager.snapshotServer(server, LocalizationService
+ .getInstance().getMessage("snapshots.entitlements"));
+ }
+
return 1;
}
@@ -3684,6 +3693,7 @@ public class SystemHandler extends BaseHandler {
* @xmlrpc.returntype #return_int_success()
*/
public int removeEntitlements(String sessionKey, Integer serverId, List entitlements)
{
+ boolean needsSnapshot = false;
User loggedInUser = getLoggedInUser(sessionKey);
Server server = null;
try {
@@ -3705,12 +3715,19 @@ public class SystemHandler extends BaseHandler {
continue;
}
SystemManager.removeServerEntitlement(server.getId(), ent);
+ needsSnapshot = true;
}
// process base entitlements at the end
if (!baseEnts.isEmpty()) {
// means unentile the whole system
SystemManager.removeAllServerEntitlements(server.getId());
+ needsSnapshot = true;
+ }
+
+ if (needsSnapshot) {
+ SystemManager.snapshotServer(server, LocalizationService
+ .getInstance().getMessage("snapshots.entitlements"));
}
return 1;
Show replies by date