Repository: incubator-ranger Updated Branches: refs/heads/master 6f7587154 -> 66b778832
RANGER-704: Service enable/disable should refresh the policies in the plugins Signed-off-by: Madhan Neethiraj <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/66b77883 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/66b77883 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/66b77883 Branch: refs/heads/master Commit: 66b778832907cef61d6930b0995aacb07251db9b Parents: 6f75871 Author: Abhay Kulkarni <[email protected]> Authored: Wed Oct 21 18:57:48 2015 -0700 Committer: Madhan Neethiraj <[email protected]> Committed: Thu Oct 22 10:59:20 2015 -0700 ---------------------------------------------------------------------- .../ranger/plugin/store/file/ServiceFileStore.java | 15 +++++++++++++-- .../java/org/apache/ranger/biz/ServiceDBStore.java | 17 +++++++++++++++-- 2 files changed, 28 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/66b77883/agents-common/src/main/java/org/apache/ranger/plugin/store/file/ServiceFileStore.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/store/file/ServiceFileStore.java b/agents-common/src/main/java/org/apache/ranger/plugin/store/file/ServiceFileStore.java index 751c3b3..de7bc1f 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/store/file/ServiceFileStore.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/store/file/ServiceFileStore.java @@ -338,6 +338,11 @@ public class ServiceFileStore extends BaseFileStore implements ServiceStore { } } + boolean hasIsEnabledChanged = !existing.getIsEnabled().equals(service.getIsEnabled()); + if (hasIsEnabledChanged) { + handlePolicyUpdate(service); + } + RangerService ret = null; try { @@ -733,9 +738,15 @@ public class ServiceFileStore extends BaseFileStore implements ServiceStore { } if(lastKnownVersion == null || service.getPolicyVersion() == null || lastKnownVersion.longValue() != service.getPolicyVersion().longValue()) { - SearchFilter filter = new SearchFilter(SearchFilter.SERVICE_NAME, serviceName); - List<RangerPolicy> policies = getPolicies(filter); + List<RangerPolicy> policies = null; + + if (service.getIsEnabled()) { + SearchFilter filter = new SearchFilter(SearchFilter.SERVICE_NAME, serviceName); + policies = getPolicies(filter); + } else { + policies = new ArrayList<RangerPolicy>(); + } ret = new ServicePolicies(); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/66b77883/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java b/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java index 6e07e4e..e371415 100644 --- a/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java +++ b/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java @@ -1121,6 +1121,8 @@ public class ServiceDBStore implements ServiceStore { List<XXTrxLog> trxLogList = svcService.getTransactionLog(service, existing, RangerServiceService.OPERATION_UPDATE_CONTEXT); + boolean hasIsEnabledChanged = !existing.getIsenabled().equals(service.getIsEnabled()); + if(populateExistingBaseFields) { svcServiceWithAssignedId.setPopulateExistingBaseFields(true); service = svcServiceWithAssignedId.update(service); @@ -1130,7 +1132,17 @@ public class ServiceDBStore implements ServiceStore { service.setGuid(existing.getGuid()); service.setVersion(existing.getVersion()); service.setPolicyUpdateTime(existing.getPolicyUpdateTime()); - service.setPolicyVersion(existing.getPolicyVersion()); + + Long policyVersion = existing.getPolicyVersion(); + + if(policyVersion == null) { + policyVersion = new Long(1); + service.setPolicyUpdateTime(new Date()); + } else if (hasIsEnabledChanged) { + policyVersion = new Long(policyVersion.longValue() + 1); + service.setPolicyUpdateTime(new Date()); + } + service.setPolicyVersion(policyVersion); service = svcService.update(service); } @@ -1645,7 +1657,8 @@ public class ServiceDBStore implements ServiceStore { throw new Exception("service-def does not exist. id=" + serviceDbObj.getType()); } - List<RangerPolicy> policies = getServicePolicies(serviceName, null); + List<RangerPolicy> policies = serviceDbObj.getIsenabled() ? getServicePolicies(serviceName, null) + : new ArrayList<RangerPolicy>(); ret = new ServicePolicies();
