summaryrefslogtreecommitdiffstats
path: root/clustercontroller-core
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-03-11 17:56:07 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2021-03-11 19:52:42 +0100
commite948875cb48323f6b506556febd5d98f8f22ae3f (patch)
treed3852478b3ea6d415f0578ff9cda5fb72ad8af92 /clustercontroller-core
parentbe5226a9af60c59211b24847ab82d664ac0e4f1f (diff)
GC unused DiskState
Diffstat (limited to 'clustercontroller-core')
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/ClusterControllerStateRestAPI.java12
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/Response.java5
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/UnitPathResolver.java14
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/requests/PartitionStateRequest.java69
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterStateGeneratorTest.java1
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/GroupAutoTakedownTest.java1
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/NotMasterTest.java14
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/PartitionTest.java49
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/SetNodeStateTest.java10
9 files changed, 7 insertions, 168 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 169684aa742..6c80973c4af 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
@@ -2,7 +2,12 @@
package com.yahoo.vespa.clustercontroller.core.restapiv2;
import com.yahoo.vespa.clustercontroller.core.RemoteClusterControllerTaskScheduler;
-import com.yahoo.vespa.clustercontroller.core.restapiv2.requests.*;
+import com.yahoo.vespa.clustercontroller.core.restapiv2.requests.ClusterListRequest;
+import com.yahoo.vespa.clustercontroller.core.restapiv2.requests.ClusterStateRequest;
+import com.yahoo.vespa.clustercontroller.core.restapiv2.requests.NodeStateRequest;
+import com.yahoo.vespa.clustercontroller.core.restapiv2.requests.ServiceStateRequest;
+import com.yahoo.vespa.clustercontroller.core.restapiv2.requests.SetNodeStateRequest;
+import com.yahoo.vespa.clustercontroller.core.restapiv2.requests.SetNodeStatesForClusterRequest;
import com.yahoo.vespa.clustercontroller.utils.staterestapi.StateRestAPI;
import com.yahoo.vespa.clustercontroller.utils.staterestapi.errors.InternalFailure;
import com.yahoo.vespa.clustercontroller.utils.staterestapi.errors.OtherMasterException;
@@ -12,7 +17,6 @@ import com.yahoo.vespa.clustercontroller.utils.staterestapi.requests.UnitStateRe
import com.yahoo.vespa.clustercontroller.utils.staterestapi.response.SetResponse;
import com.yahoo.vespa.clustercontroller.utils.staterestapi.response.UnitResponse;
-import java.util.EnumSet;
import java.util.Map;
import java.util.Objects;
import java.util.logging.Logger;
@@ -86,10 +90,6 @@ public class ClusterControllerStateRestAPI implements StateRestAPI {
public Request<? extends UnitResponse> visitNode(Id.Node id) {
return new NodeStateRequest(id);
}
- @Override
- public Request<? extends UnitResponse> visitPartition(Id.Partition id) {
- return new PartitionStateRequest(id, EnumSet.of(VerboseReport.STATISTICS));
- }
});
if (req instanceof ClusterListRequest) {
log.fine("Got cluster list request");
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 17949b82365..82512262b4a 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
@@ -1,7 +1,6 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.clustercontroller.core.restapiv2;
-import com.yahoo.vdslib.state.DiskState;
import com.yahoo.vdslib.state.NodeState;
import com.yahoo.vdslib.state.State;
import com.yahoo.vespa.clustercontroller.utils.staterestapi.errors.InternalFailure;
@@ -32,10 +31,6 @@ public class Response {
this.id = parseId(ns.getState());
this.reason = ns.getDescription();
}
- public UnitStateImpl(DiskState ds) throws StateRestApiException {
- this.id = parseId(ds.getState());
- this.reason = ds.getDescription();
- }
public String parseId(State id) throws StateRestApiException {
switch (id) {
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/UnitPathResolver.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/UnitPathResolver.java
index 4dc73f4d0dd..04fd154ff6b 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/UnitPathResolver.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/UnitPathResolver.java
@@ -6,7 +6,6 @@ import com.yahoo.vespa.clustercontroller.core.RemoteClusterControllerTaskSchedul
import com.yahoo.vespa.clustercontroller.utils.staterestapi.errors.MissingUnitException;
import com.yahoo.vespa.clustercontroller.utils.staterestapi.errors.OperationNotSupportedForUnitException;
import com.yahoo.vespa.clustercontroller.utils.staterestapi.errors.StateRestApiException;
-import com.yahoo.vespa.clustercontroller.utils.staterestapi.response.UnitResponse;
import java.util.HashMap;
import java.util.Map;
@@ -19,7 +18,6 @@ public class UnitPathResolver<T> {
Request<? extends T> visitCluster(Id.Cluster id) throws StateRestApiException;
Request<? extends T> visitService(Id.Service id) throws StateRestApiException;
Request<? extends T> visitNode(Id.Node id) throws StateRestApiException;
- Request<? extends T> visitPartition(Id.Partition id) throws StateRestApiException;
}
@@ -40,7 +38,6 @@ public class UnitPathResolver<T> {
public Request<? extends T> visitCluster(Id.Cluster id) throws StateRestApiException { return fail(); }
public Request<? extends T> visitService(Id.Service id) throws StateRestApiException { return fail(); }
public Request<? extends T> visitNode(Id.Node id) throws StateRestApiException { return fail(); }
- public Request<? extends T> visitPartition(Id.Partition id) throws StateRestApiException { return fail(); }
}
@@ -87,16 +84,7 @@ public class UnitPathResolver<T> {
if (path.length == 3) {
return visitor.visitNode(node);
}
- Id.Partition partition;
- try{
- partition = new Id.Partition(node, Integer.valueOf(path[3]));
- } catch (NumberFormatException e) {
- throw new MissingUnitException(path, 3);
- }
- if (path.length == 4) {
- return visitor.visitPartition(partition);
- }
- throw new MissingUnitException(path, 4);
+ throw new MissingUnitException(path, 3);
}
}
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/requests/PartitionStateRequest.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/requests/PartitionStateRequest.java
deleted file mode 100644
index bb42af45ef3..00000000000
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/requests/PartitionStateRequest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.vespa.clustercontroller.core.restapiv2.requests;
-
-import com.yahoo.vdslib.state.DiskState;
-import com.yahoo.vdslib.state.NodeState;
-import com.yahoo.vespa.clustercontroller.core.RemoteClusterControllerTask;
-import com.yahoo.vespa.clustercontroller.core.hostinfo.Metrics;
-import com.yahoo.vespa.clustercontroller.core.restapiv2.Id;
-import com.yahoo.vespa.clustercontroller.core.restapiv2.Request;
-import com.yahoo.vespa.clustercontroller.core.restapiv2.Response;
-import com.yahoo.vespa.clustercontroller.utils.staterestapi.errors.StateRestApiException;
-
-import java.util.Set;
-import java.util.logging.Logger;
-
-public class PartitionStateRequest extends Request<Response.PartitionResponse> {
- private static final Logger log = Logger.getLogger(PartitionStateRequest.class.getName());
- private final Id.Partition id;
- private final Set<VerboseReport> verboseReports;
-
- public PartitionStateRequest(Id.Partition id, Set<VerboseReport> verboseReports) {
- super(MasterState.MUST_BE_MASTER);
- this.id = id;
- this.verboseReports = verboseReports;
- }
-
- @Override
- public Response.PartitionResponse calculateResult(RemoteClusterControllerTask.Context context)
- throws StateRestApiException {
- Response.PartitionResponse result = new Response.PartitionResponse();
- if (verboseReports.contains(VerboseReport.STATISTICS)) {
- fillInMetrics(context.cluster.getNodeInfo(id.getNode()).getHostInfo().getMetrics(), result);
- }
- NodeState nodeState = context.currentConsolidatedState.getNodeState(id.getNode());
- DiskState diskState = new DiskState();
- result.addState("generated", new Response.UnitStateImpl(diskState));
-
- return result;
- }
-
- private static void fillInMetrics(Metrics metrics, Response.PartitionResponse result) {
- for (Metrics.Metric metric: metrics.getMetrics()) {
- fillInMetricValue(metric.getName(), metric.getValue(), result);
- }
- }
-
- private static void fillInMetricValue(
- String name, Metrics.Value value, Response.PartitionResponse result) {
- if (name.equals("vds.datastored.alldisks.docs")) {
- if (value.getLast() == null) {
- log.warning("Proper doc count value did not exist in value set.");
- return;
- }
- result.addMetric("unique-document-count", value.getLast());
- } else if (name.equals("vds.datastored.alldisks.bytes")) {
- if (value.getLast() == null) {
- log.warning("Proper doc size value did not exist in value set.");
- return;
- }
- result.addMetric("unique-document-total-size", value.getLast());
- } else if (name.equals("vds.datastored.alldisks.buckets")) {
- if (value.getLast() == null) {
- log.warning("Proper bucket count value did not exist in value set.");
- return;
- }
- result.addMetric("bucket-count", value.getLast());
- }
- }
-}
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterStateGeneratorTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterStateGeneratorTest.java
index bf191768892..0798e6174f9 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterStateGeneratorTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterStateGeneratorTest.java
@@ -2,7 +2,6 @@
package com.yahoo.vespa.clustercontroller.core;
import com.yahoo.vdslib.distribution.ConfiguredNode;
-import com.yahoo.vdslib.state.DiskState;
import com.yahoo.vdslib.state.Node;
import com.yahoo.vdslib.state.NodeState;
import com.yahoo.vdslib.state.NodeType;
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/GroupAutoTakedownTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/GroupAutoTakedownTest.java
index bd77f42ff8a..d33d235bc66 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/GroupAutoTakedownTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/GroupAutoTakedownTest.java
@@ -2,7 +2,6 @@
package com.yahoo.vespa.clustercontroller.core;
import com.yahoo.vdslib.distribution.ConfiguredNode;
-import com.yahoo.vdslib.state.DiskState;
import com.yahoo.vdslib.state.Node;
import com.yahoo.vdslib.state.NodeState;
import com.yahoo.vdslib.state.NodeType;
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/NotMasterTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/NotMasterTest.java
index 4ec5893c1e7..b0355844341 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/NotMasterTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/NotMasterTest.java
@@ -54,12 +54,6 @@ public class NotMasterTest extends StateRestApiTest {
assertTrue(e.getMessage(), e.getMessage().contains("No known master cluster controller"));
}
try{
- restAPI.getState(new StateRequest("music/storage/1/0", 0));
- fail();
- } catch (UnknownMasterException e) {
- assertTrue(e.getMessage(), e.getMessage().contains("No known master cluster controller"));
- }
- try{
restAPI.setUnitState(new SetNodeStateTest.SetUnitStateRequestImpl("music/storage/1")
.setNewState("user", "down", "test"));
fail();
@@ -118,14 +112,6 @@ public class NotMasterTest extends StateRestApiTest {
assertEquals(e.getPort(), getDefaults().vespaWebServicePort());
}
try{
- restAPI.getState(new StateRequest("music/storage/1/0", 0));
- fail();
- } catch (OtherMasterException e) {
- assertTrue(e.getMessage(), e.getMessage().contains("Cluster controller not master. Use master at otherhost:" + getDefaults().vespaWebServicePort() + "."));
- assertEquals("otherhost", e.getHost());
- assertEquals(e.getPort(), getDefaults().vespaWebServicePort());
- }
- try{
restAPI.setUnitState(new SetNodeStateTest.SetUnitStateRequestImpl("music/storage/1")
.setNewState("user", "down", "test"));
fail();
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
deleted file mode 100644
index 106803ec3f1..00000000000
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/PartitionTest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.vespa.clustercontroller.core.restapiv2;
-
-import com.yahoo.vespa.clustercontroller.utils.staterestapi.response.UnitResponse;
-import org.codehaus.jettison.json.JSONObject;
-import org.junit.Test;
-
-import static org.junit.Assert.assertEquals;
-
-public class PartitionTest extends StateRestApiTest {
-
- @Test
- public void testPartition() throws Exception {
- setUp(true);
- UnitResponse response = restAPI.getState(new StateRequest("music/storage/1/0", 0));
- String expected =
- "{\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" +
- "}";
- assertEquals(expected, jsonWriter.createJson(response).toString(2));
- }
-
- @Test
- public void testRecursiveCluster() throws Exception {
- setUp(true);
- UnitResponse response = restAPI.getState(new StateRequest("music/storage/1/0", 1));
- String expected =
- "{\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" +
- "}";
- assertEquals(expected, jsonWriter.createJson(response).toString(2));
- }
-}
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/SetNodeStateTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/SetNodeStateTest.java
index 03fdb15971f..0e9a4808e9b 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/SetNodeStateTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/SetNodeStateTest.java
@@ -366,16 +366,6 @@ public class SetNodeStateTest extends StateRestApiTest {
} catch (OperationNotSupportedForUnitException e) {
assertTrue(e.getMessage(), e.getMessage().contains(wrongUnitMessage));
}
-
- // ... setting at node-level is allowed
-
- try{
- restAPI.setUnitState(new SetUnitStateRequestImpl(
- "music/storage/1/0").setNewState("user", "down", "testing"));
- fail();
- } catch (OperationNotSupportedForUnitException e) {
- assertTrue(e.getMessage(), e.getMessage().contains(wrongUnitMessage));
- }
}
@Test