diff options
author | Martin Polden <mpolden@mpolden.no> | 2022-12-16 11:46:50 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-16 11:46:50 +0100 |
commit | 11d9ae1b4cf3f563e72af00e5c2281be700e76b1 (patch) | |
tree | cd989dc2287d2662ac3b01e0fb045b77411e6366 | |
parent | 5a37d3ead73e2837e505ebc764711e8e98a20fd7 (diff) | |
parent | 71bf048191f8a3c13e24efd8921c6da960116573 (diff) |
Merge pull request #25277 from vespa-engine/mpolden/cleanup
controller-server cleanup
12 files changed, 53 insertions, 88 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Controller.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Controller.java index 9a7fffd2a9e..c8ec38ec73b 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Controller.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Controller.java @@ -17,6 +17,7 @@ import com.yahoo.vespa.flags.FlagSource; import com.yahoo.vespa.hosted.controller.api.integration.ServiceRegistry; import com.yahoo.vespa.hosted.controller.api.integration.maven.MavenRepository; import com.yahoo.vespa.hosted.controller.api.integration.zone.ZoneRegistry; +import com.yahoo.vespa.hosted.controller.application.MailVerifier; import com.yahoo.vespa.hosted.controller.archive.CuratorArchiveBucketDb; import com.yahoo.vespa.hosted.controller.auditlog.AuditLogger; import com.yahoo.vespa.hosted.controller.config.ControllerConfig; diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedTenant.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedTenant.java index f8135e27d74..bdf3d438bd7 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedTenant.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedTenant.java @@ -51,12 +51,11 @@ public abstract class LockedTenant { } static LockedTenant of(Tenant tenant, Mutex lock) { - switch (tenant.type()) { - case athenz: return new Athenz((AthenzTenant) tenant); - case cloud: return new Cloud((CloudTenant) tenant); - case deleted: return new Deleted((DeletedTenant) tenant); - default: throw new IllegalArgumentException("Unexpected tenant type '" + tenant.getClass().getName() + "'."); - } + return switch (tenant.type()) { + case athenz -> new Athenz((AthenzTenant) tenant); + case cloud -> new Cloud((CloudTenant) tenant); + case deleted -> new Deleted((DeletedTenant) tenant); + }; } /** Returns a read-only copy of this */ diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/ApplicationList.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/ApplicationList.java index 411c2c133f5..2d3c060c7b5 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/ApplicationList.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/ApplicationList.java @@ -2,17 +2,12 @@ package com.yahoo.vespa.hosted.controller.application; import com.yahoo.collections.AbstractFilteringList; -import com.yahoo.component.Version; import com.yahoo.config.application.api.DeploymentSpec; import com.yahoo.config.provision.ApplicationId; import com.yahoo.vespa.hosted.controller.Application; import com.yahoo.vespa.hosted.controller.ApplicationController; -import java.time.Instant; import java.util.Collection; -import java.util.Comparator; -import java.util.List; -import java.util.stream.Collectors; /** * A list of applications which can be filtered in various ways. @@ -36,7 +31,7 @@ public class ApplicationList extends AbstractFilteringList<Application, Applicat .map(TenantAndApplicationId::from) .distinct() .map(applications::requireApplication) - .collect(Collectors.toUnmodifiableList())); + .toList()); } // ----------------------------------- Filters diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/AssignedRotation.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/AssignedRotation.java index ab9304e75f3..eeeb822ecf5 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/AssignedRotation.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/AssignedRotation.java @@ -5,10 +5,8 @@ import com.yahoo.config.provision.ClusterSpec; import com.yahoo.config.provision.RegionName; import com.yahoo.vespa.hosted.controller.routing.rotation.RotationId; -import java.util.Collection; import java.util.Objects; import java.util.Set; -import java.util.stream.Collectors; /** * Contains the tuple of [clusterId, endpointId, rotationId, regions[]], to keep track @@ -16,11 +14,7 @@ import java.util.stream.Collectors; * * @author ogronnesby */ -public class AssignedRotation { - private final ClusterSpec.Id clusterId; - private final EndpointId endpointId; - private final RotationId rotationId; - private final Set<RegionName> regions; +public record AssignedRotation(ClusterSpec.Id clusterId, EndpointId endpointId, RotationId rotationId, Set<RegionName> regions) { public AssignedRotation(ClusterSpec.Id clusterId, EndpointId endpointId, RotationId rotationId, Set<RegionName> regions) { this.clusterId = requireNonEmpty(clusterId, clusterId.value(), "clusterId"); @@ -29,35 +23,14 @@ public class AssignedRotation { this.regions = Set.copyOf(Objects.requireNonNull(regions)); } - public ClusterSpec.Id clusterId() { return clusterId; } - public EndpointId endpointId() { return endpointId; } - public RotationId rotationId() { return rotationId; } - public Set<RegionName> regions() { return regions; } - @Override public String toString() { return "AssignedRotation{" + - "clusterId=" + clusterId + - ", endpointId='" + endpointId + '\'' + - ", rotationId=" + rotationId + - ", regions=" + regions + - '}'; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - AssignedRotation that = (AssignedRotation) o; - return clusterId.equals(that.clusterId) && - endpointId.equals(that.endpointId) && - rotationId.equals(that.rotationId) && - regions.equals(that.regions); - } - - @Override - public int hashCode() { - return Objects.hash(clusterId, endpointId, rotationId, regions); + "clusterId=" + clusterId + + ", endpointId='" + endpointId + '\'' + + ", rotationId=" + rotationId + + ", regions=" + regions + + '}'; } private static <T> T requireNonEmpty(T object, String value, String field) { @@ -69,13 +42,4 @@ public class AssignedRotation { return object; } - /** Convenience method intended for tests */ - public static AssignedRotation fromStrings(String clusterId, String endpointId, String rotationId, Collection<String> regions) { - return new AssignedRotation( - new ClusterSpec.Id(clusterId), - EndpointId.of(endpointId), - new RotationId(rotationId), - regions.stream().map(RegionName::from).collect(Collectors.toSet()) - ); - } } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/Endpoint.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/Endpoint.java index cbac700a9a0..1eb68c14353 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/Endpoint.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/Endpoint.java @@ -31,7 +31,6 @@ import static java.util.Comparator.comparing; */ public class Endpoint { - private static final String YAHOO_DNS_SUFFIX = ".vespa.yahooapis.com"; private static final String OATH_DNS_SUFFIX = ".vespa.oath.cloud"; private static final String PUBLIC_DNS_SUFFIX = ".vespa-app.cloud"; private static final String PUBLIC_CD_DNS_SUFFIX = ".cd.vespa-app.cloud"; diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/MailVerifier.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/MailVerifier.java index 902343d5acf..afb0b61c23a 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/MailVerifier.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/MailVerifier.java @@ -1,7 +1,9 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.hosted.controller; +package com.yahoo.vespa.hosted.controller.application; import com.yahoo.config.provision.TenantName; +import com.yahoo.vespa.hosted.controller.LockedTenant; +import com.yahoo.vespa.hosted.controller.TenantController; import com.yahoo.vespa.hosted.controller.api.integration.organization.Mail; import com.yahoo.vespa.hosted.controller.api.integration.organization.Mailer; import com.yahoo.vespa.hosted.controller.persistence.CuratorDb; @@ -26,13 +28,13 @@ import static com.yahoo.yolean.Exceptions.uncheck; */ public class MailVerifier { + private static final Duration VERIFICATION_DEADLINE = Duration.ofDays(7); + private final TenantController tenantController; private final Mailer mailer; private final CuratorDb curatorDb; private final Clock clock; - private final URI dashboardUri; - private static final Duration VERIFICATION_DEADLINE = Duration.ofDays(7); - + private final URI dashboardUri; public MailVerifier(URI dashboardUri, TenantController tenantController, Mailer mailer, CuratorDb curatorDb, Clock clock) { this.tenantController = tenantController; diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/LogSerializer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/LogSerializer.java index 6567b0076e7..9f648675cd0 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/LogSerializer.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/LogSerializer.java @@ -18,7 +18,6 @@ import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; /** * Serialisation of {@link LogEntry} objects. Not all fields are stored! @@ -98,25 +97,24 @@ class LogSerializer { } static String valueOf(Type type) { - switch (type) { - case debug: return "debug"; - case info: return "info"; - case warning: return "warning"; - case error: return "error"; - case html: return "html"; - default: throw new AssertionError("Unexpected log entry type '" + type + "'!"); - } + return switch (type) { + case debug -> "debug"; + case info -> "info"; + case warning -> "warning"; + case error -> "error"; + case html -> "html"; + }; } static Type typeOf(String type) { - switch (type) { - case "debug": return Type.debug; - case "info": return Type.info; - case "warning": return Type.warning; - case "error": return Type.error; - case "html": return Type.html; - default: throw new IllegalArgumentException("Unknown log entry type '" + type + "'!"); - } + return switch (type) { + case "debug" -> Type.debug; + case "info" -> Type.info; + case "warning" -> Type.warning; + case "error" -> Type.error; + case "html" -> Type.html; + default -> throw new IllegalArgumentException("Unknown log entry type '" + type + "'!"); + }; } } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/MailVerificationSerializer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/MailVerificationSerializer.java index 6910d5c21c0..e5ee695e4e8 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/MailVerificationSerializer.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/MailVerificationSerializer.java @@ -15,12 +15,10 @@ import java.time.Instant; public class MailVerificationSerializer { private static final String tenantField = "tenant"; - private static final String audiencesField = "audiences"; private static final String emailField = "email"; private static final String emailTypeField = "emailType"; private static final String emailVerificationCodeField = "emailVerificationCode"; private static final String emailVerificationDeadlineField = "emailVerificationDeadline"; - private static final String rolesField = "roles"; public static Slime toSlime(PendingMailVerification pendingMailVerification) { var slime = new Slime(); diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/NotificationsSerializer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/NotificationsSerializer.java index beda8942fc2..3d28f35fc26 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/NotificationsSerializer.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/NotificationsSerializer.java @@ -4,7 +4,6 @@ package com.yahoo.vespa.hosted.controller.persistence; import com.yahoo.config.provision.ApplicationName; import com.yahoo.config.provision.ClusterSpec; import com.yahoo.config.provision.InstanceName; -import com.yahoo.config.provision.SystemName; import com.yahoo.config.provision.TenantName; import com.yahoo.config.provision.zone.ZoneId; import com.yahoo.slime.Cursor; @@ -16,7 +15,6 @@ import com.yahoo.vespa.hosted.controller.notification.Notification; import com.yahoo.vespa.hosted.controller.notification.NotificationSource; import java.util.List; -import java.util.stream.Collectors; /** * (de)serializes notifications for a tenant @@ -105,7 +103,6 @@ public class NotificationsSerializer { case deployment -> "deployment"; case feedBlock -> "feedBlock"; case reindex -> "reindex"; - default -> throw new IllegalArgumentException("No serialization defined for notification type " + type); }; } @@ -126,7 +123,6 @@ public class NotificationsSerializer { case info -> "info"; case warning -> "warning"; case error -> "error"; - default -> throw new IllegalArgumentException("No serialization defined for notification level " + level); }; } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/certificate/EndpointCertificatesHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/certificate/EndpointCertificatesHandler.java index dc59f513509..a00e80b17d4 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/certificate/EndpointCertificatesHandler.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/certificate/EndpointCertificatesHandler.java @@ -1,4 +1,4 @@ -package com.yahoo.vespa.hosted.controller.certificate; +package com.yahoo.vespa.hosted.controller.restapi.certificate; import com.yahoo.config.provision.ApplicationId; import com.yahoo.container.jdisc.HttpRequest; @@ -74,4 +74,4 @@ public class EndpointCertificatesHandler extends ThreadedHttpRequestHandler { return new StringResponse(EndpointCertificateMetadataSerializer.toSlime(reRequestedMetadata).toString()); } } -}
\ No newline at end of file +} diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/MailVerifierTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/MailVerifierTest.java index edea07e205c..77145be4197 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/MailVerifierTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/MailVerifierTest.java @@ -4,6 +4,7 @@ package com.yahoo.vespa.hosted.controller; import com.yahoo.config.provision.SystemName; import com.yahoo.config.provision.TenantName; import com.yahoo.vespa.hosted.controller.api.integration.stubs.MockMailer; +import com.yahoo.vespa.hosted.controller.application.MailVerifier; import com.yahoo.vespa.hosted.controller.tenant.CloudTenant; import com.yahoo.vespa.hosted.controller.tenant.Email; import com.yahoo.vespa.hosted.controller.tenant.PendingMailVerification; @@ -99,4 +100,4 @@ class MailVerifierTest { assertTrue(tester.curator().getPendingMailVerification(resentVerification.get().getVerificationCode()).isPresent()); } -}
\ No newline at end of file +} diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java index 40217890351..04a623f819b 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java @@ -5,7 +5,8 @@ import com.yahoo.component.Version; import com.yahoo.config.application.api.DeploymentSpec; import com.yahoo.config.application.api.ValidationOverrides; import com.yahoo.config.provision.ApplicationId; -import com.yahoo.config.provision.SystemName; +import com.yahoo.config.provision.ClusterSpec; +import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.Tags; import com.yahoo.config.provision.zone.ZoneId; import com.yahoo.security.KeyUtils; @@ -23,6 +24,7 @@ import com.yahoo.vespa.hosted.controller.application.Change; import com.yahoo.vespa.hosted.controller.application.Deployment; import com.yahoo.vespa.hosted.controller.application.DeploymentActivity; import com.yahoo.vespa.hosted.controller.application.DeploymentMetrics; +import com.yahoo.vespa.hosted.controller.application.EndpointId; import com.yahoo.vespa.hosted.controller.application.QuotaUsage; import com.yahoo.vespa.hosted.controller.application.TenantAndApplicationId; import com.yahoo.vespa.hosted.controller.deployment.DeploymentContext; @@ -40,6 +42,7 @@ import java.security.PublicKey; import java.time.Instant; import java.time.temporal.ChronoUnit; import java.util.ArrayList; +import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Optional; @@ -47,6 +50,7 @@ import java.util.OptionalDouble; import java.util.OptionalInt; import java.util.OptionalLong; import java.util.Set; +import java.util.stream.Collectors; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -69,7 +73,6 @@ public class ApplicationSerializerTest { "pDhJeqczkyFcT2PysJ5sZwm7rKPEeXDOhzTPCyRvbUqc2SGdWbKUGGa/Yw==\n" + "-----END PUBLIC KEY-----\n"); - @Test void testSerialization() throws Exception { DeploymentSpec deploymentSpec = DeploymentSpec.fromXml("<deployment version='1.0'>\n" + @@ -133,7 +136,7 @@ public class ApplicationSerializerTest { Tags.fromString("tag1 tag2"), deployments, Map.of(DeploymentContext.systemTest, Instant.ofEpochMilli(333)), - List.of(AssignedRotation.fromStrings("foo", "default", "my-rotation", Set.of("us-west-1"))), + List.of(rotation("foo", "default", "my-rotation", Set.of("us-west-1"))), rotationStatus, Change.of(new Version("6.1"))), new Instance(id3, @@ -236,4 +239,13 @@ public class ApplicationSerializerTest { // ok if no error } + private static AssignedRotation rotation(String clusterId, String endpointId, String rotationId, Collection<String> regions) { + return new AssignedRotation( + new ClusterSpec.Id(clusterId), + EndpointId.of(endpointId), + new RotationId(rotationId), + regions.stream().map(RegionName::from).collect(Collectors.toSet()) + ); + } + } |