You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by co...@apache.org on 2016/05/27 13:33:06 UTC
incubator-ranger git commit: RANGER-996 - The PolicyRefresher doesn't
cache policies if the directory doesn't already exist
Repository: incubator-ranger
Updated Branches:
refs/heads/master 6bdc2d27a -> c498b0fc1
RANGER-996 - The PolicyRefresher doesn't cache policies if the directory doesn't already exist
Committed by: coheigea. Reviewed by Madhan Neethiraj.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/c498b0fc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/c498b0fc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/c498b0fc
Branch: refs/heads/master
Commit: c498b0fc1cee00e89680b08869d2ec5afbce46fb
Parents: 6bdc2d2
Author: Colm O hEigeartaigh <co...@apache.org>
Authored: Fri May 27 13:39:51 2016 +0100
Committer: Colm O hEigeartaigh <co...@apache.org>
Committed: Fri May 27 14:32:28 2016 +0100
----------------------------------------------------------------------
.../ranger/plugin/util/PolicyRefresher.java | 26 ++++++++++++++++----
1 file changed, 21 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/c498b0fc/agents-common/src/main/java/org/apache/ranger/plugin/util/PolicyRefresher.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/util/PolicyRefresher.java b/agents-common/src/main/java/org/apache/ranger/plugin/util/PolicyRefresher.java
index 91a23b3..f865a2a 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/util/PolicyRefresher.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/util/PolicyRefresher.java
@@ -44,7 +44,8 @@ public class PolicyRefresher extends Thread {
private final String serviceType;
private final String serviceName;
private final RangerAdminClient rangerAdmin;
- private final String cacheFile;
+ private final String cacheFileName;
+ private final String cacheDir;
private final Gson gson;
private long pollingIntervalMs = 30 * 1000;
@@ -71,7 +72,8 @@ public class PolicyRefresher extends Thread {
cacheFilename = cacheFilename.replace(File.separatorChar, '_');
cacheFilename = cacheFilename.replace(File.pathSeparatorChar, '_');
- this.cacheFile = cacheDir == null ? null : (cacheDir + File.separator + cacheFilename);
+ this.cacheFileName = cacheFilename;
+ this.cacheDir = cacheDir;
Gson gson = null;
try {
@@ -254,7 +256,7 @@ public class PolicyRefresher extends Thread {
LOG.debug("==> PolicyRefresher(serviceName=" + serviceName + ").loadFromCache()");
}
- File cacheFile = StringUtils.isEmpty(this.cacheFile) ? null : new File(this.cacheFile);
+ File cacheFile = cacheDir == null ? null : new File(cacheDir + File.separator + cacheFileName);
if(cacheFile != null && cacheFile.isFile() && cacheFile.canRead()) {
Reader reader = null;
@@ -301,8 +303,22 @@ public class PolicyRefresher extends Thread {
}
if(policies != null) {
- File cacheFile = StringUtils.isEmpty(this.cacheFile) ? null : new File(this.cacheFile);
-
+ File cacheFile = null;
+ if (cacheDir != null) {
+ // Create the cacheDir if it doesn't already exist
+ File cacheDirTmp = new File(cacheDir);
+ if (cacheDirTmp.exists()) {
+ cacheFile = new File(cacheDir + File.separator + cacheFileName);
+ } else {
+ try {
+ cacheDirTmp.mkdirs();
+ cacheFile = new File(cacheDir + File.separator + cacheFileName);
+ } catch (SecurityException ex) {
+ LOG.error("Cannot create cache directory", ex);
+ }
+ }
+ }
+
if(cacheFile != null) {
Writer writer = null;