summaryrefslogtreecommitdiffstats
path: root/clustercontroller-core
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2022-10-21 16:55:26 +0200
committerjonmv <venstad@gmail.com>2022-10-21 16:55:26 +0200
commit49bc9f5bcc05852954833f1c3c74dfa54e382fcb (patch)
treea64a32f730c2ddf9c010d3eba74859666ac6adf5 /clustercontroller-core
parent064490e91198ebb77102e3d6e3d649596c843c4c (diff)
Replace jettison with jackson
Diffstat (limited to 'clustercontroller-core')
-rw-r--r--clustercontroller-core/pom.xml4
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/Response.java6
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ContentClusterHtmlRendererTest.java27
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/NodeTest.java162
4 files changed, 97 insertions, 102 deletions
diff --git a/clustercontroller-core/pom.xml b/clustercontroller-core/pom.xml
index dbd7e14a8f6..b4ac5ca869c 100644
--- a/clustercontroller-core/pom.xml
+++ b/clustercontroller-core/pom.xml
@@ -64,10 +64,6 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>org.codehaus.jettison</groupId>
- <artifactId>jettison</artifactId>
- </dependency>
- <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<scope>provided</scope>
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/Response.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/Response.java
index b4bd75fd9b8..cfe4c925551 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/Response.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/Response.java
@@ -74,7 +74,7 @@ public class Response {
{
protected final Map<String, String> attributes = new LinkedHashMap<>();
protected final Map<String, SubUnitList> subUnits = new LinkedHashMap<>();
- protected final Map<String, Number> metrics = new LinkedHashMap<>();
+ protected final Map<String, Long> metrics = new LinkedHashMap<>();
protected final Map<String, UnitState> stateMap = new LinkedHashMap<>();
protected DistributionState publishedState = null;
@@ -92,7 +92,7 @@ public class Response {
}
@Override
- public Map<String, Number> getMetricMap() { return metrics; }
+ public Map<String, Long> getMetricMap() { return metrics; }
@Override
public Map<String, UnitState> getStatePerType() { return stateMap; }
@Override
@@ -120,7 +120,7 @@ public class Response {
list.addUnit(unit, response);
return this;
}
- public EmptyResponse<T> addMetric(String name, Number value) {
+ public EmptyResponse<T> addMetric(String name, Long value) {
metrics.put(name, value);
return this;
}
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ContentClusterHtmlRendererTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ContentClusterHtmlRendererTest.java
index d43a3e13c6a..31432d561d0 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ContentClusterHtmlRendererTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ContentClusterHtmlRendererTest.java
@@ -1,22 +1,22 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.clustercontroller.core;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Sets;
import com.yahoo.vdslib.state.ClusterState;
import com.yahoo.vespa.clustercontroller.core.hostinfo.HostInfo;
import com.yahoo.vespa.clustercontroller.core.status.statuspage.VdsClusterHtmlRenderer;
-import org.codehaus.jettison.json.JSONException;
-import org.codehaus.jettison.json.JSONWriter;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import java.io.IOException;
import java.io.StringWriter;
import java.io.Writer;
import java.util.Collections;
+import java.util.Map;
import java.util.TreeMap;
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.mock;
public class ContentClusterHtmlRendererTest {
@@ -28,7 +28,7 @@ public class ContentClusterHtmlRendererTest {
private String result;
@BeforeEach
- public void before() throws JSONException {
+ public void before() throws IOException {
final ClusterStateBundle stateBundle = ClusterStateBundle.ofBaselineOnly(
AnnotatedClusterState.withoutAnnotations(
ClusterState.stateFromString("version:34633 bits:24 distributor:211 storage:211")));
@@ -40,14 +40,8 @@ public class ContentClusterHtmlRendererTest {
for (int x = 0; x < 10; x++) {
NodeInfo nodeInfo = new DistributorNodeInfo(contentCluster, x, "dist " + x, null);
- final Writer writer = new StringWriter();
- new JSONWriter(writer)
- .object().key("vtag")
- // Let one node have a different release tag.
- .object().key("version").value("release1" + (x == 2 ? "bad" : ""))
- .endObject()
- .endObject();
- nodeInfo.setHostInfo(HostInfo.createHostInfo(writer.toString()));
+ String json = new ObjectMapper().writeValueAsString(Map.of("vtag", Map.of("version", "release1" + (x == 2 ? "bad" : ""))));
+ nodeInfo.setHostInfo(HostInfo.createHostInfo(json));
distributorNodeInfoByIndex.put(x, nodeInfo);
}
storageNodeInfoByIndex.put(2, new StorageNodeInfo(contentCluster, 2, false, "storage" + 2, null));
@@ -73,10 +67,11 @@ public class ContentClusterHtmlRendererTest {
@Test
void testVtagRendering() {
// 9 distribution nodes should have green tag on release1.
- assertThat(result.split("<td bgcolor=\"#c0ffc0\" align=\"right\"><nobr>release1</nobr></td>").length, is(10));
+ assertEquals(10, result.split("<td bgcolor=\"#c0ffc0\" align=\"right\"><nobr>release1</nobr></td>").length);
// 1 distribution node should have warning on release1bad.
- assertThat(result.split("<td bgcolor=\"#ffffc0\" align=\"right\"><nobr>release1bad</nobr></td>").length, is(2));
+ assertEquals(2, result.split("<td bgcolor=\"#ffffc0\" align=\"right\"><nobr>release1bad</nobr></td>").length);
// 1 storage node should should have warning on release "not set".
- assertThat(result.split("<td bgcolor=\"#ffffc0\" align=\"right\"><nobr>not set</nobr></td>").length, is(2));
+ assertEquals(2, result.split("<td bgcolor=\"#ffffc0\" align=\"right\"><nobr>not set</nobr></td>").length);
}
+
}
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/NodeTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/NodeTest.java
index 52c46215e50..39a2e22f6c5 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/NodeTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/NodeTest.java
@@ -7,7 +7,6 @@ import com.yahoo.vdslib.state.NodeType;
import com.yahoo.vdslib.state.State;
import com.yahoo.vespa.clustercontroller.core.ContentCluster;
import com.yahoo.vespa.clustercontroller.utils.staterestapi.response.UnitResponse;
-import org.codehaus.jettison.json.JSONObject;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -19,23 +18,24 @@ public class NodeTest extends StateRestApiTest {
setUp(true);
UnitResponse response = restAPI.getState(new StateRequest("music/distributor/1", 0));
String expected =
- "{\n" +
- " \"attributes\": {\"hierarchical-group\": \"east.g2\"},\n" +
- " \"state\": {\n" +
- " \"generated\": {\n" +
- " \"state\": \"up\",\n" +
- " \"reason\": \"\"\n" +
- " },\n" +
- " \"unit\": {\n" +
- " \"state\": \"up\",\n" +
- " \"reason\": \"\"\n" +
- " },\n" +
- " \"user\": {\n" +
- " \"state\": \"up\",\n" +
- " \"reason\": \"\"\n" +
- " }\n" +
- " }\n" +
- "}";
+ """
+ {
+ "attributes": {"hierarchical-group": "east.g2"},
+ "state": {
+ "generated": {
+ "state": "up",
+ "reason": ""
+ },
+ "unit": {
+ "state": "up",
+ "reason": ""
+ },
+ "user": {
+ "state": "up",
+ "reason": ""
+ }
+ }
+ }""";
assertEquals(expected, jsonWriter.createJson(response).toString(2));
}
@@ -44,28 +44,29 @@ public class NodeTest extends StateRestApiTest {
setUp(true);
UnitResponse response = restAPI.getState(new StateRequest("music/storage/1", 0));
String expected =
- "{\n" +
- " \"attributes\": {\"hierarchical-group\": \"east.g2\"},\n" +
- " \"state\": {\n" +
- " \"generated\": {\n" +
- " \"state\": \"up\",\n" +
- " \"reason\": \"\"\n" +
- " },\n" +
- " \"unit\": {\n" +
- " \"state\": \"up\",\n" +
- " \"reason\": \"\"\n" +
- " },\n" +
- " \"user\": {\n" +
- " \"state\": \"up\",\n" +
- " \"reason\": \"\"\n" +
- " }\n" +
- " },\n" +
- " \"metrics\": {\n" +
- " \"bucket-count\": 1,\n" +
- " \"unique-document-count\": 2,\n" +
- " \"unique-document-total-size\": 3\n" +
- " }\n" +
- "}";
+ """
+ {
+ "attributes": {"hierarchical-group": "east.g2"},
+ "state": {
+ "generated": {
+ "state": "up",
+ "reason": ""
+ },
+ "unit": {
+ "state": "up",
+ "reason": ""
+ },
+ "user": {
+ "state": "up",
+ "reason": ""
+ }
+ },
+ "metrics": {
+ "bucket-count": 1,
+ "unique-document-count": 2,
+ "unique-document-total-size": 3
+ }
+ }""";
assertEquals(expected, jsonWriter.createJson(response).toString(2));
}
@@ -74,28 +75,29 @@ public class NodeTest extends StateRestApiTest {
setUp(true);
UnitResponse response = restAPI.getState(new StateRequest("music/storage/1", 1));
String expected =
- "{\n" +
- " \"attributes\": {\"hierarchical-group\": \"east.g2\"},\n" +
- " \"state\": {\n" +
- " \"generated\": {\n" +
- " \"state\": \"up\",\n" +
- " \"reason\": \"\"\n" +
- " },\n" +
- " \"unit\": {\n" +
- " \"state\": \"up\",\n" +
- " \"reason\": \"\"\n" +
- " },\n" +
- " \"user\": {\n" +
- " \"state\": \"up\",\n" +
- " \"reason\": \"\"\n" +
- " }\n" +
- " },\n" +
- " \"metrics\": {\n" +
- " \"bucket-count\": 1,\n" +
- " \"unique-document-count\": 2,\n" +
- " \"unique-document-total-size\": 3\n" +
- " }\n" +
- "}";
+ """
+ {
+ "attributes": {"hierarchical-group": "east.g2"},
+ "state": {
+ "generated": {
+ "state": "up",
+ "reason": ""
+ },
+ "unit": {
+ "state": "up",
+ "reason": ""
+ },
+ "user": {
+ "state": "up",
+ "reason": ""
+ }
+ },
+ "metrics": {
+ "bucket-count": 1,
+ "unique-document-count": 2,
+ "unique-document-total-size": 3
+ }
+ }""";
assertEquals(expected, jsonWriter.createJson(response).toString(2));
}
@@ -109,23 +111,25 @@ public class NodeTest extends StateRestApiTest {
music.context.currentConsolidatedState.setNodeState(new Node(NodeType.STORAGE, 1), currentState);
UnitResponse response = restAPI.getState(new StateRequest("music/storage/1", 0));
String expected =
- "{\n" +
- " \"attributes\": {\"hierarchical-group\": \"east.g2\"},\n" +
- " \"state\": {\n" +
- " \"generated\": {\n" +
- " \"state\": \"down\",\n" +
- " \"reason\": \"Not seen\"\n" +
- " },\n" +
- " \"unit\": {\n" +
- " \"state\": \"down\",\n" +
- " \"reason\": \"Node not seen in slobrok.\"\n" +
- " },\n" +
- " \"user\": {\n" +
- " \"state\": \"up\",\n" +
- " \"reason\": \"\"\n" +
- " }\n" +
- " }\n" +
- "}";
+ """
+ {
+ "attributes": {"hierarchical-group": "east.g2"},
+ "state": {
+ "generated": {
+ "state": "down",
+ "reason": "Not seen"
+ },
+ "unit": {
+ "state": "down",
+ "reason": "Node not seen in slobrok."
+ },
+ "user": {
+ "state": "up",
+ "reason": ""
+ }
+ }
+ }""";
assertEquals(expected, jsonWriter.createJson(response).toString(2));
}
+
}