curator-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From randg...@apache.org
Subject [28/35] curator git commit: must do schema validation on set acl
Date Thu, 19 May 2016 19:02:43 GMT
must do schema validation on set acl


Project: http://git-wip-us.apache.org/repos/asf/curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/726b03cf
Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/726b03cf
Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/726b03cf

Branch: refs/heads/CURATOR-3.0
Commit: 726b03cf986f7ac2fc61f3dd448b18cde40d3501
Parents: b889e3b
Author: randgalt <randgalt@apache.org>
Authored: Wed May 4 12:54:46 2016 -0500
Committer: randgalt <randgalt@apache.org>
Committed: Wed May 4 12:54:46 2016 -0500

----------------------------------------------------------------------
 .../curator/framework/imps/SetACLBuilderImpl.java       | 12 +++++++-----
 .../curator/framework/schema/SchemaValidator.java       |  7 +++++++
 .../org/apache/curator/framework/schema/TestSchema.java |  2 +-
 3 files changed, 15 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/curator/blob/726b03cf/curator-framework/src/main/java/org/apache/curator/framework/imps/SetACLBuilderImpl.java
----------------------------------------------------------------------
diff --git a/curator-framework/src/main/java/org/apache/curator/framework/imps/SetACLBuilderImpl.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/SetACLBuilderImpl.java
index 5ab353a..44adfe2 100644
--- a/curator-framework/src/main/java/org/apache/curator/framework/imps/SetACLBuilderImpl.java
+++ b/curator-framework/src/main/java/org/apache/curator/framework/imps/SetACLBuilderImpl.java
@@ -114,16 +114,18 @@ class SetACLBuilderImpl implements SetACLBuilder, BackgroundPathable<Stat>,
Back
     @Override
     public Stat forPath(String path) throws Exception
     {
-        path = client.fixForNamespace(path);
+        String fixedPath = client.fixForNamespace(path);
+        List<ACL> aclList = acling.getAclList(fixedPath);
+        client.getSchemaSet().getSchema(path).validateGeneral(path, null, aclList);
 
         Stat        resultStat = null;
         if ( backgrounding.inBackground()  )
         {
-            client.processBackgroundOperation(new OperationAndData<String>(this, path,
backgrounding.getCallback(), null, backgrounding.getContext(), null), null);
+            client.processBackgroundOperation(new OperationAndData<String>(this, fixedPath,
backgrounding.getCallback(), null, backgrounding.getContext(), null), null);
         }
         else
         {
-            resultStat = pathInForeground(path);
+            resultStat = pathInForeground(fixedPath, aclList);
         }
         return resultStat;
     }
@@ -160,7 +162,7 @@ class SetACLBuilderImpl implements SetACLBuilder, BackgroundPathable<Stat>,
Back
         }
     }
 
-    private Stat pathInForeground(final String path) throws Exception
+    private Stat pathInForeground(final String path, final List<ACL> aclList) throws
Exception
     {
         TimeTrace   trace = client.getZookeeperClient().startTracer("SetACLBuilderImpl-Foreground");
         Stat        resultStat = RetryLoop.callWithRetry
@@ -171,7 +173,7 @@ class SetACLBuilderImpl implements SetACLBuilder, BackgroundPathable<Stat>,
Back
                 @Override
                 public Stat call() throws Exception
                 {
-                    return client.getZooKeeper().setACL(path, acling.getAclList(path), version);
+                    return client.getZooKeeper().setACL(path, aclList, version);
                 }
             }
         );

http://git-wip-us.apache.org/repos/asf/curator/blob/726b03cf/curator-framework/src/main/java/org/apache/curator/framework/schema/SchemaValidator.java
----------------------------------------------------------------------
diff --git a/curator-framework/src/main/java/org/apache/curator/framework/schema/SchemaValidator.java
b/curator-framework/src/main/java/org/apache/curator/framework/schema/SchemaValidator.java
index 560b8f8..a92720f 100644
--- a/curator-framework/src/main/java/org/apache/curator/framework/schema/SchemaValidator.java
+++ b/curator-framework/src/main/java/org/apache/curator/framework/schema/SchemaValidator.java
@@ -23,5 +23,12 @@ import java.util.List;
 
 public interface SchemaValidator
 {
+    /**
+     * @param schema the schema being validated
+     * @param path the path being operated on
+     * @param data data or null
+     * @param acl acls or null
+     * @return true if valid
+     */
     boolean isValid(Schema schema, String path, byte[] data, List<ACL> acl);
 }

http://git-wip-us.apache.org/repos/asf/curator/blob/726b03cf/curator-framework/src/test/java/org/apache/curator/framework/schema/TestSchema.java
----------------------------------------------------------------------
diff --git a/curator-framework/src/test/java/org/apache/curator/framework/schema/TestSchema.java
b/curator-framework/src/test/java/org/apache/curator/framework/schema/TestSchema.java
index e2a581b..78ecdf5 100644
--- a/curator-framework/src/test/java/org/apache/curator/framework/schema/TestSchema.java
+++ b/curator-framework/src/test/java/org/apache/curator/framework/schema/TestSchema.java
@@ -74,7 +74,7 @@ public class TestSchema extends BaseClassForTests
     }
 
     @Test
-    public void testDataValidator() throws Exception
+    public void testSchemaValidator() throws Exception
     {
         final SchemaValidator schemaValidator = new SchemaValidator()
         {


Mime
View raw message