diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-03-11 15:53:02 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-03-11 15:53:02 +0100 |
commit | 07accb9f7c8860089b3286d3e286f6ea0f3094ab (patch) | |
tree | 40a616882edc98818d823a33bb9360f0b0269be5 /clustercontroller-core | |
parent | 0ea817a6c5490f7251f89c0e743d20270925c469 (diff) |
GC use of NodeState.getDiskCount and NodeState.getDiskStates.
Diffstat (limited to 'clustercontroller-core')
5 files changed, 11 insertions, 74 deletions
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/ClusterControllerStateRestAPI.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/ClusterControllerStateRestAPI.java index cb138f4025b..169684aa742 100644 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/ClusterControllerStateRestAPI.java +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/ClusterControllerStateRestAPI.java @@ -68,27 +68,26 @@ public class ClusterControllerStateRestAPI implements StateRestAPI { log.finest("Got getState() request"); UnitPathResolver<UnitResponse> resolver = new UnitPathResolver<>(fleetControllerResolver.getFleetControllers()); Request<? extends UnitResponse> req = resolver.visit( - request.getUnitPath(), new UnitPathResolver.Visitor<UnitResponse>() + request.getUnitPath(), new UnitPathResolver.Visitor<>() { @Override - public Request<? extends UnitResponse> visitGlobal() throws StateRestApiException { + public Request<? extends UnitResponse> visitGlobal() { return new ClusterListRequest(request.getRecursiveLevels(), fleetControllerResolver); } @Override - public Request<? extends UnitResponse> visitCluster(Id.Cluster id) throws StateRestApiException { + public Request<? extends UnitResponse> visitCluster(Id.Cluster id) { return new ClusterStateRequest(id, request.getRecursiveLevels()); } @Override - public Request<? extends UnitResponse> visitService(Id.Service id) throws StateRestApiException { + public Request<? extends UnitResponse> visitService(Id.Service id) { return new ServiceStateRequest(id, request.getRecursiveLevels()); } @Override - public Request<? extends UnitResponse> visitNode(Id.Node id) throws StateRestApiException { - return new NodeStateRequest(id, request.getRecursiveLevels(), - EnumSet.of(VerboseReport.STATISTICS)); + public Request<? extends UnitResponse> visitNode(Id.Node id) { + return new NodeStateRequest(id); } @Override - public Request<? extends UnitResponse> visitPartition(Id.Partition id) throws StateRestApiException { + public Request<? extends UnitResponse> visitPartition(Id.Partition id) { return new PartitionStateRequest(id, EnumSet.of(VerboseReport.STATISTICS)); } }); @@ -120,11 +119,11 @@ public class ClusterControllerStateRestAPI implements StateRestAPI { "State can only be set at cluster or node level") { @Override - public Request<? extends SetResponse> visitCluster(Id.Cluster id) throws StateRestApiException { + public Request<? extends SetResponse> visitCluster(Id.Cluster id) { return new SetNodeStatesForClusterRequest(id, request); } @Override - public Request<? extends SetResponse> visitNode(Id.Node id) throws StateRestApiException { + public Request<? extends SetResponse> visitNode(Id.Node id) { return new SetNodeStateRequest(id, request); } }); diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/requests/NodeStateRequest.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/requests/NodeStateRequest.java index 7f1bfd20124..e007e2cc243 100644 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/requests/NodeStateRequest.java +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/requests/NodeStateRequest.java @@ -9,18 +9,12 @@ import com.yahoo.vespa.clustercontroller.core.restapiv2.Response; import com.yahoo.vespa.clustercontroller.utils.staterestapi.errors.MissingResourceException; import com.yahoo.vespa.clustercontroller.utils.staterestapi.errors.StateRestApiException; -import java.util.Set; - public class NodeStateRequest extends Request<Response.NodeResponse> { private final Id.Node id; - private final int recursive; - private final Set<VerboseReport> verboseReports; - public NodeStateRequest(Id.Node id, int recursive, Set<VerboseReport> verboseReports) { + public NodeStateRequest(Id.Node id) { super(MasterState.MUST_BE_MASTER); this.id = id; - this.recursive = recursive; - this.verboseReports = verboseReports; } @Override @@ -39,15 +33,6 @@ public class NodeStateRequest extends Request<Response.NodeResponse> { result.addState("unit", new Response.UnitStateImpl(info.getReportedState())); result.addState("user", new Response.UnitStateImpl(info.getWantedState())); - for (int i=0; i<info.getReportedState().getDiskCount(); ++i) { - Id.Partition partitionId = new Id.Partition(id, i); - if (recursive > 0) { - PartitionStateRequest psr = new PartitionStateRequest(partitionId, verboseReports); - result.addEntry("partition", String.valueOf(i), psr.calculateResult(context)); - } else { - result.addLink("partition", String.valueOf(i), partitionId.toString()); - } - } return result; } } diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/requests/ServiceStateRequest.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/requests/ServiceStateRequest.java index 9b07d30e9e3..9dd5ed7b071 100644 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/requests/ServiceStateRequest.java +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/requests/ServiceStateRequest.java @@ -26,7 +26,7 @@ public class ServiceStateRequest extends Request<Response.ServiceResponse> { Id.Node nodeId = new Id.Node(id, i); if (recursive > 0) { // Don't include per-node statistics when aggregating over all nodes - NodeStateRequest nsr = new NodeStateRequest(nodeId, recursive - 1, EnumSet.noneOf(VerboseReport.class)); + NodeStateRequest nsr = new NodeStateRequest(nodeId); result.addEntry("node", String.valueOf(i), nsr.calculateResult(context)); } else { result.addLink("node", String.valueOf(i), nodeId.toString()); 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 8e5fa9c0002..67ae7911f80 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 @@ -59,10 +59,6 @@ public class NodeTest extends StateRestApiTest { " \"state\": \"up\",\n" + " \"reason\": \"\"\n" + " }\n" + - " },\n" + - " \"partition\": {\n" + - " \"0\": {\"link\": \"\\/cluster\\/v2\\/music\\/storage\\/1\\/0\"},\n" + - " \"1\": {\"link\": \"\\/cluster\\/v2\\/music\\/storage\\/1\\/1\"}\n" + " }\n" + "}"; assertEquals(expected, jsonWriter.createJson(response).toString(2)); @@ -88,30 +84,6 @@ public class NodeTest extends StateRestApiTest { " \"state\": \"up\",\n" + " \"reason\": \"\"\n" + " }\n" + - " },\n" + - " \"partition\": {\n" + - " \"0\": {\n" + - " \"state\": {\"generated\": {\n" + - " \"state\": \"up\",\n" + - " \"reason\": \"\"\n" + - " }},\n" + - " \"metrics\": {\n" + - " \"bucket-count\": 1,\n" + - " \"unique-document-count\": 2,\n" + - " \"unique-document-total-size\": 3\n" + - " }\n" + - " },\n" + - " \"1\": {\n" + - " \"state\": {\"generated\": {\n" + - " \"state\": \"up\",\n" + - " \"reason\": \"\"\n" + - " }},\n" + - " \"metrics\": {\n" + - " \"bucket-count\": 1,\n" + - " \"unique-document-count\": 2,\n" + - " \"unique-document-total-size\": 3\n" + - " }\n" + - " }\n" + " }\n" + "}"; assertEquals(expected, jsonWriter.createJson(response).toString(2)); @@ -167,10 +139,6 @@ public class NodeTest extends StateRestApiTest { " \"state\": \"up\",\n" + " \"reason\": \"\"\n" + " }\n" + - " },\n" + - " \"partition\": {\n" + - " \"0\": {\"link\": \"\\/cluster\\/v2\\/music\\/storage\\/1\\/0\"},\n" + - " \"1\": {\"link\": \"\\/cluster\\/v2\\/music\\/storage\\/1\\/1\"}\n" + " }\n" + "}"; JSONObject json = jsonWriter.createJson(response); diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/PartitionTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/PartitionTest.java index 2b86b60a0dd..106803ec3f1 100644 --- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/PartitionTest.java +++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/PartitionTest.java @@ -46,19 +46,4 @@ public class PartitionTest extends StateRestApiTest { "}"; assertEquals(expected, jsonWriter.createJson(response).toString(2)); } - - @Test - public void testRecursiveStorageClusterDoesNotIncludePartitionMetrics() throws Exception { - setUp(true); - UnitResponse response = restAPI.getState(new StateRequest("music/storage", 2)); - String expected = - "{\"state\": {\"generated\": {\n" + - " \"state\": \"up\",\n" + - " \"reason\": \"\"\n" + - "}}}"; - JSONObject json = jsonWriter.createJson(response); - assertEquals(expected, json.getJSONObject("node").getJSONObject("1"). - getJSONObject("partition").getJSONObject("0"). - toString(2)); - } } |