summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2018-02-26 13:14:15 +0100
committerMartin Polden <mpolden@mpolden.no>2018-02-26 14:12:13 +0100
commit48ff9e9a52610b4c60e3614e0e0fcfd713c8af0a (patch)
treea8b7bb74a2135aae1f48fc83c666b94bc0d345c6
parent37809447176a8664856002de7ad11beba748a086 (diff)
Remove ignore confidence feature
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/Upgrader.java14
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/CuratorDb.java18
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/controller/ControllerApiHandler.java3
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/controller/UpgraderResponse.java1
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/VespaVersion.java8
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/controller/ControllerApiTest.java10
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/versions/VersionStatusTest.java41
7 files changed, 5 insertions, 90 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/Upgrader.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/Upgrader.java
index 75f348904dd..e492ec46081 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/Upgrader.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/Upgrader.java
@@ -124,18 +124,4 @@ public class Upgrader extends Maintainer {
curator.writeUpgradesPerMinute(n);
}
- /**
- * Returns whether to ignore confidence calculations when upgrading
- */
- public boolean ignoreConfidence() {
- return curator.readIgnoreConfidence();
- }
-
- /**
- * Controls whether to ignore confidence calculations or not
- */
- public void ignoreConfidence(boolean value) {
- curator.writeIgnoreConfidence(value);
- }
-
}
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/CuratorDb.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/CuratorDb.java
index a3bb191fc38..e5370036ed3 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/CuratorDb.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/CuratorDb.java
@@ -164,20 +164,6 @@ public class CuratorDb {
transaction.commit();
}
- public boolean readIgnoreConfidence() {
- Optional<byte[]> value = curator.getData(ignoreConfidencePath());
- if (! value.isPresent() || value.get().length == 0) {
- return false; // Default if value has never been written
- }
- return ByteBuffer.wrap(value.get()).getInt() == 1;
- }
-
- public void writeIgnoreConfidence(boolean value) {
- NestedTransaction transaction = new NestedTransaction();
- curator.set(ignoreConfidencePath(), ByteBuffer.allocate(Integer.BYTES).putInt(value ? 1 : 0).array());
- transaction.commit();
- }
-
public void writeVersionStatus(VersionStatus status) {
VersionStatusSerializer serializer = new VersionStatusSerializer();
NestedTransaction transaction = new NestedTransaction();
@@ -264,10 +250,6 @@ public class CuratorDb {
return root.append("upgrader").append("upgradesPerMinute");
}
- private Path ignoreConfidencePath() {
- return root.append("upgrader").append("ignoreConfidence");
- }
-
private Path versionStatusPath() { return root.append("versionStatus"); }
private Path provisionStatePath() {
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/controller/ControllerApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/controller/ControllerApiHandler.java
index a9eaaf4048c..2a6c1f3da52 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/controller/ControllerApiHandler.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/controller/ControllerApiHandler.java
@@ -100,15 +100,12 @@ public class ControllerApiHandler extends LoggingRequestHandler {
private HttpResponse configureUpgrader(HttpRequest request) {
String upgradesPerMinuteField = "upgradesPerMinute";
- String ignoreConfidenceField = "ignoreConfidence";
byte[] jsonBytes = toJsonBytes(request.getData());
Inspector inspect = SlimeUtils.jsonToSlime(jsonBytes).get();
Upgrader upgrader = maintenance.upgrader();
if (inspect.field(upgradesPerMinuteField).valid()) {
upgrader.setUpgradesPerMinute(inspect.field(upgradesPerMinuteField).asDouble());
- } else if (inspect.field(ignoreConfidenceField).valid()) {
- upgrader.ignoreConfidence(inspect.field(ignoreConfidenceField).asBool());
} else {
return ErrorResponse.badRequest("Unable to configure upgrader with data in request: '" +
Utf8.toString(jsonBytes) + "'");
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/controller/UpgraderResponse.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/controller/UpgraderResponse.java
index 0e6e0030ecf..d6b791d4db0 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/controller/UpgraderResponse.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/controller/UpgraderResponse.java
@@ -27,7 +27,6 @@ public class UpgraderResponse extends HttpResponse {
Slime slime = new Slime();
Cursor root = slime.setObject();
root.setDouble("upgradesPerMinute", upgrader.upgradesPerMinute());
- root.setBool("ignoreConfidence", upgrader.ignoreConfidence());
new JsonFormat(true).encode(outputStream, slime);
}
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/VespaVersion.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/VespaVersion.java
index 3377c397163..1aa94507b61 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/VespaVersion.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/VespaVersion.java
@@ -6,7 +6,6 @@ import com.yahoo.component.Version;
import com.yahoo.component.Vtag;
import com.yahoo.vespa.hosted.controller.Controller;
import com.yahoo.vespa.hosted.controller.application.ApplicationList;
-import com.yahoo.vespa.hosted.controller.persistence.CuratorDb;
import java.time.Instant;
import java.util.Collection;
@@ -57,7 +56,7 @@ public class VespaVersion implements Comparable<VespaVersion> {
return Confidence.broken;
// 'broken' if 4 non-canary was broken by this, and that is at least 10% of all
- if (nonCanaryApplicationsBroken(statistics.version(), failingOnThis, productionOnThis, controller.curator()))
+ if (nonCanaryApplicationsBroken(statistics.version(), failingOnThis, productionOnThis))
return Confidence.broken;
// 'low' unless all canary applications are upgraded
@@ -143,12 +142,11 @@ public class VespaVersion implements Comparable<VespaVersion> {
private static boolean nonCanaryApplicationsBroken(Version version,
ApplicationList failingOnThis,
- ApplicationList productionOnThis,
- CuratorDb curator) {
+ ApplicationList productionOnThis) {
ApplicationList failingNonCanaries = failingOnThis.without(UpgradePolicy.canary).startedFailingOn(version);
ApplicationList productionNonCanaries = productionOnThis.without(UpgradePolicy.canary);
- if (productionNonCanaries.size() + failingNonCanaries.size() == 0 || curator.readIgnoreConfidence()) return false;
+ if (productionNonCanaries.size() + failingNonCanaries.size() == 0) return false;
// 'broken' if 4 non-canary was broken by this, and that is at least 10% of all
int brokenByThisVersion = failingNonCanaries.size();
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/controller/ControllerApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/controller/ControllerApiTest.java
index c7128bb4cfc..984e184cdcf 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/controller/ControllerApiTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/controller/ControllerApiTest.java
@@ -47,7 +47,7 @@ public class ControllerApiTest extends ControllerContainerTest {
// Get current configuration
tester.assertResponse(authenticatedRequest("http://localhost:8080/controller/v1/jobs/upgrader", new byte[0], Request.Method.GET),
- "{\"upgradesPerMinute\":0.5,\"ignoreConfidence\":false}",
+ "{\"upgradesPerMinute\":0.5}",
200);
// Set invalid configuration
@@ -66,13 +66,7 @@ public class ControllerApiTest extends ControllerContainerTest {
// Patch configuration
tester.assertResponse(
hostedOperatorRequest("http://localhost:8080/controller/v1/jobs/upgrader", "{\"upgradesPerMinute\":42.0}", Request.Method.PATCH),
- "{\"upgradesPerMinute\":42.0,\"ignoreConfidence\":false}",
- 200);
-
- // Patch configuration
- tester.assertResponse(
- hostedOperatorRequest("http://localhost:8080/controller/v1/jobs/upgrader", "{\"ignoreConfidence\":true}", Request.Method.PATCH),
- "{\"upgradesPerMinute\":42.0,\"ignoreConfidence\":true}",
+ "{\"upgradesPerMinute\":42.0}",
200);
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/versions/VersionStatusTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/versions/VersionStatusTest.java
index 868ea50128d..5ccd1035037 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/versions/VersionStatusTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/versions/VersionStatusTest.java
@@ -242,47 +242,6 @@ public class VersionStatusTest {
assertEquals("5.3", versions.get(2).versionNumber().toString());
}
- @Test
- public void testIgnoreConfidence() {
- DeploymentTester tester = new DeploymentTester();
-
- Version version0 = new Version("5.0");
- tester.upgradeSystem(version0);
-
- // Setup applications - all running on version0
- Application canary0 = tester.createAndDeploy("canary0", 1, "canary");
- Application canary1 = tester.createAndDeploy("canary1", 2, "canary");
- Application default0 = tester.createAndDeploy("default0", 3, "default");
- Application default1 = tester.createAndDeploy("default1", 4, "default");
- Application default2 = tester.createAndDeploy("default2", 5, "default");
- Application default3 = tester.createAndDeploy("default3", 6, "default");
- Application default4 = tester.createAndDeploy("default4", 7, "default");
-
- // New version is released
- Version version1 = new Version("5.1");
- tester.upgradeSystem(version1);
-
- // All canaries upgrade successfully, 1 default apps ok, 3 default apps fail
- tester.completeUpgrade(canary0, version1, "canary");
- tester.completeUpgrade(canary1, version1, "canary");
- tester.upgradeSystem(version1);
- tester.completeUpgrade(default0, version1, "default");
- tester.completeUpgradeWithError(default1, version1, "default", stagingTest);
- tester.completeUpgradeWithError(default2, version1, "default", stagingTest);
- tester.completeUpgradeWithError(default3, version1, "default", stagingTest);
- tester.completeUpgradeWithError(default4, version1, "default", stagingTest);
- tester.updateVersionStatus();
- assertEquals("Canaries have upgraded, 1 of 4 default apps failing: Broken",
- Confidence.broken, confidence(tester.controller(), version1));
-
- // Same as above, but ignore confidence calculations, will force normal confidence
- tester.controllerTester().curator().writeIgnoreConfidence(true);
- tester.updateVersionStatus();
- assertEquals("Canaries have upgraded, 1 of 4 default apps failing, but confidence ignored: Low",
- Confidence.normal, confidence(tester.controller(), version1));
- tester.controllerTester().curator().writeIgnoreConfidence(false);
- }
-
private Confidence confidence(Controller controller, Version version) {
return controller.versionStatus().versions().stream()
.filter(v -> v.statistics().version().equals(version))