pkuwm commented on a change in pull request #339: Implementation of 
stateModelDef modification in REST 2.0
URL: https://github.com/apache/helix/pull/339#discussion_r306050637
 
 

 ##########
 File path: 
helix-rest/src/main/java/org/apache/helix/rest/server/resources/helix/ClusterAccessor.java
 ##########
 @@ -431,9 +426,104 @@ public Response 
getClusterStateModelDefinition(@PathParam("clusterId") String cl
     StateModelDefinition stateModelDef =
         
dataAccessor.getProperty(dataAccessor.keyBuilder().stateModelDef(statemodel));
 
+    if (stateModelDef == null) {
+      return  notFound();
+    }
     return JSONRepresentation(stateModelDef.getRecord());
   }
 
+  @PUT
+  @Path("{clusterId}/statemodeldefs/{statemodel}")
+  public Response createClusterStateModelDefinition(
+      @PathParam("clusterId") String clusterId,
+      @PathParam("statemodel") String statemodel,
+      String content
+  ) {
+    ZNRecord record;
+    try {
+      record = toZNRecord(content);
+    } catch (IOException e) {
+      _logger.error("Failed to deserialize user's input " + content + ", 
Exception: " + e);
+      return badRequest("Input is not a valid ZNRecord!");
+    }
+    HelixZkClient zkClient = getHelixZkClient();
+    String path = PropertyPathBuilder.stateModelDef(clusterId);
+    try {
+      ZKUtil.createChildren(zkClient, path, record);
+    } catch (Exception e) {
 
 Review comment:
   I get you.
   
   Since it is a znode creation, I guess all possible exceptions may be 
included in KeeperException  
https://zookeeper.apache.org/doc/r3.3.2/api/org/apache/zookeeper/KeeperException.html
   
   Maybe we could enhance HelixException to support all the potential 
exceptions? 

----------------------------------------------------------------
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]


With regards,
Apache Git Services

Reply via email to