jiajunwang commented on a change in pull request #1190:
URL: https://github.com/apache/helix/pull/1190#discussion_r463228709
##########
File path:
helix-rest/src/main/java/org/apache/helix/rest/server/resources/zookeeper/ZooKeeperAccessor.java
##########
@@ -192,7 +196,29 @@ private Response getStat(BaseDataAccessor<byte[]>
zkBaseDataAccessor, String pat
.entity(String.format("The ZNode at path %s does not exist!",
path)).build());
}
Map<String, String> result = ZKUtil.fromStatToMap(stat);
- result.put("path", path);
+ result.put(PATH_STR, path);
+ return JSONRepresentation(result);
+ }
+
+ /**
+ * Delete the ZNode at the given path if exists.
+ * @param zkBaseDataAccessor
+ * @param path
+ * @return The delete result and the operated path.
+ */
+ private Response delete(BaseDataAccessor zkBaseDataAccessor, String path) {
+ // TODO: Remove this restriction once we have audit and ACL for the API
calls.
+ // TODO: This method is added pre-maturely to support removing the live
instance of a zombie
+ // TODO: instance. It is risky to allow all deleting requests before audit
and ACL are done.
+ Stat stat = zkBaseDataAccessor.getStat(path, AccessOption.PERSISTENT);
+ if (stat != null && stat.getEphemeralOwner() <= 0) {
+ throw new
WebApplicationException(Response.status(Response.Status.FORBIDDEN)
+ .entity(String.format("Deleting a non ephemeral node is not
allowed", path)).build());
+ }
+
+ Boolean ret = zkBaseDataAccessor.remove(path, AccessOption.PERSISTENT);
Review comment:
The latter parameter is not used. Put EPHEMERAL or PERSISTENT is equally
confusing. So let me just put the first enum item for now. I actually intend to
avoid using EPHEMERAL since it indicates this parameter has some usage inside
(but it is not true).
I think we need to discard this interesting API for good.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]