Skip to content

Commit f9e5862

Browse files
Jsonify customized metadata on management API (#3059)
* jsonify customized metadata * correct class for logger * static final logger * java lint :server:verifyJava --------- Co-authored-by: Geeta Chauhan <[email protected]>
1 parent 5a097f3 commit f9e5862

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

frontend/server/src/main/java/org/pytorch/serve/http/messages/DescribeModelResponse.java

+14-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
package org.pytorch.serve.http.messages;
22

3+
import com.google.gson.JsonObject;
34
import java.nio.charset.Charset;
45
import java.util.ArrayList;
56
import java.util.Date;
67
import java.util.List;
8+
import org.pytorch.serve.util.JsonUtils;
9+
import org.slf4j.Logger;
10+
import org.slf4j.LoggerFactory;
711

812
public class DescribeModelResponse {
13+
private static final Logger logger = LoggerFactory.getLogger(DescribeModelResponse.class);
914

1015
private String modelName;
1116
private String modelVersion;
@@ -22,7 +27,7 @@ public class DescribeModelResponse {
2227
private List<Worker> workers;
2328
private Metrics metrics;
2429
private JobQueueStatus jobQueueStatus;
25-
private String customizedMetadata;
30+
private JsonObject customizedMetadata;
2631

2732
public DescribeModelResponse() {
2833
workers = new ArrayList<>();
@@ -160,10 +165,16 @@ public void setJobQueueStatus(JobQueueStatus jobQueueStatus) {
160165
}
161166

162167
public void setCustomizedMetadata(byte[] customizedMetadata) {
163-
this.customizedMetadata = new String(customizedMetadata, Charset.forName("UTF-8"));
168+
String stringMetadata = new String(customizedMetadata, Charset.forName("UTF-8"));
169+
try {
170+
this.customizedMetadata = JsonUtils.GSON.fromJson(stringMetadata, JsonObject.class);
171+
} catch (com.google.gson.JsonSyntaxException ex) {
172+
logger.warn("Customized metadata should be a dictionary.");
173+
this.customizedMetadata = new JsonObject();
174+
}
164175
}
165176

166-
public String getCustomizedMetadata() {
177+
public JsonObject getCustomizedMetadata() {
167178
return customizedMetadata;
168179
}
169180

frontend/server/src/test/java/org/pytorch/serve/ModelServerTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -890,7 +890,7 @@ public void testNoopCustomized() throws InterruptedException {
890890
DescribeModelResponse[] resp =
891891
JsonUtils.GSON.fromJson(TestUtils.getResult(), DescribeModelResponse[].class);
892892
Assert.assertEquals(
893-
resp[0].getCustomizedMetadata(), "{\n \"data1\": \"1\",\n \"data2\": \"2\"\n}");
893+
resp[0].getCustomizedMetadata().toString(), "{\"data1\":\"1\",\"data2\":\"2\"}");
894894

895895
testUnregisterModel("noop-customized", "1.0");
896896
}

0 commit comments

Comments
 (0)